0
0
mirror of https://github.com/mpv-player/mpv.git synced 2024-09-20 20:03:10 +02:00
mpv/audio/out
nanahi 2872e23aea ao: don't clip floating point formats at non-unity gain
Currently, the softvol gain control attempts to clip floating point ao
formats within -1 and +1. However, this is "optimized out" at unity gain,
where no clipping is applied. This results in inconsistent behavior when
the source audio is already out of -1 and +1 range, where a gain of 0.99
results in clipping, but not at exactly 1.

Since a big advantage of floating point audio data is that they do not
lose information through out-of-range data because the ao sink can apply
suitable negative gain to prevent clipping before converting them to
integer formats, clipping should not be performed on these data.

Fix this by removing the existing clipping behavior. It now results in
a simple multiplication, which faciliates compiler auto-vectorization
of this operation over audio data.
2024-02-25 18:23:57 +00:00
..
ao_alsa.c options: remove explicit initialization of integers to 0 2023-02-21 17:15:17 +00:00
ao_audiotrack.c ao_audiotrack: switch to ao_read_data_nonblocking() 2023-11-08 20:26:23 +01:00
ao_audiounit.m ao: convert all timing code to nanoseconds 2023-10-16 15:38:59 +00:00
ao_coreaudio_chmap.c ao_coreaudio_chmap: suppress vla warning 2023-11-24 10:05:09 +01:00
ao_coreaudio_chmap.h osdep: remove atomic.h 2023-10-20 21:31:09 +02:00
ao_coreaudio_exclusive.c various: make mentions of macOS consistent 2024-02-21 20:46:53 +01:00
ao_coreaudio_properties.c various: fix typos 2022-04-25 09:07:18 -04:00
ao_coreaudio_properties.h ao_coreaudio: change license to LGPL 2017-05-08 13:57:40 +02:00
ao_coreaudio_utils.c various: replace some OOM handling 2023-11-24 10:04:55 +01:00
ao_coreaudio_utils.h osdep: remove atomic.h 2023-10-20 21:31:09 +02:00
ao_coreaudio.c ao_coreaudio: switch to ao_read_data_nonblocking() 2023-11-08 20:26:23 +01:00
ao_jack.c various: sort some standard headers 2023-10-20 21:31:09 +02:00
ao_lavc.c ALL: use new mp_thread abstraction 2023-11-05 17:36:17 +00:00
ao_null.c ao_null: fix reset() implementation 2024-01-12 20:36:04 +01:00
ao_openal.c options: transition options from OPT_FLAG to OPT_BOOL 2023-02-21 17:15:17 +00:00
ao_opensles.c ALL: use new mp_thread abstraction 2023-11-05 17:36:17 +00:00
ao_oss.c ao_oss: add "spdif" passthrough support for high bitrate codecs (e.g. Dolby Atmos, DTS-HD, etc.) over HDMI 2023-08-20 20:02:40 +02:00
ao_pcm.c options: transition options from OPT_FLAG to OPT_BOOL 2023-02-21 17:15:17 +00:00
ao_pipewire.c ao_pipewire: add support for SPDIF formats 2024-02-15 16:43:25 +00:00
ao_pulse.c ALL: use new mp_thread abstraction 2023-11-05 17:36:17 +00:00
ao_sdl.c ao: convert all timing code to nanoseconds 2023-10-16 15:38:59 +00:00
ao_sndio.c ao_sndio: add missing config.h include 2024-02-07 14:44:52 +00: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 various: use correct PATH_MAX for win32 2023-12-27 22:55:56 +01:00
ao_wasapi.c ao_wasapi: scale queried AO volume to (0, 100) 2024-02-24 05:26:56 +00:00
ao_wasapi.h ao_wasapi: address premature buffer fills in exclusive mode 2024-02-24 05:26:56 +00:00
ao.c ao: don't clip floating point formats at non-unity gain 2024-02-25 18:23:57 +00:00
ao.h audio: drain ao before setting pause 2023-08-11 22:28:50 +00:00
buffer.c audio: rename ao_read_data_unlocked 2024-02-05 09:25:48 -08:00
internal.h audio: introduce ao_read_data_nonblocking() 2023-11-08 20:26:23 +01:00