From: Sebastian Pölsterl Date: Fri, 9 Oct 2009 21:08:18 +0000 (+0200) Subject: media: Fixed crasher where caps got unref'ed too often X-Git-Tag: 1.19.3~495^2~1505 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f8630c6c816007de43c6c0d701aabbb657c76877;p=platform%2Fupstream%2Fgstreamer.git media: Fixed crasher where caps got unref'ed too often --- diff --git a/gst/rtsp-server/rtsp-media.c b/gst/rtsp-server/rtsp-media.c index 046e3d5..fe79296 100644 --- a/gst/rtsp-server/rtsp-media.c +++ b/gst/rtsp-server/rtsp-media.c @@ -1569,6 +1569,8 @@ gst_rtsp_media_remove_elements (GstRTSPMedia *media) gst_pad_unlink (stream->srcpad, stream->send_rtp_sink); + g_signal_handler_disconnect (stream->send_rtp_sink, stream->caps_sig); + for (j = 0; j < 2; j++) { gst_element_set_state (stream->udpsrc[j], GST_STATE_NULL); gst_element_set_state (stream->udpsink[j], GST_STATE_NULL); @@ -1584,11 +1586,13 @@ gst_rtsp_media_remove_elements (GstRTSPMedia *media) gst_bin_remove (GST_BIN (media->pipeline), stream->tee[j]); gst_bin_remove (GST_BIN (media->pipeline), stream->selector[j]); } + if (stream->caps) + gst_caps_unref (stream->caps); stream->caps = NULL; gst_rtsp_media_stream_free (stream); } g_array_remove_range (media->streams, 0, media->streams->len); - + gst_element_set_state (media->rtpbin, GST_STATE_NULL); gst_bin_remove (GST_BIN (media->pipeline), media->rtpbin);