[gst-devel] DVD autoplugging and Python

Martin Soto soto at informatik.uni-kl.de
Mon Jun 6 05:28:04 CEST 2005


Hi everyone,

A question about autoplugging for DVD playback, and, hopefully, Python.
After a reimplementation of the DVD virtual machine code (that, as
usual, took longer than expected) I managed to get the Seamless DVD
Player to a point were it is able to properly and quite robustly handle
the menus in most commercial DVDs.  One big issue is affecting it still
though, namely, it is not able to play PCM sound properly.

I put support for PCM in the dvddemux element already more than a year
ago. What is affecting me is the inability to plug the output of
dvddemux with the appropriate decoders (audioconvert ! audioscale) and
feed it to alsasink or whatever. Currently, dvddemux offers a single
source pad, corresponding to the current DVD audio stream. When the
audios stream changes between AC3 and PCM (and that happens frequently
in certain discs) the pad simply tries to renegotiate the caps and
produces and error if it doesn't work. The elements attached to the pad,
must be able to rearrange themselves in someway to handle the new
format.

Some days ago, I saw the Python examples Benjamin sent to the list and
started wondering if it is possible to implement this sort of
autoplugging completely in Python. Given the current structure, I would
have to detect when the dvddemux audio pad renegotiates caps, and plug a
different set of elements to handle them (since only a few formats are
possible, it is not that hard to decide even). It would also consider
changing the dvddemux if necessary. I have a forked version in Seamless,
and hacking it a bit is no problem since it has to be rethough for 0.9
anyway.

Question is now, do the experts (Benjamin, Johan, ...) think this is
possible in Python? What would be the effect on performance? I'd really
appreciate your thoughts.

By the way, if anyone wants to take a look at the current code, the
steps are

  tla register-archive soto at freedesktop.org--2004-seamless \
    http://arch.gna.org/seamless/2004-seamless
  tla get soto at freedesktop.org--2004-seamless/seamless--mainline seamless

it should now compile and run with any more-or-less recent 0.8,
including CVS.

Cheers,

M. S.
-- 
Martin Soto <soto at informatik.uni-kl.de>
Universität Kaiserslautern





More information about the gstreamer-devel mailing list