From 0053ad08471e14bed592fe125f1b2999d23c00cd Mon Sep 17 00:00:00 2001 From: Matthew Waters Date: Mon, 17 Nov 2014 23:16:03 +1100 Subject: [PATCH] videomixer: 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/videomixer/videomixer2.c | 4 +++- gst/videomixer/videomixer2.h | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/gst/videomixer/videomixer2.c b/gst/videomixer/videomixer2.c index ec6e2a8..abb18f8 100644 --- a/gst/videomixer/videomixer2.c +++ b/gst/videomixer/videomixer2.c @@ -808,7 +808,7 @@ gst_videomixer2_update_qos (GstVideoMixer2 * mix, gdouble proportion, GST_OBJECT_LOCK (mix); mix->proportion = proportion; if (G_LIKELY (timestamp != GST_CLOCK_TIME_NONE)) { - if (G_UNLIKELY (diff > 0)) + if (!mix->live && G_UNLIKELY (diff > 0)) mix->earliest_time = timestamp + 2 * diff + gst_util_uint64_scale_int_round (GST_SECOND, GST_VIDEO_INFO_FPS_D (&mix->info), GST_VIDEO_INFO_FPS_N (&mix->info)); @@ -1503,6 +1503,8 @@ gst_videomixer2_query_latency (GstVideoMixer2 * mix, GstQuery * query) g_value_unset (&item); gst_iterator_free (it); + mix->live = live; + if (res) { /* store the results */ GST_DEBUG_OBJECT (mix, "Calculated total latency: live %s, min %" diff --git a/gst/videomixer/videomixer2.h b/gst/videomixer/videomixer2.h index 5097d1d..8c6a65f 100644 --- a/gst/videomixer/videomixer2.h +++ b/gst/videomixer/videomixer2.h @@ -116,6 +116,9 @@ struct _GstVideoMixer2 gboolean send_stream_start; + /* latency */ + gboolean live; + GstTagList *pending_tags; }; -- 2.7.4