amcvideoenc: Avoid leaking copy of caps object
authorSebastian Rasmussen <sebras@hotmail.com>
Sat, 9 Aug 2014 11:17:17 +0000 (13:17 +0200)
committerSebastian Dröge <sebastian@centricular.com>
Mon, 11 Aug 2014 06:49:42 +0000 (08:49 +0200)
gst_pad_get_pad_template_caps() returns a reference which is unreferenced,
so creating a copy using gst_caps_copy() results in a reference leak.
Also remove the incorrect comment to avoid confusion in the future.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=734533

sys/androidmedia/gstamcvideoenc.c

index b85a4e2..3a0a7a1 100644 (file)
@@ -1288,11 +1288,8 @@ gst_amc_video_enc_set_format (GstVideoEncoder * encoder,
   allowed_caps = gst_pad_get_allowed_caps (GST_VIDEO_ENCODER_SRC_PAD (encoder));
   if (!allowed_caps) {
     GST_DEBUG_OBJECT (self, "... but no peer, using template caps");
-    /* we need to copy because get_allowed_caps returns a ref, and
-     * get_pad_template_caps doesn't */
     allowed_caps =
-        gst_caps_copy (gst_pad_get_pad_template_caps (GST_VIDEO_ENCODER_SRC_PAD
-            (encoder)));
+        gst_pad_get_pad_template_caps (GST_VIDEO_ENCODER_SRC_PAD (encoder));
   }
   GST_DEBUG_OBJECT (self, "chose caps %" GST_PTR_FORMAT, allowed_caps);
   allowed_caps = gst_caps_truncate (allowed_caps);