alsa: Add extra HDMI mappings

Remove extra-hdmi.conf, as the performance reasons behind it are invalid
Add 7.1 profiles
Add extra HDMI devices, for a total of 8
Add DTS-encoded profiles (they need dcaenc from git)

Signed-off-by: Alexander E. Patrakov <patrakov@gmail.com>
This commit is contained in:
Alexander E. Patrakov 2014-08-01 14:37:25 +06:00 committed by David Henningsson
parent 69fae3e33a
commit afbe9605c6
10 changed files with 344 additions and 177 deletions

View file

@ -1205,7 +1205,6 @@ modlibexec_LTLIBRARIES += \
dist_alsaprofilesets_DATA = \ dist_alsaprofilesets_DATA = \
modules/alsa/mixer/profile-sets/default.conf \ modules/alsa/mixer/profile-sets/default.conf \
modules/alsa/mixer/profile-sets/extra-hdmi.conf \
modules/alsa/mixer/profile-sets/force-speaker.conf \ modules/alsa/mixer/profile-sets/force-speaker.conf \
modules/alsa/mixer/profile-sets/force-speaker-and-int-mic.conf \ modules/alsa/mixer/profile-sets/force-speaker-and-int-mic.conf \
modules/alsa/mixer/profile-sets/maudio-fasttrack-pro.conf \ modules/alsa/mixer/profile-sets/maudio-fasttrack-pro.conf \
@ -1254,7 +1253,11 @@ dist_alsapaths_DATA = \
modules/alsa/mixer/paths/hdmi-output-0.conf \ modules/alsa/mixer/paths/hdmi-output-0.conf \
modules/alsa/mixer/paths/hdmi-output-1.conf \ modules/alsa/mixer/paths/hdmi-output-1.conf \
modules/alsa/mixer/paths/hdmi-output-2.conf \ modules/alsa/mixer/paths/hdmi-output-2.conf \
modules/alsa/mixer/paths/hdmi-output-3.conf modules/alsa/mixer/paths/hdmi-output-3.conf \
modules/alsa/mixer/paths/hdmi-output-4.conf \
modules/alsa/mixer/paths/hdmi-output-5.conf \
modules/alsa/mixer/paths/hdmi-output-6.conf \
modules/alsa/mixer/paths/hdmi-output-7.conf
endif endif

View file

@ -0,0 +1,10 @@
[General]
description = HDMI / DisplayPort 5
priority = 55
eld-device = 10
[Properties]
device.icon_name = video-display
[Jack HDMI/DP,pcm=10]
required = ignore

View file

@ -0,0 +1,10 @@
[General]
description = HDMI / DisplayPort 6
priority = 54
eld-device = 11
[Properties]
device.icon_name = video-display
[Jack HDMI/DP,pcm=11]
required = ignore

View file

@ -0,0 +1,10 @@
[General]
description = HDMI / DisplayPort 7
priority = 53
eld-device = 12
[Properties]
device.icon_name = video-display
[Jack HDMI/DP,pcm=12]
required = ignore

View file

@ -0,0 +1,10 @@
[General]
description = HDMI / DisplayPort 8
priority = 52
eld-device = 13
[Properties]
device.icon_name = video-display
[Jack HDMI/DP,pcm=13]
required = ignore

View file

@ -23,10 +23,6 @@ SUBSYSTEMS=="usb", GOTO="pulseaudio_check_usb"
SUBSYSTEMS=="platform", DRIVERS=="thinkpad_acpi", ENV{PULSE_IGNORE}="1" SUBSYSTEMS=="platform", DRIVERS=="thinkpad_acpi", ENV{PULSE_IGNORE}="1"
# NVidia and Intel HDAs often have more than one HDMI codec/port on the same card
ATTRS{vendor}=="0x10de", ENV{PULSE_PROFILE_SET}="extra-hdmi.conf"
ATTRS{vendor}=="0x8086", ENV{PULSE_PROFILE_SET}="extra-hdmi.conf"
# Force enable speaker and internal mic for some laptops # Force enable speaker and internal mic for some laptops
# This should only be necessary for kernels 3.3, 3.4 and 3.5 (as they are lacking the phantom jack kctls). # This should only be necessary for kernels 3.3, 3.4 and 3.5 (as they are lacking the phantom jack kctls).
# Acer AOA150 # Acer AOA150

View file

@ -193,11 +193,260 @@ priority = 3
direction = output direction = output
[Mapping hdmi-stereo] [Mapping hdmi-stereo]
description = Digital Stereo (HDMI)
device-strings = hdmi:%f device-strings = hdmi:%f
paths-output = hdmi-output-0
channel-map = left,right channel-map = left,right
priority = 4 priority = 4
direction = output direction = output
[Mapping hdmi-surround]
description = Digital Surround 5.1 (HDMI)
device-strings = hdmi:%f
paths-output = hdmi-output-0 paths-output = hdmi-output-0
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe
priority = 3
direction = output
[Mapping hdmi-surround71]
description = Digital Surround 7.1 (HDMI)
device-strings = hdmi:%f
paths-output = hdmi-output-0
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe,side-left,side-right
priority = 3
direction = output
[Mapping hdmi-dts-surround]
description = Digital Surround 5.1 (HDMI/DTS)
device-strings = dcahdmi:%f
paths-output = hdmi-output-0
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe
priority = 1
direction = output
[Mapping hdmi-stereo-extra1]
description = Digital Stereo (HDMI 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 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-surround71-extra1]
description = Digital Surround 7.1 (HDMI 2)
device-strings = hdmi:%f,1
paths-output = hdmi-output-1
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe,side-left,side-right
priority = 1
direction = output
[Mapping hdmi-dts-surround-extra1]
description = Digital Surround 5.1 (HDMI 2/DTS)
device-strings = dcahdmi:%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 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 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-surround71-extra2]
description = Digital Surround 7.1 (HDMI 3)
device-strings = hdmi:%f,2
paths-output = hdmi-output-2
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe,side-left,side-right
priority = 1
direction = output
[Mapping hdmi-dts-surround-extra2]
description = Digital Surround 5.1 (HDMI 3/DTS)
device-strings = dcahdmi:%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 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 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
[Mapping hdmi-surround71-extra3]
description = Digital Surround 7.1 (HDMI 4)
device-strings = hdmi:%f,3
paths-output = hdmi-output-3
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe,side-left,side-right
priority = 1
direction = output
[Mapping hdmi-dts-surround-extra3]
description = Digital Surround 5.1 (HDMI 4/DTS)
device-strings = dcahdmi:%f,3
paths-output = hdmi-output-3
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe
priority = 1
direction = output
[Mapping hdmi-stereo-extra4]
description = Digital Stereo (HDMI 5)
device-strings = hdmi:%f,4
paths-output = hdmi-output-4
channel-map = left,right
priority = 2
direction = output
[Mapping hdmi-surround-extra4]
description = Digital Surround 5.1 (HDMI 5)
device-strings = hdmi:%f,4
paths-output = hdmi-output-4
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe
priority = 1
direction = output
[Mapping hdmi-surround71-extra4]
description = Digital Surround 7.1 (HDMI 5)
device-strings = hdmi:%f,4
paths-output = hdmi-output-4
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe,side-left,side-right
priority = 1
direction = output
[Mapping hdmi-dts-surround-extra4]
description = Digital Surround 5.1 (HDMI 5/DTS)
device-strings = dcahdmi:%f,4
paths-output = hdmi-output-4
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe
priority = 1
direction = output
[Mapping hdmi-stereo-extra5]
description = Digital Stereo (HDMI 6)
device-strings = hdmi:%f,5
paths-output = hdmi-output-5
channel-map = left,right
priority = 2
direction = output
[Mapping hdmi-surround-extra5]
description = Digital Surround 5.1 (HDMI 6)
device-strings = hdmi:%f,5
paths-output = hdmi-output-5
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe
priority = 1
direction = output
[Mapping hdmi-surround71-extra5]
description = Digital Surround 7.1 (HDMI 6)
device-strings = hdmi:%f,5
paths-output = hdmi-output-5
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe,side-left,side-right
priority = 1
direction = output
[Mapping hdmi-dts-surround-extra5]
description = Digital Surround 5.1 (HDMI 6/DTS)
device-strings = dcahdmi:%f,5
paths-output = hdmi-output-5
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe
priority = 1
direction = output
[Mapping hdmi-stereo-extra6]
description = Digital Stereo (HDMI 7)
device-strings = hdmi:%f,6
paths-output = hdmi-output-6
channel-map = left,right
priority = 2
direction = output
[Mapping hdmi-surround-extra6]
description = Digital Surround 5.1 (HDMI 7)
device-strings = hdmi:%f,6
paths-output = hdmi-output-6
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe
priority = 1
direction = output
[Mapping hdmi-surround71-extra6]
description = Digital Surround 7.1 (HDMI 7)
device-strings = hdmi:%f,6
paths-output = hdmi-output-6
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe,side-left,side-right
priority = 1
direction = output
[Mapping hdmi-dts-surround-extra6]
description = Digital Surround 5.1 (HDMI 7/DTS)
device-strings = dcahdmi:%f,6
paths-output = hdmi-output-6
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe
priority = 1
direction = output
[Mapping hdmi-stereo-extra7]
description = Digital Stereo (HDMI 8)
device-strings = hdmi:%f,7
paths-output = hdmi-output-7
channel-map = left,right
priority = 2
direction = output
[Mapping hdmi-surround-extra7]
description = Digital Surround 5.1 (HDMI 8)
device-strings = hdmi:%f,7
paths-output = hdmi-output-7
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe
priority = 1
direction = output
[Mapping hdmi-surround71-extra7]
description = Digital Surround 7.1 (HDMI 8)
device-strings = hdmi:%f,7
paths-output = hdmi-output-7
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe,side-left,side-right
priority = 1
direction = output
[Mapping hdmi-dts-surround-extra7]
description = Digital Surround 5.1 (HDMI 8/DTS)
device-strings = dcahdmi:%f,7
paths-output = hdmi-output-7
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe
priority = 1
direction = output
; An example for defining multiple-sink profiles ; An example for defining multiple-sink profiles
#[Profile output:analog-stereo+output:iec958-stereo+input:analog-stereo] #[Profile output:analog-stereo+output:iec958-stereo+input:analog-stereo]

View file

@ -1,171 +0,0 @@
# 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-lineout analog-output-speaker analog-output-desktop-speaker analog-output-headphones analog-output-headphones-2 analog-output-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 analog-input-headset-mic
priority = 1
[Mapping analog-stereo]
device-strings = front:%f hw:%f
channel-map = left,right
paths-output = analog-output analog-output-lineout analog-output-speaker analog-output-desktop-speaker analog-output-headphones analog-output-headphones-2
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 analog-input-headphone-mic analog-input-headset-mic
priority = 10
[Mapping analog-surround-21]
device-strings = surround21:%f
channel-map = front-left,front-right,lfe
paths-output = analog-output analog-output-speaker analog-output-desktop-speaker
priority = 8
direction = output
[Mapping analog-surround-40]
device-strings = surround40:%f
channel-map = front-left,front-right,rear-left,rear-right
paths-output = analog-output analog-output-lineout analog-output-speaker analog-output-desktop-speaker
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-lineout analog-output-speaker analog-output-desktop-speaker
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-lineout analog-output-speaker analog-output-desktop-speaker
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-lineout analog-output-speaker analog-output-desktop-speaker
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-lineout analog-output-speaker analog-output-desktop-speaker
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 iec958-dts-surround-51]
device-strings = dca:%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 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 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 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 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 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 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

View file

@ -116,11 +116,36 @@ priority = 3
direction = output direction = output
[Mapping hdmi-stereo] [Mapping hdmi-stereo]
description = Digital Stereo (HDMI)
device-strings = hdmi:%f device-strings = hdmi:%f
paths-output = hdmi-output-0
channel-map = left,right channel-map = left,right
priority = 4 priority = 4
direction = output direction = output
[Mapping hdmi-surround]
description = Digital Surround 5.1 (HDMI)
device-strings = hdmi:%f
paths-output = hdmi-output-0 paths-output = hdmi-output-0
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe
priority = 3
direction = output
[Mapping hdmi-surround71]
description = Digital Surround 7.1 (HDMI)
device-strings = hdmi:%f
paths-output = hdmi-output-0
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe,side-left,side-right
priority = 3
direction = output
[Mapping hdmi-dts-surround]
description = Digital Surround 5.1 (HDMI/DTS)
device-strings = dcahdmi:%f
paths-output = hdmi-output-0
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe
priority = 1
direction = output
; An example for defining multiple-sink profiles ; An example for defining multiple-sink profiles
#[Profile output:analog-stereo+output:iec958-stereo+input:analog-stereo] #[Profile output:analog-stereo+output:iec958-stereo+input:analog-stereo]

View file

@ -115,11 +115,36 @@ priority = 3
direction = output direction = output
[Mapping hdmi-stereo] [Mapping hdmi-stereo]
description = Digital Stereo (HDMI)
device-strings = hdmi:%f device-strings = hdmi:%f
paths-output = hdmi-output-0
channel-map = left,right channel-map = left,right
priority = 4 priority = 4
direction = output direction = output
[Mapping hdmi-surround]
description = Digital Surround 5.1 (HDMI)
device-strings = hdmi:%f
paths-output = hdmi-output-0 paths-output = hdmi-output-0
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe
priority = 3
direction = output
[Mapping hdmi-surround71]
description = Digital Surround 7.1 (HDMI)
device-strings = hdmi:%f
paths-output = hdmi-output-0
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe,side-left,side-right
priority = 3
direction = output
[Mapping hdmi-dts-surround]
description = Digital Surround 5.1 (HDMI/DTS)
device-strings = dcahdmi:%f
paths-output = hdmi-output-0
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe
priority = 1
direction = output
; An example for defining multiple-sink profiles ; An example for defining multiple-sink profiles
#[Profile output:analog-stereo+output:iec958-stereo+input:analog-stereo] #[Profile output:analog-stereo+output:iec958-stereo+input:analog-stereo]