diff options
author | wm4 <wm4@nowhere> | 2015-01-30 23:49:30 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2015-01-30 23:49:30 +0100 |
commit | 48f96f43ec1cf4f91619540a154b51afb83def41 (patch) | |
tree | ac00425d88f8cd9b4da6f6b7b742e7c7435bf79a /player | |
parent | 3813c3804f817d09d6df38363736b3b756901790 (diff) |
player: minor simplification in A/V-sync related code
Just minor things.
Diffstat (limited to 'player')
-rw-r--r-- | player/audio.c | 11 | ||||
-rw-r--r-- | 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); } |