diff options
-rw-r--r-- | player/audio.c | 2 | ||||
-rw-r--r-- | player/video.c | 3 |
2 files changed, 3 insertions, 2 deletions
diff --git a/player/audio.c b/player/audio.c index c697142012..72cb440014 100644 --- a/player/audio.c +++ b/player/audio.c @@ -634,7 +634,7 @@ double playing_audio_pts(struct MPContext *mpctx) double pts = written_audio_pts(mpctx); if (pts == MP_NOPTS_VALUE || !mpctx->ao) return pts; - return pts - mpctx->audio_speed * ao_get_delay(mpctx->ao); + return pts - ao_get_delay(mpctx->ao); } // This garbage is needed for untimed AOs. These consume audio infinitely fast, diff --git a/player/video.c b/player/video.c index 6fe9227461..70ef18958b 100644 --- a/player/video.c +++ b/player/video.c @@ -644,8 +644,9 @@ static void update_av_diff(struct MPContext *mpctx, double offset) if (mpctx->vo_chain && mpctx->vo_chain->is_sparse) return; - double a_pos = playing_audio_pts(mpctx); + double a_pos = written_audio_pts(mpctx); if (a_pos != MP_NOPTS_VALUE && mpctx->video_pts != MP_NOPTS_VALUE) { + a_pos -= mpctx->audio_speed * ao_get_delay(mpctx->ao); mpctx->last_av_difference = a_pos - mpctx->video_pts + opts->audio_delay + offset; } |