Here the first experimental patch for the vbi decoding for PVR cards using the IVTV drivers. Although its far from perfect (that's why it's classified as experimental;-) it gives you some idea how things are implemented and I challenge you to contribute to fill in the missing gaps or to improve the code.
What it does: it relies on having embedded vbi in the MPEG stream as defined in the IVTV doc's. The embedded vbi stream includes the magic cookies "itv0' and 'ITV0' to mark the beginning of a vbi private stream. That's why some additional lines are added to the avformatdecoder and ffmpeg decoder classes, to recognize a vbi data steam. If detected, it will start decoding in the vbidecoder class. An additional OSD overlay osdtypeteletext is used for teletext and subtitles. Whole process is controlled from tv_play routines. Pages are updated after receiving new content, so even subtitling pages (e.g. 888) do work! What it does not do yet (TODO ;-) - It overrules the 'T' key for teletext/CC for non-encoder cards (bttv/saa7134) . The original vbi code (part of nuppelvideoplayer/recorder) is still in, but I rather see this becoming part of this new vbidecoder class. Like to see 'C' for CC/subtitles and 'T' for teletext. Problem: 'C' function already in use... As some people have a mixed PVR/bttv setup, we should detect which card is operational and select the correct vbi decoder. - CC is not working yet, as we do not have this here in Europe. Please test the results in ccbuffer and in your stderr terminal and please report your findings. - Teletext is text-only. No mosaic or other fancy stuff like blanking, FLOF, blicking, reveal functions yet. Uses current CC_font in OSD. Should be teletext font in future. for the OSD overlay, we suffer from the color mapping of YUV420 here. Use a font with sufficient width (eg bold fonts) to be able to read the blue or red text. - other embedded data like WSS/PIL/CNI/VPS/PDC captured but not used. Framework in place, detection and corresponding actions (e.g. signals and slots) to be defined. - TT OSD overlay is now transparent. Future work is to have black, transparent, or even left-TV/right-TT (for 16:9 screens) or TT-PIP implemented (for big screens) Give it a try and report your findings. Improvements are very welcome. Martin
mythtv_vbi.tar.gz
Description: application/tgz
_______________________________________________ mythtv-dev mailing list [email protected] http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev
