diff --git a/ext/gl/gstgloverlaycompositorelement.c b/ext/gl/gstgloverlaycompositorelement.c index 1380d891d2..944ed6a1cf 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; }