diff options
author | wm4 <wm4@nowhere> | 2014-07-24 15:26:07 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2014-07-24 15:26:07 +0200 |
commit | 986099d32356bb2c9520ae32b987e7155be55605 (patch) | |
tree | adede5a57aaf8b7800c50cd2782fd12c6051cce1 /player/audio.c | |
parent | b77dab0f6e7a43d9a9480626805317df7843bf7a (diff) | |
download | mpv-986099d32356bb2c9520ae32b987e7155be55605.tar.bz2 mpv-986099d32356bb2c9520ae32b987e7155be55605.tar.xz |
audio: fix race condition in EOF code
Don't return an EOF code if there's still buffered data.
Also, don't call demux_stream_eof() in the playloop. There's probably
nothing wrong with it, but it's cleaner not to use it.
Also give AD_EOF its own value, so that a decoding error doesn't drain
audio by causing an EOF condition.
Diffstat (limited to 'player/audio.c')
-rw-r--r-- | player/audio.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/player/audio.c b/player/audio.c index 26d9f196a3..6b2260dc89 100644 --- a/player/audio.c +++ b/player/audio.c @@ -427,7 +427,7 @@ int fill_audio_out_buffers(struct MPContext *mpctx, double endpts) return -1; } else if (res == AD_ASYNC_PLAY_DONE) return 0; - else if (demux_stream_eof(d_audio->header)) + else if (res == AD_EOF) audio_eof = true; } |