From: Steve B. <sb...@co...> - 2002-04-06 23:44:34
|
I cooked up an input plugin for the Hauppauge Nova DVB card that uses the driver at linuxtv.org. So far, it tunes transponders and filters PAT's. The ts demuxer finds and parses them. As a start, I am using a mrl of `dvb://freq,pol,srate,pnr` to select the frequency, polarity, symbol rate and program number. Currently, all the communication with the dvb card in localized in the input plugin and all the si parsing is in the ts demuxer. The problem is how to control the filtering of pids. - One approach is to duplicate some pat/pmt parsing in the input plugin and control which pids to filter there. - Another alternative is adding lots of dvb-specific variables and call-backs to the common input_plugin structure so the demuxer can call the input plugin and control which pids to filter. This doesn't seem very tidy either. - Yet another is to not filter in the driver at all, but to send the whole transport stream to the demuxer and have the filtering done there. Although this seems pretty clean, I doubt that the performance would be acceptable. - Finally, although more work, would be to use something like dvbtune (at linuxstb.org) to create an xml transponder map and then build a ui to navigate it and create an mrl. In this case, the mrl would contain all pids to select from the transport stream. I'd appreciate any recommendations or references to similar code. If somebody is already working on this, I'd be glad to help with testing or whatever. Steve BTW: The current cvs hangs on all my sample transport stream test files. They work fine on 0.9.8. Is this a known problem? |