User Manual:HDAudioPassthrough

From MythTV Official Wiki
Revision as of 04:03, 14 December 2014 by P8zmyth (talk | contribs) (Summary of working / non-working known solution)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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.
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 to support HBR:

  • ION2
  • nVidia GT4xx
  • nVidia GT5xx

Chips known not to support HBR:

  • ION first generation
  • nVidia 9400M IGP
  • nVidia GT2xx (*)
  • nVidia 8xxx, 9xxx

(*) 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:// alsa-driver 
git clone git:// alsa-kmirror 
cd alsa-driver
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:// alsa-lib
cd alsa-lib
sudo make install

Checking your TV / Amplifier / Audio Processor capabilities

With ALSA 1.0.25 or later, Linux kernel 3.3 or later

Provided your hdmi device (TV or amp) was powered on before your PC started, Myth can display the audio capabilities of the device.

Go into Setup -> Audio. Select one of the ALSA:hdmi audio output device. In the description section, it will show the name of the connected device as well as the list of all the digital codec supported being one of the following:

  • undefined
  • LPCM
  • AC3
  • MPEG1
  • MP3
  • MPEG2
  • AAC-LC
  • DTS
  • DSD (One Bit Audio aka SACD)
  • E-AC3
  • DTS-HD
  • TrueHD
  • DST
  • WMAPro
  • HE-AAC
  • HE-AACv2
  • MPEG Surround

As of Myth 0.25, only LPCM, AC3, DTS, DTS-HD and TrueHD are supported, with the caveats mentioned in the earlier section.

When connected to a Primare SP32 amplifier: HDAudioScreen.png

When connected to a Yamaha SP-4000 soundbar (connected to a Sony TV): HDAudioScreen2.png

If the description contains the word "guessing: ..."; then myth hasn't been able to retrieve information from the TV or amp. Digital bitstreaming isn't guaranteed to work under those circumstances


For earlier audio drivers

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 known 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 mentioned
  • 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 GT218 Philips (TV) 55PFL5705D/F7 3.2.0 1.0.24 X - - - 2 - - -
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
nVidia GT330M (Macbook Pro 15" w/Ubuntu) Primare SP-32 2.6.35 Alsa 1.0.24 X X X X 8 (< 6.411Mbit/s only) X X
nVidia GT220 (ECS NSGT220-1GQS-H) Marantz SR5005 Alsa 1.0.24 X X X X Shows 8, but only 2 works - - -
nVidia GT430 (Asus ENGT430) Marantz SR5005 Alsa 1.0.24 X X X X 8 X X X
nVidia GT520 (Asus ENGT520) Marantz SR5005 2.6.38 Alsa 1.0.24 X X X X 8 X X X
nVidia GT520 Onkyo TX-NR709 2.6.38 Alsa 1.0.24 X X X X 8 X X X
nVidia GT218 Onkyo TX-SR608 - - X X X X 8 (< 6.411Mbit/s only) X -
nVidia GT218 Onkyo HT-R290 3.2.0 1.0.24 X X X X 8 (< 6.411Mbit/s only) X -
Intel CougarPoint Pioneer vsx-1021-k k3.16.2 same as kernel yes no yes yes 8 no yes no