hdmi passthrough

as far as i know, the nano should be hdmi 2.0, so should be capable of passung through atmos/dts:x audio, but i really can’t seem to find how
i successfully built kodi (that’s what i want to use), disabled pulse (which afaik can’t passthrough atmos/dts:x) but all i hear when i play a dts:x (or dts-ma, the same) or atmos (or dolby truehd, the same) audio is a popping sound. i played a little with alsa and can hear audio through hdmi, but no hd audio… could someone help?


Kodi uses ffmpeg as a back-end which is not hardware accelerated on Nano (yet). I doubt you would get a full frame-rate playing back 4k 10 bit video anyway (I assume that’s what your audio is paired with), even if the nano’s hardware is capable of it.

Totem is a gstreamer based player that may work if you build it from source and modify it to use nvidia’s accelerated components. Or you could use gst-launch-1.0 directly. Here is page on sinks you would need for audio passthrough.

matroskademux is what you need to demux mkv (assuming that’s your container).

Here is a link to nvidia’s accelerated video components you would need to decode and display teh 10 bit HEVC (assuming, again, that’s what’s in your container)

Here is an example directly from nvidia:

gst-launch-1.0 filesrc location=<filename_10bit.mkv> ! \
matroskademux ! queue ! h265parse ! nvv4l2decoder ! nvvidconv ! \
'video/x-raw(memory:NVMM), format=(string)NV12' ! nv3dsink -e

…but that’s without the audio. The audio you can find examples of elsewhere on the internet such as in GStreamer’s official documentation.

Happy time shifting!

Well, right now 1080p is enough for me… What I’d like is to be able to use my surround system with more than 2 channels, which is what I have right now with pulse disabled

Without hardware decoding, it won’t be able to do 1080p either. Even on x86 you’re likely to drop frames with software decoding unless you have a powerful cpu.

gst-launch or custom gstreamer applications using nvidia’s accelerated components instead of the stock ones are likely your only option for the moment. For audio, using the direct passthrough linked to above should work. If and when Nvidia patches ffmpeg, nearly every existing app will work, including Kodi.

I’m puzzled as to why it hasn’t been done already. Gstreamer was an odd choice, IMO as so few things are built on top of it. It has a lot of potential and extremely flexible, but it’s never been very popular comparatively. Kodi running on the nano would be perfect for set-top boxes, especially with the Nano’s 4k video decode capabilities. Skinning Kodi is a lot less work than writing a custom player in GStreamer, even if it’s not that hard.

well, again, i built kodi and 1080p seems to be just perfect, i didn’t see any dropped frame (yet) and right now i don’t have 4k tv, so i couldn’t try 4k content.
so, back to the original question, how to make alsa passthrough dts-ma/dolby truehd tracks?

I’m genuinely shocked if it can play 1080p in software. As to how to pass through, if you have disabled pulse (or built a recent version), you should just be able to switch to expert in Kodi, select your receiver as an audio output device, turn on passthrough, select the receiver as the passthrough device, and check the boxes for your audio capabilities. I haven’t specifically tested it on nano, but it should be the same procedure as in x86 Linux.

If you’re doing the same thing and it doesn’t work, does a regular dts/dolby digital stream work for you via passthrough?

well, i just set autospawn to no so that pulse didn’t start and setup the default audio device to tegrahdmi (no device named as the surround system) and it outputs only noise on truehd/ma tracks.
now i completely purged pulse (i really don’t need it as i don’t need a desktop for my use), will see if something changes. if nothing changes, i’m going to build pulseaudio 13.0 (the first to support truehd/ma tracks) and see. Will let you know

btw, right now i’m using jetpack (without the desktop) and it runs just fine, before i tried debian but the interface was lacking acceleration and the playback was a pain, but with an enlightened jetpack all seems fine

Ok, just built pulse 13.0, and finally I got spassthrough audio, thanks a lot

Glad you solved it. Nice to know that fixes it.

Hi, any chance you could share a sample pipeline (using gst-launch-1.0) that works with audio passhthrough for you? I’m struggling to get it to work here. Thanks!

Hi simon2,

Please help to open a new topic for your issue. Thanks