rtspsrc: fix some more pad leaks

Fix some pad leaks.
See #577318.
This commit is contained in:
Patrick Radizi 2009-04-22 15:24:55 +02:00 committed by Wim Taymans
parent 00842b8e49
commit 5b86c66e8a

View file

@ -2048,6 +2048,7 @@ gst_rtspsrc_stream_configure_tcp (GstRTSPSrc * src, GstRTSPStream * stream,
/* allocate pads for sending the channel data into the manager */ /* allocate pads for sending the channel data into the manager */
pad0 = gst_pad_new_from_template (template, "internalsrc0"); pad0 = gst_pad_new_from_template (template, "internalsrc0");
gst_pad_link (pad0, stream->channelpad[0]); gst_pad_link (pad0, stream->channelpad[0]);
gst_object_unref (stream->channelpad[0]);
stream->channelpad[0] = pad0; stream->channelpad[0] = pad0;
gst_pad_set_query_function (pad0, gst_rtspsrc_handle_internal_src_query); gst_pad_set_query_function (pad0, gst_rtspsrc_handle_internal_src_query);
gst_pad_set_element_private (pad0, src); gst_pad_set_element_private (pad0, src);
@ -2058,6 +2059,7 @@ gst_rtspsrc_stream_configure_tcp (GstRTSPSrc * src, GstRTSPStream * stream,
* manager. */ * manager. */
pad1 = gst_pad_new_from_template (template, "internalsrc1"); pad1 = gst_pad_new_from_template (template, "internalsrc1");
gst_pad_link (pad1, stream->channelpad[1]); gst_pad_link (pad1, stream->channelpad[1]);
gst_object_unref (stream->channelpad[1]);
stream->channelpad[1] = pad1; stream->channelpad[1] = pad1;
gst_pad_set_active (pad1, TRUE); gst_pad_set_active (pad1, TRUE);
} }
@ -2080,8 +2082,10 @@ gst_rtspsrc_stream_configure_tcp (GstRTSPSrc * src, GstRTSPStream * stream,
g_free (name); g_free (name);
/* and link */ /* and link */
if (pad) if (pad) {
gst_pad_link (pad, stream->rtcppad); gst_pad_link (pad, stream->rtcppad);
gst_object_unref (pad);
}
gst_object_unref (template); gst_object_unref (template);
} }
@ -2328,8 +2332,10 @@ gst_rtspsrc_stream_configure_udp_sinks (GstRTSPSrc * src,
g_free (name); g_free (name);
/* and link */ /* and link */
if (pad) if (pad) {
gst_pad_link (pad, stream->rtcppad); gst_pad_link (pad, stream->rtcppad);
gst_object_unref (pad);
}
} }
return TRUE; return TRUE;