[pulseaudio-discuss] Autocreate both HDMI and analog sink when detecting audiocard

Lode Cools lode.cools1 at gmail.com
Mon May 30 14:06:57 UTC 2016


I think this problem is a variation on the "under-enumeration"
discussion which was held earlier.

https://lists.freedesktop.org/archives/pulseaudio-discuss/2010-August/007545.html

ftp://download.nvidia.com/XFree86/gpu-hdmi-audio-document/gpu-hdmi-audio.html#_under_enumeration_of_hdmi_devices

I think, currently, we do not have any other solution than to call
'load-module module-alsa-sink' if we want more than 1 sink on a card.
In my opinion, this is hack-ish since the PulseAudio documentation
itself mentions that this module should (almost) never be called
manually.

kind regards,
Lode

On Fri, May 27, 2016 at 4:11 PM, Lode Cools <lode.cools1 at gmail.com> wrote:
> Hello,
>
> I have a particular audio card which provides both analog and HDMI output.
>
>     CARDINFO:
>       CARDINFO{id}="PCH"
>       CARDINFO{card}="0"
>       CARDINFO{driver}="HDA-Intel"
>       CARDINFO{name}="HDA Intel PCH"
>       CARDINFO{longname}="HDA Intel PCH at 0xdf140000 irq 127"
>       CARDINFO{mixername}="Intel Skylake HDMI"
>       CARDINFO{components}="HDA:10ec0283,80862063,00100003
> HDA:80862809,80860101,00100000"
>     sysfs:
>       ATTR{class}="0x040300"
>       ATTR{driver}="snd_hda_intel"
>       ATTR{vendor}="0x8086"
>       ATTR{device}="0x9d70"
>       ATTR{subsystem_vendor}="0x8086"
>       ATTR{subsystem_device}="0x2063"
>
> Both outputs are working fine and I can play audio on both outputs
> independently.
> (eg. 'aplay song1.wav -D hdmi' and 'aplay song2.wav -D hw:0' can run
> simultaneously).
> So hardware-wise, everything seems fine.
>
> When PulseAudio detects the card (module-udev-detect) it realizes that
> the card can play on audio on
> analog and HDMI, because it creates various profiles.
>
>   1 card(s) available.
>     index: 0
>     name: <alsa_card.pci-0000_00_1f.3>
>     driver: <module-alsa-card.c>
>     owner module: 3
>     properties:
>         alsa.card = "0"
>         alsa.card_name = "HDA Intel PCH"
>         alsa.long_card_name = "HDA Intel PCH at 0xdf140000 irq 127"
>         alsa.driver_name = "snd_hda_intel"
>         device.bus_path = "pci-0000:00:1f.3"
>         sysfs.path = "/devices/pci0000:00/0000:00:1f.3/sound/card0"
>         device.bus = "pci"
>         device.vendor.id = "8086"
>         device.vendor.name = "Intel Corporation"
>         device.product.id = "9d70"
>         device.form_factor = "internal"
>         device.string = "0"
>         device.description = "Built-in Audio"
>         module-udev-detect.discovered = "1"
>         device.icon_name = "audio-card-pci"
>     profiles:
>         input:analog-stereo: Analog Stereo Input (priority 60,
> available: unknown)
>         output:analog-stereo: Analog Stereo Output (priority 6000,
> available: unknown)
>         output:analog-stereo+input:analog-stereo: Analog Stereo Duplex
> (priority 6060, available: unknown)
>         output:hdmi-stereo: Digital Stereo (HDMI) Output (priority
> 5400, available: unknown)
>         output:hdmi-stereo+input:analog-stereo: Digital Stereo (HDMI)
> Output + Analog Stereo Input (priority 5460, available: unknown)
>         output:hdmi-surround: Digital Surround 5.1 (HDMI) Output
> (priority 300, available: unknown)
>         output:hdmi-surround+input:analog-stereo: Digital Surround 5.1
> (HDMI) Output + Analog Stereo Input (priority 360, available: unknown)
>         output:hdmi-surround71: Digital Surround 7.1 (HDMI) Output
> (priority 300, available: unknown)
>         output:hdmi-surround71+input:analog-stereo: Digital Surround
> 7.1 (HDMI) Output + Analog Stereo Input (priority 360, available:
> unknown)
>         output:hdmi-stereo-extra1: Digital Stereo (HDMI 2) Output
> (priority 5200, available: unknown)
>         output:hdmi-stereo-extra1+input:analog-stereo: Digital Stereo
> (HDMI 2) Output + Analog Stereo Input (priority 5260, available:
> unknown)
>         output:hdmi-surround-extra1: Digital Surround 5.1 (HDMI 2)
> Output (priority 100, available: unknown)
>         output:hdmi-surround-extra1+input:analog-stereo: Digital
> Surround 5.1 (HDMI 2) Output + Analog Stereo Input (priority 160,
> available: unknown)
>         output:hdmi-surround71-extra1: Digital Surround 7.1 (HDMI 2)
> Output (priority 100, available: unknown)
>         output:hdmi-surround71-extra1+input:analog-stereo: Digital
> Surround 7.1 (HDMI 2) Output + Analog Stereo Input (priority 160,
> available: unknown)
>         output:hdmi-stereo-extra2: Digital Stereo (HDMI 3) Output
> (priority 5200, available: unknown)
>         output:hdmi-stereo-extra2+input:analog-stereo: Digital Stereo
> (HDMI 3) Output + Analog Stereo Input (priority 5260, available:
> unknown)
>         output:hdmi-surround-extra2: Digital Surround 5.1 (HDMI 3)
> Output (priority 100, available: unknown)
>         output:hdmi-surround-extra2+input:analog-stereo: Digital
> Surround 5.1 (HDMI 3) Output + Analog Stereo Input (priority 160,
> available: unknown)
>         output:hdmi-surround71-extra2: Digital Surround 7.1 (HDMI 3)
> Output (priority 100, available: unknown)
>         output:hdmi-surround71-extra2+input:analog-stereo: Digital
> Surround 7.1 (HDMI 3) Output + Analog Stereo Input (priority 160,
> available: unknown)
>         off: Off (priority 0, available: unknown)
>     active profile: <output:analog-stereo+input:analog-stereo>
>     sinks:
>         alsa_output.pci-0000_00_1f.3.analog-stereo/#1: Built-in Audio
> Analog Stereo
>     sources:
>         alsa_output.pci-0000_00_1f.3.analog-stereo.monitor/#1: Monitor
> of Built-in Audio Analog Stereo
>         alsa_input.pci-0000_00_1f.3.analog-stereo/#2: Built-in Audio
> Analog Stereo
>     ports:
>         analog-input-mic: Microphone (priority 8700, latency offset 0
> usec, available: no)
>             properties:
>                 device.icon_name = "audio-input-microphone"
>         analog-output-headphones: Headphones (priority 9000, latency
> offset 0 usec, available: no)
>             properties:
>                 device.icon_name = "audio-headphones"
>         hdmi-output-0: HDMI / DisplayPort (priority 5900, latency
> offset 0 usec, available: no)
>             properties:
>                 device.icon_name = "video-display"
>         hdmi-output-1: HDMI / DisplayPort 2 (priority 5800, latency
> offset 0 usec, available: no)
>             properties:
>                 device.icon_name = "video-display"
>         hdmi-output-2: HDMI / DisplayPort 3 (priority 5700, latency
> offset 0 usec, available: no)
>             properties:
>                 device.icon_name = "video-display"
>
> The default profile 'output:analog-stereo+input:analog-stereo'
> autocreates 1 sink.
> If I switch to an HDMI card profile, the analog-sink is replaced by an
> HDMI-sink.
>
> If I want to play audio on both outputs independently, I have to
> manually add a new sink:
>   load-module  module-alsa-sink device=hdmi:0
>
> My question is:
>   * Why isn't there a profile which autocreates both sinks?  I think
> that should be the default
>     profile for this card.
>   * How are the profiles created?  Is it the responsibility of ALSA?
>
> Thank you for your input,
> Lode


More information about the pulseaudio-discuss mailing list