[gstreamer-bugs] [Bug 166142] New: [PATCH] [xvimagesink] not threadsafe
bugzilla-daemon at bugzilla.gnome.org
bugzilla-daemon at bugzilla.gnome.org
Thu Feb 3 01:59:47 PST 2005
Please DO NOT reply to this by email. All additional comments should be made in
the comments box of this bug report.
http://bugzilla.gnome.org/show_bug.cgi?id=166142
GStreamer | gst-plugins | Ver: HEAD CVS
Summary: [PATCH] [xvimagesink] not threadsafe
Product: GStreamer
Version: HEAD CVS
Platform: Other
OS/Version: Linux
Status: UNCONFIRMED
Severity: critical
Priority: Normal
Component: gst-plugins
AssignedTo: gstreamer-bugs at lists.sourceforge.net
ReportedBy: rbultje at ronald.bitfreak.net
QAContact: gstreamer-bugs at lists.sourceforge.net
CC: all-bugs at bugzilla.gnome.org
xvimagesink (and probably ximagesink, too) are not interface-threadsafe. This
indicates that by using public interfaces, it is easily possible to crash it,
e.g. by setting the xwindow-ID (XOverlay interface) in the PLAYING state while
iterating in another thread. If it doesn´t crash, it will still regularly give X
window errors, not so much because we intermingle X calls, but because we simply
propose arguments that don´t exist. Examples include the xvimage created in the
_chain() function, which can be free´ed in the xoverlay_set_xwindow_id()
function right after, before it´s sent to X using XvPutImage().
Attached patch fixes it by changing from an internal locking scheme to a caller
locking scheme (which is how locking is supposed to be done anyway). ximagesink
probably requires a similar patch. Sdlvideosink is fine (or so my tests indicate).
------- You are receiving this mail because: -------
You are the assignee for the bug.
You are the QA contact for the bug.
More information about the Gstreamer-bugs
mailing list