From 48f96f43ec1cf4f91619540a154b51afb83def41 Mon Sep 17 00:00:00 2001 From: wm4 Date: Fri, 30 Jan 2015 23:49:30 +0100 Subject: player: minor simplification in A/V-sync related code Just minor things. --- player/audio.c | 11 ++++------- player/video.c | 5 ++--- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/player/audio.c b/player/audio.c index 9193d9d6f2..d7da26d573 100644 --- a/player/audio.c +++ b/player/audio.c @@ -146,6 +146,7 @@ void reset_audio_state(struct MPContext *mpctx) if (mpctx->ao_buffer) mp_audio_buffer_clear(mpctx->ao_buffer); mpctx->audio_status = mpctx->d_audio ? STATUS_SYNCING : STATUS_EOF; + mpctx->delay = 0; } void uninit_audio_out(struct MPContext *mpctx) @@ -406,11 +407,10 @@ static bool get_sync_samples(struct MPContext *mpctx, int *skip) double sync_pts = MP_NOPTS_VALUE; if (sync_to_video) { - if (mpctx->video_next_pts != MP_NOPTS_VALUE) { - sync_pts = mpctx->video_next_pts; - } else if (mpctx->video_status < STATUS_READY) { + if (mpctx->video_status < STATUS_READY) return false; // wait until we know a video PTS - } + if (mpctx->video_next_pts != MP_NOPTS_VALUE) + sync_pts = mpctx->video_next_pts - (opts->audio_delay - mpctx->delay); } else if (mpctx->hrseek_active) { sync_pts = mpctx->hrseek_pts; } @@ -419,9 +419,6 @@ static bool get_sync_samples(struct MPContext *mpctx, int *skip) return true; // syncing disabled } - if (sync_to_video) - sync_pts -= opts->audio_delay - mpctx->delay; - double ptsdiff = written_pts - sync_pts; // Missing timestamp, or PTS reset, or just broken. if (written_pts == MP_NOPTS_VALUE || fabs(ptsdiff) > 300) { diff --git a/player/video.c b/player/video.c index 0795b66cbd..0485ba70ec 100644 --- a/player/video.c +++ b/player/video.c @@ -588,9 +588,8 @@ static int video_output_image(struct MPContext *mpctx, double endpts) frame_time = 0; } mpctx->video_next_pts = pts; - if (mpctx->d_audio) - mpctx->delay -= frame_time; - if (mpctx->video_status >= STATUS_READY) { + mpctx->delay -= frame_time; + if (mpctx->video_status >= STATUS_PLAYING) { mpctx->time_frame += frame_time / mpctx->opts->playback_speed; adjust_sync(mpctx, pts, frame_time); } -- cgit v1.2.3