[gstreamer-bugs] [Bug 505770] New: gst_element_get_state may deadlock

GStreamer (bugzilla.gnome.org) bugzilla-daemon at bugzilla.gnome.org
Wed Dec 26 10:13:39 PST 2007


If you have any questions why you received this email, please see the text at
the end of this email. Replies to this email are NOT read, please see the text
at the end of this email. You can add comments to this bug at:
  http://bugzilla.gnome.org/show_bug.cgi?id=505770

  GStreamer | gstreamer (core) | Ver: 0.10.14
           Summary: gst_element_get_state may deadlock
           Product: GStreamer
           Version: 0.10.14
          Platform: Other
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: major
          Priority: Normal
         Component: gstreamer (core)
        AssignedTo: gstreamer-bugs at lists.sourceforge.net
        ReportedBy: qq at kuku.eu.org
         QAContact: gstreamer-bugs at lists.sourceforge.net
     GNOME version: Unspecified
   GNOME milestone: Unspecified


If a pipeline fails to preroll, calls to gst_element_get_state result in a
deadlock.

I've encountered this bug in a specific scenario, although I think it would
happen in other cases as well. In my case there is a simple pipeline:
filesrc location=some-file  '!' decodebin '!' fakesink

Now, if the mime-type of some-file is recognised, yet no codec for the format
is found, the pipeline (correctly) fails to enter PAUSED state. The problem is
that any attempt to check for this condition using gst_element_get_state result
in a deadlock.

Steps to reproduce:
1. Open gst-launch sources. Append the  line
       gst_element_get_state (pipeline, NULL, NULL, GST_CLOCK_TIME_NONE);
   after (around line 700)
       fprintf (stderr, _("ERROR: pipeline doesn't want to preroll.\n"));

2. Build.
3. Launch the above pipeline with a file for which a codec is not available.
4. gst-launch prints out the following text, then deadlocks.
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
ERROR: from element /pipeline0/filesrc0: Internal data flow error.
Additional debug info:
gstbasesrc.c(1816): gst_base_src_loop (): /pipeline0/filesrc0:
streaming task paused, reason not-linked (-1)
ERROR: pipeline doesn't want to preroll.


-- 
See http://bugzilla.gnome.org/page.cgi?id=email.html for more info about why you received
this email, why you can't respond via email, how to stop receiving
emails (or reduce the number you receive), and how to contact someone
if you are having problems with the system.

You can add comments to this bug at http://bugzilla.gnome.org/show_bug.cgi?id=505770.




More information about the Gstreamer-bugs mailing list