Skip to content

Releases: superuser404notfound/LibDTSX

Release list

1.0.1

Choose a tag to compare

@superuser404notfound superuser404notfound released this 13 Oct 13:20

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_personality local, so it became a separate personality routine next to LibDovi's or LibTrueHD's, and with __objc_personality_v0 and __gxx_personality_v0 the link failed with "Too many personality routines for compact unwind to encode". build.sh now 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_offset played 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.