From 0200175d977ec2710109b755eb3313cf278fe73c Mon Sep 17 00:00:00 2001 From: Edward Hervey Date: Thu, 28 Nov 2019 17:31:57 +0100 Subject: [PATCH] gloverlay: Fix various issues in allocation handling * A copy-paste error was getting the information from the wrong query * The 'allocation_meta' GstStructure was being leaked * No check was done on whether the query existed (to try to set the resulting allocation meta on) CID: 1439872 CID: 1439873 CID: 1439874 CID: 1439875 CID: 1439876 CID: 1439877 --- ext/gl/gstgloverlaycompositorelement.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/ext/gl/gstgloverlaycompositorelement.c b/ext/gl/gstgloverlaycompositorelement.c index 1380d89..944ed6a 100644 --- a/ext/gl/gstgloverlaycompositorelement.c +++ b/ext/gl/gstgloverlaycompositorelement.c @@ -188,7 +188,7 @@ gst_gl_overlay_compositor_element_propose_allocation (GstBaseTransform * trans, decide_query, query)) return FALSE; - if ((width == 0 || height == 0) && decide_query) { + if (decide_query) { GstCaps *decide_caps; gst_query_parse_allocation (decide_query, &decide_caps, NULL); @@ -204,7 +204,7 @@ gst_gl_overlay_compositor_element_propose_allocation (GstBaseTransform * trans, if ((width == 0 || height == 0) && query) { GstCaps *caps; - gst_query_parse_allocation (decide_query, &caps, NULL); + gst_query_parse_allocation (query, &caps, NULL); if (caps) { GstVideoInfo vinfo; @@ -224,9 +224,12 @@ gst_gl_overlay_compositor_element_propose_allocation (GstBaseTransform * trans, GST_DEBUG_OBJECT (trans, "Adding overlay composition meta with size %ux%u", width, height); - gst_query_add_allocation_meta (query, - GST_VIDEO_OVERLAY_COMPOSITION_META_API_TYPE, allocation_meta); - + if (allocation_meta) { + if (query) + gst_query_add_allocation_meta (query, + GST_VIDEO_OVERLAY_COMPOSITION_META_API_TYPE, allocation_meta); + gst_structure_free (allocation_meta); + } return TRUE; } -- 2.7.4