From 2df2dfce55b539a3a58eebefaa78ffc3e23333d6 Mon Sep 17 00:00:00 2001 From: Guillaume Desmottes Date: Fri, 7 Oct 2022 14:39:47 +0200 Subject: [PATCH] aggregator: fix input buffering We need to be able to buffer at least the aggregator latency + upstream latency, which is the value used to compute the aggregator deadline. Part-of: --- subprojects/gstreamer/libs/gst/base/gstaggregator.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/subprojects/gstreamer/libs/gst/base/gstaggregator.c b/subprojects/gstreamer/libs/gst/base/gstaggregator.c index 31d5c2d..3e7d12a 100644 --- a/subprojects/gstreamer/libs/gst/base/gstaggregator.c +++ b/subprojects/gstreamer/libs/gst/base/gstaggregator.c @@ -3007,14 +3007,14 @@ gst_aggregator_pad_has_space (GstAggregator * self, GstAggregatorPad * aggpad) if (self->priv->peer_latency_live && aggpad->priv->num_buffers < 2) return TRUE; - /* zero latency, if there is a buffer, it's full */ - if (self->priv->latency == 0) - return FALSE; - /* On top of our latency, we also want to allow buffering up to the * minimum upstream latency to allow queue free sources with lower then * upstream latency. */ - max_time_level = self->priv->latency + self->priv->upstream_latency_min; + max_time_level = self->priv->latency + self->priv->peer_latency_min; + + /* zero latency, if there is a buffer, it's full */ + if (max_time_level == 0) + return FALSE; GST_TRACE_OBJECT (aggpad, "Maximum queue level %" GST_TIME_FORMAT, GST_TIME_ARGS (max_time_level)); -- 2.7.4