From c7329e5118d4e26d02f74fed66747392916ceae7 Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 12 Aug 2015 10:46:29 +0200 Subject: vo: fix video EOF with display-sync We must not use the frame PTS in any case. In this case, it fails because nothing sets it up to wake up. This typically caused the player to apparently "pause", until something else waked it up, like moving the mouse and other events. --- video/out/vo.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/video/out/vo.c b/video/out/vo.c index de79fb018e..880a2e56a4 100644 --- a/video/out/vo.c +++ b/video/out/vo.c @@ -930,8 +930,8 @@ bool vo_still_displaying(struct vo *vo) int64_t frame_end = 0; if (in->current_frame) { frame_end = in->current_frame->pts + MPMAX(in->current_frame->duration, 0); - if (in->current_frame->num_vsyncs > 0) - frame_end = INT64_MAX; + if (in->current_frame->display_synced) + frame_end = in->current_frame->num_vsyncs > 0 ? INT64_MAX : 0; } bool working = now < frame_end || in->rendering || in->frame_queued; pthread_mutex_unlock(&vo->in->lock); -- cgit v1.2.3