summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorHe Junyan <junyan.he@intel.com>2021-03-02 13:07:04 +0800
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>2021-03-03 02:43:01 +0000
commitf506a3e0ff1ef7d07d854325b7b33005ccf16299 (patch)
tree4f7c099ab1f8d0d6543443c8ec342029122e428e /ext
parent2f3033cebe3c76042beb6139577de3be43d726d5 (diff)
downloadgstreamer-plugins-base-f506a3e0ff1ef7d07d854325b7b33005ccf16299.tar.gz
gl: download: Fix a caps memory leak in prepare_output_buffer().
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1058>
Diffstat (limited to 'ext')
-rw-r--r--ext/gl/gstgldownloadelement.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/ext/gl/gstgldownloadelement.c b/ext/gl/gstgldownloadelement.c
index f1f0f6c44..87c0600e4 100644
--- a/ext/gl/gstgldownloadelement.c
+++ b/ext/gl/gstgldownloadelement.c
@@ -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;