summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--player/audio.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/player/audio.c b/player/audio.c
index 86fd233a6a..aa7647428c 100644
--- a/player/audio.c
+++ b/player/audio.c
@@ -823,8 +823,10 @@ void audio_start_ao(struct MPContext *mpctx)
MP_VERBOSE(mpctx, "starting audio playback\n");
ao_start(ao_c->ao);
mpctx->audio_status = STATUS_PLAYING;
- if (ao_c->out_eof)
+ if (ao_c->out_eof) {
mpctx->audio_status = STATUS_DRAINING;
+ MP_VERBOSE(mpctx, "audio draining\n");
+ }
ao_c->underrun = false;
mpctx->logged_async_diff = -1;
mp_wakeup_core(mpctx);
@@ -873,8 +875,10 @@ void fill_audio_out_buffers(struct MPContext *mpctx)
// until the old audio is fully played.
// (Buggy if AO underruns.)
if (mpctx->ao && ao_is_playing(mpctx->ao) &&
- mpctx->video_status != STATUS_EOF)
+ mpctx->video_status != STATUS_EOF) {
+ MP_VERBOSE(mpctx, "blocked, waiting for old audio to play\n");
ok = false;
+ }
if (ao_c->start_pts_known != ok || ao_c->start_pts != pts) {
ao_c->start_pts_known = ok;