Pipewire output gets routed to a non-working HDMI by default
Connecting an external monitor with no speakers results in audio getting routed there, despite the monitor not being able to produce sound.
Important points:
- This issue is not reproducible with PulseAudio. That is, with PA all audio gets correctly routed to either built-in speakers or to headphones (if plugged).
- This issue is reproducible with some hardware but not with other. So, given the same monitor, I can not reproduce it on my DELL laptop, but it is reproducible on my gf's Macbook 2013 (same pipewire version).
Steps to reproduce
- On affected hardware, connect an HDMI monitor with no speakers.
Expected
Audio is routed to the same device as without the monitor.
Actual
Audio gets routed to the monitor with no speakers.
Additional information
-
Pipewire version: 0.3.31
-
OS: Fedora 34
-
spa-acp-tool -c 0 lv
for the affected hardware: -
output of
pipewire-media-session
withlog.level = 3
while plugging in HDMIJul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: card port hdmi-output-0 available no -> yes Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: Profile output:hdmi-stereo available no -> yes Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: Profile output:hdmi-surround available no -> yes Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: Profile output:hdmi-surround71 available no -> yes Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: card profile off available yes -> yes Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: device 'alsa_card.pci-0000_00_03.0': active profile 'off' Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: device 'alsa_card.pci-0000_00_03.0': found best profile 'output:hdmi-stereo' changed:1 Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: device 'alsa_card.pci-0000_00_03.0': no saved profile: Нет такого устройства Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: device 'alsa_card.pci-0000_00_03.0': restore best profile 'output:hdmi-stereo' index 1 Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: device 39: route hdmi-output-0 available changed 1 -> 2 Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: device alsa_card.pci-0000_00_03.0: restore routes for profile 'off' Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: device 39: profile off unchanged ([ ]) Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: activate profile: output:hdmi-stereo (1) Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: Device: Цифровой стерео (HDMI) mapping 'Цифровой стерео (HDMI)' (hdmi-stereo). Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: Activating path hdmi-output-0 Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: Driver does not support hardware volume control, falling back to software volume control. Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: Driver does not support hardware mute control, falling back to software mute control. Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: card profile changed from off to output:hdmi-stereo Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: found alsa_output.pci-0000_00_03.0.hdmi-stereo with id:54 restore as default.configured.audio.sink Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: metadata 0x5628e46d9810: add id:0 key:default.configured.audio.sink type:Spa:String:JSON value:{ "name": "alsa_output.pci-0000_00_03.0.hdmi-stereo" } Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: meta default.configured.audio.sink: { "name": "alsa_output.pci-0000_00_03.0.hdmi-stereo" } Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: meta name: alsa_output.pci-0000_00_03.0.hdmi-stereo Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: device 'alsa_card.pci-0000_00_03.0': active profile changed to 'output:hdmi-stereo' Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: device 'alsa_card.pci-0000_00_03.0': found best profile 'output:hdmi-stereo' changed:0 Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: device 'alsa_card.pci-0000_00_03.0': no profile switch needed Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: device alsa_card.pci-0000_00_03.0: restore routes for profile 'output:hdmi-stereo' Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: device 39: restoring device 5 Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: device 39: found saved route 'hdmi-output-0' Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: device 39: restore route 0 'default.route.alsa_card.pci-0000_00_03.0:output:hdmi-output-0' to { "mute": false, "volumes": [ 0.505878, 0.505878 ], "channels": [ "FL", "FR" ] } Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: device 39: profile output:hdmi-stereo unchanged ([ "hdmi-output-0" ]) Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: Driver does not support hardware volume control, falling back to software volume control. Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: Driver does not support hardware mute control, falling back to software mute control. Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: Activating path hdmi-output-0 Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: card port changed from hdmi-output-0 to hdmi-output-0 Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: Set software volume: min:52219 max:52219 Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: device hdmi-stereo volume changed Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: device 'alsa_card.pci-0000_00_03.0': active profile 'output:hdmi-stereo' Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: device 'alsa_card.pci-0000_00_03.0': found best profile 'output:hdmi-stereo' changed:0 Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: device 'alsa_card.pci-0000_00_03.0': no profile switch needed Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: device 39: port 'hdmi-output-0' Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: device 39: profile output:hdmi-stereo unchanged ([ "hdmi-output-0" ]) Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: metadata 0x5628e46d9810: change id:0 key:default.audio.sink type:Spa:String:JSON value:{ "name": "alsa_output.pci-0000_00_03.0.hdmi-stereo" } Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: meta default.audio.sink: { "name": "alsa_output.pci-0000_00_03.0.hdmi-stereo" } Jul 07 01:29:43 localhost.localdomain pipewire-media-session[2498]: meta name: alsa_output.pci-0000_00_03.0.hdmi-stereo