summaryrefslogtreecommitdiffstats
path: root/gst/rtpmanager/gstrtpssrcdemux.c
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@gmail.com>2007-09-12 21:23:47 +0000
committerWim Taymans <wim.taymans@gmail.com>2007-09-12 21:23:47 +0000
commitf6b7f47cf430393041bd4262ddac2bb51a3a8a1d (patch)
tree7da918d6c0e1fcc1b1ec181d6a53855d36f9e12f /gst/rtpmanager/gstrtpssrcdemux.c
parent79800df8b6335e435e7e98c92784cdfe5f10d3c5 (diff)
downloadgst-plugins-bad-f6b7f47cf430393041bd4262ddac2bb51a3a8a1d.tar.gz
gst-plugins-bad-f6b7f47cf430393041bd4262ddac2bb51a3a8a1d.tar.bz2
gst-plugins-bad-f6b7f47cf430393041bd4262ddac2bb51a3a8a1d.zip
gst/rtpmanager/: Various leak fixes.
Original commit message from CVS: * gst/rtpmanager/gstrtpbin.c: (create_session), (free_session), (get_client), (free_client), (gst_rtp_bin_associate), (free_stream), (gst_rtp_bin_class_init), (gst_rtp_bin_dispose), (gst_rtp_bin_finalize): * gst/rtpmanager/gstrtpjitterbuffer.c: (gst_rtp_jitter_buffer_class_init), (gst_rtp_jitter_buffer_finalize): * gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_release): * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_finalize), (gst_rtp_session_set_property), (gst_rtp_session_chain_recv_rtp), (gst_rtp_session_chain_send_rtp): * gst/rtpmanager/gstrtpssrcdemux.c: (gst_rtp_ssrc_demux_class_init), (gst_rtp_ssrc_demux_dispose): * gst/rtpmanager/rtpsession.c: (rtp_session_finalize): * gst/rtpmanager/rtpsession.h: Various leak fixes.
Diffstat (limited to 'gst/rtpmanager/gstrtpssrcdemux.c')
-rw-r--r--gst/rtpmanager/gstrtpssrcdemux.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/gst/rtpmanager/gstrtpssrcdemux.c b/gst/rtpmanager/gstrtpssrcdemux.c
index c728a6d5..2f1e9e67 100644
--- a/gst/rtpmanager/gstrtpssrcdemux.c
+++ b/gst/rtpmanager/gstrtpssrcdemux.c
@@ -108,6 +108,7 @@ GST_BOILERPLATE (GstRtpSsrcDemux, gst_rtp_ssrc_demux, GstElement,
/* GObject vmethods */
+static void gst_rtp_ssrc_demux_dispose (GObject * object);
static void gst_rtp_ssrc_demux_finalize (GObject * object);
/* GstElement vmethods */
@@ -257,6 +258,7 @@ gst_rtp_ssrc_demux_class_init (GstRtpSsrcDemuxClass * klass)
gobject_klass = (GObjectClass *) klass;
gstelement_klass = (GstElementClass *) klass;
+ gobject_klass->dispose = GST_DEBUG_FUNCPTR (gst_rtp_ssrc_demux_dispose);
gobject_klass->finalize = GST_DEBUG_FUNCPTR (gst_rtp_ssrc_demux_finalize);
/**
@@ -306,6 +308,20 @@ gst_rtp_ssrc_demux_init (GstRtpSsrcDemux * demux,
}
static void
+gst_rtp_ssrc_demux_dispose (GObject * object)
+{
+ GstRtpSsrcDemux *demux;
+
+ demux = GST_RTP_SSRC_DEMUX (object);
+
+ g_slist_foreach (demux->srcpads, (GFunc) g_free, NULL);
+ g_slist_free (demux->srcpads);
+ demux->srcpads = NULL;
+
+ G_OBJECT_CLASS (parent_class)->dispose (object);
+}
+
+static void
gst_rtp_ssrc_demux_finalize (GObject * object)
{
GstRtpSsrcDemux *demux;