Skip to content

3.13.4 — DTS-HD MA bridge fix (#64)

Choose a tag to compare

@superuser404notfound superuser404notfound released this 24 Jun 16:30

Fixed

DTS-HD Master Audio failed to play through the audio bridge (#64)

On a Blu-ray remux whose default track is DTS-HD Master Audio (or HRA), audio failed frame after frame with avcodec_send_packet (decoder) returned -22 and [dca] Residual encoded channels are present without core, while video kept playing.

The audio bridge opened libavcodec's dca decoder with no options, so it attempted the lossless XLL extension. Many DTS-HD MA frames code their XLL channels as a residual on top of the mandatory DTS core, and those channels cannot be reconstructed standalone, so the decoder rejected the frame with EINVAL. The bridge re-encodes audio to a lossy stream (EAC3, or FLAC) and discards the XLL refinement anyway, so it now decodes the DTS core only (core_only), which reconstructs full-rate 5.1/7.1 PCM on every frame. No effect on plain DTS core streams.

This is the audio follow-on to the 3.13.3 Blu-ray ISO recognition fix (#62): discs are recognized, and DTS-HD MA tracks now bridge.

UDF reader follows allocation-extent continuations (tag 258)

A file whose allocation descriptors overflow its (extended) file entry chains the remainder through an Allocation Extent Descriptor (extent type 3). The UDF reader now follows that chain (depth-bounded) instead of treating the continuation pointer as a bogus data extent. Defensive: an (E)FE holds roughly 114 GiB of inline descriptors, so no current Blu-ray needs the continuation, but a heavily fragmented or very large title would otherwise under-resolve.


Full diff: 3.13.3...3.13.4