1
0
mirror of https://github.com/mpv-player/mpv synced 2024-12-23 07:12:39 +00:00
mpv/player
wm4 c4ad2732f9 audio: stop being dumb
Obvious mistake: we entered EOF drain mode if the decoder returned
AD_WAIT, which is very wrong. AD_WAIT means we should retry after
waiting for a while (or to be precise, until the demuxer/decoder
have more data). We should just pass down this status, and not
change the audio chain state.

This was exposed by a libavfilter EOF handling bug. Feeding a filter
chain with af_dynaudnorm, and sending an EOF before a frame is returned
makes it stuck and keeps returning EAGAIN, instead of returning the
buffered audio. In combination with the bug at hand, which entered
EOG drain mode, it could happen that it got stuck due to libavfilter
discarding buffered data each time the demuxer ran out of data.

Fixes #3997.
2017-01-08 14:47:53 +01:00
..
lua osc: bottombar/topbar: make chapter markers slightly bigger 2016-12-25 15:44:11 +00:00
audio.c audio: stop being dumb 2017-01-08 14:47:53 +01:00
client.c client API: fix mpv_set_property() return value before init 2017-01-04 15:08:41 +01:00
client.h client API: turn mpv_suspend() and mpv_resume() into stubs 2016-11-22 15:54:44 +01:00
command.c player: remove dysfunctional edition switching OSD code 2017-01-05 00:07:28 +01:00
command.h options: slightly better option update mechanism 2016-09-19 19:51:26 +02:00
configfiles.c player: fix previous commit 2016-10-03 17:16:02 +02:00
core.h player: remove dysfunctional edition switching OSD code 2017-01-05 00:07:28 +01:00
external_files.c ta: remove old and redundant macro 2016-05-17 10:53:14 +02:00
external_files.h
lavfi.c lavfi: shut up false positive compiler warnings 2016-04-26 19:38:51 +02:00
lavfi.h
loadfile.c player: remove dysfunctional edition switching OSD code 2017-01-05 00:07:28 +01:00
lua.c client API: turn mpv_suspend() and mpv_resume() into stubs 2016-11-22 15:54:44 +01:00
main.c Update copyright year 2017-01-01 19:09:05 +01:00
misc.c player: litter code with explicit wakeup calls 2016-09-16 14:39:45 +02:00
osd.c player: remove dysfunctional edition switching OSD code 2017-01-05 00:07:28 +01:00
playloop.c client API: turn mpv_suspend() and mpv_resume() into stubs 2016-11-22 15:54:44 +01:00
screenshot.c video: refactor how VO exports hwdec device handles 2016-05-09 20:03:22 +02:00
screenshot.h
scripting.c scripting: don't attempt to load builtin scripts twice 2016-09-26 16:49:35 +02:00
sub.c player: enable no-video subtitle display on coverart too 2016-10-31 13:55:32 +01:00
video.c video: use demuxer-signaled duration for last video frame 2016-12-21 18:18:24 +01:00