v4l2videodec: Correctly free caps to avoid memory leak
authorHou Qi <qi.hou@nxp.com>
Fri, 22 Sep 2023 07:57:28 +0000 (16:57 +0900)
committerTim-Philipp Müller <tim@centricular.com>
Mon, 25 Sep 2023 12:57:09 +0000 (14:57 +0200)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5388>

subprojects/gst-plugins-good/sys/v4l2/gstv4l2videodec.c

index 3019a09a13bfe8b1ac890d37cc1f0cc3e2b052c3..c7f39ddee20f58eb04ca0796d70155a4a28b2b19 100644 (file)
@@ -465,10 +465,8 @@ gst_v4l2_video_dec_negotiate (GstVideoDecoder * decoder)
   /* Prefer the acquired caps over anything suggested downstream, this ensure
    * that we preserves the bit depth, as we don't have any fancy fixation
    * process */
-  if (gst_caps_is_subset (acquired_caps, caps)) {
-    gst_caps_unref (acquired_caps);
+  if (gst_caps_is_subset (acquired_caps, caps))
     goto use_acquired_caps;
-  }
 
   /* Fixate pixel format */
   caps = gst_caps_fixate (caps);
@@ -482,6 +480,7 @@ gst_v4l2_video_dec_negotiate (GstVideoDecoder * decoder)
     gst_v4l2_clear_error (&error);
 
 use_acquired_caps:
+  gst_caps_unref (acquired_caps);
   gst_caps_unref (caps);
 
   /* catch possible bogus driver that don't enumerate the format it actually