1
0
mirror of https://github.com/mpv-player/mpv synced 2025-01-18 04:51:52 +00:00
mpv/audio/out
wm4 ae5fd4a809 ao_alsa: add ridiculous hack to deal with braindead ALSA behavior
dmix reports channel layouts it doesn't support. The rest of the
technical part of the story is in the code comment.

This seems to be the only reasonable way to fallback from trying to
initialize certain devices (like dmix) with multichannel audio. We could
probably add support for such padding channels to our audio chain or to
ao_alsa itself, but this would probably be much more work than this
commit.

What dmix does is probably a bug. I've tried to report it to ALSA. Thay
have a link on their website to a bug tracker, but it's a dead link, and
has been for years. I've posted to alsa-devel, but received no reply.
I'm thus assuming this absolutely retarded behavior is by design, and
nothing will happen to improve upon it.

I'm considering sending Lennart Poettering a "thank you" email, because
with PulseAudio, multichannel audio just works (although some other
things just don't work).
2014-12-15 16:40:23 +01:00
..
ao_alsa.c ao_alsa: add ridiculous hack to deal with braindead ALSA behavior 2014-12-15 16:40:23 +01:00
ao_coreaudio_exclusive.c audio/out: consistently use double return type for get_delay 2014-11-09 11:45:04 +01:00
ao_coreaudio_properties.c ao_coreaudio: initialize fetched properties to zeros 2014-12-01 16:51:19 +01:00
ao_coreaudio_properties.h ao_coreaudio: report hardware latency to ao_read_data 2014-07-03 20:05:15 +02:00
ao_coreaudio_utils.c coreaudio: only list output devices 2014-10-28 14:11:50 +01:00
ao_coreaudio_utils.h coreaudio: use the new device selection API 2014-10-12 12:22:17 +02:00
ao_coreaudio.c coreaudio: don't output too many channel descriptions 2014-12-05 12:35:34 +01:00
ao_dsound.c audio/out: consistently use double return type for get_delay 2014-11-09 11:45:04 +01:00
ao_jack.c audio/out/pull: remove race conditions 2014-05-29 02:24:17 +02:00
ao_lavc.c ao_lavc: fix setting up AVFrame pointers 2014-11-21 10:09:25 +01:00
ao_null.c audio/out: consistently use double return type for get_delay 2014-11-09 11:45:04 +01:00
ao_openal.c audio/out: consistently use double return type for get_delay 2014-11-09 11:45:04 +01:00
ao_oss.c Do not call strerror() 2014-11-26 21:21:56 +01:00
ao_pcm.c ao_pcm: simplify 2014-11-21 10:09:38 +01:00
ao_portaudio.c ao_portaudio: implement device listing 2014-10-13 16:43:05 +02:00
ao_pulse.c audio/out: consistently use double return type for get_delay 2014-11-09 11:45:04 +01:00
ao_rsound.c audio/out: consistently use double return type for get_delay 2014-11-09 11:45:04 +01:00
ao_sdl.c Add some missing "const"s 2014-10-10 13:44:08 +02:00
ao_sndio.c audio/out: consistently use double return type for get_delay 2014-11-09 11:45:04 +01:00
ao_wasapi_changenotify.c ao/wasapi: expose GUID and PKEY convenience functions 2014-11-28 10:48:36 -08:00
ao_wasapi_utils.c ao/wasapi: set the ao with the waveformat channelmap 2014-12-15 05:01:38 -08:00
ao_wasapi_utils.h ao/wasapi: make functions return bool that were acting like it 2014-11-28 10:48:36 -08:00
ao_wasapi.c ao/wasapi: remove unnecessary check of audio thread input 2014-11-28 10:52:48 -08:00
ao_wasapi.h ao/wasapi: handle VistaBlob failure more gracefully 2014-11-28 10:52:48 -08:00
ao.c audio: make mp_chmap_to_str() return a stack-allocated string 2014-11-24 19:56:01 +01:00
ao.h audio/out: make ao_request_reload() idempotent 2014-11-09 09:58:44 +01:00
internal.h audio/out: consistently use double return type for get_delay 2014-11-09 11:45:04 +01:00
pull.c audio/out/pull: avoid deadlock if audio callback stops 2014-11-09 15:23:40 +01:00
push.c audio/out/push: fix off-by-one error 2014-11-21 03:50:57 +01:00