summaryrefslogtreecommitdiffstats
path: root/player/video.c
diff options
context:
space:
mode:
Diffstat (limited to 'player/video.c')
-rw-r--r--player/video.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/player/video.c b/player/video.c
index d70b53bfec..e0424eab4e 100644
--- a/player/video.c
+++ b/player/video.c
@@ -588,8 +588,16 @@ static int video_output_image(struct MPContext *mpctx, double endpts)
frame_time = 0;
}
mpctx->video_next_pts = pts;
- if (mpctx->d_audio)
+ if (mpctx->d_audio) {
mpctx->delay -= frame_time;
+ // When resuming after a hr-seek, let audio advance the position to
+ // the actual seek target.
+ if (mpctx->video_status == STATUS_SYNCING && mpctx->hrseek_active &&
+ pts != MP_NOPTS_VALUE)
+ {
+ mpctx->delay -= mpctx->hrseek_pts - pts;
+ }
+ }
if (mpctx->video_status >= STATUS_READY) {
mpctx->time_frame += frame_time / mpctx->opts->playback_speed;
adjust_sync(mpctx, pts, frame_time);