GNOME Bugzilla – Bug 705760
rtspsrc produces GLib error
Last modified: 2013-08-13 13:00:14 UTC
Hi. I've stumbled upon a bug introduced between GStreamer 1.1.2 and 1.1.3. Symptom is rtspsrc element isn't working, aborting any application with message GLib:ERROR:/tmp/buildd/glib2.0-2.33.12+really2.32.4/./glib/gchecksum.c:1321:g_checksum_get_string:code should not be reached and backtrace looking like
+ Trace 232372
I've digged in sources of gst_rtspsrc_handle_data() and found the bug: prior 1.1.2, there were some manipulations with GChecksum: http://cgit.freedesktop.org/gstreamer/gst-plugins-good/tree/gst/rtsp/gstrtspsrc.c?id=1.1.2#n3898 with the following call of g_checksum_free(), in 1.1.3 this manipulations were put in for loop (line 3904) for all streams: http://cgit.freedesktop.org/gstreamer/gst-plugins-good/tree/gst/rtsp/gstrtspsrc.c?id=1.1.3#n3900 , but the call of g_checksum_free() got into the loop body, so checksum gets invalid after first loop iteration. The fix would be simple - just move g_checksum_free() out of streams loop body.
commit 282afae2447aa750565b44ee4741acb0993ae32b Author: Sebastian Dröge <slomo@circular-chaos.org> Date: Tue Aug 13 12:44:11 2013 +0200 rtspsrc: Only free GCheckSum after its last usage https://bugzilla.gnome.org/show_bug.cgi?id=705760
Thanks, Sebastian!