jack: don't leak caps
authorStefan Kost <ensonic@users.sf.net>
Tue, 27 Apr 2010 07:59:00 +0000 (10:59 +0300)
committerTim-Philipp Müller <tim.muller@collabora.co.uk>
Sun, 2 Jan 2011 14:30:08 +0000 (14:30 +0000)
Add dispose methods to clear caps.

ext/jack/gstjackaudiosink.c
ext/jack/gstjackaudiosrc.c

index 04c9d06..3b9df01 100644 (file)
@@ -655,6 +655,7 @@ enum
 GST_BOILERPLATE_FULL (GstJackAudioSink, gst_jack_audio_sink, GstBaseAudioSink,
     GST_TYPE_BASE_AUDIO_SINK, _do_init);
 
+static void gst_jack_audio_sink_dispose (GObject * object);
 static void gst_jack_audio_sink_set_property (GObject * object, guint prop_id,
     const GValue * value, GParamSpec * pspec);
 static void gst_jack_audio_sink_get_property (GObject * object, guint prop_id,
@@ -689,6 +690,7 @@ gst_jack_audio_sink_class_init (GstJackAudioSinkClass * klass)
   gstbasesink_class = (GstBaseSinkClass *) klass;
   gstbaseaudiosink_class = (GstBaseAudioSinkClass *) klass;
 
+  gobject_class->dispose = gst_jack_audio_sink_dispose;
   gobject_class->get_property = gst_jack_audio_sink_get_property;
   gobject_class->set_property = gst_jack_audio_sink_set_property;
 
@@ -725,6 +727,15 @@ gst_jack_audio_sink_init (GstJackAudioSink * sink,
 }
 
 static void
+gst_jack_audio_sink_dispose (GObject * object)
+{
+  GstJackAudioSink *sink = GST_JACK_AUDIO_SINK (object);
+
+  gst_caps_replace (&sink->caps, NULL);
+  G_OBJECT_CLASS (parent_class)->dispose (object);
+}
+
+static void
 gst_jack_audio_sink_set_property (GObject * object, guint prop_id,
     const GValue * value, GParamSpec * pspec)
 {
index 7520447..ee4ae8d 100644 (file)
@@ -664,6 +664,7 @@ static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src",
 GST_BOILERPLATE_FULL (GstJackAudioSrc, gst_jack_audio_src, GstBaseAudioSrc,
     GST_TYPE_BASE_AUDIO_SRC, _do_init);
 
+static void gst_jack_audio_src_dispose (GObject * object);
 static void gst_jack_audio_src_set_property (GObject * object, guint prop_id,
     const GValue * value, GParamSpec * pspec);
 static void gst_jack_audio_src_get_property (GObject * object, guint prop_id,
@@ -703,6 +704,7 @@ gst_jack_audio_src_class_init (GstJackAudioSrcClass * klass)
   gstbasesrc_class = (GstBaseSrcClass *) klass;
   gstbaseaudiosrc_class = (GstBaseAudioSrcClass *) klass;
 
+  gobject_class->dispose = gst_jack_audio_src_dispose;
   gobject_class->set_property = gst_jack_audio_src_set_property;
   gobject_class->get_property = gst_jack_audio_src_get_property;
 
@@ -743,6 +745,15 @@ gst_jack_audio_src_init (GstJackAudioSrc * src, GstJackAudioSrcClass * gclass)
 }
 
 static void
+gst_jack_audio_src_dispose (GObject * object)
+{
+  GstJackAudioSrc *src = GST_JACK_AUDIO_SRC (object);
+
+  gst_caps_replace (&src->caps, NULL);
+  G_OBJECT_CLASS (parent_class)->dispose (object);
+}
+
+static void
 gst_jack_audio_src_set_property (GObject * object, guint prop_id,
     const GValue * value, GParamSpec * pspec)
 {