Udgivelsen af multimedieserveren PipeWire 1.0.0 er offentliggjort, hvilket markerer den første stabile udgave, der viser projektets modenhed. På API- og ABI-niveau er version 1.0 bagudkompatibel med version 0.3. PipeWire præsenterer sig som en server, der erstatter lydserveren PulseAudio, og adskiller sig fra den ved at tilføje værktøjer til håndtering af videostrømme, muligheden for at behandle lyd med minimal forsinkelse og en ny sikkerhedsmodel til styring af adgangen på niveau med individuelle enheder og strømme. Projektet understøttes af GNOME og anvendes nu som standard i Fedora Linux, RHEL, Ubuntu, Debian, SUSE/openSUSE og mange andre Linux-distributioner. Kodningen af projektet er skrevet i C og distribueres under LGPLv2.1-licensen.
PipeWire giver muligheder for behandling af enhver multimediestrøm, kan mixe og omdirigere strømme med video, og kan anvendes til at styre videokilder som videofangst-enheder, webkameraer eller indhold sendt af applikationer på skærmen. For eksempel muliggør PipeWire, at flere applikationer kan arbejde sammen med et webkamera og løser problemer med sikker skærmdeling og fjernadgang til skærmen i Wayland-miljøet.
PipeWire kan også fungere som en lyd server, som sikrer minimale forsinkelser og leverer funktionalitet, der kombinerer mulighederne fra PulseAudio og JACK, herunder tager højde for behovene fra professionelle lydbehandlingssystemer, som PulseAudio ikke kunne opfylde. Derudover tilbyder PipeWire en udvidet sikkerhedsmodel, der muliggør adgangsstyring på niveau med individuelle enheder og specifikke strømme, og som forenkler håndtering af lyd og video fra isolerede containere og til dem. Et af de primære mål er at understøtte selvforsynende applikationer i Flatpak-format og arbejde i et grafisk stack baseret på Wayland.
Hovedfunktioner:
- Optagelse og afspilning af lyd og video med minimale forsinkelser;
- Værktøjer til realtidsbehandling af video og lyd;
- Multiprocess arkitektur, der muliggør delt adgang til indhold mellem flere applikationer;
- Behandlingsmodel baseret på en graf af multimediaknuder med understøttelse af feedbacksløjfer og atomare opdateringer af grafen. Mulighed for tilslutning af behandlere både internt i serveren og eksterne plugins;
- Effektiv grænseflade til adgang til videostrømme via overførsel af filbeskrivelser og adgang til lyd via delte ringbuffer;
- Mulighed for behandling af multimediedata fra enhver proces;
- Tilstedeværelse af en GStreamer-plugin for at forenkle integrationen med eksisterende applikationer;
- Understøttelse af isolerede miljøer og Flatpak;
- Understøttelse af plugins i SPA-format (Simple Plugin API) og mulighed for at oprette plugins, der arbejder i hård realtid;
- Fleksibel system til koordinering af anvendte multimediaformater og tildeling af buffers;
- Brug af en enkelt baggrundsproces til routing af lyd og video. Mulighed for at fungere som lydenhed, hub til at levere video til applikationer (for eksempel til gnome-shell screencast API) og server til kontrol af adgang til hardwareenheder til videooptagelse.
Blandt ændringerne i forhold til version 0.3 er standardinddragelsen af jackdbus-support, hvilket gør det muligt at anvende PipeWire som en fuldgyldig klient til lydsystemet JACK. For ALSA er der implementeret IRQ-baseret planlægning i Pro-Audio-profilen, hvilket gør det muligt at opnå forsinkelser på niveau med JACK. Der er tilføjet support til både den gamle og den nye version af webrtc-audio-processing. Der er også tilføjet support for DFF DSD-filer i pw-cat. Understøttelse af GNU/Hurd-platformen er blevet tilføjet.
Kilde: opennet.ru
