GNOME Bugzilla – Bug 641332
can't connect vorbisenc ! queue ! matroskamux
Last modified: 2011-04-11 16:20:53 UTC
hallo i have trouble to connect this pipe "vorbisenc ! queue ! matroskamux" if i move queue before vorbisenc, (queue ! vorbisenc ! matroskamux) will work ok. The same is with webmmux. oggmux works fine with all wariants. here is compleete example: gst-launch filesrc location=stream.dump ! mpegpsdemux name=demux oggmux name=mux ! filesink location=out_audio.ogg demux.audio_80 ! a52dec mode=2 ! audiorate tolerance=50000000 ! audioconvert ! audioresample ! audio/x-raw-float,rate=44100,channels=2 ! taginject tags="language-code=eng" ! vorbisenc ! queue ! mux. demux.audio_81 ! a52dec mode=2 ! audiorate tolerance=50000000 ! audioconvert ! audioresample ! audio/x-raw-float,rate=44100,channels=2 ! taginject tags="language-code=ger" ! vorbisenc ! queue
The above is not really a bug, it only happens there are some limitations to gst-launch (and the convenience helpers it uses). In this particular case, it will link queue to mux first and in case of matroskamux will happen to pick a video pad (as there is nothing to indicate it should do otherwise at that stage) and that will then subsequently (and evidently) fail to link to vorbisenc. Btw, note that oggmux has no audio vs video pads, so that can not happen there). Other than using a more "full-scale application" for whatever purpose at hand, the gst-launch way around this is e.g. using different order as mentioned above (queue ! vorbisenc ! matroskamux), which also has the benefit that encoding can occur in a separate thread. Alternatively, use a capsfilter as link hint, i.e. vorbisenc ! queue ! audio/x-vorbis ! matroskamux.