ITEMS TO WRITE ABOUT:
- How to use the
gstreamer-propertiesconfiguration utility. - Pulse Audio configuration
- Boomer
Resources to help with this section:
- possible resource
- How it works
- OpenSource Sound
- Garret's Boomer presentation - slides
- Garret's Boomer presentation - Video
- PDF on Boomer
OpenIndiana employs several different audio components which work together to facilitate audio output and control. These systems are, in a sense, layered and each provides specific functions, although not without a significant a degree of crossover. The reason for so many different systems is largely a case of ensuring support for legacy as well as modern applications.
| System | Description |
|---|---|
| Gstreamer | Mixer/Proxy |
| PulseAudio | Mixer/Proxy |
| OSS/OSSv4 | Open Sound System |
| Sun Audio | Solaris Audio API (Dev Audio) |
At the lower levels of the OpenIndiana audio stack are OSS, OSS V4, and Sun Audio. Sun Audio is the oldest of the components, followed by OSS and OSS V4 respectively. The oldest applications were created to work with Sun Audio. OSS and OSS V4 provide support for applications originally written for Sun Audio.
At the mid and upper levels are Gstreamer and PulseAudio, both of which provide a proxy like mixing function. Pulse Audio is the newest of the mixing components.
Volume and other controls for the various components can be exposed from any level. For example, volume controls exist for OSS, as well as PulseAudio and Gstreamer.
With so many different components and so much crossover in capabilities, the audio landscape within OpenIndiana can be a bit confusing.
NOTE:
- library/audio/gstreamer/plugin/base
- library/audio/gstreamer/plugin/gnonlin
- library/audio/gstreamer/plugin/good
prtconf -d | grep -i audio
pci1462,8a91 (pciex10de,bea) [NVIDIA Corporation GF108 High Definition Audio Controller], instance #1
pci1458,a002 (pciex8086,3a3e) [Intel Corporation 82801JI (ICH10 Family) HD Audio Controller], instance #0ls /dev/sound
0 0ctl 1 1ctl audiohd:0 audiohd:0ctl audiohd:0dsp audiohd:0mixer audiohd:1 audiohd:1ctl audiohd:1dsp audiohd:1mixerls -l /dev/audio* /dev/sound/*
lrwxrwxrwx 1 root root 7 Aug 10 15:22 /dev/audio -> sound/0
lrwxrwxrwx 1 root root 10 Aug 10 15:22 /dev/audioctl -> sound/0ctl
lrwxrwxrwx 1 root root 9 Aug 10 15:22 /dev/sound/0 -> audiohd:0
lrwxrwxrwx 1 root root 12 Aug 10 15:22 /dev/sound/0ctl -> audiohd:0ctl
lrwxrwxrwx 1 root root 9 Aug 11 18:38 /dev/sound/1 -> audiohd:1
lrwxrwxrwx 1 root root 12 Aug 11 18:38 /dev/sound/1ctl -> audiohd:1ctl
lrwxrwxrwx 1 root root 50 Aug 10 15:22 /dev/sound/audiohd:0 -> ../../devices/pci@0,0/pci1458,a002@1b:sound,audio0
lrwxrwxrwx 1 root root 53 Aug 10 15:22 /dev/sound/audiohd:0ctl -> ../../devices/pci@0,0/pci1458,a002@1b:sound,audioctl0
lrwxrwxrwx 1 root root 48 Aug 10 15:22 /dev/sound/audiohd:0dsp -> ../../devices/pci@0,0/pci1458,a002@1b:sound,dsp0
lrwxrwxrwx 1 root root 50 Aug 10 15:22 /dev/sound/audiohd:0mixer -> ../../devices/pci@0,0/pci1458,a002@1b:sound,mixer0
lrwxrwxrwx 1 root root 66 Aug 11 18:38 /dev/sound/audiohd:1 -> ../../devices/pci@0,0/pci8086,2e21@1/pci1462,8a91@0,1:sound,audio1
lrwxrwxrwx 1 root root 69 Aug 11 18:38 /dev/sound/audiohd:1ctl -> ../../devices/pci@0,0/pci8086,2e21@1/pci1462,8a91@0,1:sound,audioctl1
lrwxrwxrwx 1 root root 64 Aug 11 18:38 /dev/sound/audiohd:1dsp -> ../../devices/pci@0,0/pci8086,2e21@1/pci1462,8a91@0,1:sound,dsp1
lrwxrwxrwx 1 root root 66 Aug 11 18:38 /dev/sound/audiohd:1mixer -> ../../devices/pci@0,0/pci8086,2e21@1/pci1462,8a91@0,1:sound,mixer1audioctl list-devices
audiohd#0pacmd list-cardscat /dev/sndstat
SunOS Audio Framework
Audio Devices:
0: audiohd#0 Intel HD Audio, ICH9 (DUPLEX)
Mixers:
0: audiohd#0 Intel HD Audio, ICH9
HD codec: Conexant CX20561audiotest
Sound subsystem and version: SunOS Audio 4.0 (0x00040003)
Platform: SunOS 5.11 illumos-380fd67 i86pc
*** Scanning sound adapter #1 ***
/dev/sound/audiohd:0dsp (audio engine 0): audiohd#0
- Performing audio playback test...
<left> ................OK
<right> ...............OK
<stereo> ..............OK
<measured sample rate 47949.00 Hz (-0.11%)>
*** All tests completed OK ***Note:
Before you can play MP3 files, several gstreamer plugins are required. Due to licensing concerns in some countries, these plugins are not part of the default OpenIndiana installation. You may however install them from the hipster-encumbered repository.
- library/audio/gstreamer/plugin/bad
- library/audio/gstreamer/plugin/ffmpeg
- library/audio/gstreamer/plugin/ugly