[gst-devel] DVD menu support

David I. Lehn dlehn at vt.edu
Thu Jun 12 17:09:19 CEST 2003


* Martin Soto <soto at informatik.uni-kl.de> [20030612 17:56]:
> I hacked the dvdnavsrc element to
> support a number of features that were missing in order to completely
> support the DVD menus.  Basically, I added support for DVD still frames
> (commonly used as menu backgrounds) and for subpicture highlights. 
> Together with my DXR3 elements (already in gstreamer CVS), a number of
> changes to the mpegdemux element (also already in CVS) and a python
> script based on David Lehn's most excellent gst-python, I can play DVDs
> with (almost) full menu support.

Great!


> The DVD menu highligths are based on the
> subpicture mechanism (the same thing used for the DVD subtitles), and
> require that a number of information bits travel from the dvd decoder
> element to the subpicture decoding unit:
> 
> - The actual encoded pictures.
> - The Color LookUp Table (CLUT).
> - The highlighted regions and corresponding color palettes.
> - The information contained in DVD nav packets (PCI and DSI structures).
<snip>

I'm not sure doing this with events is the best idea.  And I see you
have sync issues with the app level handling method.  Another option is
lots of streams.  Pack structures into buffers and send them off on
various source pads.  A loop based sink can use gst_pad_select() to grab
buffers as they arrive to multiple src pads.  This probably has the same
timing issues as application level handling.  A sync barrier for
multiple streams is probably hard to construct and would basically make
the system end up looking like a mux/demux on one stream of tagged
buffers.  Could also pass some of this info with caps on the pads.  It's
probably overloading the concept too far though.

wtay, omega: did you guys have some overall vision of how to handle
these sorts of sync issues for multiple streams of data/events?

If you want to collaborate on a dvd application it would be great to
have both hardware and software support with some shared common code in
VDV: http://vdv.sourceforge.net/.  python + gtk/pygtk +
gstreamer/gst-python is nice.  It's in a fairly sorry state right now
but it has been working for me for quite a while.  Many many
improvements could be made.

-dave




More information about the gstreamer-devel mailing list