From: Mathieu Duponchelle Date: Thu, 26 Nov 2020 17:16:10 +0000 (+0100) Subject: compositor: fix prepare_frame obscuring check X-Git-Tag: 1.22.0~1767 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7988acad3653d8e2dcaef00095426278548ad6ac;p=platform%2Fupstream%2Fgstreamer.git compositor: fix prepare_frame obscuring check A pad without a buffer or with a GAP buffer cannot obscure a pad below it. Ignore those when considering whether a pad should be drawn. Part-of: --- diff --git a/subprojects/gst-plugins-base/gst/compositor/compositor.c b/subprojects/gst-plugins-base/gst/compositor/compositor.c index 1c08715..7dde46b 100644 --- a/subprojects/gst-plugins-base/gst/compositor/compositor.c +++ b/subprojects/gst-plugins-base/gst/compositor/compositor.c @@ -575,6 +575,20 @@ gst_compositor_pad_prepare_frame_start (GstVideoAggregatorPad * pad, if (l) l = l->next; for (; l; l = l->next) { + GstBuffer *pad_buffer; + + pad_buffer = + gst_video_aggregator_pad_get_current_buffer (GST_VIDEO_AGGREGATOR_PAD + (l->data)); + + if (pad_buffer == NULL) + continue; + + if (gst_buffer_get_size (pad_buffer) == 0 && + GST_BUFFER_FLAG_IS_SET (pad_buffer, GST_BUFFER_FLAG_GAP)) { + continue; + } + if (_pad_obscures_rectangle (vagg, l->data, frame_rect)) { frame_obscured = TRUE; break;