From 027a62a9d178cc2233b6c7ca9723f5c9daa38f7a Mon Sep 17 00:00:00 2001 From: Mathieu Duponchelle Date: Tue, 11 Apr 2017 01:18:51 +0200 Subject: [PATCH] videoaggregator: fix gaps at end of streams. When the pad has received EOS, its buffer may still be mixed any number of times, when the pad's framerate is inferior to the output framerate. This was introduced by my patch in https://bugzilla.gnome.org/show_bug.cgi?id=782962, this patch also correctly addresses the initial issue. --- gst-libs/gst/video/gstvideoaggregator.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gst-libs/gst/video/gstvideoaggregator.c b/gst-libs/gst/video/gstvideoaggregator.c index 11a3ef40c4..0de0bc6c45 100644 --- a/gst-libs/gst/video/gstvideoaggregator.c +++ b/gst-libs/gst/video/gstvideoaggregator.c @@ -1219,16 +1219,16 @@ gst_video_aggregator_fill_queues (GstVideoAggregator * vagg, if (pad->priv->end_time != -1) { if (pad->priv->end_time <= output_start_running_time) { pad->priv->start_time = pad->priv->end_time = -1; - if (is_eos) { + if (!is_eos) { GST_DEBUG ("I just need more data"); need_more_data = TRUE; + } else { + gst_buffer_replace (&pad->buffer, NULL); } } else if (is_eos) { eos = FALSE; } - } - - if (is_eos) { + } else if (is_eos) { gst_buffer_replace (&pad->buffer, NULL); } }