[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