PipeWire 1.4.0 has officially arrived, bringing significant enhancements and new features to improve Linux audio and video processing. This update is fully API and ABI compatible with previous 1.2.x and 1.0.x releases, making it a seamless upgrade for existing users.
Key Features and Enhancements
1. Real-Time Priority & Configuration Changes
client-rt.conf
has been removed, and all clients now useclient.conf
.- Clients are automatically assigned real-time (RT) priority for better performance.
2. MIDI2 (UMP) Support
- PipeWire now uses Universal MIDI Packet (UMP) as the default format for carrying both MIDI1 and MIDI2.
- Helper functions are available to convert between legacy MIDI and UMP.
3. Improved Resampling & Delay Reporting
- The resampler can now precompute common conversion filters at compile time.
- Delay reporting has been fixed and optimized for better accuracy.
4. Bluetooth Audio Enhancements
- BAP broadcast links and hearing aids support (ASHA) added.
- A new
G722
codec introduced. - Improved delay reporting and configuration for Bluetooth devices.
5. Enhanced ALSA & JACK Support
- ALSA plugin now supports DSD playback when enabled via
alsa.formats
. - Added PipeWire JACK control API for improved compatibility.
6. PipeWire Pulse System Service
pipewire-pulse
now runs as a system service, making PulseAudio emulation more stable.
7. Performance & Optimization Upgrades
- RISCV CPU support with assembler optimizations.
- Inline functions in SPA macros are now compiled into
libspa.so
. - Optimized
audioconvert
plugin with additional filter-graph insertion support.
8. New Plugins & Features
- EBUR128, param_eq, and dcblock plugins added to
filter-graph
. - FFTW-based convolution support for improved DSP processing.
- New ffmpeg-based videoconvert plugin for use with
videoadapter
.
9. GStreamer & Video Improvements
- Enhanced buffer pool handling and rate matching.
- Improved clock synchronization in V4L2.
- Automatic stream creation for VBAN receivers.
10. Networking & Synchronization Upgrades
- RTP source now has a standby mode to reduce idle power consumption.
- PTP clocking support added to RTP streams for better synchronization.
- The
native-protocol
now supports abstract sockets.
Bug Fixes & Stability Improvements
- Fix missing includes in
metadata.h
. - Prevent use-after-free issues when building PODs.
- JACK MIDI2 port flags can now be disabled.
- Enhanced error reporting when making links.
- Better handling of default device changes in GStreamer.
- Blocking playback and capture support added in
pulse.rules
.
Additional Tips:
- How to Upgrade: If you're using a distribution with PipeWire, check your package manager for updates (
dnf upgrade pipewire
,apt update && apt upgrade pipewire
). - Optimizing Bluetooth Audio: Use
pw-cli list-objects
to check supported codecs and configurepipewire.conf
for optimal latency. - MIDI2 Compatibility: Ensure your software supports UMP MIDI2 for full functionality.