Repozytorium rozwojowe wersji Ubuntu 22.10 zostało przełączone na używanie domyślnego serwera multimediów PipeWire do przetwarzania dźwięku. Pakiety związane z PulseAudio zostały usunięte z zestawów desktopowych i desktop-minimalnych, a dla zapewnienia kompatybilności zamiast bibliotek do interakcji z PulseAudio dodano warstwę pipewire-pulse działającą na PipeWire, co pozwala na zapisanie pracy wszystkich istniejących klientów PulseAudio.
Decyzję o całkowitym przejściu na PipeWire w Ubuntu 22.10 potwierdziła Heather Ellsworth z Canonical. Należy zauważyć, że w Ubuntu 22.02 w dystrybucji wykorzystano oba serwery - PipeWire służył do przetwarzania wideo podczas nagrywania screencastów i zapewniania dostępu do ekranu, ale dźwięk był nadal przetwarzany za pomocą PulseAudio. W Ubuntu 22.10 pozostanie tylko PipeWire. Dwa lata temu podobną zmianę wprowadzono już w dystrybucji Fedora 34, która umożliwiła zapewnienie profesjonalnych możliwości przetwarzania dźwięku, pozbycie się fragmentacji i ujednolicenie infrastruktury audio dla różnych zastosowań.
PipeWire oferuje zaawansowany model bezpieczeństwa, który umożliwia kontrolę dostępu na poziomie urządzenia i strumienia oraz ułatwia kierowanie sygnału audio i wideo do i z izolowanych kontenerów. PipeWire może przetwarzać dowolne strumienie multimedialne, miksować i przekierowywać nie tylko strumienie audio, ale także strumienie wideo, a także zarządzać źródłami wideo (urządzeniami do przechwytywania wideo, kamerami internetowymi czy zawartością ekranu wyświetlaną przez aplikacje). PipeWire może również pełnić funkcję serwera audio, zapewniając niskie opóźnienia i funkcjonalność łączącą w sobie możliwości PulseAudio i JACK, w tym uwzględniającą potrzeby profesjonalnych systemów przetwarzania dźwięku, których PulseAudio nie był w stanie zaoferować.
Najważniejsze cechy:
- Przechwytuj i odtwarzaj dźwięk i wideo z minimalnymi opóźnieniami;
- Narzędzia do przetwarzania obrazu i dźwięku w czasie rzeczywistym;
- Architektura wieloprocesowa umożliwiająca współdzielenie zawartości kilku aplikacji;
- Model przetwarzania oparty na grafie węzłów multimedialnych z obsługą pętli sprzężenia zwrotnego i atomową aktualizacją wykresu. Dopuszczalne jest podłączanie handlerów zarówno wewnątrz serwera jak i zewnętrznych wtyczek;
- Wydajny interfejs dostępu do strumieni wideo poprzez przesyłanie deskryptorów plików i dostępu do dźwięku poprzez współdzielone bufory pierścieniowe;
- Możliwość przetwarzania danych multimedialnych z dowolnych procesów;
- Obecność wtyczki do GStreamera upraszczającej integrację z istniejącymi aplikacjami;
- Wsparcie dla izolowanych środowisk i Flatpak;
- Obsługa wtyczek w formacie SPA (Simple Plugin API) oraz możliwość tworzenia wtyczek pracujących w trudnym czasie rzeczywistym;
- Elastyczny system negocjacji używanych formatów multimedialnych i przydziału buforów;
- Używanie pojedynczego procesu w tle do kierowania dźwięku i obrazu. Możliwość pracy jako serwer dźwięku, koncentrator dostarczający wideo do aplikacji (na przykład dla API screencastu powłoki gnome) oraz serwer do kontrolowania dostępu do urządzeń przechwytujących wideo.
Źródło: opennet.ru