Repository navigation
Releases: superuser404notfound/LibDTSX
Release list
1.0.1
First release from superuser404notfound/LibDTSX (transferred from kristofferR, thanks for the library and the handover).
Fixed
- Links next to another Rust library in a host with Objective-C and C++ (AetherEngine#752). The prelinked object kept
rust_eh_personalitylocal, so it became a separate personality routine next to LibDovi's or LibTrueHD's, and with__objc_personality_v0and__gxx_personality_v0the link failed with "Too many personality routines for compact unwind to encode".build.shnow exports it weak, as LibTrueHD 2.2.1 does, and checks the weak definition in every slice and architecture. Panics still never leave the library. - Repeated damaged sections no longer push the input timeline ahead of the source. The frame estimate for a gap divided the framed bytes by a count that also held the frames estimated into earlier gaps, so every gap after the first one was turned into too many frames. Two 50-frame gaps in a stream of one repeated frame resumed at frame 315 instead of 302 and ended 6656 frames (139 ms at 48 kHz) late, and a consumer that places audio on
input_frame_offsetplayed late until the next reset. Diagnosis and reproduction by @andreencar in AetherEngine#755.
Verification
harness/verify.sh passes: every slice links, both link orders next to a second Rust static library in a host with Objective-C and C++ with a deliberate catch in all four runtimes (the 1.0.0 binary fails that link with the error above), Swift through the module map. The DTS:X Object Emulator renders bit-identical to 1.0.0, since an undamaged stream never reaches the gap estimate. New cargo test case repeated_gaps_do_not_add_time_to_the_timeline fails on 1.0.0 with the numbers above and passes here. AetherEngine's suite passes against this build.
Same C API, same slices and minimum OS versions. Package URL is now https://github.com/superuser404notfound/LibDTSX.