Pipeline freeze at preroll on embedded system

Sebastian Dröge sebastian.droege at collabora.co.uk
Mon Jan 21 01:16:10 PST 2013


On Mo, 2013-01-21 at 09:43 +0100, Julian Scheel wrote:
> Am Montag, den 21.01.2013, 08:23 +0100 schrieb Sebastian Dröge:
> > On So, 2013-01-20 at 21:57 +0100, Julian Scheel wrote:
> > 
> > > > The GCond in question would usually be signalled when the state change
> > > > from PAUSED to PLAYING happens in basesink (or when
> > > > flushing/EOS/stepping). So what you could do is to check if
> > > > 
> > > > a) basesink is actually tried to be set from PAUSED to PLAYING (check if
> > > > the change_state function is called)
> > > 
> > > Actually I debugged this and the PAUSED to PLAYING transition is never happening. I can see that gstbasesrc change_state is called for GST_STATE_CHANGE_NULL_TO_READY as well as GST_STATE_CHANGE_READY_TO_PAUSED, but never for GST_STATE_CHANGE_PAUSED_TO_PLAYING.
> > > So now the question is why this would not happen?
> > > From where would that transition be initiated?
> > 
> > In "gst-launch-1.0 fakesrc ! fakesink" it would happen from the
> > application thread. See gstreamer/tools/gst-launch.c:1097
> 
> Ok, if I set a breakpoint at line 1097 it won't be reached.
> 
> But if I set a breakpoint at line 1075:
> caught_error = event_loop (pipeline, TRUE, GST_STATE_PAUSED);
> it fires. And after it halted there I can continue and the pipeline
> works as expected. If the breakpoint is set to line 1076 it won't be
> reached at all.
> So my guess would be that entering the event_loop a little later
> magically solves the issue because some lock is released before or
> anything like that. Any thoughs from your side?

Well, check where in event_loop() it blocks forever :) I guess for some
reason it doesn't get the STATE_CHANGED message from the bus.

And it probably works if you wait before that because then the message
is probably on the bus already then, and otherwise it has to wait for
messages to appear on the bus (using a GCond).
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20130121/4bffd3bb/attachment.pgp>


More information about the gstreamer-devel mailing list