Names of devices connected through HDMI/DP are confusing
On my laptop, I have two USB-C ports that can act as DP-1 ports and one HDMI port. I typically connect two monitors on the USB-C/DP ports, on of which can play audio and one of which cannot. In adddition, I sometimes hook up my AVR through HDMI to play something on our home cinema from the laptop.
As opposed to Pulse Audio, Pipewire seems to be doing a good job of only showing the monitor with playing audio capabilities (and the AVR if plugged in). However, the names displayed throughout various UIs are not very meaningful. Pavucontrol gives me "HDA NVidia Digital Stereo (HDMI 2)" (KDE tools use the same). On the other hand, I have a portable soundspeaker and that is helpfully called "JieLi AC46 Analog Stereo" (even though it is connected through USB, so I guess it is digital:-)).
pactl list sinks
gives this:
Sink #185
State: IDLE
Name: alsa_output.pci-0000_01_00.1.hdmi-stereo
Description: HDA NVidia Digital Stereo (HDMI)
Driver: PipeWire
Sample Specification: s32le 2ch 48000Hz
Channel Map: front-left,front-right
Owner Module: 4294967295
Mute: no
Volume: front-left: 24817 / 38% / -25,30 dB, front-right: 24817 / 38% / -25,30 dB
balance 0,00
Base Volume: 65536 / 100% / 0,00 dB
Monitor Source: alsa_output.pci-0000_01_00.1.hdmi-stereo.monitor
Latency: 0 usec, configured 0 usec
Flags: HARDWARE DECIBEL_VOLUME LATENCY SET_FORMATS
Properties:
alsa.card = "1"
alsa.card_name = "HDA NVidia"
alsa.class = "generic"
alsa.device = "3"
alsa.driver_name = "snd_hda_intel"
alsa.id = "HDMI 0"
alsa.long_card_name = "HDA NVidia at 0xee000000 irq 17"
alsa.name = "HDMI 0"
alsa.resolution_bits = "16"
alsa.subclass = "generic-mix"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
api.alsa.card.longname = "HDA NVidia at 0xee000000 irq 17"
api.alsa.card.name = "HDA NVidia"
api.alsa.path = "hdmi:1"
api.alsa.pcm.card = "1"
api.alsa.pcm.stream = "playback"
audio.channels = "2"
audio.position = "FL,FR"
card.profile.device = "6"
device.api = "alsa"
device.class = "sound"
device.id = "42"
device.profile.description = "Digital Stereo (HDMI)"
device.profile.name = "hdmi-stereo"
device.routes = "1"
factory.name = "api.alsa.pcm.sink"
media.class = "Audio/Sink"
device.description = "HDA NVidia Digital Stereo (HDMI)"
node.name = "alsa_output.pci-0000_01_00.1.hdmi-stereo"
node.nick = "HDA NVidia"
node.pause-on-idle = "false"
object.path = "alsa:pcm:1:hdmi:1:playback"
priority.driver = "696"
priority.session = "696"
factory.id = "18"
client.id = "32"
node.driver = "true"
factory.mode = "merge"
audio.adapt.follower = ""
library.name = "audioconvert/libspa-audioconvert"
object.id = "185"
object.serial = "691"
node.max-latency = "8192/48000"
Ports:
hdmi-output-0: HDMI / DisplayPort (type: HDMI, priority: 5900, availability group: Legacy 1, available)
Active Port: hdmi-output-0
Formats:
pcm
which is not very helpful. Previously under PulseAudio, there would be device.product.name
which would be the monitor's name "DELLU4320Q", which was helpful but not used in any of the GUIs (so I assume the monitor does make its name available).
When I connect the AVR, I get the same unhelpful names. I do not really know what the numbers of my DP/HDMI ports are.
Is would be really helpfull if more user-friendly names referring to connected devices and not ports were used throughout the ecosystem when using HDMI/DP ports.
I am not really sure if this is mostly pipewire issue or more of the other apps' issue, but given that there is not device.product.name
or anything similar, I think this might be a Pipewire issue too.
Update: In a comment below, I listed all the issues that would make Pipewire or Linux audio stack in general user-friendlier: #1978 (comment 1212342)