Skip to content
This repository was archived by the owner on Oct 23, 2026. It is now read-only.

3.0.0 - standard presentation only, constant height fold

Latest

Choose a tag to compare

@superuser404notfound superuser404notfound released this 18 Oct 12:44
· 1 commit to main since this release

Breaking

  • Only the standard presentation is rendered. A stream in one of the alternate presentations, which carry objects (7.1.4 plus one to five objects, 5.1 plus one), is refused on its first frame with DTSX_ERR_UNSUPPORTED, and so is a bed other than 7.1, so a host plays them as the plain 7.1 their compatible bed is. No block carries objects any more; DTSX_ELEMENT_OBJECT, DTSX_SPEAKER_OBJECT and the azimuth, elevation and distance fields stay in the API and are never set. The ABI is unchanged.

Changed

  • The heights are removed with the standard's own fold. The standard presentation carries each of its four heights in the bed speaker under it at -3 dB (Tfl in L, Tfr in R, Tbl in Lb, Tbr in Rb). The library subtracts exactly that constant and no longer reads the stream's private metadata; the metadata parser, the fold renderer and the object position mapping are gone from the binary. Every frame of twelve DTS:X tracks (about 8.8 million frames, 26 hours of audio) stated exactly this fold, so the output is bit-identical to subtracting what the stream states.

Verification

harness/verify.sh now demands a bit-identical match with SpatialAudioBridge's DTS:X render, which removes the fold each frame states, and expects the D4 sample's refusal; DTSX_LOCAL_SAMPLES adds further standard-presentation streams. On a 60-second film excerpt the render is bit-identical after the priming frames, in 4096-byte and in random chunks; the plain FATE stream is refused; every slice links; both link orders next to a second Rust library; Swift through the module. The Object Emulator and D4 samples were not available for this run. cargo test covers the new verdicts (objects refused, bed other than 7.1 refused) and the fold constant.

Same slices, minimum OS versions and license (the built library is LGPL-3.0-or-later).

Full diff: 2.0.0...3.0.0