Pipeline stuck in gst_base_sink_wait_preroll
gibrovacco at gmail.com
Thu Mar 3 23:44:12 PST 2011
On Mon, Feb 28, 2011 at 5:44 PM, Marko Mikkonen
<mmikkone at mail.student.oulu.fi> wrote:
> I'm developing a decoder plugin and my test pipeline (in a custom test
> application) looks like this: filesrc ! my_plugin ! decoderbin2 !
> directaudiosink. My_element is outputing an mp3 encoded audio. Decoderbin
> has constructed a correct internal pipeline as far as I can see it.
> Furthermore I have NOT implemented pull mode for my element yet (only chain
> function). When I run the program with debug level 5, it stops at function
> 0:00:26.845703000 4408 1f460fd8 DEBUG basesink
> gstbasesink.c:2181:gst_base_sink_wait_preroll:<audio_sink> waiting in
> preroll for flush or PLAYING
> Now, I HAVE set the pipeline to playing state, but somehow directaudiosink
> doesn't want to move to that state. Is the reason that I have not
> implemented pull mode for my element or should the pipeline work well in
> push mode, too? Why does that function wait forever?
It looks like the pipeline is stuck somewhere because some of the
elements don't receive enough data to complete the preroll. It's
usually due to a missing queue element after a tee or a demuxer. Can
you provide more hints about the topology of the pipeline you're
> If the pipeline should
> work in push mode too, I'd like to know how is that possible (what happens
> behind the scenes, e.g. how does the filesrc know what/when to output when
> there's nothing pulling the data). You see I'm still an amateur and I'd just
> like to learn.
> Some more info: I can see the filesrc outputting two chunks of data. From
> this data (after the data has gone through my element) the decoderbin has
> been able to construct the pipeline using typefind. And thanks to this data
> the audio sink has been able to preroll. But no more data is coming from
> filesrc to my plugin...
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
More information about the gstreamer-devel