pipewire/spa
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
..
examples examples: fix mapoffset in examples 2024-06-13 10:11:29 +02:00
include impl-port: add port.group property 2024-06-24 13:38:09 +02:00
include-private/spa-private spa: move dbus helpers out of bluez plugin 2024-02-05 13:03:20 +00:00
plugins audioconvert: introduce s25_32 type, f32<->s25 cast is lossless 2024-06-27 19:41:20 +03:00
tests Add GNU/Hurd support 2023-09-24 15:11:52 +00:00
tools spa: improve JSON error reporting in spa-json-dump 2024-03-27 15:57:39 +01:00
meson.build meson: fix compilation when spa-plugins is disabled 2024-02-06 11:50:54 +01:00