From d77186df756c2cd7089f1b95c22bbf005ffc18e1 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Mon, 4 Jan 2016 21:52:09 +0100 Subject: [PATCH] timeshift: fix the time offset when speed changes --- src/timeshift/timeshift_reader.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/timeshift/timeshift_reader.c b/src/timeshift/timeshift_reader.c index 940095133..d1dd800fd 100644 --- a/src/timeshift/timeshift_reader.c +++ b/src/timeshift/timeshift_reader.c @@ -634,18 +634,20 @@ void *timeshift_reader ( void *p ) } /* Update */ - cur_speed = speed; if (speed != 100 || state != TS_LIVE) { ts->state = speed == 0 ? TS_PAUSE : TS_PLAY; tvhtrace("timeshift", "reader - set %s", speed == 0 ? "TS_PAUSE" : "TS_PLAY"); } - if (ts->state == TS_PLAY && state != TS_PLAY) { + if ((ts->state == TS_PLAY && state != TS_PLAY) || (speed != cur_speed)) { mono_play_time = mono_now; tvhtrace("timeshift", "update play time TS_LIVE - %"PRId64" play buffer from %"PRId64, mono_now, pause_time); + if (speed != cur_speed) + pause_time = last_time; } else if (ts->state == TS_PAUSE && state != TS_PAUSE) { pause_time = last_time; } + cur_speed = speed; tvhlog(LOG_DEBUG, "timeshift", "ts %d change speed %d", ts->id, speed); } -- 2.47.3