try to put async=false on xvimagesink or on the pulsesink. I don't remember it on details...but when you have to sinks on the same pipe one keeps waiting for the other to be ready...something like that...so you get blocked, if one of the sinks are set with async=false this will not happen ...at least with me it worked :-)
> I have the pipeline:
> filesrc ! typefind ! mpegpsdemux name=demux multiqueue
> max-size-bytes=2097152 name=mq demux.audio_c0 ! mq.sink0 mq.src0 ! mp3parse
> ! flump3dec ! input-selector ! tee ! audioconvert ! audioresample !
> pulsesink demux.video_e0 ! mq.sink1 mq.src1 ! mpegvideoparse ! mpeg2dec !
> input-selector ! queue max-size-buffers=3 max-size-bytes=0 max-size-time=0 !
> ffmpegcolorspace ! videoscale ! xvimagesink
> Here is the dot file:
> http://gstreamer-devel.966125.n4.nabble.com/file/n2297314/player.dot > player.dot (30kb), and produced PNG:
> http://gstreamer-devel.966125.n4.nabble.com/file/n2297314/player.png > player.png (850kb)
> Looks like there is no negotiation between multiqueue and mpegvideoparse.
> Why an it be?
> I tried using seek example with this pipeline
> It begins playing only after seek command.
I am by no means an expert as I just started playing with gstreamer as a
developer last week, however yesterday I read this: