The PipeWire team has announced the release of PipeWire 1.4, which brings a host of new features and performance enhancements to this widely adopted Linux multimedia server that manages audio and video streams. This new version maintains API and ABI compatibility with all previous 1.2.x and 1.0.x releases.
To begin with, “client-rt.conf” is no longer there. From now on, all clients will rely on “client.conf,” granting them real-time priority in their data threads. Another impressive addition is the new UMP (MIDI2) support, which is now the default format for handling MIDI1 and MIDI2.
Handy helper functions are included to convert legacy MIDI and UMP. Furthermore, the resampler has seen major optimizations, including support for precomputing common conversion filters at compile time, along with improved delay reporting.
Next, the release expands Bluetooth capabilities by introducing support for BAP broadcast links and hearing aids using ASHA. A fresh G722 codec, along with refined delay reporting and configuration, is also part of the package.
Fans of high-resolution audio will be thrilled to learn that the ALSA plugin now supports DSD playback, as long as the alsa.formats
property allows it. On another note, a PipeWire JACK control API has been added, offering more convenience to those bridging between JACK and PipeWire setups.
Various filter plugins (e.g., EBUR128, param_eq, dcblock) were also added, and if you need convolution, PipeWire can optionally use fftw to tackle it. The audioconvert plugin got some optimization love, and it can also add extra filter-graphs into the processing pipeline.
For devs working closely with JSON, brand-new helper functions have been introduced to parse JSON format descriptions more elegantly. Even more, RISCV CPU support has been integrated, plus new assembler optimizations are now available for those targeting that architecture.
Fans of advanced telephony integration will be pleased to see a new Telephony D-Bus API (compatible with ofono) landed in PipeWire 1.4. Moreover, multi-threaded tasks benefit from improvements to the invoke queues, which allow concurrency without the risk of confusion or errors.
Regarding v4l2, clock information has been fine-tuned, and an ffmpeg-based videoconvert plugin can be employed together with the videoadapter for video stream conversions. GStreamer elements have also been tweaked for better buffer pool handling and rate matching, leading to smoother capture and playback.
The combine-stream module now supports mixing multiple streams, and the netjack-manager module helps users set up connections more intuitively by auto-connecting streams. New features in the native-protocol permit the use of abstract sockets, bolstering flexibility. The pulse server sees improvements such as support for blocking playback and capture in pulse.rules
.
And speaking of streaming, the RTP source plugin now includes a handy standby mode that conserves resources when no data is flowing, plus it can leverage PTP clocking. The VBAN receiver now dynamically spawns streams once they’re detected, making networked audio more convenient.
Refer to the changelog for more information about all the changes in the new version.