PipeWire 1.6 Released with LDAC Decoder and 128 Channel Audio Support

PipeWire 1.6 multimedia framework adds an LDAC decoder, raises the maximum channel limit to 128, and delivers major audio and Bluetooth improvements.

PipeWire 1.6, also known as “Penicillin,” is a multimedia framework for audio and video on Linux. This release includes many updates for audio, Bluetooth, and system infrastructure.

This release adds an LDAC decoder for Bluetooth audio and uses SpanDSP to help hide packet loss. There are also many other Bluetooth updates, as well as improvements to RTP and AVB. Support for the Milan protocol is still in progress.

Another major change is raising the maximum channel count to 128. The old 64-channel mixer limit has been fixed, and channel maps can now be set directly on ALSA devices. Channel positions can also be read from EDID data. You can now use audio channel layouts like audio.layout = "5.1" instead of setting each channel by hand.

Moreover, the resampler now lets you choose window functions like Blackman and Kaiser, and it uses fixed-point math for more accurate phase calculations. Capability Params support allows links to negotiate capabilities before setting formats and buffers. Stream control is also improved with more reliable transport and stricter node.exclusive behavior.

Shared memory handling is now safer thanks to improved POD parsing and construction. The metadata feature now shows when sync_timeline metadata supports the RELEASE operation. Node commands and events can also include extra user data.

PipeWire 1.6’s filter-graph system now includes new FFmpeg and ONNX plugins. The FFmpeg plugin can run an audio AVFilterGraph, and the ONNX plugin supports models like silero VAD. Other updates improve channel handling in filter-chain, add source-only and sink-only setups, enhance snapcast, add IPv4 link-local support in RAOP and snapcast, and allow socket activation without needing libsystemd.

On the client and compatibility side, support for old v0 clients has been dropped. The JACK tunnel module can now automatically connect ports, and the thread reset on fork can be configured. Pulse-server fixes address mono mixdown queries, EPROTO handling, timeouts in play-sample streams, and headset autoswitch messaging.

Tooling has improved as well. pw-cat now supports sysex, midiclip, and more uncompressed formats. You can now list supported containers, codecs, layouts, and channel names, and choose container and codec formats directly. rlimits can also be set in the main configuration file.

Other fixes in 1.6 include closing capability leaks, fixing file descriptor leaks in pulse-server during certain errors, correcting crop metadata and a buffer-release race in the GStreamer integration, and improving default channel handling in SPA components.

For more details, see the changelog. Finally, just to note that PipeWire 1.6 is still API- and ABI-compatible with 1.4.x series.

Bobby Borisov

Bobby Borisov

Bobby, an editor-in-chief at Linuxiac, is a Linux professional with over 20 years of experience. With a strong focus on Linux and open-source software, he has worked as a Senior Linux System Administrator, Software Developer, and DevOps Engineer for small and large multinational companies.

Leave a Reply

Your email address will not be published. Required fields are marked *