The Fedora developers recently announced that a major change is planned for the next version of Fedora 34, switching all audio streams from the PulseAudio and JACK sound servers to PipeWire.
Using PipeWire allows you to offer professional audio processing capabilities in a typical desktop publishing environment, eliminate fragmentation, and unify your audio infrastructure for different applications.
Currently, Fedora Workstation uses the PulseAudio background process for audio processing, and applications use the client library to interact with this process, mix, and manage audio streams. Professional audio processing uses the JACK sound server and its associated client library.
Instead of PulseAudio and JACK, it is proposed to use the next-generation PipeWire media server with an interoperability layer that will keep all existing PulseAudio and JACK clients and applications delivered in Flatpak format running.
For older customers using the ALSA low level API, an ALSA plugin will be installed that routes audio streams directly to PipeWire. All PulseAudio and JACK based applications will be able to run on PipeWire, without having to install PulseAudio and JACK.
This proposal is to replace the PulseAudio daemon with a functional compatible PipeWire-based implementation. This means that all existing clients using the PulseAudio Client Library will continue to work as before, as well as applications shipped as Flatpak.
All PRO audio is handled by the JACK client library, which talks to the JACK server. This proposal will install a JACK client library replacement that speaks directly to PipeWire. All existing PRO audio jack applications will then work over PipeWire.
As a reminder, PipeWire expands PulseAudio's capabilities with video streaming, low-latency audio processing, and a new security model for streaming and device access control.
PipeWire also provides capabilities for controlling video sources such as video capture devices, webcams, or application output screen content. The project is compatible with GNOME and is already widely used on Fedora Linux for screencasting and screen sharing in Wayland-based environments.
PipeWire can also act as a low-latency sound server with functionality that combines the capabilities of PulseAudio and JACK, even for the needs of professional sound processing systems that PulseAudio couldn't claim.
In addition, PipeWire offers an enhanced security model that allows for device-specific and flow-specific access control and facilitates audio and video routing to and from isolated containers.
Key features:
- Capture and playback audio and video with minimal lag.
- Real-time video and audio processing tools.
- A multi-threaded architecture that allows content to be shared between multiple applications. The management and processing of multimedia graphics is done in different processes.
- A graphics-based processing model of multimedia nodes with support for feedback loops and atomic graphics updates.
- It is allowed to connect drivers both within the server and external plugins.
- Efficient interface to access video streams by transferring file descriptors and accessing sound through shared buffers.
- The ability to process multimedia data from any process.
- The presence of a plugin for GStreamer to simplify integration with existing applications.
- Support for sandbox and Flatpak environments.
- Support for plugins in SPA (Simple Plugin API) format and the ability to create plugins that work in real time.
- Flexible system for coordinating the multimedia formats used and allocating buffers.
Using a single background process to route audio and video. Ability to work as a sound server, a hub to provide video to applications (for example, for the gnome-shell screencast API), and a server to control access to hardware video capture devices.
Finally change has not yet been reviewed by the Fedora Engineering Steering Committee (FESCo), which is responsible for the technical development of the Fedora distribution.
Source: https://www.mail-archive.com