[gst-devel] DVD Navigation progress
thaytan at mad.scientist.com
Thu Jan 22 19:31:01 CET 2004
<quote who="David Schleef">
> On Fri, Jan 23, 2004 at 11:57:35AM +1100, Jan Schmidt wrote:
> > I considered this. The problem is that the colour tables change through the
> > lifetime of the stream, which would mean renegotiating the caps. That would
> > work, it just feels messy :-
> It's not at all messy. Caps are used to completely specify a stream
> format. In this case, if you want to define the format as colormapped
> data, you need the colormap to specify the stream format.
> Alternatively, you could decide that the mpeg subtitle format is
> broken beyond recognition, and decide that the proper format should
> be buffers containing both colormap info and subtitle data.
That might be best, except that there's more data to consider here than just
the colour tables - like button highlight state and stream selection events
- and it all needs to come downstream from the dvdnavsrc in order to reach
the elements that can actually use it.
> Eventually, some day, we may have a two-tiered caps system, where
> certain data can be labelled as ancillary -- it won't be used for
> negotiation, but it will be available to any downstream elements.
> > The only mechanism for doing this in GStreamer at the moment is the Navigation
> > events - although I'd be happier if it weren't called that for this use case.
> Navigation events are upstream only, and may only be used for navigation.
Well, that sucks. That means that the only way GStreamer can handle the
requirements for properly handling DVD playback and the information about
colour tables, button highlighting and language stream selections
is to change the caps coming out of dvdnav and renegotiate that downstream...
which sucks because they really represent stream handling information
that needs to be signalled and processed in sequence with the mpeg data.
> > The solution I have in mind at the moment is to have mpegdemux cache the
> > subtitle colour table and issue it to any subtitle pad when it is linked -
> > by sending a copy of the event onward rather than via caps.
> Now _that's_ messy. What happens when I relink between the two
> identities in:
> mpegdemux ! identity ! identity ! mpeg2subt
The same thing that happens whenever you connect two playing elements
together after they're playing already - you might miss some data and not
know how to read the stream.
Jan Schmidt thaytan at mad.scientist.com
"Computer games don't affect kids; I mean if Pac-Man affected us as
kids, we'd all be running around in darkened rooms, munching magic pills
and listening to repetitive electronic music." - Unknown
More information about the gstreamer-devel