In the repository where the development of Ubuntu 22.10 is being conducted, a switch has been made to use the multimedia server PipeWire by default for audio processing. Packages related to PulseAudio have been removed from the desktop and desktop-minimal sets, and to ensure compatibility, a working layer pipewire-pulse has been added on top of PipeWire instead of libraries for interacting with PulseAudio, which allows all existing PulseAudio clients to continue functioning.
The decision for a complete transition to PipeWire in Ubuntu 22.10 has been confirmed by Heather Ellsworth from Canonical. It is noted that in Ubuntu 22.02 both were used in the distribution. server — PipeWire was used for video processing when recording screencasts and for screen sharing, but audio continued to be processed using PulseAudio. In Ubuntu 22.10, only PipeWire will remain. Similar changes were already implemented in the Fedora 34 distribution two years ago, allowing for professional audio processing capabilities, eliminating fragmentation, and unifying the audio infrastructure for various applications.
PipeWire offers an enhanced security model that allows access control at the level of individual devices and specific streams, simplifying the organization of audio and video passthrough from and into isolated containers. PipeWire can handle any multimedia streams and is capable of mixing and redirecting not only audio streams but also video streams, as well as managing video sources (video capture devices, webcams, or content being output by applications). PipeWire can also serve as an audio server, providing low latency and functionality that combines the capabilities of PulseAudio and JACK, including catering to the needs of professional audio processing systems that PulseAudio could not meet.
Main Features:
- Capture and playback of sound and video with minimal latency;
- Tools for real-time audio and video processing;
- Multiprocess architecture allowing collaborative access to content across multiple applications;
- A model for processing based on a multimedia node graph with support for feedback loops and atomic graph updates. It allows for handlers to be connected both inside the server and by external plugins;
- An efficient interface for accessing video streams via file descriptor passing and accessing audio through shared ring buffers;
- Ability to process multimedia data from any processes;
- A GStreamer plugin to simplify integration with existing applications;
- Support for isolated environments and Flatpak;
- Support for plugins in SPA (Simple Plugin API) format and the ability to create plugins that operate in hard real-time mode;
- A flexible system for negotiating media formats and allocating buffers;
- Using a single background process for routing audio and video. Ability to operate as an audio server, a hub for providing video to applications (e.g., for the gnome-shell screencast API), and a server for managing access to video capture hardware.
Source: opennet.ru
