After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 511935 - queue2: temp-location locks pipeline
queue2: temp-location locks pipeline
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
0.10.15
Other Linux
: Normal normal
: NONE
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2008-01-25 00:33 UTC by Bastiaan Jacques
Modified: 2012-09-24 23:13 UTC
See Also:
GNOME target: ---
GNOME version: 2.19/2.20



Description Bastiaan Jacques 2008-01-25 00:33:31 UTC
Please describe the problem:
When a pipeline with queue2's temp-location property is created, playback does not progress from PAUSED. This is always in combination with the decodebin or decodebin2 element. If queue2 is hooked up directly with fakesink, or if an additional queue2 element is added, the pipeline works as normal.

Steps to reproduce:
gst-launch -v  audiotestsrc  ! queue2 temp-location=$PWD/tmpfile ! decodebin2 ! fakesink


Actual results:
The pipeline goes into PAUSE mode, but never goes into PLAYING.

Expected results:
The following pipeline (without queue2's temp-location property) works:
gst-launch -v  audiotestsrc  ! queue2 ! decodebin2 ! fakesink

and also:

gst-launch -v  audiotestsrc  ! queue2 temp-location=$PWD/tmpfile ! fakesink

Does this happen every time?
Yes.

Other information:
Comment 1 Wim Taymans 2008-01-25 17:14:53 UTC
typefind tries to get the length from queue2 when going to PAUSED. The source is not yet producing data, queue2 blocks the length query until it receives data -> deadlock.
Comment 2 Bastiaan Jacques 2008-01-29 11:24:29 UTC
Makes sense. But why does it only happen when the temp-location property is set?
Comment 3 Wim Taymans 2008-05-28 15:21:26 UTC
because with temp-location, queue2 will propose pull based scheduling with random access to the downstream element, which will then respond with doing a seek. This is how typefind currently works (it starts reading data in the state change..). I think I had some solution somewhere but I'll have to check again..
Comment 4 Sebastian Dröge (slomo) 2010-01-22 09:30:26 UTC
Wim, any news on this?
Comment 5 Tim-Philipp Müller 2012-09-24 23:13:17 UTC
Doesn't seem to be an issue with 1.0 any longer (presumably because typefind doesn't do typefinding from the state change thread, but asynchronously). If it's still an issue, please re-open.