Apple TV audio paths¶
Start with the sound priorities. The appropriate path depends on your speaker layout and actual rendering, not the transport label alone.
At a glance
Infuse, Native Player and apps using AetherEngine are different products. Preserved height output is not the same claim as passing through the original Atmos objects.
Lossless TrueHD on Apple TV: what differs¶
In short: an Apple TV cannot pass a TrueHD or DTS-HD bitstream to the receiver, so every app decodes the track on the Apple TV and sends PCM.4 What differs is what the app does after decoding: whether the result stays lossless, which sample rates survive, and whether height information is kept.
| App | What leaves the Apple TV | Sample rate | Atmos and DTS:X heights |
|---|---|---|---|
| Infuse | PCM, up to 7.1 channels, 24-bit | Up to 48 kHz; 96 and 192 kHz tracks are converted to 48 kHz | Not kept: the 7.1 version of the mix plays without heights |
| Native Player 2.0 | PCM, described by the developer as lossless | Not documented | Rendered on the Apple TV to the chosen speaker layout, sent over Dolby MAT |
| AetherEngine apps | Depends on the app's audio setting: by default lossy E-AC3 5.1; in the lossless mode PCM up to 7.1 | Default: 48 kHz; lossless mode keeps the track's own rate | With object rendering enabled: rendered on the Apple TV as a speaker layout with heights, 48 kHz tracks only |
Infuse's 48 kHz limit matters only for tracks above 48 kHz. Such tracks exist: Dolby documents TrueHD Atmos at 48 and 96 kHz.3 Check a track's sample rate in a tool such as MediaInfo. "Rendered on the Apple TV" means the app has already decided which speaker plays each sound; the receiver does not receive the original Atmos objects. The details and sources follow below.
Infuse¶
Firecore documents up to 7.1 channels of 24-bit/48 kHz LPCM from formats including TrueHD and DTS-HD MA. Its FAQ explicitly states that higher sample rates, including 96 and 192 kHz, are converted to 48 kHz. This documents the output-rate handling, not a measurement of resampling quality. Its documented Atmos support covers E-AC3; that does not establish full TrueHD Atmos or DTS:X object rendering. Its video page lists DV P5/P8, not P7 FEL composition.1
Native Player 2.0¶
The developer describes lossless decoding and local rendering with heights. In a technical reply, the developer explicitly says original objects are not sent as discrete objects: the Apple TV renders them to the selected layout. DTS:X is described as 7.1.4. Here “lossless” is the developer's claim that no lossy codec is used in the subsequent path; it is not a published null-test against a reference renderer.2
The developer also says Atmos output leaves Apple TV over Dolby MAT.2 Local rendering therefore must not be equated with a transport carrying no Atmos metadata. The exact downstream representation and preservation of the original dynamic objects remain separate questions.
The same announcement states that P7 FEL's enhancement layer is dropped. Do not infer FEL video support from the app's spatial-audio features.
Sound test for Dolby Atmos¶
Native IT also publishes Sound test for Dolby Atmos for iPhone, iPad and Apple TV. The listing describes individual channel tones and spatial placement tests. Native Player's developer says related technology powers the player.2
The test app shows that the developer also works on audio diagnostics. It does not establish which internal tests Native Player has passed, or how accurate its renderer is. We should not infer either from the app's existence.
Independent validation remains open in this guide. We have not established how closely Native Player's claimed lossless Atmos path matches a justified reference for decoding, object placement and speaker output. Post-render sample preservation and rendering accuracy need separate tests. See Testing, T04 and T05.
AetherEngine¶
At the pinned commit, object audio is opt-in through components such as TrueHDObjectAudio/DTSXObjectAudio and objectAudioRendering. The README describes a rendered speaker bed delivered as 24-bit PCM on the relevant local path, with APAC for AirPlay.5 The player matrix assumes these components and rendering are enabled. Its yellow cells identify local rendering rather than original-object bitstream passthrough; they do not mean the option is off or establish an audible quality loss. Independent rendering and HDMI-output validation remain open.
Without object rendering, the engine's audio bridge has two modes. The default re-encodes TrueHD and DTS-HD to lossy E-AC3 at 48 kHz, currently limited to 5.1; the opt-in lossless mode sends FLAC, which tvOS turns into PCM, up to 7.1 and at the track's own sample rate.4 Which mode a shipping app uses is the app's choice.
Older accounts of a universally lossy APAC path must not be applied to this version without checking.
An app may embed another engine commit, omit optional components or select another route. Engine capability is not a guarantee about every shipping app. Record the app version, engine revision, tvOS version and active flags, especially when testing FEL video and spatial audio together.
What still needs measurement¶
| Question | Required evidence |
|---|---|
| Are height and horizontal renderings correct? | Channel captures and controlled object trajectories across layouts |
| Is post-render transport lossless? | Compare samples before transport with the decoded received signal |
| What happens when the layout changes? | Tests of 5.1.2, 7.1.4, larger layouts and fallback |
| Do FEL and spatial audio work together? | The precise app/build, flags, route and playback log |
Sound fundamentals · Player sound matrix
Reviewed 6 November 2026 · Source-reviewed · no local playback measurements
-
S23, Dolby Atmos for sound bar applications, June 2018, p. 10: Atmos in TrueHD “at multiple sampling rates (including 48 kHz and 96 kHz)”. PRIMARY. ↩
-
AetherEngine
docs/formats.mdat commitf7bea86, “TrueHD Atmos with heights” (no Apple platform gives third-party apps a compressed bitstream output) and the audio bridge modes.surroundCompatand.lossless. DEVELOPER documentation; it states the platform limit for all apps and the bridge behaviour for AetherEngine only. Checked 6 November 2026. ↩↩