Dokumentacija PulseAudio
PulseAudio (prije se zvao Polypaudio) je više-platformski, umreženi zvučni server često korišten na Linuxu i FreeBSD operacijskim sustavima. Može se koristiti kao poboljšana zamjena za Enlightened Sound Daemon (ESD). PulseAudio se vrti na MS Windows i POSIX kompatibilnim platformama poput Linuxa i FreeBSD-a. PulseAudio je izdan pod GNU LGPL 2.1 licencom.
Sadržaj
Dizajn
PulseAudio je zvučni server, pozadinski proces koji prihvaća zvučni ulaz od jednog ili više izvora (procesa ili mikrofona) i preusmjerava ih u jedan ili više izlaza.
Jedan od ciljeva PulseAudio je preusmjeravanje svih zvučnih podataka kroz sebe, ukljućujući procese koji pokušavaju komunicirati direktn osa hardverom (poput starih OSS aplikacija). PulseAudio ovo postiže osiguravajući adaptere zaaplikacije koristeći druge audio sustave poput aRts i ESD.
U tipičnom scenariju pod Linuxom, korisnik konfigurira ALSA da koristi virtualni izlaz kojeg osigurava PulseAudio. PulseAudio tada koristi ALSA za komunikaciju sa stvarnim hardverom. PulseAudio također osigurava vlastiti interfejs za aplikacije koje žele podržavati PulseAudio direktno, kao i stare sustave za ESD aplikacije, što omogućava da se iskoristi kao zamjenski sustav za isti taj ESD.
Za OSS aplikacije, PulseAudio osigurava padsp alat, koji zamijenjuje /dev/dsp, time varajući aplikacij da povjeruju kako imaj uekskluzivnu kontrolu nad zvučnom karticom. U stvarnosti, njihov je izlaz preusmjeren kroz PulseAudio.
Značajke
Glavne značajke PulseAudio su:
- Kontrola glasnoće po aplikaciji
- Otvorena arhitektura za plugine sa podrškom za module
- Kompatibilnost sa mnogo audio aplikacija
- Podrška za više audio izvora i sinkova
- Operacije sa niskom latencijom i podrška za mjerenje latencije
Zero-copy memorijska arhitektura za povećanje efikasnosti procesorskih resursa
- Sposobnost otkriti druga računala koja koriste PulseAudio na lokalnoj mreži i puštati zvuk kroz njihove zvučnike direktno
- Sposobnost da promijeniti izlazni uređaj dok neka aplikacija pušta zvuk, bez da aplikacija ovako nešto podržava ili da uopće bude svjesna ovako nečega)
- CLI sučelje za pisanje skripti
- sound dameon sa sposobnosti CLI rekonfiguracije
- ugrađeni konverzija samplova i resempliranje
- Sposobnost kombiniranja više kartica u jednu
- Sposobnost sinkronizacije više izlaza
- Dinamička detekcija bluetooth audio uređaja
- Sposobnost ekvilizacije zvukana razini sistema
PA kao sistemski servis
Mrežne postavke PA
Prebacivanje između dva profila
Da bi se brzo prebacili između dva audio profila (npr. HDMI audio izlaza i ugrađenih zvučnika) možemo koristiti ovakvu skriptu:
#!/bin/bash hdmi=`pactl info | grep hdmi | wc -l` card="alsa_card.pci-0000_00_1b.0" analog_profile="output:analog-stereo+input:analog-stereo" hdmi_profile="output:hdmi-stereo+input:analog-stereo" if [ $hdmi == 1 ]; then echo "HDMI output: off" pactl set-card-profile $card $analog_profile else echo "HDMI output: on" pactl set-card-profile $card $hdmi_profile fi
gdje su varijable card, analog_profile i hdmi_profile ovisne o hardverskom postavu i sustavu. Card mora biti ime kartice, a profili pripadajući profili za konfiguraciju zvučnika (sve se može dobiti s pactl list).
Da bi se ova skripta automatski pokrenula pri uštekavanju HDMI-ja u računalo iskoristimo udev pravilo. U datoteku /etc/udev/rules.d/90-hdmi-audio.rules stavimo sljedeći sadržaj:
KERNEL=="card0", SUBSYSTEM=="drm", ACTION=="change", RUN+="/usr/local/bin/audio-switch.sh"
i ponovno učitamo udev pravila s:
udevadm control --reload
Parametre za udev pravilo možemo dobiti s:
udevadm monitor
zatim uključimo HDMI kabel pa ga opet isključimo. Kernel tada javi stanje kojeg uređaja se promijenilo. Direktnim upitom možemo dobiti sve parametre tog uređaja:
udevadm info -a -p /devices/pci0000:00/0000:00:02.0/drm/card0
Izvor
--Shrike 14:45, 14. ožujka 2011. (UTC)