[gst-devel] pipeline locked at the end of preroll

Jan Schmidt thaytan at noraisin.net
Wed Dec 14 01:39:01 CET 2005

On Wed, 2005-12-14 at 09:57 +0100, Sébastien Moutte wrote:
> Hi all,
> i'm still working on directdraw sink for win32.
> I've overwritten buffer_alloc to use directdraw surfaces as buffers,
> it 
> works fine without queue element in the pipeline and the pipeline
> uses 
> only 2 directdraw surfaces as buffers from the sink.
> But when i'm using a queue just before the sink or before 
> ffmpegcolorspace, i'm getting locked in gst_queue_chain by
> g_cond_wait 
> (queue->item_del, queue->qlock); at line 690 of gstqueue.c.
> The queue seems to be full and it waits for some space to push the 
> buffer ...
> It comes just after returning a buffer from the overwrite of 
> buffer_alloc. The queue has already requested 17 buffers.

As you say, it looks like the queue is full - the 15 buffers in it are
larger than the 10485760 byte threshold, so the queue is blocked. I'd
say it's waiting for the sink to render a frame and return from the
chain function so that the queue can push out another one, making room
for the blocked buffer on the sink pad.

A stack trace should tell you where the queue src thread is blocked -
it'll be in your sink somewhere, I think.


Jan Schmidt thaytan at noraisin.net

Have you been half-asleep? Have you heard voices?
I've heard them calling my name...
-Kermit the Frog (Rainbow Connection)

More information about the gstreamer-devel mailing list