Repository navigation
Changed
- Decoding is about a third faster again. The
truehdpin moves to harletty's speed work on the decoder, which includes the truehdd#42 change from 2.2.0 and adds: blocks decoded in place instead of copied, bits read straight from the slice with table-driven Huffman codes, CRC-8 eight bytes per step, prediction filters for several channels side by side, and matrices applied to a whole block. Through the C API on an M1: Unfold's 16-element presentation 0.98 s before, 0.60 s after (29x to 45x real time), the first 120 s of Dolby's 7.1.4 test file 3.04 s to 2.00 s. - truehd pin: superuser404notfound/truehdd@5c8b880, mirrored unchanged from harletty's branch (upstream main 02d29cd plus 17 commits), so the pin does not depend on a third-party branch. It returns to upstream once the work is merged there. NOTICE says so.
Verification
Output is unchanged. harness/verify.sh passes in full: PCM bit-exact against truehdd, object metadata, reset and seek, arbitrary chunking, every slice links, both link orders next to a second Rust library, Swift through the module map. examples/decode_bench hashes every output field (PCM, speakers, timing, object metadata) and gives the same checksum as 2.2.1 on Unfold, the 7.1.4 test file and FFmpeg's FATE atmos.thd. The truehdd CLI at the 2.2.1 pin and at 5c8b880 writes byte-identical files for every fixture in truehd/tests/assets and every sample at presentations 0 to 3 (60 decodes). cargo test --release is 8/8, and AetherEngine's suite passes against this build.
Same C API (API version unchanged), same slices and minimum OS versions. No wrapper change.