[Bug 731474] playbin stalls when trying to play the audio portion of a stream with flags="audio"

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Fri Jun 13 07:23:08 PDT 2014


https://bugzilla.gnome.org/show_bug.cgi?id=731474
  GStreamer | gstreamer (core) | git

--- Comment #5 from Vincent Penquerc'h <vincent.penquerch at collabora.co.uk> 2014-06-13 14:23:02 UTC ---
It seems to be some kind of race to do with prerolling.

The hang case shows alsasink waiting for preroll on an audio buffer, then the
multiqueue fills up with video till filled. The sink never gets back from the
preroll wait on audio, but is the only sink (an xvimagesink is actually created
too, but is shut down at start).

That wait is done by the base audio sink, when it gets interrupted in the
playback when the pipeline goes from PLAYING back to PAUSED.

However, another thread was concurrently doing the PLAYING->PAUSED state
change, which just signalled the preroll cond var, so when the render thread
goes to wait for preroll, nothing unblocks it.

I'm not sure whether there should then be a PAUSED->PLAYING transition caused
by the queues filling up again. The video part of the queue fills up for a
while after this.

The issue doesn't seem to be with not-linked handling in multiqueue. I tried
bypassing it (when the return value of gst_pad_push is _NOT_LINKED, I just set
it to OK to pretend it was accepted). Since there's no actual sink beyond this
branch, i don't think it will mess with preroll handling.

So at the moment I think it's likely some logic bug to do with the interaction
between prerolling and PLAYING->PAUSED early on.

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list