[Bug 690014] New: Lockup: wrong STREAM_LOCK count 0
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Mon Dec 10 15:21:56 PST 2012
https://bugzilla.gnome.org/show_bug.cgi?id=690014
GStreamer | gstreamer (core) | 0.10.36
Summary: Lockup: wrong STREAM_LOCK count 0
Classification: Platform
Product: GStreamer
Version: 0.10.36
OS/Version: Linux
Status: UNCONFIRMED
Severity: normal
Priority: Normal
Component: gstreamer (core)
AssignedTo: gstreamer-bugs at lists.freedesktop.org
ReportedBy: self at brendanlong.com
QAContact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
More specific OS: Ubuntu 12.04 32 or 64-bit
I'm making some changes to QtWebKit, which uses GStreamer. I switch the video
track using:
g_object_set(m_playBin, "current-video", trackIndex, NULL);
For some reason, the video gets messed up if I don't do a seek immediately
afterwards, so I see to the current position. Similar code works for audio
tracks.
This works perfectly as long as the video is playing, but if it I try to switch
the current-video (or current-audio) before starting playback, I get this
error:
> TestBrowser:48324): GStreamer-WARNING **: wrong STREAM_LOCK count 0
I thought it was bug #670846, but the fixed version of the package is already
installed (I downloaded the source, checked it, and built it myself just to
make sure).
The backtrace from where I get the warning looks like this:
Breakpoint 1, g_logv (log_domain=0x7fffec607260 "GStreamer",
log_level=G_LOG_LEVEL_WARNING,
format=0x7fffec61efaf "wrong STREAM_LOCK count %d", args1=0x7fffd94cdd08)
at /build/buildd/glib2.0-2.32.3/./glib/gmessages.c:661
661 /build/buildd/glib2.0-2.32.3/./glib/gmessages.c: No such file or
directory.
(gdb) backtrace
#0 g_logv (log_domain=0x7fffec607260 "GStreamer",
log_level=G_LOG_LEVEL_WARNING,
format=0x7fffec61efaf "wrong STREAM_LOCK count %d", args1=0x7fffd94cdd08)
at /build/buildd/glib2.0-2.32.3/./glib/gmessages.c:661
#1 0x00007fffeea941b2 in g_log (log_domain=<optimized out>,
log_level=<optimized out>, format=<optimized out>)
at /build/buildd/glib2.0-2.32.3/./glib/gmessages.c:792
#2 0x00007fffec5e7fcf in gst_task_func (task=0x5264b0) at gsttask.c:309
#3 0x00007fffeeaaf248 in g_thread_pool_thread_proxy (data=<optimized out>)
at /build/buildd/glib2.0-2.32.3/./glib/gthreadpool.c:309
#4 0x00007fffeeaae9e5 in g_thread_proxy (data=0x5390a0)
at /build/buildd/glib2.0-2.32.3/./glib/gthread.c:801
#5 0x00007fffef9b2e9a in start_thread (arg=0x7fffd94ce700)
at pthread_create.c:308
#6 0x00007ffff5deccbd in clone ()
at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7 0x0000000000000000 in ?? ()
This happens *almost* every time, so I there's some sort of race condition
going on.
I created an example that sets up a basic playbin2 pipeline, then switches
tracks every couple seconds, and performs a seek to the current position, and
it worked fine, even if I did the track switching and seeking in a different
thread. Since WebKit is gigantic, and I don't really understand a lot of what's
going on, I haven't been able to narrow down what exactly makes WebKit's
pipeline different than my basic version.
Is there any information that would narrow this down a bit?
--
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