Jellyfin Atmos, TrueHD and DTS passthrough explained (2026)
Passthrough vs decoding, TrueHD and DTS bitstreaming by device, and why Jellyfin sometimes transcodes lossless audio instead of passing it through.
By Swiftly Player13 min read
Disclosure: we build Swiftly Player, one of the clients in this article. We point out where other apps do better.
Checked in September 2026. The facts below come from Jellyfin's own documentation and GitHub issues, device vendor support pages, and app support pages linked inline. Passthrough support depends on the exact device, firmware version and Jellyfin client build, so treat this as a starting point and check the linked source for your own hardware.
TL;DR
Passthrough sends the original audio bitstream (Dolby TrueHD, DTS-HD Master Audio, and so on) untouched to a receiver or soundbar, which decodes it. Decoding does the opposite: the player turns the bitstream into plain multichannel PCM itself, and the receiver just amplifies it. Apple TV cannot bitstream Dolby TrueHD or any form of DTS — it decodes everything on the device, stripping the Atmos or DTS:X height layer down to a flat surround mix. An Nvidia Shield, a capable Fire TV, most Android TV boxes and any PC connected by HDMI can bitstream TrueHD and DTS if the receiver supports them and the settings are right. Jellyfin's own rule for audio is simple: if the client doesn't declare support for the codec, Jellyfin transcodes the audio track while often leaving the video alone.
Passthrough vs. decoding, in plain terms
A film's audio track is stored in a specific codec — Dolby TrueHD, DTS-HD Master Audio, plain Dolby Digital, and so on. There are two ways to get that sound out of your speakers:
- Passthrough (bitstreaming). The player sends the compressed audio stream exactly as stored, over HDMI, to an external receiver or soundbar. That receiver decodes it. The player itself does no audio work beyond forwarding bytes.
- Decoding. The player (or the device it runs on) decodes the compressed stream itself and outputs plain multichannel or stereo PCM. The receiver just plays what it's given.
Both can sound identical for lossless formats, because decoding TrueHD to PCM loses nothing — TrueHD's own format is lossless to begin with. The practical differences are about metadata and object-based positioning: some receivers extract height-channel information (Dolby Atmos, DTS:X) only from a bitstream, not from a PCM feed, and PCM is capped at a fixed number of channels (typically 7.1), so an object-based mix with more virtual objects than that gets folded down before it reaches the receiver. If your receiver's display says "Dolby Atmos" during playback, it decoded a bitstream. If it says "PCM" or "Multi-Channel," the source device decoded first.
Dolby Atmos in TrueHD vs. Dolby Digital Plus (the JOC version)
Dolby Atmos is not itself an audio codec — it's a metadata layer added on top of an existing codec, and Jellyfin libraries typically carry it in one of two containers:
- TrueHD with Atmos, used on 4K Blu-rays. TrueHD is Dolby's lossless codec, with bitrates that can run up to around 10 Mbit/s, and the Atmos objects ride inside the TrueHD 7.1 bed, extracted during decoding.
- Dolby Digital Plus with Atmos (E-AC-3 JOC), used by most streaming services and many downloaded/remuxed files. DD+ is lossy, commonly capped around 768 kbit/s for this use, and its Atmos objects are carried through Joint Object Coding (JOC) — 15 audio objects plus an LFE channel folded into the DD+ stream itself, rather than sitting inside a lossless bed.
A device can support "Dolby Digital Plus with Atmos" while having no ability at all to bitstream plain TrueHD — that split is exactly the line Apple TV sits on (next section), and the line several Fire TV and budget Android TV boxes sit on too.
Apple TV: decodes everything, bitstreams nothing (for now)
Apple's own support material and forum threads are consistent on this: Apple TV 4K has no passthrough option in current tvOS and decodes all incoming audio to LPCM before sending it out over HDMI, and "this is intentional on Apple's part." Practically, that means:
- Dolby Digital Plus with Atmos plays back correctly, with the height channels intact, because Apple TV decodes DD+ JOC natively and outputs the result as multichannel PCM with Atmos metadata that a receiver reconstructs.
- Dolby TrueHD and any DTS variant (DTS, DTS-HD MA, DTS:X) get decoded down to plain surround PCM. The Atmos or DTS:X object layer inside TrueHD is not reconstructed the same way — Infuse's own support page confirms TrueHD Atmos is not supported on Apple TV 4K and that the company has asked Apple for more flexible audio output.
- Optical (TOSLINK) output is even more limited: 5.1 channels of compressed Dolby Digital or 2.0 channels of uncompressed PCM, nothing higher.
There is a change coming: tvOS 26 adds an AVAudioContentSource.passthrough API that app developers can use, with Infuse and Plex named as likely early adopters. As of the first tvOS 26 betas there was no user-facing setting yet, and — this is the important caveat — the article is explicit that "there is currently no confirmation on whether it will enable media player apps on Apple TV 4K to passthrough Dolby Atmos in lossless Dolby TrueHD and DTS:X in lossless DTS-HD MA." Until a Jellyfin client actually ships support for that API, every Jellyfin app on Apple TV, including Swiftly Player, decodes TrueHD and DTS rather than bitstreaming them. If you want to know what else differs between Jellyfin apps on the platform, see the Apple TV client comparison.
Android TV boxes: Shield, Fire TV, and generic boxes
Unlike Apple TV, Android TV devices generally let apps request a bitstream and pass it straight through, so the ceiling is set by the box's HDMI output and firmware, not the operating system.
Nvidia Shield TV / Shield TV Pro. Nvidia's own support documentation lists Dolby Digital, Dolby Digital Plus, Dolby Atmos, Dolby TrueHD, DTS:X and DTS Core as pass-through formats, configured under Settings → Device Preferences → Display & Sound → Advanced sound settings, where you either leave the list on Auto or enable each format your receiver can decode.
Fire TV. Passthrough support is inconsistent across the lineup. The Fire TV Cube (3rd generation) gained DTS, DTS-HD and Dolby TrueHD passthrough through a software update, and the Fire TV 4K Max is generally reported alongside it. Cheaper Fire TV Stick models are limited to Dolby Atmos for a handful of streaming apps rather than full local-file TrueHD or DTS-HD bitstreaming.
Generic Android TV / Google TV boxes. There's no single answer — it depends on the SoC, the firmware, and whether the manufacturer implemented HDMI bitstream output at all. Check the model's spec sheet for "audio passthrough" or "bitstream" rather than assuming Android TV as a platform guarantees it. Whether a Jellyfin client actually uses that capability is a separate question, covered in the client table below — see also the Android TV client comparison for how these apps differ beyond audio.
PC over HDMI
A Windows or Linux PC connected to a receiver by HDMI can bitstream anything the GPU driver, the audio stack and the receiver all agree on — Dolby Digital, DD+, DD+ Atmos, TrueHD, TrueHD Atmos, DTS, DTS-HD MA and DTS:X. The player has to be built to output a bitstream rather than decode it; Jellyfin Media Player, built on mpv, supports selecting an audio device and bitstream/passthrough output. Whether it actually happens depends on that selected device being the HDMI output in exclusive/passthrough mode, not a generic stereo device.
Soundbars and eARC vs. plain ARC
The cable and port matter as much as the device sending audio. Plain HDMI ARC only carries compressed formats — stereo, Dolby Digital, DTS core, and Dolby Digital Plus including DD+ Atmos — while eARC adds the bandwidth for uncompressed 5.1/7.1 PCM and the higher-bitrate object formats: DTS-HD Master Audio, DTS:X and Dolby TrueHD, including TrueHD Atmos. A soundbar or AVR connected over plain ARC can advertise "Dolby Atmos" support and still only ever receive the DD+ JOC version, never a TrueHD Atmos bitstream — check whether the port on both the TV and the bar is actually labelled eARC, not just ARC.
Which Jellyfin clients support passthrough, and where the setting is
| Client | Platform | Setting location | TrueHD / DTS-HD passthrough |
|---|---|---|---|
| Jellyfin for Android TV (official) | Android TV, Google TV, Nvidia Shield, some Fire TV | Settings → Playback → Audio output — separate "Bitstream Dolby TrueHD", "Bitstream Digital Theater System" (DTS) and Dolby Digital / DD+ toggles, per the app's own string resources | Yes, per-codec toggle — but see the note below |
| Jellyfin Media Player | Windows, macOS, Linux desktop | Audio device picker plus mpv.conf for advanced tuning, built on mpv | Yes, when the selected output device is the HDMI passthrough path |
| Kodi with Jellyfin for Kodi / JellyCon | Android TV, Fire TV, desktop, Raspberry Pi | Settings → System → Audio → Passthrough, then tick each codec your receiver decodes | Yes, Kodi's own long-standing passthrough system |
| Infuse (not a Jellyfin-branded client, but connects to a Jellyfin server) | Apple TV, iOS, Apple platforms | Audio settings inside Infuse; capped by tvOS | DD+ Atmos yes, TrueHD/DTS-X no on Apple TV — confirmed by Infuse's own support page |
| Any Jellyfin client on Apple TV, incl. Swiftly Player | tvOS | n/a — no passthrough API is in use by any Jellyfin client yet | No, decodes to PCM on-device (platform limit, see above) |
| Jellyfin web client (browser) | Any browser | n/a | No — browsers don't expose bitstream output at all, and Jellyfin's own codec compatibility table shows no browser supporting DTS |
Real-world reports complicate the "official app has a toggle" story a little: users have filed issues where Dolby TrueHD gets transcoded to PCM instead of bitstreamed even with a capable Shield and receiver, and older reports asked for a TrueHD toggle to be added at all before one existed. Passthrough on Android TV clients is a genuine feature but not a guaranteed one — verify with your own receiver's on-screen display, not just the setting.
When Jellyfin transcodes audio instead of passing it through
Jellyfin's transcoding logic doesn't know or care about your receiver — only what the connecting client declared it can handle. Per Jellyfin's transcoding documentation, a file plays as Direct Play when video and audio both match the client's declared support, Direct Stream when only the audio needs to change while video stays untouched, and full Transcode when the video itself is re-encoded. Audio gets transcoded when:
- The client's device profile doesn't list the audio codec at all — this is why a browser, which can't decode or bitstream TrueHD or DTS, gets a transcoded track even though the video plays fine.
- The channel count exceeds what the output device supports, for example a 7.1 track sent to a stereo TV speaker profile.
- A passthrough toggle in the client is turned off, which tells the server the client will decode that codec locally instead of asking for the original stream — some apps default this to off for stability.
None of this is Atmos- or DTS-specific: it's the same Direct Play / Direct Stream / Transcode decision Jellyfin makes for video, just applied to the audio track. For the fuller picture of why transcoding happens at all and how to avoid it for video too, see why Jellyfin transcodes.
FAQ
Can Apple TV play Dolby Atmos from Jellyfin?
Yes, if the source track is Dolby Digital Plus with Atmos (E-AC-3 JOC) — tvOS decodes it correctly and a compatible receiver reconstructs the height channels. A TrueHD Atmos track plays back too, but Apple TV decodes it down to flat surround PCM instead of passing the Atmos layer through, per Apple's own support discussions.
Why does Jellyfin transcode my TrueHD or DTS track even though my TV supports it?
Jellyfin transcodes based on what the client declares, not what your TV or receiver can do. If the client's passthrough toggle for that codec is off, or it can't bitstream the codec at all (browsers, every current Jellyfin client on Apple TV), the server decodes the audio itself, per Jellyfin's transcoding docs.
Does Swiftly Player support Atmos or DTS passthrough?
No, not to an external receiver. Swiftly plays TrueHD, DTS and MLP through its VLC-based player, which decodes them on-device, and that's enough to avoid a server-side transcode. For a bitstream reaching your AV receiver, use a client with real passthrough, such as the official Jellyfin Android TV app or Kodi, on an Android TV box.
What's the practical difference between TrueHD Atmos and Dolby Digital Plus Atmos?
TrueHD is lossless with a much higher bitrate and carries Atmos as objects extracted from its own 7.1 bed. DD+ Atmos is lossy, runs at a fraction of the bitrate, and carries Atmos through Joint Object Coding folded into the DD+ stream. Both give an accurate height mix; TrueHD needs eARC and a bitstream-capable device, while DD+ Atmos survives compression and older ARC connections fine, per the format comparison cited above.
Can I get TrueHD passthrough on a Fire TV Stick?
Only on specific models. The Fire TV Cube (3rd generation) and Fire TV 4K Max gained DTS, DTS-HD and Dolby TrueHD passthrough through a software update; cheaper Stick models are generally limited to Dolby Atmos for a handful of streaming apps.
Does a soundbar connected over plain ARC support Dolby Atmos?
Only the Dolby Digital Plus version. Plain ARC has enough bandwidth for compressed formats including DD+ Atmos, but not for the higher-bitrate TrueHD Atmos or DTS:X streams — both need an eARC connection on the TV and the soundbar, per comparisons of the two standards.
Summary
- Passthrough sends the original bitstream to a receiver that decodes it; decoding does that work on the source device and sends plain PCM instead. Lossless formats sound the same either way — the real difference is object-based height metadata and channel limits.
- Apple TV cannot bitstream TrueHD or any DTS variant in current tvOS. It decodes DD+ Atmos correctly but flattens TrueHD Atmos and DTS:X to surround PCM. A tvOS 26 API may change this for apps that adopt it, but no Jellyfin client does yet.
- Nvidia Shield, capable Fire TV models, most Android TV boxes and any PC over HDMI can bitstream TrueHD and DTS if the receiver and settings support it.
- eARC, not plain ARC, is required for TrueHD Atmos or DTS:X to reach a soundbar as a bitstream.
- The official Jellyfin Android TV app and Kodi have real per-codec passthrough toggles. Swiftly Player and browsers decode locally instead, which still avoids a server transcode but sends PCM, not a bitstream, to your receiver.
- Jellyfin transcodes audio when the connecting client doesn't declare support for the codec, channel count exceeds the device profile, or a passthrough toggle is off — the same Direct Play / Direct Stream / Transcode logic Jellyfin uses for video.


