The multimedia server PipeWire 1.6.0 has been released

After nearly a year of development, a new stable branch of the multimedia server PipeWire 1.6.0 has been formed, replacing the PulseAudio sound server and distinguishing itself by adding tools for video stream handling, the ability to process audio with minimal latency, and a new security model for managing access at the level of individual devices and streams. The project is applied by default in Fedora Linux, RHEL, Ubuntu, Debian, SUSE/openSUSE, and many other Linux distributions. The code is written in C and is distributed under the MIT license.

PipeWire is based on a multi-process architecture that allows multiple applications to share content. It provides capabilities for processing any multimedia streams, mixing and redirecting video streams, as well as managing video sources such as video capture devices, webcams, or application-displayed screen content. PipeWire enables multiple applications to collaborate with a webcam and resolves issues related to secure screen content capture and remote screen access in a Wayland environment.

When used as a sound server, serverPipeWire can ensure minimal latency and provide functionality that combines the capabilities of PulseAudio and JACK, catering to the needs of professional audio processing systems, which PulseAudio could not claim. PipeWire offers an advanced security model that allows access management at the level of individual devices and specific streams. The implemented access model simplifies the passing of audio and video from and into isolated containers.

In the new version:

  • A decoder for the LDAC audio codec has been added, used for transmitting high-quality audio over Bluetooth. The libldac library is utilized for decoding.
  • The ‘bluez5-plc-spandsp’ option has been added to compensate for packet loss during audio transmission over Bluetooth, utilizing the capabilities of the SpanDSP library.
  • A safe implementation of parsing and creating serialized objects in the POD (Plain Old Data) format in shared memory has been added.
  • The ability to transmit metadata information about the support of additional features by PipeWire nodes has been implemented, which can be used to synchronize the use of extended functionality such as the support for the RELEASE operation.
  • Support has been added for attaching additional user data to the commands and events transmitted between nodes.
  • Additional helper functions for creating and parsing compression formats have been implemented.
  • The default limit on the maximum number of channels has been increased to 128. The ability to override this limit at compile time has been added.
  • An 'audio.layout' setting has been added to specify the multichannel surround sound scheme (e.g., 'audio.layout = 5.1') without the need to list the channel positions ('audio.position = [ FL, FR, FC, LFE, SL, SR ]').
  • A 'Capability Params' mechanism has been added for negotiating link capabilities at the stage before determining formats and buffers.
  • Support for new color representation types (colortype) for HDR has been added.
  • In event processing cycles, support for priority inversion locks has been implemented, preventing situations where a high-priority thread has to wait for a lock released by a low-priority thread. Instead of epoll and eventfd, lightweight locks have been used for synchronizing state between threads.
  • Support for determining the channel position through parsing EDID data has been added.
  • The transmission of channel maps of surround sound to the ALSA subsystem has been ensured (which channel is right, which is left, etc.).
  • Numerous improvements related to Bluetooth, RTP (Real-time Transport Protocol), and AVB (Audio Video Bridging) have been made.
  • Work has continued on the implementation of the Milan network protocol for transmitting multimedia data in real time.
  • The resampling system has been enhanced with support for customizable distortion suppression functions like Blackman and Kaiser. Fixed-point calculations have been employed to improve phase calculation accuracy.
  • The ability to apply FFmpeg audio filter nodes and AI models for sound processing based on ONNX, such as the Silero voice detector, has been provided.
  • Support for clients using protocol v0, which was used in earlier versions of PipeWire, has been discontinued.
  • The jack-tunnel module now supports automatic port connections.
  • The ROC streaming system has implemented support for multi-track layouts.
  • Resource limits (rlimit) can now be modified through the configuration file.
  • The property "thread.reset-on-fork" has been added to manage thread resets during fork calls. For JACK clients, thread resets can be disabled by setting "thread.reset-on-fork=false" to replicate JACK behavior.
  • The node.exclusive flag has been added, ensuring that a port has only one source and one consumer, which is necessary for implementing the Explicit Sync mechanism.
  • The node.reliable flag has been added for guaranteed delivery mode.
  • The pw-cat utility now supports MIDI SysEx messages (System Exclusive, for configuring synthesizers), midiclip containers, and uncompressed audio formats. Options for setting audio container formats and codecs have been added, as well as the ability to view the list of supported containers, codecs, surround sound layouts, and channel names.

Source: opennet.ru

Buy reliable website hosting with DDoS protection, VPS VDS servers 🔥 Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster