compositor: Always draw if all input buffers are GAP
authorSeungha Yang <seungha@centricular.com>
Fri, 7 Jan 2022 09:25:00 +0000 (18:25 +0900)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Thu, 13 Jan 2022 21:29:15 +0000 (21:29 +0000)
Otherwise output buffers will contain random scene
(previously rendered or arbitrary initial values) since we don't
draw onto output buffer at all.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1498>

subprojects/gst-plugins-base/gst/compositor/compositor.c

index 9938154..dc5d15f 100644 (file)
@@ -1383,6 +1383,11 @@ gst_compositor_aggregate_frames (GstVideoAggregator * vagg, GstBuffer * outbuf)
       n_pads++;
   }
 
+  /* If no prepared frame, we should draw background unconditionally in order
+   * to clear output buffer */
+  if (n_pads == 0)
+    draw_background = TRUE;
+
   pads_info = g_newa (struct CompositePadInfo, n_pads);
   n_pads = 0;