Efter nÀstan ett Ärs utveckling har en ny stabil version av multimediainriktade servern PipeWire 1.6.0 tagits fram, som ersÀtter ljudservern PulseAudio och som skiljer sig frÄn den genom tillÀgget av funktioner för videoströmmar, möjligheten att bearbeta ljud med minimala fördröjningar och en ny sÀkerhetsmodell för att hantera Ätkomst pÄ nivÄ med enskilda enheter och strömmar. Projektet anvÀnds som standard i Fedora Linux, RHEL, Ubuntu, Debian, SUSE/openSUSE och mÄnga andra Linux-distributioner. Koden Àr skriven i C och distribueras under MIT-licensen.
PipeWire bygger pÄ en multiprocessarkitektur som möjliggör delning av innehÄll mellan flera applikationer. Funktioner för att bearbeta alla typer av multimediastreamar, blanda och omdirigera videoströmmar samt hantera videokÀllor, sÄsom videoinspelningsenheter, webbkameror eller innehÄll frÄn applikationer som visas pÄ skÀrmen, erbjuds. PipeWire möjliggör samarbete mellan flera applikationer med webbkameror och löser problem med sÀker skÀrminspelning och fjÀrrÄtkomst till skÀrmen i Wayland-miljöer.
NÀr den anvÀnds som ljudserver servern, kan PipeWire ge minimala fördröjningar och erbjuda funktionalitet som kombinerar funktionerna frÄn PulseAudio och JACK, med hÀnsyn till behoven hos system för professionell ljudbearbetning, nÄgot PulseAudio inte kunde göra. PipeWire erbjuder en avancerad sÀkerhetsmodell som möjliggör hantering av Ätkomst pÄ nivÄ med enskilda enheter och specifika strömmar. Den implementerade Ätkomstmodellen underlÀttar ljud- och videopthusning frÄn isolerade containrar och till dem.
I den nya versionen:
- En dekoder för ljudkodeken LDAC har lagts till, vilket anvÀnds för att överföra högkvalitativt ljud över Bluetooth. Biblioteket libldac anvÀnds för dekodning.
- Alternativet «bluez5-plc-spandsp» har lagts till för att kompensera för paketförlust vid ljudöverföring över Bluetooth, med hjÀlp av kapaciteterna i biblioteket SpanDSP.
- En sÀker implementation av funktioner för analys och skapande av serialiserade objekt i POD-format (Plain Old Data) i delad minne har lagts till.
- Möjligheten att överföra information om stöd för extra funktioner via metadata mellan PipeWire-noder har implementerats, vilket kan anvÀndas för att synkronisera anvÀndningen av avancerad funktionalitet, som stöd för RELEASE-operationen.
- Stöd för att bifoga ytterligare anvÀndardata i kommandon och hÀndelser som överförs mellan noder har lagts till.
- Ytterligare hjÀlpfunktioner för att skapa och analysera kompressionsformat har implementerats.
- Den standardinstÀllda grÀnsen för maximalt antal kanaler har höjts till 128. Möjlighet har lagts till för att ÄsidosÀtta denna grÀns vid kompilering.
- En instÀllning "audio.layout" har lagts till för att stÀlla in en schematisk plan för flerkanalsljud (till exempel "audio.layout = 5.1") utan att behöva lista kanalpositionerna ("audio.position = [ FL, FR, FC, LFE, SL, SR ]").
- En mekanism för "Capability Params" har lagts till för att samordna lÀnkens kapabiliteter innan format och buffertar bestÀms.
- Stöd för nya typer av fÀrgrepresentationer (colortype) för HDR har lagts till.
- Stöd för lÄsning med prioriteringsinversion har implementerats i hÀndelsehanteringscykler för att förhindra situationer dÀr en högprioriterad trÄd mÄste vÀnta pÄ att en lÄsning, som satts av en lÄgt prioriterad trÄd, skall frigöras. I stÀllet för epoll och eventfd anvÀnds lÀtta lÄs för att synkronisera tillstÄnd mellan trÄdar.
- Stöd för att bestÀmma kanalpositioner via tolkning av EDID-data har lagts till.
- Ăverföring av ljudkanalkorts kanaldata (vilken kanal som Ă€r höger, vĂ€nster etc.) till ALSA-systemet har sĂ€kerstĂ€llts.
- MÄnga förbÀttringar relaterade till Bluetooth, RTP (Real-time Transport Protocol) och AVB (Audio Video Bridging) har gjorts.
- Arbetet med implementeringen av nÀtverksprotokollet Milan för realtidsöverföring av multimedia har fortsatt.
- Stöd för anpassningsbara funktionsdÀmpningar för distorsion, sÄsom Blackman och Kaiser, har lagts till i systemet för frekvensomvandling (resampler). För att öka noggrannheten i fasberÀkningarna anvÀnds berÀkningar med fast decimalpunkt.
- Möjlighet har givits att anvÀnda FFmpeg ljudfilter och AI-modeller för ljudbehandling, baserat pÄ ONNX, i ljudknoten, sÄsom taldetekteraren Silero.
- Stödet för klienter som anvÀnder protokoll v0, som anvÀndes i tidigare versioner av PipeWire, har upphört.
- Modulen jack-tunnel har fÄtt stöd för automatisk portanslutning.
- För strömningssystemet ROC har stöd för flerkanalslayouter implementerats.
- Möjlighet att Àndra resursgrÀnser (rlimit) via konfigurationsfilen har tillhandahÄllits.
- Egenskapen 'thread.reset-on-fork' har lagts till för att hantera ÄterstÀllning av trÄdar vid anrop av fork. För JACK-klienter kan trÄdÄterstÀllning inaktiveras genom att stÀlla in 'thread.reset-on-fork=false'.
- Flaggan node.exclusive har lagts till, vilket garanterar att en port har endast en kÀlla och en konsument, vilket Àr nödvÀndigt för att implementera mekanismen Explicit Sync.
- Flaggan node.reliable har lagts till för lÀget för garanterad leverans.
- Verktyget pw-cat har fÄtt stöd för MIDI SysEx-meddelanden (System Exclusive, för instÀllning av syntar), midiclip-containrar och okomprimerade ljudformat. Alternativ har lagts till för att stÀlla in ljudcontainerformat och kodekar, samt för att se en lista över stödda containrar, kodekar, ljudlayout och kanalnamn.
KĂ€lla: opennet.ru
