MPD stops outputting audio after tty switch until either MPD or pipewire-pulse is restarted
Version, Distribution, Desktop Environment:
0.3.30 (package version 1:0.3.30-2), Arch Linux (testing), sway
also tested on latest master (cb6dbd16), via pipewire-common-git
AUR package.
Description of Problem:
- After switching to a (non-logged in) tty, this (expectedly) takes away permission for pipewire to output sound to the speakers.
- When switching back to the logged in tty, sound in MPD does not resume.
- With pulseaudio, pausing and resuming allowed the sound to return.
- With pipewire-pulse, only a restart of pipewire-pulse or mpd (either works), will allow the sound to return
How Reproducible:
- start playback of a track in MPD
- switch to an unoccupied tty (Ctrl+Alt+F5 for example)
- switch back to the desktop tty (or any logged in tty) (Ctrl+Alt+F1/F7 for example, depending on system)
- observe audio not playing (also expected on real pulseaudio)
- try to pause / resume playback in MPD
- observe still no audio playing (audio works on real pulseaudio, playback doesn't work on pipewire-pulse)
- restart pipewire-pulse or mpd
- observe audio working again
Actual Results:
Audio only works after restarting either pipewire-pulse or mpd. Neither is desirable, since the first will also interrupt other clients, and the second will clear the playlist.
Expected Results:
Playback should resume after a tty switch, or at least pausing and resuming playback should retry using the speakers if permission errors occurred due to a tty switch.
Additional Info Eg. pw-dump -N > file
(As Attachment Please):
One of the PipeWire:Interface:Port
nodes is suspended after returning from the tty, as seen in the following pipewire dumps. This also seems to have resulted in some audio Format
fields being missing after returning from the tty.
The only onther change in these dumps seems to be some reordering of the IDs of the pipewire-pulse clients (I didn't diff them in detail, some properties might have changed there as well).
pipewire-before-ttyswitch pipewire-after-ttyswitch pipewire-after-restart