FEAT(client): Implement native support for PipeWire #4970
Until a few days ago I was using JACK for input and PulseAudio for output, mainly due to JACK not allowing to set different buffer sizes for separate audio interfaces.
PipeWire allowed me to replace both efficiently, while retaining the ability to control streams through KDE's applet!
Thanks a lot! I was quite surprised to see that the implementation ended up being way shorter compared to the JACK one while basically implementing all features.
Not to mention that the PipeWire implementation also supports common surround mappings.
While using this patch I can only select the "Mono" pipewire output, mumble crashes otherwise.
I also go a full pipewire crash when using this patch.
The crash reported by @mweinelt was caused by the
I assume in your case it caused PipeWire to crash as well. Or maybe @mweinelt and I didn't notice it happening because the service restarted instantly.
In any case, glad to hear you're not encountering the issue anymore!
Nice! I did a cursory test on PipeWire 0.3.27 and the initial test is positive 🎉. Some quick glances at
I do seem to experience an issue with this back end where I get no microphone input after restarting Mumble. If I then go to the Settings screen and click "Apply" once, it is fixed. The output does not have this problem. All the dropdowns are also set to their correct values - in my case, there is only one microphone and it's called "mono", and it's visibly selected. The input meter also does not go up and down until I click "Apply".
In case it is relevant: my PipeWire setup is pretty much default, I didn't enable any additional modules or modify any configuration files.
I'll try to give this new back end some more real-world endurance testing in the next couple of days 🙂 .
Tested with PipeWire 0.3.26. The implementation is quite basic and simple, yet it surpasses the JACK one in terms of features. For example, support for the most common surround mappings is provided. As opposed to JACK, an option to disable the auto endpoint connection is not provided. However, it's something that can be easily implemented if needed. Support for echo cancellation will definitely be added in future.