După șapte luni de dezvoltare, a fost formată o nouă ramură stabilă a serverului multimedia PipeWire 1.2.0, care îl înlocuiește pe serverul audio PulseAudio și se distinge prin adăugarea de instrumente pentru gestionarea fluxurilor video, capacitatea de a procesa sunetul cu latențe minime și un nou model de securitate pentru gestionarea accesului la nivelul dispozitivelor individuale și al fluxurilor. Proiectul este susținut în GNOME și este utilizat implicit în Fedora Linux, RHEL, Ubuntu, Debian, SUSE/openSUSE și multe alte distribuții Linux. Codul proiectului este scris în limbajul C și este distribuit sub licența LGPLv2.1.
PipeWire se bazează pe o arhitectură multiproces, permițând accesul comun la conținut între mai multe aplicații.
Oferă posibilități de procesare a oricăror fluxuri multimedia, amestecarea și redirecționarea fluxurilor video, precum și gestionarea surselor video, cum ar fi dispozitivele de captură video, camerele web sau conținutul ecranului generat de aplicații. De exemplu, PipeWire permite colaborarea mai multor aplicații cu o cameră web și rezolvă problemele legate de captarea în siguranță a conținutului ecranului și accesul de la distanță la ecran în medii Wayland.
Când este utilizat ca server audio, PipeWire poate oferi latențe minime și funcționalitate care combină capacitățile PulseAudio și JACK, ținând cont de nevoile sistemelor de procesare profesională a sunetului, la care PulseAudio nu putea aspira. În plus, PipeWire oferă un model extins de securitate, care permite gestionarea accesului la nivelul dispozitivelor individuale și al fluxurilor specifice, simplificând organizarea transmiterea sunetului și video din containere izolate și în acestea. Unul dintre principalele obiective este suportul pentru aplicații autonome în format Flatpak și funcționarea în stiva grafică bazată pe Wayland.
În noua versiune:
- Modelul de procesare a fluxurilor de date bazat pe grafuri de noduri a fost îmbunătățit cu suport pentru procesarea asincronă, unde graful de noduri nu se blochează în absența unui output de la un nod specific, ci continuă să funcționeze, utilizând datele de la nodul obținute în ciclul anterior. Astfel, printr-o întârziere de un ciclu se poate evita situația în care un nod blochează activitatea celorlalte noduri din graf.
- A fost implementată conceptul de grupuri de noduri sincronizate (node.sync-group), permițând crearea de grupuri de noduri activate simultan de către programator. Funcția poate fi utilizată pentru planificarea simultană a activării nodurilor la pornirea transportului JACK.
- A fost îmbunătățită ieșirea informațiilor despre erori în fișierul de configurare, adăugând o mențiune despre locul unde a apărut eroarea în setări (numărul de linie și poziția în linie).
- A fost adăugat suport pentru tehnologia Explicit Sync, permițând aplicațiilor să informeze managerul de compunere pe baza protocolului Wayland despre disponibilitatea ieșirii cadrelor pe ecran, ceea ce permite reducerea întârzierilor și eliminarea apariției artefactelor în timpul redării grafice. În special, Explicit Sync rezolvă problemele de perturbare a redării și blocajele pe sistemele cu GPU NVIDIA și cu suport activat pentru Wayland.
- A fost implementată posibilitatea de a stabili metadate obligatorii în timpul concordării parametrilor buffer-ului, care sunt utilizate pentru a asigura suportul pentru „Explicit Sync”.
- A fost adăugat suport pentru crearea și utilizarea mai multor cicluri de procesare a datelor (data-loop) în client și server. Ciclurile de procesare a datelor au fost dotate cu funcționalități de legare la core CPU specifice și stabilirea priorităților.
- A fost oferită posibilitatea de a schimba nivelurile de depanare, care controlează ieșirea informațiilor în log, fără repornire, utilizând metadatele.
- Logica de legare a peer-urilor (noduri în graful fluxurilor de date care definesc surse externe sau receptoare de date) a fost regândită.
- Au fost acceptate patch-uri pentru procesarea dispozitivelor marcate ca conflictuale prin ALSA UCM (Use Case Manager).
- A fost adăugat modul snapcast-discover pentru streaming de conținut în servere SnapCast.
Sursa: opennet.ro
