Skip to content

7.44.0 - DTS:X through FFmpeg's dca decoder, LibDTSX dropped

Choose a tag to compare

@superuser404notfound superuser404notfound released this 20 Oct 06:04
· 277 commits to main since this release

Changed

  • DTS:X is decoded by FFmpeg's own dca decoder; LibDTSX is gone (#798). FFmpegBuild 3.9.0 patches the decoder to read the height channel set of DTS:X's standard presentation, which upstream recognises but skips, and with its x_heights option outputs 7.1.4 with the -3 dB fold removed from the bed. DTSXObjectAudio therefore links no library of its own, and an App Store app no longer ships LibDTSX's LGPL-3.0 framework, which it could not distribute without an exception. Same presentations as before (standard 7.1.4 rendered, the ones with objects play as 7.1), same priming, same channel order. The output matches LibDTSX within half a 24-bit LSB, except where the folded bed went past full scale: LibDTSX clipped it before removing the fold, FFmpeg's path does not. The verdict now waits for up to eight frames before refusing, so a stream entered inside a peak-bit-rate smoothing period is not refused on its lossy first frames.

For hosts: the trait keeps its name, so nothing changes in a Package.swift or .pbxproj. DTSX.framework disappears from the app bundle, LibDTSX from Package.resolved, and its entry can leave an acknowledgements screen: what decodes DTS:X now is the FFmpeg already listed there. A build check that looked for DTSX.framework to prove the trait was on needs another marker.

Measured: against LibDTSX 3.0.0 over twelve DTS:X films (25.9 hours, every sample compared), the only differences beyond half an LSB are 32,185 samples at full scale, the clipping case above or a result past full scale that a 24-bit output clips.

Full Changelog: 7.43.0...7.44.0