Loopback devices broken in several consecutive releases
Version, Distribution, Desktop Environment: 0.3.19, 0.3.20, 0.3.21, 0.3.22, 0.3.23, 0.3.24, 0.3.25 Arch Linux / Gnome
Description of Problem: Loopback devices (pulseaudio module-loopback) are necessary to perform software routing of audio between virtual devices, for example, mixing an audio source with a microphone input to create a send for input to a videoconference.
This is pretty simple to do using the pulseadio command line tools, and it used to work perfectly with pipewire. However, since 0.3.18, it doesn't work at all. In all releases from 0.3.19 to 0.3.24 inclusive, the command pactl load-module module-loopback
hangs for 30 seconds until a timeout is hit.
In 0.3.25, the loopback is created, but it ignores the source and sink arguments passed, making it effectively useless.
How Reproducible:
I attach a simple script which sets up a basic audio flow for videoconferencing. Four null sinks are created and connected with loopbacks such that audio from the microphone is mixed with audio from other applications (such as a browser or video player) which are connected to the mix:receive sink. The mixed audio is then sent to the mix:send sink for onward broadcast to viewers/listeners, and the audio from all but the microphone is additionally sent to another null sink for monitoring by the presenter.
Steps to Reproduce:
- Execute the script or the commands therein
- Look at pavucontrol "Playback" and "Recording" tabs
- Speak into the microphone or start an application such as vlc or spotify and connect it to the mix:receive sink
Actual Results:
pre 0.3.25: timeout is hit when creating any loopback device and the command fails post 0.3.25: loopbacks are created between seemingly random devices. no audio on mix:send (probably due to the loopbacks not being connected as specified)
Expected Results:
Loopbacks are connected to the correct devices and the audio is mixed as specified.