pipewire/spa/plugins
Roman Lebedev 2a035ac49e
audioconvert: introduce s25_32 type, f32<->s25 cast is lossless
The largest integer that 32-bit floating point can exactly represent
is actually `(2^24)-1`, not`(2^23)-1` like the code assumes.
This means, whenever we use s24 as an intermediate step
to go between f32 and s32, we lose a bit of precision.

s25_32 is really a i32 with highest byte always being a sign byte.

Printing was done by adding
```
for(int e = 0; e != 13; ++e)
fprintf(stderr, "%16.32e,", ((float*)m1)[e]);
```
to `compare_mem`. I don't like how these tests work.

https://godbolt.org/z/abe94sedT
2024-06-27 19:41:20 +03:00
..
aec spa: aec: webrtc: Fix multichannel processing 2024-06-25 15:34:30 -04:00
alsa impl-port: add port.group property 2024-06-24 13:38:09 +02:00
audioconvert audioconvert: introduce s25_32 type, f32<->s25 cast is lossless 2024-06-27 19:41:20 +03:00
audiomixer spa: revert peer_enum_params node event again 2024-06-20 10:22:45 +02:00
audiotestsrc fix compilation some more 2024-06-18 15:41:12 +02:00
avb spa: small cleanups 2024-01-10 15:51:01 +01:00
bluez5 impl-port: add port.group property 2024-06-24 13:38:09 +02:00
control spa: revert peer_enum_params node event again 2024-06-20 10:22:45 +02:00
ffmpeg spa: use log topics everywhere 2024-03-11 18:45:21 +02:00
jack spa: use log topics everywhere 2024-03-11 18:45:21 +02:00
libcamera impl-port: add port.group property 2024-06-24 13:38:09 +02:00
support Fix compilation with -Werror=float-conversion 2024-06-18 12:17:56 +02:00
test spa: use log topics everywhere 2024-03-11 18:45:21 +02:00
v4l2 impl-port: add port.group property 2024-06-24 13:38:09 +02:00
videoconvert videoconvert: Enable loading external converter plugins 2024-01-22 13:59:16 +00:00
videotestsrc spa: use log topics everywhere 2024-03-11 18:45:21 +02:00
volume spa: fix volume plugin compilation 2024-06-18 15:44:26 +02:00
vulkan vulkan: fix compilation 2024-06-18 15:16:06 +02:00
meson.build meson: fix build with missing libudev-devel 2024-02-06 11:49:40 +01:00