1libao - A Cross-platform Audio Library, Version 0.8.6 2 3Originally Copyright (C) Aaron Holtzman - May 1999 4Changes Copyright (C) Jack Moffitt - October 2000 5Changes Copyright (C) Stan Seibert - July 2000-March 2004 6libao-pulse Copyright (C) Lennart Poettering 2004-2006 7Changes Copyright (C) 2004-2005 Xiph.org Foundation 8Changes Maintainer Benjamin Gerard 9 10libao is free software; you can redistribute it and/or modify 11it under the terms of the GNU General Public License as published by 12the Free Software Foundation; either version 2, or (at your option) 13any later version. 14 15libao is distributed in the hope that it will be useful, 16but WITHOUT ANY WARRANTY; without even the implied warranty of 17MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18GNU General Public License for more details. 19 20You should have received a copy of the GNU General Public License 21along with GNU Make; see the file COPYING. If not, write to 22the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. 23 24--------------------------------------------------------------------- 25 26OVERVIEW 27 28Libao is a cross-platform audio library that allows programs to output 29audio using a simple API on a wide variety of platforms. It currently 30supports: 31 * Null output 32 * WAV files 33 * OSS (Open Sound System) 34 * ESD (ESounD or Enlightened Sound Daemon) 35 * ALSA (Advanced Linux Sound Architecture) 36 * PulseAudio (next generation GNOME sound server) 37 * AIX 38 * Solaris (untested) 39 * IRIX (untested) 40 41HISTORY 42 43Libao began life as cross-platform audio library inside of ac3dec, an 44AC3 decoder by Aaron Holtzman that is part of the LiViD project. When 45ogg123 (part of the command line vorbis tools) needed a way to play 46audio on multiple operating systems, someone on the vorbis-dev mailing 47list suggested the libao library as a possible way to add cross-platform 48support to ogg123. Stan Seibert downloaded the libao library, severely 49hacked it up in order to make the build process simpler and support 50multiple live-playback devices. (The original code allowed one live 51playback driver, the wav driver, and a null driver to be compiled into 52the library.) Jack Moffitt got it supporting dynamically loaded plugins 53so that binary versions of libao could be provided. The API was revised 54for version 0.8.0. 55 56This code is being maintained by Stan Seibert (volsung@xiph.org) 57and various other individuals. Please DO NOT annoy Aaron Holtzman about 58bugs, features, comments, etc. regarding this code. 59 60WORKAROUNDS 61 62The OSS emulation in ALSA deviates from the OSS spec by not returning 63immediately from an open() call if the OSS device is already in use. 64Instead, it makes the application wait until the device is available. 65This is not desirable during the autodetection phase of libao, so a 66workaround has been included in the source. Since the workaround 67itself violates the OSS spec and causes other problems on some 68platforms, it is only enabled when ALSA is detected. The workaround 69can be turned on or off by passing the --enable-broken-oss or 70--disable-broken-oss flag to the configure script. 71