[Bug 755235] New: gst_element_get_state *always* times out when called from a non-main thread.

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Fri Sep 18 10:56:19 PDT 2015


https://bugzilla.gnome.org/show_bug.cgi?id=755235

            Bug ID: 755235
           Summary: gst_element_get_state *always* times out when called
                    from a non-main thread.
    Classification: Platform
           Product: GStreamer
           Version: 1.4.1
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gstreamer (core)
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: swestrup at gmail.com
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

Created attachment 311648
  --> https://bugzilla.gnome.org/attachment.cgi?id=311648&action=edit
debug capture with --gst-debug=VAAL:6,GST_STATES:6

I have a video-wall application that allows a user to add and delete entire
rows and columns of monitor outputs while its playing a video.

To add a bunch of monitors at once, I'm using glib's thread pool functions and
spawning a number of threads, each of which builds a "videostream" bin for a
single monitor and attaches it to a 'tee' element inside a central 'videostub'
bin which distributes whichever visual media we're currently playing.

The process is simple:

1) Place the new videostream bin inside the videostub bin.
2) Ask the videostream to sync state with the videostub
3) Wait for a result (successful sync, or failure) and report that to the
main pipeline manager of the program.
4) If successful, attach the videostream to the tee at the end of the
videostub.

The problem I have is that, if the videostub is in playing state, then the wait
for result in step 3 ALWAYS times out, no matter how long. The moment the main
loop runs again, the state transition completes.

If I do a full debug dump with --gst-debug=*:6, then I see that NOTHING is
happening during the timeout period. No messages get logged at all.

I'm attaching a debug output from my program that shows just the log output
from my main program and the GST_STATES logging while it attempts to sync the
videostream with the videostub.

-- 
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