W repozytorium, w którym rozwijana jest wersja Ubuntu 22.10, dokonano przejścia na domyślną obsługę multimediów za pomocą serwera dźwięku PipeWire. Pakiety związane z PulseAudio zostały usunięte z zestawów desktop i desktop-minimal, a dla zapewnienia kompatybilności, zamiast bibliotek PulseAudio, dodano działającą na PipeWire warstwę pipewire-pulse, która umożliwia korzystanie ze wszystkich istniejących klientów PulseAudio.
Decyzję o pełnym przejściu na PipeWire w Ubuntu 22.10 potwierdziła Heather Ellsworth z firmy Canonical. Zauważono, że w Ubuntu 22.02 w dystrybucji wykorzystywane były obie technologie. serwera — PipeWire był używany do przetwarzania wideo podczas nagrywania screencastów i udostępniania ekranu, ale dźwięk nadal był przetwarzany za pomocą PulseAudio. W Ubuntu 22.10 zostanie zachowany tylko PipeWire. Dwa lata temu podobne zmiany zostały już wprowadzone w dystrybucji Fedora 34, co pozwoliło zapewnić profesjonalne przetwarzanie dźwięku, wyeliminować fragmentację i ujednolicić infrastrukturę dźwiękową dla różnych zastosowań.
PipeWire oferuje rozszerzony model zabezpieczeń, umożliwiający zarządzanie dostępem na poziomie poszczególnych urządzeń i specyficznych strumieni, co upraszcza organizację przesyłania dźwięku i wideo z izolowanych kontenerów i do nich. PipeWire może przetwarzać wszelkie strumienie multimedialne i jest w stanie miksować i przekierowywać nie tylko strumienie dźwiękowe, ale także wideo, a także zarządzać źródłami wideo (urządzenia do przechwytywania wideo, kamery internetowe lub wyjścia generowane przez aplikacje). PipeWire może również pełnić rolę serwera dźwięku, zapewniając minimalne opóźnienia i oferując funkcjonalność, która łączy możliwości PulseAudio i JACK, uwzględniając przy tym potrzeby systemów profesjonalnego przetwarzania dźwięku, na które PulseAudio nie mogło liczyć.
Podstawowe funkcje:
- Przechwytywanie i odtwarzanie dźwięku i wideo z minimalnymi opóźnieniami;
- Narzędzia do przetwarzania dźwięku i wideo w czasie rzeczywistym;
- Architektura wieloprocesowa, umożliwiająca współdzielenie treści między różnymi aplikacjami;
- Model przetwarzania na podstawie grafu węzłów multimedialnych z obsługą cykli sprzężenia zwrotnego i atomowych aktualizacji grafu. Dozwolone jest podłączanie przetwarzaczy zarówno wewnątrz serwera, jak i zewnętrznych wtyczek;
- Efektywny interfejs dostępu do strumieni wideo poprzez przesyłanie deskryptorów plików oraz dostęp do dźwięku przez współdzielone bufory cykliczne (shared ringbuffer);
- Możliwość przetwarzania danych multimedialnych z dowolnych procesów;
- Obecność wtyczki do GStreamer w celu uproszczenia integracji z istniejącymi aplikacjami;
- Wsparcie dla izolowanych środowisk oraz Flatpak;
- Wsparcie dla wtyczek w formacie SPA (Simple Plugin API) i możliwość tworzenia wtyczek działających w trybie sztywnego czasu rzeczywistego;
- Elastyczny system zgłaszania używanych formatów multimedialnych i przydzielania buforów;
- Użycie jednego procesu roboczego do routingu dźwięku i wideo. Możliwość pracy w formie serwera dźwiękowego, hubu do dostarczania wideo aplikacjom (na przykład dla API gnome-shell screencast) oraz serwera do zarządzania dostępem do urządzeń sprzętowych przechwytujących wideo.
Źródło: opennet.ru
