PulseAudio - PulseAudio

PulseAudio
PulseAudio logo
PulseAudio GUI.png
Skærmbillede
Udvikler (er) Lennart Poettering
Pierre Ossman
Shahms E. King
Tanu Kaskinen
Colin Guthrie
Arun Raghavan
David Henningsson
Første udgivelse 17. juli 2004 ; 17 år siden ( 2004-07-17 )
Stabil udgivelse
15.0 / 27. juli 2021 ; 2 måneder siden ( 2021-07-27 )
Depot gitlab .freedesktop .org /pulseaudio /pulseaudio
Skrevet i C
Operativ system FreeBSD , NetBSD , OpenBSD , Linux , Illumos , Solaris , macOS og Microsoft Windows (vedligeholdes ikke)
Platform ARM , PowerPC , x86 / IA-32 , x86-64 og MIPS
Type Lydserver
Licens LGPL-2.1 eller nyere
Internet side pulseaudio.org

PulseAudio er et netværks-kompatibelt lydserverprogram , der distribueres via freedesktop.org- projektet. Det kører hovedsageligt på Linux , forskellige BSD -distributioner såsom FreeBSD og OpenBSD , macOS , samt Illumos -distributioner og Solaris -operativsystemet .

PulseAudio er gratis og open source-software , og er licenseret i henhold til vilkårene i LGPL-2.1 eller nyere .

Det blev oprettet i 2004 under navnet Polypaudio, men blev i 2006 omdøbt til PulseAudio.

Historie

Microsoft Windows blev tidligere understøttet via MinGW (en implementering af GNU -værktøjskæden, som indeholder forskellige værktøjer som GCC og binutils ). Windows -porten er dog ikke blevet opdateret siden 2011.

Software arkitektur

PulseAudio operationelt flowdiagram
PulseAudio er en dæmon, der blander i software.

I store træk er ALSA et kerneundersystem, der leverer driveren til lydhardware, og PulseAudio er grænseflademotoren mellem Applications og ALSA.

PulseAudio fungerer som en lydserver, hvor der oprettes en baggrundsproces, der accepterer lydinput fra en eller flere kilder (processer, capture -enheder osv.). Baggrundsprocessen omdirigerer derefter disse lydkilder til en eller flere dræn (lydkort, PulseAudio -servere på fjernnetværk eller andre processer).

Et af målene med PulseAudio er at omdirigere alle lydstrømme gennem det, herunder dem fra processer, der forsøger at få direkte adgang til hardwaren (som ældre OSS -applikationer). PulseAudio opnår dette ved at levere adaptere til applikationer, der bruger andre lydsystemer, f.eks. ARts og ESD .

I et typisk installationsscenarie under Linux konfigurerer brugeren ALSA til at bruge en virtuel enhed leveret af PulseAudio. Således udsender applikationer, der bruger ALSA, lyd til PulseAudio, som derefter bruger ALSA selv til at få adgang til det rigtige lydkort. PulseAudio giver også sin egen native interface til applikationer, der ønsker at understøtte PulseAudio direkte, samt en ældre grænseflade til ESD-applikationer, hvilket gør den velegnet som drop-in-erstatning for ESD.

For OSS -applikationer leverer PulseAudio padspværktøjet, der erstatter enhedsfiler som f.eks /dev/dsp. At narre applikationerne til at tro, at de har eksklusiv kontrol over lydkortet. I virkeligheden omdirigeres deres output gennem PulseAudio.

libcanberra

libcanberra er en abstrakt API til desktophændelseslyde og en total erstatning for "PulseAudio sample cache API":

libSydney

libSydney er en total erstatning for "PulseAudio streaming API", og der er lagt planer om, at libSydney til sidst bliver det eneste lyd -API, der bruges i PulseAudio.

Funktioner

De vigtigste PulseAudio -funktioner omfatter:

  • Volumenkontroller pr. Applikation.
  • En udvidelig plugin -arkitektur med understøttelse af moduler, der kan indlæses.
  • Kompatibilitet med mange populære lydprogrammer.
  • Understøttelse af flere lydkilder og dræn.
  • En hukommelsesarkitektur uden nul til processorressourceeffektivitet.
  • Mulighed for at opdage andre computere ved hjælp af PulseAudio på det lokale netværk og afspille lyd direkte via deres højttalere.
  • Mulighed for at ændre, hvilke outputenhedsapplikationer der bruges til at afspille lyd, mens de afspiller lyd (applikationer behøver ikke at understøtte dette, PulseAudio er i stand til at gøre dette uden at applikationer opdager at det er sket)
  • En kommandolinjegrænseflade med scriptfunktioner.
  • En lyddæmon med kommandolinjekonfiguration.
  • Indbygget prøvekonvertering og resampling.
  • Muligheden for at kombinere flere lydkort til et.
  • Muligheden for at synkronisere flere afspilningsstrømme.
  • Bluetooth -lydenhedssupport med dynamiske detekteringsmuligheder.
  • Evnen til at muliggøre systembred udligning .

Adoption

PulseAudio dukkede først op for almindelige brugere i Fedora Linux , startende med version 8, derefter blev det vedtaget af store Linux -distributioner som Ubuntu , Debian , Mandriva Linux og openSUSE . Der er understøttelse af PulseAudio i GNOME -projektet og også i KDE , da det er integreret i Plasma -arbejdsområder og tilføjer understøttelse til Phonon (KDE -multimedierammen) og KMix (det integrerede mixerprogram) samt en "Speaker Setup" GUI for at hjælpe konfigurationen af ​​multi-channel højttalere. PulseAudio er også tilgængelig i Illumos -distributionen OpenIndiana og aktiveret som standard i sit MATE -skrivebordsmiljø.

Forskellige Linux -baserede mobile enheder, herunder Nokia N900 , Nokia N9 og Palm Pre use PulseAudio.

Tizen , et open-source mobiloperativsystem, som er et projekt fra Linux Foundation og styres af en Technical Steering Group (TSG) sammensat af Intel og Samsung , bruger PulseAudio.

Problemer i adoptionsfasen

  • Den Portaudio API var uforenelig med PulseAudio design og havde brug for at blive ændret. Næsten alle pakker, der bruger OSS, og mange af de pakker, der bruger ALSA, skulle ændres for at understøtte PulseAudio. Yderligere udvikling af den fejlfrie lydfunktion krævede en fuldstændig omskrivning af PulseAudio-kernen, og også ændringer af ALSA API og interne var nødvendige.
  • Da PulseAudio -udvikleren Lennart Poettering (også skaberen af systemd ) først blev vedtaget af distributioner, beskrev den det som "softwaren, der i øjeblikket bryder din lyd". Poettering hævdede senere, at " Ubuntu ikke ligefrem udførte et fantastisk job. De lavede ikke deres hjemmearbejde" ved at vedtage PulseAudio til Ubuntu "Hardy Heron" (8.04), et problem, der blev forbedret med efterfølgende Ubuntu -udgivelser. I oktober 2009 rapporterede Poettering imidlertid, at han stadig ikke var tilfreds med Ubuntu's integration af PulseAudio.
  • Interaktion med gamle lydkomponenter med særlig software: Visse programmer, f.eks. Adobe Flash til Linux, forårsagede ustabilitet i PulseAudio. Nyere implementeringer af Flash -plugins kræver ikke de modstridende elementer, og derfor er Flash og PulseAudio nu kompatible.
  • Tidlig håndtering af bufferover-/underkørsler: Tidligere versioner af PulseAudio begyndte undertiden at forvrænge den behandlede lyd på grund af forkert håndtering af bufferover-/underkørsler.
  • Muligheden for høreskader på grund af akustisk stød i tilfælde af en fejlbehæftet applikation.

Relateret software

Andre lydservere

JACK er en lydserver, der giver realtid, lav latenstid (dvs. 5 millisekunder eller mindre) lydydelse og, siden JACK2, understøtter effektiv belastningsbalancering ved at anvende symmetrisk multiprocessing ; det vil sige, at belastningen af ​​alle lydklienter kan fordeles mellem flere processorer. JACK er den foretrukne lydserver til professionelle lydapplikationer såsom Ardor , ReZound og LinuxSampler ; flere gratis lydproduktionsdistributioner bruger det som standard lydserver.

Det er muligt for JACK og PulseAudio at sameksistere: mens JACK kører, kan PulseAudio automatisk forbinde sig selv som en JACK -klient, så PulseAudio -klienter kan lave og optage lyd på samme tid som JACK -klienter.

PipeWire er en lyd- og videoserver, der "har til formål at understøtte de anvendelser, der i øjeblikket håndteres af både PulseAudio og Jack".

Generelle lydinfrastrukturer

Før JACK og PulseAudio blev lyd på disse systemer styret af multi-purpose integrerede lydløsninger. Disse løsninger dækker ikke fuldt ud blandings- og lydstreamingsprocessen, men de bruges stadig af JACK og PulseAudio til at sende den sidste lydstrøm til lydkortet.

  • ALSA leverer en softwaremixer kaldet dmix, som blev udviklet før PulseAudio. Dette er tilgængeligt på næsten alle Linux -distributioner og er en enklere PCM -lydblandingsløsning. Det giver ikke de avancerede funktioner (såsom timerbaseret planlægning og netværkslyd) fra PulseAudio. På den anden side tilbyder ALSA, i kombination med tilsvarende lydkort og software, lave latenstider.
  • OSS var det originale lydsystem, der blev brugt i Linux og andre Unix -operativsystemer, men blev forældet efter 2,5 Linux -kernen. Proprietær udvikling blev fortsat af 4Front Technologies , der i juli 2007 frigav kilder til OSS under CDDL-1.0 til OpenSolaris og under GPL-2.0-only til Linux . Den moderne implementering, Open Sound System v4, giver softwareblanding, resampling og ændring af volumen pr. Applikation; i modsætning til PulseAudio er disse funktioner implementeret i kernen. PulseAudio-support i OpenIndiana og andre illumos- distributioner er afhængig af OSS-implementeringen i kernen (" Boomer" ).

Se også

Referencer

eksterne links