[gst-devel] One-autoplugger-fits-all ?

Erik Walthinsen omega at temple-baptist.com
Sat May 19 08:18:03 CEST 2001

The current dynamic autoplugger I'm building is designed initally to act a
as [un]known-to-known magic element.  Attach it in the middle of a
pipeline, it will construct a filler pipeline, determining the source data
type as necessary.

There are two basic types of data to be autoplugged: an elementary stream
(audio XOR video), or a system stream (audio AND video).  Variants exist
when you're talking about DVD's, with multiple audio streams, as well as a
control stream, but it's basically a 1 vs. N difference.

There are also two goals of autoplug: autoplug to a known output, and
autoplug to some number of renderers.  gstplay will want to make use of
the latter case.

So, the current autoplugger implemenets the 1->1, known output case.  This
is good, but I'd like to find a way to make it usable in all cases.  The
default is to have a single source pad available for connection.  What if
you hit PLAYING without connecting it?  That could be the hint necessary
for the autoplugger to render.  Or there could be a flag.  If there's a
flag, and it's a system stream, do we then take the source pad away and
replace it with a bunch of pads for the different outputs, firing signals
as it goes?

Should we even go so far as to not have a 'renderer autoplug' and just
have output pads for those cases?  Leave it to the app to decide exactly
how it wants to render them?  If so, we have the problem of determining
what the base format is for each substream.  What if, for instance,
there's a hardware MPEG2 video decoder available?  If you split the
stream, then render to video/raw, you've got a problem when the renderer
is connected.  I suppose the autoplugger can be smart enough to consider
removing the bits of the pipeline that are now irrelevant....

Ack, any thoughts on how to proceed?

      Erik Walthinsen <omega at temple-baptist.com> - System Administrator
       /  \                GStreamer - The only way to stream!
      |    | M E G A        ***** http://gstreamer.net/ *****
      _\  /_

More information about the gstreamer-devel mailing list