[Bug 729099] New: rtmpsrc: Crash due to unsafe thread handling in librtmp when setting state from PLAYING->PAUSED
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Mon Apr 28 04:16:49 PDT 2014
https://bugzilla.gnome.org/show_bug.cgi?id=729099
GStreamer | gst-plugins-bad | 1.2.4
Summary: rtmpsrc: Crash due to unsafe thread handling in
librtmp when setting state from PLAYING->PAUSED
Classification: Platform
Product: GStreamer
Version: 1.2.4
OS/Version: Linux
Status: UNCONFIRMED
Severity: normal
Priority: Normal
Component: gst-plugins-bad
AssignedTo: gstreamer-bugs at lists.freedesktop.org
ReportedBy: cmaiku at gmail.com
QAContact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
Created an attachment (id=275318)
--> (https://bugzilla.gnome.org/attachment.cgi?id=275318)
Log including relevant GST_DEBUG output and the backtrace
I've stumbled across a crash in rtmpsrc which happens due to RTMP_Close() being
called in gst_rtmp_src_unlock() while RTMP_Read() is being run in
gst_rtmp_src_create() in another thread. librtmp isn't thread safe so this case
is bad.
The only solution I've managed to come up with is to call RTMPSockBuf_Close()
in gst_rtmp_src_unlock() to close the socket and block until RTMP_Read()
returns in error. This is not ideal as RTMP_Close() sends some packets out
before closing the socket, which would be missed with the above solution.
Hopefully there's a better solution I'm not aware of.
--
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