videoaggregator: Don't pass GAP buffer to prepare_frame_start()
authorSeungha Yang <seungha@centricular.com>
Thu, 6 Jan 2022 13:10:18 +0000 (22:10 +0900)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Thu, 13 Jan 2022 21:29:15 +0000 (21:29 +0000)
Likewise we do check the same condition in prepare_frames_finish(),
ignore GAP buffer (zero size with GST_BUFFER_FLAG_GAP flag) without
any further processing.

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

subprojects/gst-plugins-base/gst-libs/gst/video/gstvideoaggregator.c

index cbad92d..a8e100a 100644 (file)
@@ -2009,6 +2009,13 @@ prepare_frames_start (GstElement * agg, GstPad * pad, gpointer user_data)
   if (vpad->priv->buffer == NULL || !vaggpad_class->prepare_frame_start)
     return TRUE;
 
+  /* GAP event, nothing to do */
+  if (vpad->priv->buffer &&
+      gst_buffer_get_size (vpad->priv->buffer) == 0 &&
+      GST_BUFFER_FLAG_IS_SET (vpad->priv->buffer, GST_BUFFER_FLAG_GAP)) {
+    return TRUE;
+  }
+
   g_return_val_if_fail (vaggpad_class->prepare_frame_start
       && vaggpad_class->prepare_frame_finish, TRUE);