gl: download: Fix a caps memory leak in prepare_output_buffer().
authorHe Junyan <junyan.he@intel.com>
Tue, 2 Mar 2021 05:07:04 +0000 (13:07 +0800)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Wed, 3 Mar 2021 02:43:01 +0000 (02:43 +0000)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1058>

ext/gl/gstgldownloadelement.c

index f1f0f6c..87c0600 100644 (file)
@@ -484,6 +484,7 @@ gst_gl_download_element_prepare_output_buffer (GstBaseTransform * bt,
     } else {
       GstCaps *src_caps;
       GstCapsFeatures *features;
+      gboolean ret;
 
       src_caps = gst_pad_get_current_caps (bt->srcpad);
       src_caps = gst_caps_make_writable (src_caps);
@@ -492,7 +493,10 @@ gst_gl_download_element_prepare_output_buffer (GstBaseTransform * bt,
       g_atomic_int_set (&dl->try_dmabuf_exports, FALSE);
       dl->mode = GST_GL_DOWNLOAD_MODE_PBO_TRANSFERS;
 
-      if (!gst_base_transform_update_src_caps (bt, src_caps)) {
+      ret = gst_base_transform_update_src_caps (bt, src_caps);
+      gst_caps_unref (src_caps);
+
+      if (!ret) {
         GST_ERROR_OBJECT (bt, "DMABuf exportation didn't work and system "
             "memory is not supported.");
         return GST_FLOW_NOT_NEGOTIATED;