Hi, I am using Metzler drivers
1.1.7 on RH 7.3 system with KNC1 DVB-S card. I assemble my program from dvb_tune and mpegtools (ts_to_pes). When I start to test my
program, I wound that sometimes it hung in ts_to_pes
function on read() call. /dev/dvb/…./dvr0
was opened in blocking mode. Then I introduce poll()
before read not to block thread. if ( poll( thePFD, 1, 2 )) { if ( thePFD[0].revents
& POLLIN ) { printf(“r”);
fflush(stdout); if ((count = read(fdin,mbuf,i))<0)
perror("reading"); printf(“R”);
fflush(stdout); } I try to read only when I
make tune, and tune is successful. At least it is reported by dvb_tune: tune_it function. I try different variations. Set VPID and
APID to 0, (to stop demux process), before tuning, as
well as closing of dvr0. Make tune_it and if it successful, set VPID and APID, and open
dvr0. I add usleep
( 40000 ), after setting demux
and opening dvr0 I try no to close/open dvr0
still same results. Some times after successful tuning
I read data and play it, fine, but sometimes I could go up one channel and then
go to the previous, try to read but
poll exits on time out, like no data and data will never appear on this
channels unless I tune to another channel. Does anyone know why dev/…/dvr0
may hang or has no data when tuning is successful? I know that this is a
software demux driver and CPU load is important, I
check with top and it display 96% idle … Yevheniy Malyuk Software Engineer Tuxia |