appsrc: Correctly check if this is the first buffer that was queued
authorSebastian Dröge <sebastian@centricular.com>
Tue, 8 Jun 2021 10:05:46 +0000 (13:05 +0300)
committerSebastian Dröge <sebastian@centricular.com>
Tue, 8 Jun 2021 10:05:46 +0000 (13:05 +0300)
By checking the queue length this would also count events and caps. We
already keep track of the number of buffers separately so just use that.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1197>

gst-libs/gst/app/gstappsrc.c

index 4207192..c7a0a4d 100644 (file)
@@ -1501,7 +1501,7 @@ gst_app_src_update_queued_push (GstAppSrc * appsrc, GstMiniObject * item)
      * here. This is especially useful if this was the first buffer because
      * otherwise we would have to wait until it is actually unqueued to know
      * the queued duration */
-    if (gst_queue_array_get_length (priv->queue) == 1) {
+    if (priv->queued_buffers == 1) {
       if (priv->last_segment.stop != -1
           && start_buffer_ts > priv->last_segment.stop)
         start_buffer_ts = priv->last_segment.stop;