From 5c2391a5e0015975c840e1467822f5b535c6f0f6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Olivier=20Cr=C3=AAte?= Date: Thu, 7 Jul 2016 16:13:57 -0400 Subject: [PATCH] aggregator: Make pad eos as soon as all buffers are processed, dont way for events https://bugzilla.gnome.org/show_bug.cgi?id=781673 --- libs/gst/base/gstaggregator.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libs/gst/base/gstaggregator.c b/libs/gst/base/gstaggregator.c index 305c840..d10e6e8 100644 --- a/libs/gst/base/gstaggregator.c +++ b/libs/gst/base/gstaggregator.c @@ -747,7 +747,7 @@ check_events (GstAggregator * self, GstAggregatorPad * pad, gpointer user_data) event = NULL; PAD_LOCK (pad); - if (gst_aggregator_pad_queue_is_empty (pad) && pad->priv->pending_eos) { + if (pad->priv->num_buffers == 0 && pad->priv->pending_eos) { pad->priv->pending_eos = FALSE; pad->priv->eos = TRUE; } @@ -1121,7 +1121,7 @@ gst_aggregator_default_sink_event (GstAggregator * self, */ SRC_LOCK (self); PAD_LOCK (aggpad); - if (gst_aggregator_pad_queue_is_empty (aggpad)) { + if (aggpad->priv->num_buffers == 0) { aggpad->priv->eos = TRUE; } else { aggpad->priv->pending_eos = TRUE; @@ -2498,7 +2498,7 @@ gst_aggregator_pad_steal_buffer (GstAggregatorPad * pad) apply_buffer (pad, buffer, FALSE); pad->priv->num_buffers--; GST_TRACE_OBJECT (pad, "Consuming buffer"); - if (gst_aggregator_pad_queue_is_empty (pad) && pad->priv->pending_eos) { + if (pad->priv->num_buffers == 0 && pad->priv->pending_eos) { pad->priv->pending_eos = FALSE; pad->priv->eos = TRUE; } -- 2.7.4