User Manual:HDAudioPassthrough

From MythTV Official Wiki
Revision as of 11:54, 27 February 2011 by Jyavenard (talk | contribs)

Jump to: navigation, search

MythTV trunk from December 5th 2010 supports HD audio passthrough

Those are preliminary information on how to enable HD audio passthrough over HDMI (currenly E-AC3, DTS-HD Hi-Res, TrueHD and DTS-HD MA).

Not all video cards are equals. You need a video card with built-in audio chipset, and hdmi port. Additionally, for TrueHD and DTS-HD MA it has support to HBR (high bit-rate).

Dolby Digital Plus (E-AC3) and DTS-HD Hi-Res

To support DD+ and DTS-HD HR ; your audio card must support stereo output at 192kHz.

Audio/Video cards known to support it:

  • ION and 9400M IGP : provided you use a kernel newer than 2.6.32 (it is not supported in kernel 2.6.31 and earlier)
  • ION2
  • nVidia GT2xx
  • nVidia GT4xx
  • nVidia GT5xx
  • Some Intel HDMI graphics chipsets (in particular IbexPeak (0x80862804), CougarPoint)

Audio/Video cards known not to support it

  • Most ATI card (many only support 48kHz)
  • Intel HDMI graphics chipsets Cantiga, Eaglelake

To check for actual support, run mythfrontend and go into Setup -> Audio. If the E-AC3/DTS-HD flag is enabled, it is likely that your audio card supports it. Remember you must use an HDMI connection. Optical or coaxial SPDIF will *not* work.

TrueHD and DTS-HD MA support

For your audio card to support loss-less HD audio passthrough (TrueHD and DTS-HD MA), your audio card has to support HBR.<br. You can check DTS-HD/TrueHD support on Linux by checking for "HBR" text in "Pincap" line in /proc/asound/cardX/codec#Y. This doesn't guarantee in any way that your audio card will support HBR ; but if you don't have it, it's very unlikely that it does.

Chips known *not* to support HBR:

  • ION first generation
  • nVidia 9400M IGP
  • nVidia 8xxx, 9xxx

Chips known to support HBR:

  • ION2
  • nVidia GT4xx
  • nVidia GT5xx

Though not officially supported, HBR works to some extent with nVidia GT2xx ; your mileage may vary. It is highly dependent of the combination between audio processor/amplifier and video card.

You'll need a recent linux kernel (>= 2.6.36) that contains the required ALSA drivers (>= 1.0.24. Version can be found in /proc/asound/version).

Alternatively, Ubuntu users can grab the latest backported drivers from the daily ASLA ppa

Or the latest ALSA drivers can be compiled from the git repository

git clone git://git.alsa-project.org/alsa-driver.git alsa-driver 
git clone git://git.alsa-project.org/alsa-kmirror.git alsa-kmirror 
cd alsa-driver
./gitcompile
sudo make install

Alsa library 1.0.23 is the required minimum. However if you had to mess with the device name to get basic audio working, it is strongly recommended you get a new version as otherwise you will likely have to mess with alsa configuration file.

git clone git://git.alsa-project.org/alsa-lib.git alsa-lib
cd alsa-lib
./git-compile
sudo make install

Checking your TV / Amplifier / Audio Processor capabilities

For HDA Intel audio device (used pretty much for all HDMI devices), recent version of linux kernel or alsa, it is usually possible to retrieve what your audio processing capabilities are:

The file is located in /proc/asound/cardX/eld#Y.0 (where X is the card number, and Y is the device number starting from 0. So if aplay -l shows Card 0, device 3 as being the first device listed you need to check /proc/asound/card0/eld#0.0).

eld standard for "EDID like Data" and would look like:

monitor_present		1
eld_valid		1
monitor_name		SP32        
connection_type		HDMI
eld_version		[0x2] CEA-861D or below
edid_version		[0x3] CEA-861-B, C or D
manufacture_id		0x294d
product_id		0x214f
port_id			0x10000
support_hdcp		0
support_ai		0
audio_sync_delay	0
speakers		[0x7f] FL/FR LFE FC RL/RR RC FLC/FRC RLC/RRC
sad_count		6
sad0_coding_type	[0x1] LPCM
sad0_channels		8
sad0_rates		[0x1ee0] 44100 48000 88200 176400 192000 384000
sad0_bits		[0xe0000] 16 20 24
sad1_coding_type	[0x2] AC-3
sad1_channels		6
sad1_rates		[0x1ee0] 44100 48000 88200 176400 192000 384000
sad1_max_bitrate	1536000
sad2_coding_type	[0x7] DTS
sad2_channels		6
sad2_rates		[0x1ee0] 44100 48000 88200 176400 192000 384000
sad2_max_bitrate	1536000
sad3_coding_type	[0xb] DTS-HD
sad3_channels		8
sad3_rates		[0x1ee0] 44100 48000 88200 176400 192000 384000
sad4_coding_type	[0xa] E-AC-3/DD+ (Dolby Digital Plus)
sad4_channels		8
sad4_rates		[0x1ee0] 44100 48000 88200 176400 192000 384000
sad5_coding_type	[0xc] MLP (Dolby TrueHD)
sad5_channels		8
sad5_rates		[0x1ee0] 44100 48000 88200 176400 192000 384000


This indicates that your amplifier supports 8 channels LPCM, AC3, DTS, DTS-HD, E-AC3 and TrueHD.

Summary of working / non-working know solution

Thank you for contributing with the information below.

  • eld indicates if the eld#Y.0 file exists in /proc/asound/cardX exists
  • HBR: is a flag that would appear in the eld file above. Put - if eld doesn't exist, or HBR isn't mentioed
  • LPCM: If eld exists, enter the number of channels in the LPCM section. If the eld file doesn't exist, enter the maximum number of channels as reported by alsa. You can get this information running mythfrontend with -v audio.


Audio Card Amplifier/Processor Linux Version Alsa Version eld file present HBR AC3 DTS LPCM (number of channels) DTS-HD E-AC3 TrueHD
Example Procesor 2.8.24 1.0.78 X X X X 8 - X -
nVidia 9400M Yamaha SP-4000 soundbar 2.6.32 1.0.23 - - X X Shows 8, but only 2 works - - -
nVidia GT220 Yamaha SP-4000 soundbar 2.6.32 1.0.23 X X X X 2 - - -
nVidia GT430 Primare SP-32 2.6.32 Alsa git as of 20101214 X X X X 8 X X X
nVidia GT220 Primare SP-32 2.6.32 Alsa git as of 20101214 X X X X 8 (< 6.411Mbit/s only) X X
nVidia GT218 (MSI N210-MD512H) Pioneer VSX-1120 2.6.35 1.0.23+dfsg-1ubuntu4 X codec:yes, eld:no X X 8 X X X
nVidia GT430 Onkyo TX-NR807 2.6.30 Alsa git as of 20101119 X X X X 8 X X X