Re: Communication between layers?
Arpi <[email protected]>
| Newsgroups | gmane.comp.video.mplayer.g2.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi, > The question is: is there an api to permit 2-way communication between > layers (stream and demuxer in my case)? control() > An application (that I care for) is: > > 1) the dvb input module opens the device and sets filters for pids 160 > (V), 80 (A), eventually 500 (subs) and 0 > (for PAT, that I'm working on) > 2) the ts_demuxer queues the usual a/v/s content to the respective fifos > and parses the PAT to find the PMT(same as above) pids > 3) at this point ts_demux needs more TS pids: the ones corresponding to > the PMTs found in the PAT, so it needs to ask the > dvb stream module to add more pids to the stream. How to do it? > 4) the dvb module tries to obey and needs to report the exit code to the > demuxer > 5) ts_demux needs to parse the PMTs and can decide to add or remove > certain pids from the stream; > it can also tell the dvb module that there are more channels > available in the same frequency > or what's the map of the other frequencies found in the NIT (i'm > overly optimistic in this case). I think by default you should filter only the PAT in stream layer. The demuxer can parse it, and export the data in a form of playlist. So the user can select the wanted program and re-open teh device, giving the program id (or stream ids) as parameter in the URL. The other way is calling demux->stream->control() from ts demuxer to communicate with the stream layer, but i think it's not so clean. A'rpi / Astral & ESP-team -- Developer of MPlayer G2, the Movie Framework for all - http://www.MPlayerHQ.hu