Pipewire erreicht Version 1.0

  Udo M.   Lesezeit: 3 Minuten

pipewire erreicht version 1.0

PipeWire ist ein neues Low Level Multimedia-Framework. Es zielt darauf ab, Erfassung und Wiedergabe für sowohl Audio als auch Video mit minimaler Latenz und Unterstützung für Anwendungen, die auf PulseAudio, JACK, ALSA und GStreamer basieren, anzubieten. Der auf diesem Framework basierende Daemon kann so konfiguriert werden, dass er sowohl ein Audio-Server (mit PulseAudio- und JACK-Funktionen) als auch ein Videoaufnahme-Server ist. PipeWire unterstützt auch Container wie Flatpak und ist nicht auf die audio und video Benutzergruppen angewiesen. Stattdessen verwendet es ein Sicherheitsmodell ähnlich wie Polkit und fragt Flatpak oder Wayland um Erlaubnis, den Bildschirm oder Ton aufzuzeichnen.

Veränderungen der Version 1.0 im Detail:

Ein Speicherleck wurde behoben, das beim Hochladen von Puffern während des Herunterfahrens auftrat. Ebenso wurde die gleichzeitige Verarbeitung von Aufrufen von jack_port_get_buffer() berücksichtigt, da Ardour dies offenbar praktiziert. Die Zeitberichterstattung in ALSA wurde verbessert, insbesondere bei Verwendung von Interrupts, um weniger Jitter zu gewährleisten.

JACK:

Eine Verbesserung der Transport- und Zeitverarbeitung wurde erreicht, wobei einzigartige IDs zur Erstellung konsistenter Schnappschüsse der aktuellen Zeit und des Transports verwendet werden. Die Auflistung von Portparametern, die nicht verwendet werden, wurde vermieden. Die Pufferwiederverwendung wurde optimiert, und die Behandlung gleichzeitiger Aufrufe von jack_port_get_buffer(), die Ardour praktiziert (#3632), wurde implementiert.

Dokumentation:

Die Dokumentation erfuhr zahlreiche Verbesserungen, und Handbuchseiten wurden für pw-dump, pw-loopback, Module, pipewire-pulse hinzugefügt. Diese Handbuchseiten werden nun mit Doxygen erstellt, und zusätzliche Dokumentation für Pulse-Module wurde ergänzt.

Modules:

Das zuvor erwähnte Leck wurde behoben, ebenso wie ein möglicher Segfault beim Kopieren von Mix-Strukturen. Race Conditions wurden vermieden, und ein Speicherleck in der Filter-Chain wurde behoben. Die Einstellung von rtp.ptime erfolgt nun bei Sendern und nicht bei Empfängern. Zusätzlich wurden die ROC-Module auf ROC 0.3 portiert.

Simple Plugin API:

Die Zeitberichterstattung in ALSA wurde auch hier verbessert, insbesondere bei Verwendung von Interrupts. Eine Abfrage für Latenzparameter wurde in libcamera hinzugefügt, einige Compilerwarnungen wurden behoben, und das EVL-Plugin wurde aktualisiert.

Weiteres:

Es gab Bluetooth-Verbesserungen am LC3-Codec und in Bezug auf die Kompatibilität. PIPEWIRE_DLCLOSE wurde systemweit implementiert und wird jetzt auch respektiert, und pw_in_valgrind() wurde entfernt. Des Weiteren wurde eine Warnung beseitigt, die auftrat, wenn ein Client versuchte, ignorierte Eigenschaften zu ändern.

Quellen:

https://gitlab.freedesktop.org/pipewire/pipewire/-/releases/1.0.0

https://pipewire.org 

Es wurden noch keine Kommentare verfasst, sei der erste!