truehd 0.7.1

Research implementation of Dolby TrueHD parser/decoder
Documentation

truehd

A low-level parser and decoder for Dolby TrueHD audio bitstreams, implemented in Rust.

⚠️ Experimental:

This crate is intended for internal or research use only.
It is not designed for production or end-user playback systems.

Usage

[dependencies]
truehd = "0.7.1"

Requires Rust 1.88.0 or later.

Decoding runs in three stages: an Extractor finds frames in a byte stream, a Parser turns each frame into an access unit, and a Decoder renders access units to PCM. See the crate documentation for a worked example.

On damaged input, Parser::reset_for_next_major_sync and Decoder::reset_for_next_major_sync drop stream state so decoding can resume at the next major sync. Call both at the same point in the frame sequence, or the two stages will disagree about the stream.

Development Status

Category Feature Status Priority Criticality Notes
Parser FBA sync bitstream (Dolby) 🟢 High Essential
FBB sync bitstream (Meridian) 🟢 Low Nice-to-have DVD-Audio / MLP
Evolution frame 🟢 High Essential
CRC and parity validation 🟢 High Essential
SMPTE timestamp 🟢 Medium Optional
FBA hires output timing 🟢 Medium Optional
Object audio metadata 🟢 High Essential Bed object element skipped
FIFO conformance tests 🟢 Medium Optional
FBA bitstream seeking 🔴 Low Nice-to-have Yes, it's possible
Decoder 31EA / 31EB sync substream 🟢 High Essential
31EC sync substream 🟢 High Essential 4th / 16ch presentation
Lossless check 🟢 High Essential
Optimize DSP performance 🔴 Medium Important
Dynamic range control 🔴 Low Optional State parsed, not applied
Intermediate spatial format 🔴 Low Out-of-scope I have no idea
Other TODOs Documentation 🟢 High Essential With kind support from Claude
Unit tests 🟢 High Essential
Benchmarking 🔴 Medium Important
Metadata interpolation 🔴 Low Nice-to-have
Bitstream editing 🔴 Low Nice-to-have
Encoding 🔴 Low Nice-to-have
Object audio rendering 🔴 Low Out-of-scope

Legend: 🟢 Completed • 🟡 In Progress • 🔴 Not Started


License

Licensed under the Apache License, Version 2.0. See LICENSE for details.