È stato pubblicato il server multimediale PipeWire 1.0.0, contrassegnato come il primo rilascio stabile, che segna la maturità del progetto. A livello di API e ABI, la versione 1.0 è retrocompatibile con il ramo 0.3. PipeWire si posiziona come server in sostituzione del server audio PulseAudio, differenziandosi per l'aggiunta di strumenti per la gestione dei flussi video, la possibilità di elaborare audio con ritardi minimi e un nuovo modello di sicurezza per controllare l'accesso a livello di singoli dispositivi e flussi. Il progetto è supportato in GNOME ed è già utilizzato per impostazione predefinita in Fedora Linux, RHEL, Ubuntu, Debian, SUSE/openSUSE e molte altre distribuzioni Linux. Il codice del progetto è scritto in linguaggio C ed è distribuito con licenza LGPLv2.1.
PipeWire offre funzionalità per elaborare qualsiasi flusso multimediale, è in grado di mescolare e reindirizzare flussi video e può essere utilizzato per gestire sorgenti video come dispositivi di acquisizione video, webcam o contenuti dello schermo prodotti dalle applicazioni. Ad esempio, PipeWire consente la collaborazione tra più applicazioni con una webcam e risolve i problemi di acquisizione sicura del contenuto dello schermo e accesso remoto allo schermo in un ambiente Wayland.
PipeWire può anche fungere da server audio server, offrendo latenze minime e una funzionalità che combina le capacità di PulseAudio e JACK, tenendo conto, tra l'altro, delle esigenze dei sistemi di elaborazione audio professionale, che PulseAudio non poteva soddisfare. Inoltre, PipeWire offre un modello di sicurezza avanzato che consente di gestire l'accesso a livello di singoli dispositivi e flussi specifici, semplificando l'organizzazione del passaggio di audio e video da contenitori isolati e viceversa. Uno degli obiettivi principali è il supporto per applicazioni autosufficienti nel formato Flatpak e il funzionamento nel stack grafico basato su Wayland.
Caratteristiche principali:
- Cattura e riproduzione di audio e video con latenze minime;
- Strumenti per l'elaborazione audio e video in tempo reale;
- Architettura multipla che consente l'accesso condiviso ai contenuti da parte di più applicazioni;
- Modello di elaborazione basato su grafi di nodi multimediali con supporto per cicli di feedback e aggiornamenti atomici del grafo. È consentito il collegamento di elaboratori sia all'interno del server che di plugin esterni;
- Interfaccia efficace per accedere ai flussi video tramite il passaggio di file descriptor e l'accesso all'audio attraverso buffer circolari condivisi;
- Capacità di elaborare dati multimediali da qualsiasi processo;
- Disponibilità di un plugin per GStreamer per semplificare l'integrazione con le applicazioni esistenti;
- Supporto per ambienti isolati e Flatpak;
- Supporto per plugin nel formato SPA (Simple Plugin API) e possibilità di creare plugin che funzionano in modalità tempo reale rigorosa;
- Sistema flessibile di gestione dei formati multimediali utilizzati e allocazione dei buffer;
- Uso di un unico processo in background per il routing di audio e video. Possibilità di funzionare come server audio, hub per la fornitura di video ad applicazioni (ad esempio, per l'API screencast di gnome-shell) e server per la gestione dell'accesso ai dispositivi hardware di acquisizione video.
Tra le modifiche rispetto al ramo 0.3, si segnala l'inclusione di default del supporto per jackdbus, che permette di utilizzare PipeWire come un pieno cliente del sistema audio JACK. Per ALSA è stato attivato il scheduling basato su IRQ nel profilo Pro-Audio, consentendo di raggiungere latenze a livello di JACK. È stato aggiunto supporto sia per la vecchia sia per la nuova versione di webrtc-audio-processing. In pw-cat è stato aggiunto il supporto per file DFF DSD. È stato aggiunto supporto per la piattaforma GNU/Hurd.
Fonte: opennet.ru
