summaryrefslogtreecommitdiffstats
path: root/video
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2015-08-12 10:46:29 +0200
committerwm4 <wm4@nowhere>2015-08-12 10:46:29 +0200
commitc7329e5118d4e26d02f74fed66747392916ceae7 (patch)
treeb6b394fe76bb588924649e9f35789fc139f4dfb2 /video
parentb103a8e11335e8381f07959b4a627729cfd08e74 (diff)
downloadmpv-c7329e5118d4e26d02f74fed66747392916ceae7.tar.bz2
mpv-c7329e5118d4e26d02f74fed66747392916ceae7.tar.xz
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.
Diffstat (limited to 'video')
-rw-r--r--video/out/vo.c4
1 files 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);