After seven months of development, a new stable branch of a multimedia server pipewire 1.2.0 has been formed. This server replaces the sound server Pulseaudio and features video flow capabilities, minimal sound processing delays, and a new security model for controlling access to individual devices and flows. Supported in GNOME and used by default in Fedora Linux, RHEL, Ubuntu, Debian, SUSE/OpenSUSE, and other Linux distributions, Pipewire’s code is written in SI and spread under the lgplv2.1 license.
Pipewire operates on a multiprocess architecture that enables collaborative access to content from multiple applications. It offers functions for processing various multimedia flows, mixing and redirecting video streams, managing video sources like capture devices and webcams, and capturing screen content from applications. For example, Pipewire facilitates the simultaneous operation of multiple applications with a webcam, addresses secure screen content capture, and allows remote access to Wayland’s screen content.
When utilized as a sound server, Pipewire delivers low latency and combines features from Pulseaudio and jack, catering to professional processing systems’ needs that Pulseaudio could not meet. Additionally, Pipewire presents an enhanced security model for monitoring access to individual devices and specific flows, simplifies sound and video organization within isolated containers, and supports self-sufficient applications in Flatpak alongside Wayland-based graphic stacks.
In the new version:
- The processing model of data streams is based on asynchronous processing components, allowing the unit graph to continue operating even if output is missing from a specific node, preventing the blockage of other nodes in the chain. This minimizes delays and enhances overall efficiency.
- A new synchronized nodes concept (Node.Sync-Group) enables the creation of groups of components activated simultaneously by the scheduler. This feature is particularly useful for coordinating node activations during jack transport startup.
- Improvements in error information within the configuration file include detailed mentions of the error location (line number and position within the line) for easier debugging and troubleshooting.