[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