From 0ec9bf6140b917118f7841bf4029b13b37a80561 Mon Sep 17 00:00:00 2001 From: Matthew Waters Date: Mon, 17 Nov 2014 14:05:01 +1100 Subject: [PATCH] videoaggregator: fix up QoS handling for live sources Only attempt adaptive drop when we are not live https://bugzilla.gnome.org/show_bug.cgi?id=739996 --- gst-libs/gst/video/gstvideoaggregator.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gst-libs/gst/video/gstvideoaggregator.c b/gst-libs/gst/video/gstvideoaggregator.c index 115bde2..83ac15b 100644 --- a/gst-libs/gst/video/gstvideoaggregator.c +++ b/gst-libs/gst/video/gstvideoaggregator.c @@ -749,15 +749,19 @@ static void gst_videoaggregator_update_qos (GstVideoAggregator * vagg, gdouble proportion, GstClockTimeDiff diff, GstClockTime timestamp) { + gboolean live; + GST_DEBUG_OBJECT (vagg, "Updating QoS: proportion %lf, diff %s%" GST_TIME_FORMAT ", timestamp %" GST_TIME_FORMAT, proportion, (diff < 0) ? "-" : "", GST_TIME_ARGS (ABS (diff)), GST_TIME_ARGS (timestamp)); GST_OBJECT_LOCK (vagg); + gst_aggregator_get_latency (GST_AGGREGATOR (vagg), &live, NULL, NULL); + vagg->priv->proportion = proportion; if (G_LIKELY (timestamp != GST_CLOCK_TIME_NONE)) { - if (G_UNLIKELY (diff > 0)) + if (!live && G_UNLIKELY (diff > 0)) vagg->priv->earliest_time = timestamp + 2 * diff + gst_util_uint64_scale_int_round (GST_SECOND, GST_VIDEO_INFO_FPS_D (&vagg->info), -- 2.7.4