On 11/17/2011 10:14 PM, Kelly Anderson wrote:
Hi,
I finally got around to working out the kinks to pass-through
high-definition audio
in Xbmc. Funny how long it took me to get back to it. I was re-reading some
emails on the list from way back in March and one of the emails turned
me on to
a proper solution. One thing that I wasn't able to do was to get PulseAudio
to pass-through 8 channel audio when the device's sink was set as
hdmi-stereo.
So I patched PulseAudio 1.1 for hdmi-surround-71 and lo and behold it
worked.
Here's a patch, hopefully we can get this added in the next official
release
of PulseAudio. I know that there are quite a few Xbmc users that have
been anxiously
waiting for high-definition audio pass-through to work correctly. Of
course if someone
has a better solution, that would be fine too.
--- ./src/modules/alsa/mixer/profile-sets/default.conf.orig 2011-10-20
06:54:16.000000000 -0600
+++ ./src/modules/alsa/mixer/profile-sets/default.conf 2011-11-17
02:16:00.038900536 -0700
@@ -173,6 +173,12 @@ channel-map = left,right
priority = 4
direction = output
+[Mapping hdmi-surround-71]
+device-strings = hdmi:%f
+channel-map =
front-left,front-right,rear-left,rear-right,front-center,lfe,side-left,side-right
I've been experimenting with enabling such stuff in Ubuntu, but never
got any positive or negative feedback about it. FYI, I'm attaching what
we're shipping for Nvidia and Intel (as part of the jack detection
stuff) in Ubuntu 11.10.
And Colin, you're right: this isn't passthrough, this is multichannel PCM.
--
David Henningsson, Canonical Ltd.
http://launchpad.net/~diwic
# This file is part of PulseAudio.
#
# PulseAudio is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation; either version 2.1 of the
# License, or (at your option) any later version.
#
# PulseAudio is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with PulseAudio; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
; This is a profile for Nvidia and Intel cards - some cards have four HDMI
codecs,
; and which ones are working seems to vary a lot between GPU boards. In
addition,
; Nvidia and Intel make southbridges as well, so we need to keep the existing
; analog profiles.
; (And by not adding all these extra profiles to default.conf, we make sure
; there is no performance hit for non-Nvidia/Intel cards.)
[General]
auto-profiles = yes
[Mapping analog-mono]
device-strings = hw:%f
channel-map = mono
paths-output = analog-output analog-output-speaker
analog-output-desktop-speaker analog-output-headphones
analog-output-headphones-2 analog-output-mono analog-output-lfe-on-mono
paths-input = analog-input-front-mic analog-input-rear-mic
analog-input-internal-mic analog-input-dock-mic analog-input analog-input-mic
analog-input-linein analog-input-aux analog-input-video analog-input-tvtuner
analog-input-fm analog-input-mic-line
priority = 1
[Mapping analog-stereo]
device-strings = front:%f hw:%f
channel-map = left,right
paths-output = analog-output analog-output-speaker
analog-output-desktop-speaker analog-output-headphones
analog-output-headphones-2 analog-output-mono analog-output-lfe-on-mono
paths-input = analog-input-front-mic analog-input-rear-mic
analog-input-internal-mic analog-input-dock-mic analog-input analog-input-mic
analog-input-linein analog-input-aux analog-input-video analog-input-tvtuner
analog-input-fm analog-input-mic-line
priority = 10
[Mapping analog-surround-40]
device-strings = surround40:%f
channel-map = front-left,front-right,rear-left,rear-right
paths-output = analog-output analog-output-speaker
analog-output-desktop-speaker analog-output-lfe-on-mono
priority = 7
direction = output
[Mapping analog-surround-41]
device-strings = surround41:%f
channel-map = front-left,front-right,rear-left,rear-right,lfe
paths-output = analog-output analog-output-speaker
analog-output-desktop-speaker analog-output-lfe-on-mono
priority = 8
direction = output
[Mapping analog-surround-50]
device-strings = surround50:%f
channel-map = front-left,front-right,rear-left,rear-right,front-center
paths-output = analog-output analog-output-speaker
analog-output-desktop-speaker analog-output-lfe-on-mono
priority = 7
direction = output
[Mapping analog-surround-51]
device-strings = surround51:%f
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe
paths-output = analog-output analog-output-speaker
analog-output-desktop-speaker analog-output-lfe-on-mono
priority = 8
direction = output
[Mapping analog-surround-71]
device-strings = surround71:%f
channel-map =
front-left,front-right,rear-left,rear-right,front-center,lfe,side-left,side-right
description = Analog Surround 7.1
paths-output = analog-output analog-output-speaker
analog-output-desktop-speaker analog-output-lfe-on-mono
priority = 7
direction = output
[Mapping iec958-stereo]
device-strings = iec958:%f
channel-map = left,right
paths-input = iec958-stereo-input
paths-output = iec958-stereo-output
priority = 5
[Mapping iec958-ac3-surround-40]
device-strings = a52:%f
channel-map = front-left,front-right,rear-left,rear-right
priority = 2
direction = output
[Mapping iec958-ac3-surround-51]
device-strings = a52:%f
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe
priority = 3
direction = output
[Mapping hdmi-stereo]
device-strings = hdmi:%f
description = Digital Stereo (HDMI)
paths-output = hdmi-output-0
channel-map = left,right
priority = 4
direction = output
[Mapping hdmi-surround]
description = Digital Surround 5.1 (HDMI)
device-strings = hdmi:%f
paths-output = hdmi-output-0
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe
priority = 3
direction = output
[Mapping hdmi-stereo-extra1]
description = Digital Stereo (HDMI) nr 2
device-strings = hdmi:%f,1
paths-output = hdmi-output-1
channel-map = left,right
priority = 2
direction = output
[Mapping hdmi-surround-extra1]
description = Digital Surround 5.1 (HDMI) nr 2
device-strings = hdmi:%f,1
paths-output = hdmi-output-1
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe
priority = 1
direction = output
[Mapping hdmi-stereo-extra2]
description = Digital Stereo (HDMI) nr 3
device-strings = hdmi:%f,2
paths-output = hdmi-output-2
channel-map = left,right
priority = 2
direction = output
[Mapping hdmi-surround-extra2]
description = Digital Surround 5.1 (HDMI) nr 3
device-strings = hdmi:%f,2
paths-output = hdmi-output-2
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe
priority = 1
direction = output
[Mapping hdmi-stereo-extra3]
description = Digital Stereo (HDMI) nr 4
device-strings = hdmi:%f,3
paths-output = hdmi-output-3
channel-map = left,right
priority = 2
direction = output
[Mapping hdmi-surround-extra3]
description = Digital Surround 5.1 (HDMI) nr 4
device-strings = hdmi:%f,3
paths-output = hdmi-output-3
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe
priority = 1
direction = output
[General]
name = HDMI
[Jack_InputDevice]
name =,pcm=3
code = VideoOut
[General]
name = HDMI 2
[Jack_InputDevice]
name =,pcm=7
code = VideoOut
[General]
name = HDMI 3
[Jack_InputDevice]
name =,pcm=8
code = VideoOut
[General]
name = HDMI 4
[Jack_InputDevice]
name =,pcm=9
code = VideoOut
_______________________________________________
pulseaudio-discuss mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss