Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[linux-dvb] Help with pipe/fifo
Hi
where I could find sample using pipe/fifo for ts decoding? I would use pipe
so the entire stream received, could be processed to retrieve all pid
transmitting over a transponder (tuned by dvbtune). Now I am using this code
but there a problem on decoding pid: child's get out only pid 0 (scan decode
other pids)!
I think the problem is in write-end pipe but I dont know how resolve! Could
you help me in anyway? thanks of all. Andrea
//parent write-end fd[1]
while((read(fd_dvr,&tmp,10*TS_SIZE))!=0){
write(fd[1],tmp,10*TS_SIZE);
}
//child read-end fd[0]
if((read(fd[0], mbuf, TS_SIZE))<0) perror("\nerror reading pipe\n");
for (i = 0; i < TS_SIZE ; i++)
{
if ( mbuf[i] == 0x47 ){
printf("\nFound sync byte at %d\n",i);
break;
}
}
if (i == TS_SIZE)
{
perror("\nNot a TS\n");
return -1;
}else{
memcpy(buf, mbuf+i, TS_SIZE-i);
while((read(fd[0], mbuf, i))!=0);
memcpy(buf+TS_SIZE-i, mbuf, i);
//my_get_bits() function ok!
point_bit=11;
i=my_get_bits(buf,13);
printf("\nFirst pid: %04x\n",i);
point_bit=0;
l=0;
while((read(fd[0], buf, TS_SIZE))!=0){
//read(fd[0], buf, TS_SIZE);
point_bit=11;
i=my_get_bits(buf,13);
printf("\nFound pid %d: %04x %d\n",l,i,i);
point_bit=0;
l++;
}
}
}
_________________________________________________________________
--
Info:
To unsubscribe send a mail to listar@linuxtv.org with "unsubscribe linux-dvb" as subject.
Home |
Main Index |
Thread Index