[mythtv] vps once again...

Kenneth Aafl°y lists at kenneth.aafloy.net
Wed Jul 28 12:31:56 EDT 2004

On Tuesday 27 July 2004 21:06, maestro wrote:
> ok so i downloaded your patch and applied it to current cvs. then i
> started to inspect the vbidec.cpp file as you mentioned.
> i'd really like to get the vps feature going and vps decoding is done
> allready in the vbi.c example programm that comes with newer
> ivtv-drivers. (i'm using ck100b) but i cannot see the correlation
> between these two pieces of code.

I had a quick look at this code, but I could not see any decoding of the VPS. 
But it does show how to aquire various VBI data.

> as far as i can reconstruct <please correct me if i'm wrong>
> some piece of code calls the processPesPkt method of a vbidecoder object
> where the uint8_t *buf parameter contains the actual vbi data provided
> by the/any driver (that has vbi support ivtv > 0.1.9, bttv...)

This buffer is coming from the AvFormatDecoder, which handles the MPEG2 
decoding. This buffer is defined in EN 301 775 (Vbi data in dvb) and contains 
many vbi data lines. What this function does is to demux it, and feed the 
teletext line data to the teletext decoding function. There are also stubs to 
mux vps/wss/cc and so on to other decoder functions, but I have not seen 
these data types yet, hence no point for me to decode them.

> uppon that the buffer is sanity-checked and processPesPktData is called
> that constructs a teletext-page out of the buf.
> am i getting this right?

What I would do, is to add a function similar to the processPesPktData to 
demux the data from the ivtv vbi device. It would look something like the 
process function of the example vbi.c. Then you would make a VPS 
decoding/parser function similar to the ::line function that would be general 
enough to suit data from both ivtv and dvb.

Right now, this VbiDecoder is only suited to be placed on the frontend. Since 
the VPS really is backend related, I would like to see this beeing 
implemented outside it, or better, that the decoder would be told if it lives 
on the backend or frontend. I also want to make an extension to it so that 
teletext data can be muxed out of a recording and be transmitted as an extra 
stream, and that only recording related stuff such as subtitles/wss/cc is 
ever stored in a recording.

> to implement vps support, would it be the best/correct way to create a
> new class (maybe VpsInfo, like TeletextPage) that holds current vps data
> for the current channel, and add a method (like in vbi.c from ivtv
> driver) that extracts readable/usable data from the buf that is provided
> by the calling piece of code.

I would say that VPS info should be sent to the Scheduler, so that it can try 
to match it's own recording list to the info that VPS sends. With a general 
interface to feed data to the Scheduler and decoding of the line data in 
VbiDecoder, this should be very easy to expand to other data types.

I find these documents valuable (all can be downloaded www.etsi.org):
EN 300 472 - Teletext in DVB
EN 301 775 - VBI Data in DVB
EN 300 231 - Video Programming System
EN 300 294 - Wide Screen Signalling

Hope this helps.


More information about the mythtv-dev mailing list