[gst-devel] How can I make two links between two elements?

Edward Hervey bilboed at gmail.com
Wed Jul 21 08:41:51 CEST 2010


On Tue, 2010-07-20 at 02:02 -0700, wl2776 wrote:
> I'd like to mimic playbin2's behavior and construct similar pipeline using
> gst-launch.
> 
> When playbin2 loads mpeg2 file, it creates mpegpsdemux with two source pads
> (one pad per elementary stream) and multiqueue with two sink pads connects
> them:
> 
>   
>     +----------------+        +--------------+
>     |GstMpegPSDemux  |        |GstMultiQueue |
> ->  |sink            |  ----> |sink0    src0 |--->
>     |        video_e0|--'     |              | 
>     |        audio_c0|------->|sink1    src1 |--->
>     +----------------+        +--------------+
> 
> However, I cannot do that.
> 
> The pipeline 
> 
> "filesrc location=/path/video/10.mpg ! typefind ! mpegpsdemux name=demux
> demux.video_e0,audio_c0 ! multiqueue.sink0,sink1 multiqueue0 ! video/mpeg !
> mpegvideoparse ! mpeg2dec ! queue ! ffmpegcolorspace ! autovideosink
> multiqueue0 ! audio/mpeg ! mp3parse ! fakesink "

  You can't link multiple pads in one go like that you need to do
something like:

  ... ! sourceelement name=d  sinkelement name=m ! ...

  d.first_pad ! m.first_pad d.second_pad ! m.second_pad

> 
> doesn't create multiqueue and doesn't connect audio source pad from the
> MPEG-PS demuxer.






More information about the gstreamer-devel mailing list