If playback is not active and it's streaming mode set latency to 0 so frames will not be synchronized with mm time. Signed-off-by: Snir Sheriber <ssheribe@xxxxxxxxxx> --- This patch is a suggestion to improve current state. Latency in display channel is the difference between multimedia time (mm) at frame's arrival time and its timestamp, this latency is added to current gstreamer's clock and attached to a gst buffer that is pushed into gstreamer's so it will be played in sync at the right time. Currently the mm time is being set when session begins, by the server with 400ms delay for buffering so as a result in streaming mode you feel at least 400ms latency. But when playback starts mm time is set according to playback's timestamp at its arrival time (so no 400ms delay anymore (a bug? maybe), there is another delay which is usually smaller) With this patch, when there is no playback, latency is 0 so buffer's timestamp is set to only gst clock, means, it won't be synced. Theoretically it should be safer to set buffer's timestamp to GST_CLOCK_TIME_NONE if there is no playback but i tried it and it feels faster and simpler this way and there were no issues by now. --- src/channel-display.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/channel-display.c b/src/channel-display.c index 7c663cb..e31a19c 100644 --- a/src/channel-display.c +++ b/src/channel-display.c @@ -1561,7 +1561,15 @@ static void display_handle_stream_data(SpiceChannel *channel, SpiceMsgIn *in) st->cur_drops_seq_stats.len++; st->playback_sync_drops_seq_len++; } else { - CHANNEL_DEBUG(channel, "video latency: %d", latency); + SpiceSession *s = spice_channel_get_session(channel); + + if (st->surface->streaming_mode && !spice_session_is_playback_active(s)) { + CHANNEL_DEBUG(channel, "video latency: %d, set to 0 since there is no playback", latency); + latency = 0; + } else { + CHANNEL_DEBUG(channel, "video latency: %d", latency); + } + if (st->cur_drops_seq_stats.len) { st->cur_drops_seq_stats.duration = op->multi_media_time - st->cur_drops_seq_stats.start_mm_time; -- 2.19.1 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel