Repository navigation
Changed
- The shipped library leaves matrix interpolation out again.
matrix-interpolationis opt-in once more, as in 3.0.0:./build.shbuilds without it, so the interpolating decode is not compiled into the binary, and every handle reads a stream's interpolation values and discards them. Channel-based presentations (2.0, 5.1, 7.1) carry no interpolation and stay bit-exact; the object presentation (3) of a stream that interpolates decodes approximately. AetherEngine's TrueHD path no longer needs the exact object decode: it builds every output from the stream's lossless channel presentation and reads the object presentation only as statistics (AetherEngine#731). TRUEHD_ATMOS_FEATURES=matrix-interpolationbuilds (andharness/verify.shchecks) the exact decoder for measurements.TRUEHD_ATMOS_NO_INTERPOLATIONis no longer read.
API, ABI (API 2, 112-byte TrueHDAtmosBlock), the bed companion and the per-handle truehd_atmos_decoder_set_ignore_interpolation are unchanged. Every static slice is about 11 KB smaller.
Verification
harness/verify.sh passes in full against a non-interpolating truehdd CLI at the same pin (superuser404notfound/truehdd@33bae16): PCM bit-exact on every sample and fixture (Dolby "Unfold" included, whose object presentation interpolates), object metadata, reset and seek, arbitrary chunking, every slice links, both link orders next to a second Rust library, Swift through the module map. cargo test is 12/12.
Same slices and minimum OS versions.
Full diff: 3.1.0...3.2.0