pipewire/spa/plugins/audiomixer
Wim Taymans 371b5a1836 audiomixer: rewrite the mixer functions
Let the mixer functions accumulate the intermediate results into a
larger size variable and then clamp to the final precission. This avoids
distortions because of intermediate clamping.

Although the access pattern of the reads are no longer sequential, the
writes are sequential and we don't need to read intermediate values.
Together with the avoided clamping this is probably faster overall.

Add a unit test for the various cases.
2022-07-09 18:11:13 +02:00
..
audiomixer.c buffer: add EMPTY chunk flag 2022-06-24 11:09:01 +02:00
meson.build audiomixer: rewrite the mixer functions 2022-07-09 18:11:13 +02:00
mix-ops-avx.c spa: debug memcpy 2022-05-31 10:31:26 +02:00
mix-ops-c.c audiomixer: rewrite the mixer functions 2022-07-09 18:11:13 +02:00
mix-ops-sse.c spa: debug memcpy 2022-05-31 10:31:26 +02:00
mix-ops-sse2.c spa: debug memcpy 2022-05-31 10:31:26 +02:00
mix-ops.c audiomixer: support multiple channels when mixing with AVX, SSE and SSE2 2021-09-10 07:35:55 +00:00
mix-ops.h audiomixer: rewrite the mixer functions 2022-07-09 18:11:13 +02:00
mixer-dsp.c buffer: add EMPTY chunk flag 2022-06-24 11:09:01 +02:00
plugin.c mixer: Move floatmix to the audio mixer plugin 2019-10-03 16:20:12 +02:00
test-mix-ops.c audiomixer: rewrite the mixer functions 2022-07-09 18:11:13 +02:00