1
0
mirror of https://github.com/mpv-player/mpv synced 2024-12-14 02:45:43 +00:00
mpv/audio/out
wm4 90dd229871 audio/out: add helper code to do 24 bit conversion in AO
I plan to remove the S24 sample formats in mpv. It seems like we should
still support this _somehow_ in AOs though. So the idea is to convert
the data to more obscure representations (that would not be useful for
filtering etc. anyway) within the AO.

This commit adds helper to enable this. ao_convert_fmt is meant to
provide mechanisms for this, rather than a generic audio format
description (as the latter leads only to overly generic misery). The
conversion also supports only cases which we think will be needed at
all.

The main advantage of this approach is that we get S24 out of sight,
and that we could support other crazy formats (like S20). The main
disadvantage is that usually S32 will be selected (if both S32 and S24
are available), and there's no user control to force S24. That doesn't
really matter though, and at worst makes testing harder or will lead
to unpleasant arguments with audiophiles (they'd be wrong anyway).

ao_convert_fmt.pad_lsb is ignored, although if we ever find a case in
which playing S32 with data in the LSBs breaks when playing it as padded
24 bit format. (For example, WAVEFORMATEXTENSIBLE recommends setting the
unused bits to 0 if wValidBitsPerSample implies LSB padding.)
2017-07-07 17:54:05 +02:00
..
ao_alsa.c audio/out: require AO drivers to report period size and correct buffer 2017-06-25 15:57:43 +02:00
ao_audiounit.m ao_coreaudio: change license to LGPL 2017-05-08 13:57:40 +02:00
ao_coreaudio_chmap.c audio/out: add AudioUnit output driver for iOS 2016-11-01 16:25:40 +01:00
ao_coreaudio_chmap.h audio/out: add AudioUnit output driver for iOS 2016-11-01 16:25:40 +01:00
ao_coreaudio_exclusive.c ao_coreaudio: insane hack for passing through AC3 as float PCM 2017-06-30 09:06:01 +02:00
ao_coreaudio_properties.c ao_coreaudio: change license to LGPL 2017-05-08 13:57:40 +02:00
ao_coreaudio_properties.h ao_coreaudio: change license to LGPL 2017-05-08 13:57:40 +02:00
ao_coreaudio_utils.c ao_coreaudio: change license to LGPL 2017-05-08 13:57:40 +02:00
ao_coreaudio_utils.h ao_coreaudio: change license to LGPL 2017-05-08 13:57:40 +02:00
ao_coreaudio.c ao_coreaudio: change license to LGPL 2017-05-08 13:57:40 +02:00
ao_jack.c ao_jack: update latency on buffer_size/graph change 2017-03-18 14:15:34 +01:00
ao_lavc.c audio/out: require AO drivers to report period size and correct buffer 2017-06-25 15:57:43 +02:00
ao_null.c audio/out: require AO drivers to report period size and correct buffer 2017-06-25 15:57:43 +02:00
ao_openal.c audio/out: require AO drivers to report period size and correct buffer 2017-06-25 15:57:43 +02:00
ao_opensles.c options: remove deprecated sub-option handling for --vo and --ao 2016-11-25 21:17:25 +01:00
ao_oss.c audio/out: require AO drivers to report period size and correct buffer 2017-06-25 15:57:43 +02:00
ao_pcm.c ao_pcm: change license to LGPL 2017-05-20 12:46:08 +02:00
ao_pulse.c ao_pulse: reorder format choice 2017-06-23 21:12:44 +02:00
ao_rsound.c ao_pulse, ao_rsound: change license to LGPL 2017-05-08 14:09:49 +02:00
ao_sdl.c options: remove deprecated sub-option handling for --vo and --ao 2016-11-25 21:17:25 +01:00
ao_sndio.c audio/out: require AO drivers to report period size and correct buffer 2017-06-25 15:57:43 +02:00
ao_wasapi_changenotify.c ao_wasapi_changenotify: use %ls instead of %S for wchar_t 2017-04-20 07:38:03 +02:00
ao_wasapi_utils.c ao_wasapi: UWP wrapper hack support 2017-06-29 10:38:05 +02:00
ao_wasapi.c ao_wasapi: UWP wrapper hack support 2017-06-29 10:38:05 +02:00
ao_wasapi.h win32: add COM-specific SAFE_RELEASE to windows_utils.h 2017-01-30 00:22:30 +11:00
ao.c audio/out: add helper code to do 24 bit conversion in AO 2017-07-07 17:54:05 +02:00
ao.h audio/out: change license of some core files to LGPL 2017-05-20 11:43:57 +02:00
internal.h audio/out: add helper code to do 24 bit conversion in AO 2017-07-07 17:54:05 +02:00
pull.c audio/out: add helper code to do 24 bit conversion in AO 2017-07-07 17:54:05 +02:00
push.c Avoid calling close(-1) 2017-06-29 10:31:13 +02:00