Possible to Un-Negotiate Capabilities?

Tim-Philipp Müller t.i.m at zen.co.uk
Tue May 14 12:47:56 PDT 2013


On Tue, 2013-05-14 at 12:32 -0700, johnwesting wrote:

> Quick question, is it possible to un-negotiate capabilities after they have
> been negotiated and the pipeline has started playing? If for example, I have
> a source element that creates either AAC or MP3, and pipes the data into
> decodebin, is it possible to switch from AAC to MP3 or vice versa in real
> time, or would I have to tear down the pipeline and start over. Ex:
> 
> gst-launch aacormp3src ! decodebin ! alsasink

It's possible in general in principle - you would just send a new caps
event and then buffers in the new format.

However, I don't think decodebin supports this.

Something like

  aacormp3src ! autoconvert ! audioconvert ! alsasink

*might* work.

Another possibility might be to have dynamic pads and add a new pad for
the new format, send EOS on the old one and remove it, then send data on
the new one. playbin *might* handle this (but I'm not 100% sure if it
will do this for sources too or only demuxers).

 Cheers
  -Tim





More information about the gstreamer-devel mailing list