summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Radizi <patrick.radizi at axis.com>2009-04-22 15:24:55 +0200
committerWim Taymans <wim@metal.(none)>2009-04-22 15:27:24 +0200
commit5b86c66e8a1b9b62e0f6be2d97b3984bdc8ec48e (patch)
tree115497b60fc6ed3bb7805a79a979156e8fe7ddec
parent00842b8e49550ba62797892ba99cc6f12b502536 (diff)
rtspsrc: fix some more pad leaks
Fix some pad leaks. See #577318.
-rw-r--r--gst/rtsp/gstrtspsrc.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/gst/rtsp/gstrtspsrc.c b/gst/rtsp/gstrtspsrc.c
index b515417d3..f575c65b6 100644
--- a/gst/rtsp/gstrtspsrc.c
+++ b/gst/rtsp/gstrtspsrc.c
@@ -2048,6 +2048,7 @@ gst_rtspsrc_stream_configure_tcp (GstRTSPSrc * src, GstRTSPStream * stream,
/* allocate pads for sending the channel data into the manager */
pad0 = gst_pad_new_from_template (template, "internalsrc0");
gst_pad_link (pad0, stream->channelpad[0]);
+ gst_object_unref (stream->channelpad[0]);
stream->channelpad[0] = pad0;
gst_pad_set_query_function (pad0, gst_rtspsrc_handle_internal_src_query);
gst_pad_set_element_private (pad0, src);
@@ -2058,6 +2059,7 @@ gst_rtspsrc_stream_configure_tcp (GstRTSPSrc * src, GstRTSPStream * stream,
* manager. */
pad1 = gst_pad_new_from_template (template, "internalsrc1");
gst_pad_link (pad1, stream->channelpad[1]);
+ gst_object_unref (stream->channelpad[1]);
stream->channelpad[1] = pad1;
gst_pad_set_active (pad1, TRUE);
}
@@ -2080,8 +2082,10 @@ gst_rtspsrc_stream_configure_tcp (GstRTSPSrc * src, GstRTSPStream * stream,
g_free (name);
/* and link */
- if (pad)
+ if (pad) {
gst_pad_link (pad, stream->rtcppad);
+ gst_object_unref (pad);
+ }
gst_object_unref (template);
}
@@ -2328,8 +2332,10 @@ gst_rtspsrc_stream_configure_udp_sinks (GstRTSPSrc * src,
g_free (name);
/* and link */
- if (pad)
+ if (pad) {
gst_pad_link (pad, stream->rtcppad);
+ gst_object_unref (pad);
+ }
}
return TRUE;