Will using Playbin resolve pipeline state change getting stuck issue ?

Tim-Philipp Müller t.i.m at zen.co.uk
Mon Dec 31 02:47:57 PST 2012


On Mon, 2012-12-31 at 01:05 -0800, deepthips wrote:

> I have a pipeline 
> 
> souphttpsrc -> my_demux -> myVideo -> myDisplaySink
>                                           -> myAudio
> 
> Issue is : when stopping the pipeline, it gets stuck in PLAYING -> PAUSED
> state of myDisplaySink.

This sounds like an issue in your myDisplaySink plugin? You can
implement the GstBaseSink::unlock vfunc to make your render function
(which is in another thread than the state change) return (with a
GST_FLOW_FLUSHING/WRONG_STATE usually).


> I wanted to know whether it is because I set pipeline like this; will
> playbin / uridecodebin implementation will do any good.?  
> 
> Some additional info : 
> 
> While setting to PLAY, from NULL to READY : it goes in following order :
> 
> myDisplaySink
> myVideo
> myAudio
> my_demux
> soup
> 
> From READY to PAUSED and PAUSED to PLAYING it is in different order. That is
> the reason I had a doubt about using playbin.

Why does that concern you? playbin creates the pipeline dynamically when
starting playback, so when starting up it has to start up elements in a
different order. State changes go from sinks to sources, as far as those
are in the pipeline already, that is normal (see the design docs).

This should not make any difference to your plugins.

 Cheers
  -Tim



More information about the gstreamer-devel mailing list