Opublikowano wersję projektu PipeWire 0.3.33, rozwijającego nowej generacji serwer multimedialny, który zastępuje PulseAudio. PipeWire rozszerza możliwości PulseAudio o narzędzia do pracy z wideo, możliwość przetwarzania dźwięku z minimalnym opóźnieniem oraz nowy model bezpieczeństwa do zarządzania dostępem na poziomie poszczególnych urządzeń i strumieni. Projekt jest wspierany przez GNOME i jest domyślnie używany w Fedora Linux. Kod projektu napisano w języku C i jest dostępny na licencji LGPLv2.1.
Główne zmiany w PipeWire 0.3.33:
- Zrealizowano możliwość automatycznego przełączania między profilami Bluetooth HSP (tryb słuchawkowy) a A2DP (wysokiej jakości dźwięk).
- W profilu Pro Audio poprawiono obsługę wirtualnych źródeł i urządzeń wyjściowych dźwięku.
- Udoskonalone dopasowanie modyfikatorów formatu przy współdzieleniu buforów dostępu do pamięci (DMA-BUF) przez kilku klientów.
- W sekcji węzłów multimedialnych wprowadzono wsparcie dla jednoczesnego użycia wielu częstotliwości próbkowania (domyślnie wyłączone).
- W warstwie zgodności z PulseAudio zaimplementowano moduł module-switch-on-connect do emulacji zachowania PulseAudio przy podłączaniu nowych urządzeń.
Przypomnijmy, że PipeWire rozszerza zastosowanie PulseAudio przez obsługę wszelkich strumieni multimedialnych i jest w stanie mieszać oraz przekierowywać strumienie wideo. PipeWire także oferuje możliwości zarządzania źródłami wideo, takimi jak urządzenia do przechwytywania wideo, kamery internetowe czy wyjściowe zawartości aplikacji na ekranie. Na przykład, PipeWire umożliwia współpracę kilku aplikacji z kamerą internetową i rozwiązuje problemy z bezpiecznym przechwytywaniem zawartości ekranu oraz zdalnym dostępem do ekranu w środowisku Wayland.
PipeWire może również pełnić rolę serwera dźwięku serwera, zapewniającego minimalne opóźnienia i oferującego funkcjonalność łączącą możliwości PulseAudio i JACK, uwzględniając potrzeby systemów profesjonalnego przetwarzania dźwięku, których PulseAudio nie mogło zaspokajać. Ponadto, PipeWire oferuje rozszerzony model zabezpieczeń, umożliwiający zarządzanie dostępem na poziomie poszczególnych urządzeń i konkretnych strumieni, upraszczający organizację przesyłu dźwięku i wideo z izolowanych kontenerów i do nich. Jednym z głównych celów jest wsparcie dla samowystarczalnych aplikacji w formacie Flatpak oraz praca w graficznym stosie opartym na Wayland.
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
