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)
- 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:
- 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://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
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:
- DSD (One Bit Audio aka SACD)
- 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.
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 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|
|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||188.8.131.52||Alsa 1.0.24||X||X||X||X||Shows 8, but only 2 works||-||-||-|
|nVidia GT430 (Asus ENGT430)||Marantz SR5005||184.108.40.206||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|