Megjelent a PipeWire 1.4 – RISC-V támogatás, MIDI2, JACK API és fejlettebb Bluetooth kezelés

A PipeWire projekt kiadta a népszerű Linux rendszereken használt multimédiás szerver 1.4-es verzióját, amely jelentős frissítésként fejleszti az audió- és videófolyamok kezelését, valamint a hardveres eszközök támogatását.

Megjelent a PipeWire 1.4 – RISC-V támogatás, MIDI2, JACK API és fejlettebb Bluetooth kezelés

Kompatibilitás és általános változások

A PipeWire 1.4 verziója API és ABI kompatibilis marad az 1.2.x és 1.0.x kiadásokkal. A fejlesztés során több fontos módosítás történt, amelyek az előző évben megjelent 1.2-es verzió óta felhalmozódtak. Az egyik jelentős változás, hogy a client-rt.conf fájlt eltávolították, így minden kliens mostantól a client.conf beállításait használja, és automatikusan valós idejű prioritást kap az adatfolyamok kezeléséhez.

Új funkciók és fejlesztések

Az egyik legfontosabb újdonság a MIDI2 (UMP) támogatás, amely mostantól az alapértelmezett formátum a MIDI1 és MIDI2 adatátvitelhez PipeWire-en belül. A rendszer tartalmaz segédfüggvényeket a régi MIDI és az UMP közötti konverzióhoz. A hangfeldolgozás terén a resampler mostantól előre kiszámít néhány gyakori konverziós szűrőt, és javították a késleltetés kezelését.

A Bluetooth támogatás kibővült, mostantól kezeli a BAP broadcast linkeket és az ASHA protokollt, amely a hallókészülékek támogatását biztosítja. Egy új G722 kodek is elérhetővé vált, emellett finomhangolták a késleltetés beállítását és visszajelzését Bluetooth kapcsolat esetén. Az ALSA pluginben lehetővé vált a DSD lejátszás, ha az explicit módon engedélyezve van az alsa.formats tulajdonsággal.

A PipeWire JACK vezérlő API bevezetése új lehetőségeket biztosít JACK-alapú alkalmazások számára. Egy másik fontos újdonság a pipewire-pulse rendszer szolgáltatásként való elérhetővé tétele. A fejlesztők átalakították a SPA makrókat inline függvényekké, és mostantól ezek egy külön libspa.so könyvtárban is megtalálhatók, ami megkönnyíti a hozzáférést különféle programnyelvekből.

Modulok és audiófeldolgozás

A filter-chain modul grafikus kódját különálló filter-graph SPA pluginba helyezték át, így rugalmasabban használható. Új EBUR128, param_eq és dcblock pluginek jelentek meg, valamint a filter-graph mostantól FFTW segítségével is végezhet konvolúciós számításokat. Az audiokonvertáló plugin optimalizálást kapott, és lehetőség nyílt további szűrőgrafikonok beillesztésére a jelfeldolgozás során.

Az új verzió támogatja az UCM split PCMs funkciót, amely lehetővé teszi, hogy a PipeWire kezelje a PCM-eket a megfelelő metaadatokkal, ezzel kiváltva az alsa-lib korábbi megoldását. Az echo-cancel modul mostantól támogatja a WebRTC2-t, és az IEC958 kodekek automatikusan felismerésre kerülnek HDMI ELD adatból.

Egyéb fejlesztések

A PipeWire mostantól támogatja a RISC-V architektúrát, továbbá optimalizációk készültek ehhez a CPU platformhoz. Az időbélyegek naplózására használt óra konfigurálhatóvá vált, a JSON elemzőt pedig két részre osztották: egy alapvető funkciókat biztosítóra és egy segédmodulra. A videokezelésben megjelent egy FFmpeg-alapú videokonvertáló plugin, amely a videoadapterrel együtt használható.

A GStreamer elemek jobb pufferkezelést és sebességillesztést kaptak, a combine-stream modul pedig mostantól képes keverni a streamelt adatokat. A netjack-manager támogatja az automatikus stream csatlakoztatást, és a native-protocol lehetőséget biztosít absztrakt socketek kezelésére.

A PulseAudio szerverben további fejlesztések történtek: mostantól támogatja a blokkolt lejátszást és rögzítést a pulse.rules beállításokon keresztül, valamint pontosabban kezeli a lejátszási állapotokat és késleltetéseket. Az RTP források standby módba kerülhetnek, ha éppen nincs adatforgalom. A ROC modul további konfigurációs opciókat kapott, és a VBAN vevő automatikusan képes stream-ek létrehozására azok észlelésekor.

Hibajavítások és az ezekhez kapcsolódó kisebb fejlesztések

Az új verzióval számos kisebb javítás is érkezett. A metadata.h fejlécfájl néhány hiányzó bejegyzéssel bővült, és mostantól az aktuális hibák visszatérnek az errno változón keresztül, ha egy stream hibás állapotba kerül. A modulok terén biztosították, hogy a csomópontok és portok megfelelő módon társíthatók legyenek.

A GStreamer oldalon javították az alapértelmezett eszközök változásainak észlelését, valamint hatékonyabb lett a videó buffer-kezelés. A JACK támogatásnál egy új opció jelent meg, amely lehetővé teszi a MIDI2 port flag-ek letiltását.

A PipeWire 1.4 részletes kiadási megjegyzése a projekt GitLab oldalán tekinthető meg, ahol a friss csomagok is elérhetőek amennyiben magad szeretnéd fordítani a forráskódot.