summaryrefslogtreecommitdiffstats
path: root/player
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2018-04-19 19:16:01 +0200
committerwm4 <wm4@nowhere>2018-04-20 12:34:43 +0200
commitf4351e6f7d1c36e6ee39b69b79388636e433c401 (patch)
tree999177f34e85f8372fe2a6adad18f2e9b774eecc /player
parentff24285eb15676dc7519b858be01a1def155e847 (diff)
downloadmpv-f4351e6f7d1c36e6ee39b69b79388636e433c401.tar.bz2
mpv-f4351e6f7d1c36e6ee39b69b79388636e433c401.tar.xz
audio: fix EOF handling if there was no data at all
It stopped and did nothing, instead of terminating (or just letting video play, if there was any video). Regression due to recent filter changes.
Diffstat (limited to 'player')
-rw-r--r--player/audio.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/player/audio.c b/player/audio.c
index 842d965d49..ce9e1cd06b 100644
--- a/player/audio.c
+++ b/player/audio.c
@@ -805,6 +805,13 @@ void fill_audio_out_buffers(struct MPContext *mpctx)
// Probe the initial audio format.
mp_pin_out_request_data(ao_c->filter->f->pins[1]);
reinit_audio_filters_and_output(mpctx);
+ if (ao_c->filter->got_output_eof &&
+ mpctx->audio_status != STATUS_EOF)
+ {
+ mpctx->audio_status = STATUS_EOF;
+ MP_VERBOSE(mpctx, "audio EOF without any data\n");
+ mp_filter_reset(ao_c->filter->f);
+ }
return; // try again next iteration
}