audioaggregator: Don't leak pads
authorEdward Hervey <edward@centricular.com>
Wed, 20 Dec 2017 14:02:30 +0000 (15:02 +0100)
committerEdward Hervey <bilboed@bilboed.com>
Wed, 20 Dec 2017 14:03:44 +0000 (15:03 +0100)
all audioaggregator subclasses were leaking the first sink pad :)

gst-libs/gst/audio/gstaudioaggregator.c

index 8772ae8..d749b9b 100644 (file)
@@ -743,7 +743,6 @@ gst_audio_aggregator_sink_setcaps (GstAudioAggregatorPad * aaggpad,
           && info.rate != downstream_rate) || (first_configured_pad
           && info.rate != first_configured_pad->info.rate)) {
     gst_pad_push_event (GST_PAD (aaggpad), gst_event_new_reconfigure ());
-    gst_object_unref (first_configured_pad);
     ret = FALSE;
   } else {
     GST_OBJECT_LOCK (aaggpad);
@@ -755,6 +754,9 @@ gst_audio_aggregator_sink_setcaps (GstAudioAggregatorPad * aaggpad,
   }
 
 done:
+  if (first_configured_pad)
+    gst_object_unref (first_configured_pad);
+
   if (downstream_caps)
     gst_caps_unref (downstream_caps);