From 5ee001a5b060fe693e68f1306ba9404ffa57421a Mon Sep 17 00:00:00 2001 From: Francois Gouget Date: Thu, 16 May 2019 01:10:32 +0200 Subject: [PATCH] gstreamer-encoder: Include encoding time in get_min_playback_delay() This way all the minimum delay calculation is in one place and this makes gstreamer's implementation closer to the mjpeg one. Signed-off-by: Francois Gouget Acked-by: Frediano Ziglio --- server/gstreamer-encoder.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/gstreamer-encoder.c b/server/gstreamer-encoder.c index e319eea2..0ff1201a 100644 --- a/server/gstreamer-encoder.c +++ b/server/gstreamer-encoder.c @@ -526,13 +526,13 @@ static uint32_t get_min_playback_delay(SpiceGstEncoder *encoder) /* Also factor in the network latency with a margin for jitter. */ uint32_t net_latency = get_network_latency(encoder) * (1.0 + SPICE_GST_LATENCY_MARGIN); - return send_time + net_latency; + return send_time + net_latency + get_average_encoding_time(encoder) / NSEC_PER_MILLISEC; } static void update_client_playback_delay(SpiceGstEncoder *encoder) { if (encoder->cbs.update_client_playback_delay) { - uint32_t min_delay = get_min_playback_delay(encoder) + get_average_encoding_time(encoder) / NSEC_PER_MILLISEC; + uint32_t min_delay = get_min_playback_delay(encoder); encoder->cbs.update_client_playback_delay(encoder->cbs.opaque, min_delay); } }