Po téměř roce vývoje byla vydána nová stabilní větev multimediálního serveru PipeWire 1.6.0. Nahrazuje audio server PulseAudio a nabízí možnosti streamování videa, zpracování zvuku s nízkou latencí a nový bezpečnostní model pro řízení přístupu na úrovni zařízení a streamu. Projekt je výchozí verzí ve Fedoře. Linux, RHEL, Ubuntu, Debian, SUSE/openSUSE a mnoho dalších distribucí LinuxKód je napsán v jazyce C a distribuován pod licencí MIT.
PipeWire je založen na multiprocesové architektuře, která umožňuje sdílení obsahu mezi více aplikacemi. Poskytuje funkce pro zpracování multimediálních streamů, mixování a přesměrování video streamů a správu zdrojů videa, jako jsou zařízení pro záznam videa, webové kamery nebo obsah obrazovky aplikací. PipeWire umožňuje spolupráci mezi více aplikacemi a webkamerou a řeší problémy bezpečného snímání obrazovky a vzdáleného přístupu k obrazovce v prostředí Wayland.
Při použití jako zvuk serverPipeWire dokáže poskytnout minimální latenci a funkcionalitu, která kombinuje možnosti PulseAudio a JACK, a řeší tak potřeby profesionálních systémů pro zpracování zvuku, čehož PulseAudio nedokázal dosáhnout. PipeWire nabízí pokročilý model zabezpečení, který umožňuje řízení přístupu na úrovni zařízení a streamu. Tento model přístupu zjednodušuje směrování zvuku a videa do a z izolovaných kontejnerů.
V nové verzi:
- Pro audio kodek LDAC, který se používá k přenosu vysoce kvalitního zvuku přes Bluetooth, byl přidán dekodér. Pro dekódování se používá knihovna libldac.
- Přidána možnost „bluez5-plc-spandsp“ pro kompenzaci ztráty paketů při přenosu zvuku přes Bluetooth s využitím možností knihovny SpanDSP.
- Přidána bezpečná implementace funkcí pro parsování a vytváření serializovaných objektů ve formátu POD (Plain Old Data) ve sdílené paměti.
- Byla implementována možnost přenosu informací o podpoře dalších funkcí uzly PipeWire prostřednictvím metadat, což lze použít k synchronizaci používání rozšířených funkcí, jako je například podpora operace RELEASE.
- Přidána podpora pro připojení dalších uživatelských dat k příkazům a událostem předávaným mezi uzly.
- Byly implementovány další pomocné funkce pro vytváření a analýzu kompresních formátů.
- Výchozí limit maximálního počtu kanálů byl zvýšen na 128. Byla přidána možnost tento limit přepsat během kompilace.
- Přidáno nastavení „audio.layout“ pro nastavení rozložení vícekanálového prostorového zvuku (např. „audio.layout = 5.1“) bez nutnosti vypisovat pozice kanálů („audio.position = [ FL, FR, FC, LFE, SL, SR ]“).
- Přidán mechanismus „Parametry schopností“ pro vyjednávání schopností odkazu před definováním formátu a vyrovnávacích pamětí.
- Přidána podpora pro nové typy barev pro HDR.
- Smyčky pro zpracování událostí nyní podporují zámky s inverzí priorit, což zabraňuje situacím, kdy vlákno s vysokou prioritou musí čekat na uvolnění zámku drženého vláknem s nízkou prioritou. Místo epoll a eventfd se pro synchronizaci stavu mezi vlákny používají odlehčené zámky.
- Přidána podpora pro určování pozice kanálu analýzou dat EDID.
- Je zajištěn přenos mapy kanálů prostorového zvuku (který kanál je vpravo, který vlevo atd.) do subsystému ALSA.
- Bylo provedeno mnoho vylepšení týkajících se Bluetooth, RTP (Real-time Transport Protocol) a AVB (Audio Video Bridging).
- Pokračovaly práce na implementaci síťového protokolu Milan pro přenos multimediálních dat v reálném čase.
- Resampler nyní podporuje přizpůsobitelné funkce pro redukci zkreslení, jako například Blackman a Kaiser. Pro zlepšení přesnosti výpočtu fáze se nyní používají výpočty s pevnou řádovou čárkou.
- Byla zavedena možnost použití zvukových filtrů FFmpeg a modelů umělé inteligence založených na ONNX pro zpracování zvuku, jako je například detektor hlasu Silero, v grafu uzlů.
- Podpora pro klienty používající protokol v0, který se používal v dřívějších verzích PipeWire, byla ukončena.
- Modul jack-tunelu byl aktualizován a nyní podporuje automatické připojení k portu.
- Pro streamovací systém ROC byla implementována podpora pro vícestopé rozvržení.
- Byla poskytnuta možnost změnit limity zdrojů (rlimit) pomocí konfiguračního souboru.
- Přidána vlastnost „thread.reset-on-fork“ pro řízení resetování vlákna při větvení. U klientů JACK lze resetování vlákna zakázat nastavením „thread.reset-on-fork=false“, čímž se replikuje chování klienta JACK.
- Přidán příznak node.exclusive, který zajišťuje, že port má pouze jeden zdroj a jednoho příjemce, což je nezbytné pro implementaci mechanismu Explicit Sync.
- Přidán příznak node.reliable pro garantovaný režim doručení.
- Nástroj pw-cat nyní podporuje MIDI SysEx (exkluzivní pro systém, pro konfiguraci syntezátorů), kontejner midiclip a nekomprimované zvukové formáty. Byly přidány možnosti pro nastavení formátů audio kontejnerů a kodeků a také pro zobrazení seznamu podporovaných kontejnerů, kodeků, rozvržení prostorového zvuku a názvů kanálů.
Zdroj: opennet.ru
