0
0
mirror of https://github.com/mpv-player/mpv.git synced 2024-09-20 12:02:23 +02:00
mpv/audio
wm4 39f515cb6a audio/out: prevent underruns with spdif under certain conditions
The player tries to avoid splitting frames with spdif (sample alignment
stuff). This can in certain corner cases with certain drivers lead to
the situation that ao_get_space() returns a number higher than 0 and
lower than the audio frame size. The playloop will round this down to 0
bytes and do nothing, leading to a missed wakeup. This can lead to
underruns or playback completely getting stuck.

It can be reproduced by playing AC3 passthrough with no video and:

    --ao=null --ao-null-buffer=0.256 --ao-null-outburst=6100

This commit attempts to fix it by allowing the playloop to write some
additional data (to get a complete frame), that will be buffered within
the AO ringbuffer even if the audio device doesn't want it.
2016-10-04 19:31:17 +02:00
..
decode audio: dump timestamp difference 2016-10-02 12:55:22 +02:00
filter af_pan: fix typo 2016-09-19 19:01:52 +02:00
out audio/out: prevent underruns with spdif under certain conditions 2016-10-04 19:31:17 +02:00
audio_buffer.c Relicense some non-MPlayer source files to LGPL 2.1 or later 2016-01-19 18:36:06 +01:00
audio_buffer.h Relicense some non-MPlayer source files to LGPL 2.1 or later 2016-01-19 18:36:06 +01:00
audio.c audio: make mp_audio_realloc[_min] ensure frame is writeable 2016-07-31 18:51:02 +02:00
audio.h af_lavcac3enc: use common code for AVFrame setup 2016-07-24 19:06:00 +02:00
chmap_sel.c audio: use --audio-channels=auto behavior, except on ALSA 2016-08-04 20:49:20 +02:00
chmap_sel.h audio: use --audio-channels=auto behavior, except on ALSA 2016-08-04 20:49:20 +02:00
chmap.c player: remove special-case for DL/DR speakers 2016-08-04 19:14:35 +02:00
chmap.h player: remove special-case for DL/DR speakers 2016-08-04 19:14:35 +02:00
fmt-conversion.c Update license headers 2015-04-13 12:10:01 +02:00
fmt-conversion.h Update license headers 2015-04-13 12:10:01 +02:00
format.c audio: add af_select_best_samplerate function 2016-03-17 02:31:05 -07:00
format.h audio: add af_select_best_samplerate function 2016-03-17 02:31:05 -07:00