summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--audio/decode/dec_audio.c4
-rw-r--r--audio/decode/dec_audio.h2
-rw-r--r--player/audio.c2
3 files changed, 4 insertions, 4 deletions
diff --git a/audio/decode/dec_audio.c b/audio/decode/dec_audio.c
index 4cd823e029..218063a699 100644
--- a/audio/decode/dec_audio.c
+++ b/audio/decode/dec_audio.c
@@ -274,13 +274,13 @@ static int filter_n_bytes(struct dec_audio *da, struct mp_audio_buffer *outbuf,
filter_data.rate = da->afilter->input.rate; // due to playback speed change
len = MPMIN(filter_data.samples, len);
filter_data.samples = len;
- bool eof = filter_data.samples == 0 && error < 0;
+ bool eof = error == AD_EOF && filter_data.samples == 0;
if (af_filter(da->afilter, &filter_data, eof ? AF_FILTER_FLAG_EOF : 0) < 0)
return AD_ERR;
mp_audio_buffer_append(outbuf, &filter_data);
- if (eof && filter_data.samples > 0)
+ if (error == AD_EOF && filter_data.samples > 0)
error = 0; // don't end playback yet
// remove processed data from decoder buffer:
diff --git a/audio/decode/dec_audio.h b/audio/decode/dec_audio.h
index c1b5eafb49..f9269b5272 100644
--- a/audio/decode/dec_audio.h
+++ b/audio/decode/dec_audio.h
@@ -51,9 +51,9 @@ struct dec_audio {
enum {
AD_OK = 0,
AD_ERR = -1,
- AD_EOF = -1, // same as AD_ERR for now
AD_NEW_FMT = -2,
AD_ASYNC_PLAY_DONE = -3,
+ AD_EOF = -4,
};
struct mp_decoder_list *audio_decoder_list(void);
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;
}