libao: a cross platform audio library
Libao is a cross-platform audio library that allows programs to output audio using a simple API on a wide variety of platforms. It currently supports:
- Null output (handy for testing without a sound device)
- WAV files
- AU files
- RAW files
- OSS (Open Sound System, used on Linux and FreeBSD)
- ALSA (Advanced Linux Sound Architecture)
- aRts (Analog RealTime Synth, used by KDE)
- PulseAudio (next generation GNOME sound server)
- esd (EsounD or Enlightened Sound Daemon)
- Mac OS X
- Windows (98 and later)
- AIX
- Sun/NetBSD/OpenBSD
- IRIX
- NAS (Network Audio Server)
- RoarAudio (Modern, multi-OS, networked Sound System)
- OpenBSD's sndio
Development code is at gitlab.xiph.org. Please report issues there.
Release 1.2.0 - January 27, 2014
- Source code: libao-1.2.0.tar.gz
Changelog
- Added missing ao_file_extension() (see Trac #1841)
- Fixed memory leak in ao_shutdown() (see Trac #1799)
- Updated manpage libao.conf.5 (see Trac #1822)
- Corrected doc/ao_play.html (see Trac #1808)
- Latency adjustments
- Implement PulseAudio client_name (see Trac #1924)
- Other ALSA, Pulse, Roar, sndio and MacOS driver improvements
Release 1.1.0 - February 21, 2011
- Source code: libao-1.1.0.tar.gz
Changelog
- Add autofoo ld symbol versioning to build system
- Update Roar driver to latest API
- Fix Roar driver to not block on SLP lookup during probe
- Improve/correct latency setup in ALSA (see Trac #1762)
- Add missing ctype.h header in build (see Trac #1760)
- Move toward more consistent option naming across drivers
- Fix Mac OS X AUHAL support to properly handle suspend/wakeup, headphone plug/unplug, other hardware events
- Correct ao_example.c source to not pass dangling pointer for the matrix argument.
- Add 24 bit playback to Pulse plugin
- Fix 24 bit playback in ALSA plugin
- Fix segfaults when closing a driver that did not successfully open.
- Fix compilation of sndio plugin
- Fix building Mac OS X driver AUHAL compilation for 10.5, restore Mac OS X 10.4 support
Release 1.0.0 - March 25, 2010
- Source code: libao-1.0.0.tar.gz
Changelog
- AO returned to active development
- Added surround channel mapping API and capability
- Updated all drivers on modern installs
- New config file options
- Driver options may be specified in config file
- Support for MacOSX updated to 10.5 and later
- Build in WMM driver rather than using dlopen()
- Added Roar Audio driver
- Added OpenBSD SNDIO driver
- Workaround for ESD non-4096 byte write bug
- Workaround aRts server crash bug
- Workaround for VIA82xx click/crackle bugs under ALSA
- Remove dead/unused drivers (solaris, alasa05, mmsound)
- Numerous patches from multiple downstreams
Release 0.8.8 - May 24, 2007
- Source code: libao-0.8.8.tar.gz
Changelog
- New win32 driver
- Few fixes and changes in autotools and configuration files
- PulseAudio plugin replaces polyp
Release 0.8.6 - January 11, 2005
- Source code: libao-0.8.6.tar.gz
Changelog
- New Polypaudio driver (libao-polyp 0.4) contributed by Lennart Poettering)
- Use esd_close() in the esd driver
- Broaden sample rate tolerance in the OSS driver for nForce compatibility
Release 0.8.5 - March 19, 2004
- Source code: libao-0.8.5.tar.gz
- RedHat 9: libao-0.8.5-3.rh90.i386.rpm
- RedHat 9 Development: libao-devel-0.8.5-3.rh90.i386.rpm
- Fedora Core 1: libao-0.8.5-3.rhfc1.i386.rpm
- Fedora Core 1 Development: libao-devel-0.8.5-3.rhfc1.i386.rpm
Changelog
- Support now for the ALSA 1.0 API
- ALSA mmap() mode can be enabled/disabled at runtime using "use_mmap" option.
- Patch to OSS plugin to fix skipping issues with some drivers (like emu10k1).
- Can build with --disable-esd option again
- Minor build fixes
Release 0.8.4 - October 5, 2003
- Source code: libao-0.8.4.tar.gz
RedHat 9
Note that the RedHat RPMS only have support for OSS, esd, and aRts compiled into them. For other output devices, you will need to compile from source.
- RPM: libao-0.8.4-1.i386.rpm
- Devel RPM:libao-devel-0.8.4-1.i386.rpm
- Debug RPM:libao-debuginfo-0.8.4-1.i386.rpm
- Source RPM:libao-0.8.4-1.src.rpm
Debian unstable
Changelog
- Incorporated OS X patches from the Fink team.
- AIX output plugin by Stefan Tibus.
- Improvements in plugin detection code by David Walser, especially when esd or aRts are present.
- NAS plugin from Antoine Mathys.
- Portability fixes for various platforms (including dlopen() bugs) including HP-UX and *BSD.
- Memory/resource leak fixes
- Significant fixes to ALSA 0.9.x plugin by Kevin Cody, Jr. This should fix stuttering audio for mpg321 users. The --enable-alsa09-mmap option to ./configure turns on memory-mapped I/O. Note this is an experimental feature and causes some problems with some sound card drivers and also users of the dmix software mixer.