Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] Why no more than 3 PID filters



Hi all, a happy new year and many thanks to those who helped me in letting my Nexus-S card run on my mandrake 10.0 box.

I finally could figure out that I could not make it work because the "firmware_class" module was not loaded when I tried to load the appropriate other modules for the nexus-S card.

Now, the scan and szap utilities work just fine. However, I want to use the card which a special network player which needs to receive full mpeg2 TS packets in order to be able to decode the stream properly. In a minimal TS, I need at least four PIDs as follows :

	- At least one video PID ;

	- At least one audio PID ;

	- The PAT of the stream the card is tuned to ;

	- The PMT of the service I want to play.

Since I wanted to play several services from the same transport stream to different socket, I tried to use "dmx_pes_filter"s, (one per PID I want to play).

For the three first filters I open, anything seems to work right but the problem occurs when I try to open a fourth filter.

When I call "fd = open("/dev/dvb/adapter0/demux0", O_RDRW)", the "fd" variable is set with a valid file descriptor.

Then, I initialize a "dmx_pes_filter_params" structure called "pesfilter" and call "ioctl(fd, DMX_SET_PES_FILTER, &pesfilter)", I receive a value which is different from -1 so I suspect that the call is correct.

However, when I further want to read from "fd" into a buffer, I always receive the "Bad file descriptor" error.

What happens please ? Is the demux file descriptor prematurly closed and why ?

Many thanks in advance for any help. Have a nice day. Chris




Home | Main Index | Thread Index