From c7d82dd25c4a059386de562bc26e58bffd71b3fd Mon Sep 17 00:00:00 2001 From: wm4 Date: Sun, 15 Nov 2015 13:17:54 +0100 Subject: vo: fix unpausing with display-sync Currently, vo.c will always continue to render the currently queued frame, which sets last_flip, which in turn confuses vo_get_delay(), which in turn will show a bogus A/V desync message on unpause. So just reset it again on unpause. --- video/out/vo.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/video/out/vo.c b/video/out/vo.c index 9e1d1c3dd2..c260ac7f0f 100644 --- a/video/out/vo.c +++ b/video/out/vo.c @@ -868,11 +868,9 @@ void vo_set_paused(struct vo *vo, bool paused) pthread_mutex_lock(&in->lock); if (in->paused != paused) { in->paused = paused; - if (in->paused) { - if (in->dropped_frame) - in->request_redraw = true; - in->last_flip = 0; - } + if (in->paused && in->dropped_frame) + in->request_redraw = true; + in->last_flip = 0; } pthread_mutex_unlock(&in->lock); vo_control(vo, paused ? VOCTRL_PAUSE : VOCTRL_RESUME, NULL); -- cgit v1.2.3