A Linuxos hang- és videokezelés egyik legfontosabb alapköve új mérföldkőhöz érkezett. A PipeWire 1.6-os kiadása számos, régóta várt fejlesztést hoz Bluetooth-hangátvitel, többcsatornás audio és belső stabilitás terén. Az újdonságok nemcsak a mindennapi felhasználók, hanem a professzionális hangtechnikai környezetek számára is érezhető előrelépést jelentenek. A fejlesztők megerősítették: a kiadás API- és ABI-szinten kompatibilis maradt az 1.4.x sorozattal.
A PipeWire 1.6 egyik legfontosabb újdonsága a Bluetooth LDAC dekóder (LDAC decoder) bevezetése, amely jobb hangminőséget tesz lehetővé kompatibilis eszközök esetén. A Bluetooth-kapcsolatok stabilitását a rendszer immár a SpanDSP könyvtár segítségével javítja, amely képes elfedni a csomagvesztés (packet loss) hatásait. A Bluetooth-alrendszer mellett fejlődött az RTP (Real-time Transport Protocol) és az AVB (Audio Video Bridging) támogatás is, miközben a professzionális hálózati hangátvitelt célzó Milan protokoll integrációja továbbra is aktív fejlesztés alatt áll.
Szintén jelentős változás, hogy a maximális hangcsatorna-szám immár 128 csatornára nőtt, megszűnt a korábbi 64 csatornás keverőkorlát. A csatornakiosztások (channel maps) mostantól közvetlenül beállíthatók az ALSA-eszközökön, és a PipeWire képes a csatornapozíciókat az EDID-adatokból is kiolvasni. Ez leegyszerűsíti a többcsatornás konfigurációkat, mivel már olyan leírók is használhatók, mint például az audio.layout = "5.1", anélkül hogy minden egyes csatornát külön kellene definiálni.
A belső jelfeldolgozás is finomodott: az új mintavételező (resampler) választható ablakozási függvényeket (window functions) kínál, például Blackman vagy Kaiser típusokat, és fixpontos matematikát (fixed-point math) használ a pontosabb fázisszámítás érdekében. Az úgynevezett Capability Params támogatás lehetővé teszi, hogy az adatfolyamok már a formátum- és pufferbeállítás előtt egyeztessék képességeiket, miközben a streamvezérlés (stream control) megbízhatóbb adatátvitelt és szigorúbb node.exclusive működést kapott.
A stabilitás terén is történt előrelépés: a megosztott memória kezelése biztonságosabbá vált a POD-adatok (Plain Old Data) feldolgozásának javításával. A metaadat-kezelés most már jelzi, ha a sync_timeline metaadat támogatja a RELEASE műveletet, és a node-parancsokhoz, eseményekhez opcionálisan felhasználói adatok is társíthatók.
A PipeWire szűrőgráf-rendszere (filter-graph system) új bővítményekkel gazdagodott. Megjelent egy FFmpeg-alapú plugin, amely képes egy teljes audio AVFilterGraph futtatására, valamint egy ONNX plugin, amely például a silero VAD (Voice Activity Detection) modelleket is támogatja. Emellett javult a csatornakezelés a filter-chain modulban, elérhetővé váltak kizárólag forrás- vagy kizárólag kimeneti beállítások, fejlődött a snapcast integráció, valamint IPv4 link-local támogatás került a RAOP és snapcast alá. Újdonság az is, hogy a socket-aktiválás már libsystemd nélkül is működik.
A kompatibilitási oldalon megszűnt a régi, 0-s verziójú kliensek támogatása, miközben a JACK tunnel modul már automatikusan is képes portokat összekötni. A PulseAudio-kompatibilis kiszolgáló (pulse-server) több hibajavítást kapott, többek között a monó keverési lekérdezések, az EPROTO hibák kezelése, a play-sample adatfolyamok időtúllépései és a headset automatikus átváltásával kapcsolatos üzenetkezelés terén.
Az eszközkészlet is fejlődött: a pw-cat mostantól támogatja a sysex és midiclip adatokat, valamint több tömörítetlen formátumot. Lekérdezhetők a támogatott konténerek, kodekek, elrendezések és csatornanevek, és közvetlenül kiválasztható a használt konténer- és kodekformátum. A rendszererőforrás-korlátok (rlimits) beállítása immár a fő konfigurációs fájlból is elérhető.
A fejlesztők számos kisebb, de fontos hibát is javítottak, például képességszivárgásokat, fájlleíró-szivárgásokat a pulse-serverben, valamint egy versenyhelyzetet (race condition) a GStreamer-integráció pufferfelszabadításánál. Ezek együtt egy stabilabb és megbízhatóbb multimédiás alapot jelentenek a modern Linux rendszerek számára.
A PipeWire 1.6 részletes változáslistája elérhető a projekt hivatalos dokumentációjában, a frissítés pedig jó alapot ad arra, hogy a következő években tovább erősödjön a Linux egységes hang- és videókezelési megoldása.
A PipeWire-ról
A PipeWire egy olyan projekt, amelynek célja, hogy jelentősen javítsa a hang és videó kezelését Linux alatt. Egy alacsony késleltetésű, gráf alapú feldolgozómotort biztosít az audio- és videóeszközök tetején, amely a jelenleg a pulseaudio és a JACK által kezelt felhasználási esetek támogatására használható. A PipeWire-t egy erős biztonsági modellel tervezték, amely megkönnyíti az audio- és videoeszközökkel való interakciót a konténeres alkalmazásokból, a Flatpak alkalmazások támogatása az elsődleges cél. A Wayland és a Flatpak mellett a PipeWire-től azt várják a fejlesztők, hogy a Linux-alkalmazások fejlesztésének egyik alapvető építőkövét adja a jövőben.
- Audió és videó rögzítése és lejátszása minimális késleltetéssel.
- Valós idejű multimédiás feldolgozás audio és videó esetén.
- Többfolyamatos architektúra, hogy az alkalmazások megoszthassák a multimédiás tartalmakat.
- A PulseAudio, JACK, ALSA és GStreamer alkalmazások zökkenőmentes támogatása.
- Sandboxed alkalmazások támogatása. További információért tekintse meg a Flatpak-kal kapcsolatos megoldást.
A PipeWire egy kiszolgáló és API-interfész a multimédia kezelésére Linuxon. Leggyakrabban a Wayland és a Flatpak alkalmazások használják a képernyőmegosztás, a távoli asztal és a különböző szoftverek közötti hang- és video átiránytására. A hivatalos GYIK szerint: „úgy gondolhat rá, mint egy multimédiás útválasztó rétegre az illesztőprogramok tetején, amelyet az alkalmazások és könyvtárak használhatnak".
Szemben a PulseAudio végfelhasználói hangrendszerre és a JACK professzionális hangrendszerre összpontosító programjával, a PipeWire célja, hogy minden felhasználó számára, minden szinten működjön. A PipeWire ezt többek között azzal éri el, hogy képes dinamikusan váltani a különböző pufferméretek között, hogy alkalmazkodni tudjon a különböző audioalkalmazások eltérő késleltetési követelményeihez.

