About
Broadcasters
Free Trial
Purchase
News
Documentation
OAS Audio API

OAS Audio API

Current Release: 1.00

The OAS Audio API is an asynchronous Win32 audio Playback library. It is the heart of the OAS Playout system providing a message driven, easy to use interface to any Win32 Application. OAS Audio utilises the MPGLIB decoder (which is a Win32 port of the Linux mpg123 LGPL decoder).

OAS Audio is available for use freely in it's unmodified binary form, subject to the terms of the GNU Lesser General Public Licence (LGPL) under which the MPGLIB library is distributed.

Overview

The OAS Audio API operates on a command/message driven basis much like any Windows control. Once a player 'instance' has been created, it is controlled by issuing commands such as Play, Stop, Pause etc. whilst the application receives notification messages reflecting the current state of the Player - Paused, Stopped, End-Of-File etc. The API has built in DirectSound output capability with support for user definable output modules and filters. It also provides extensive buffering capabilities (MPEG formats only) to ensure continuous, reliable playback over volatile or unpredictable network environments.

XAudio Developers

The API was developed to support OAS Playout which utilised the XAudio SDK for MP3 playback in the initial releases - OAS Audio was intended to remove this dependency ie. provide a 'drop in' replacement. As such, developers who are familiar with the XAudio library will find much of the API very similar to the one provided by XAudio. A number of the capabilities of the SDK are implemented, however it is by no means a full implementation. In comparision to the XAudio SDK, OAS Audio provides the following key capabilities/differences:

  • Win32 platforms only
  • Supports MP2, MP3, PCM/WAV, OGG/Vorbis*, WMA** and FLAC*** file formats
  • Supports libsndfile file formats****
  • Build in DirectSound output support only (not MCI)
  • File based Input only (no user definable Input modules/filters)
  • Supports Output Filters and Output Modules
  • Much cut down API calls available

* The OGG/Vorbis decoder is not included with the API, it can be obtained by downloading the Win32 SDK from the Vorbis download page. The ogg.dll, vorbis.dll and vorbisfile.dll files are required in order to use the decoder with OAS Audio. Note this is a slightly old version of the libraries, I've been unable to find a set of pre-compiled binaries on the sitre however if you need the newer versions and have the necessary tools to build them, these may also be used with OAS Audio. The newer versions also subsume the ogg.dll component into the vorbis DLL so this will not be required.

**WMA support relies on and therefore may behave differently on the version of Windows Media Player that is installed. It has been tested against MPlayer v9 and is probably okay back to v7. Note: The decoder will not play DRM protected WMA format.

*** The FLAC decoder is not included with the API, it can be obtained from the FLAC download page.

**** libsndfile is not included with the package, you can obtain it here. If you opt to use libsndfile, please observe the author's request for continuing support on the Windows platform,

Existing Users

See the 'oas-audio.txt' file in the archive for a summary of the latest changes and how they apply to the API.

Development

OAS Audio was developed soley to provide the core functionality for OAS Playout, I have no plans to develop this further as a 'stand alone' product but depending on interest/time permitting this may change in the future to possibly making it open source. There may be bug fix updates in due course. Check the Development page for latest and forthcoming updates.

Upgrading the audio core within Playout

The audio core within Playout can usually be updated to the latest release available (normally available for download here) in order to take advantage of new capabilitie and bug fixes within the library - ie. in general it is backwards compatible. For example, support for Windows Media (WMA) format did not appear in Playout until v2.6 however you can 'WMA enable' earlier versions by updating the core library to this release. Of course, Playout Manager will not automatically scan & read WMA metadata however it will enable playback of these files within the software.

Prior to performing an update, you should first check the version of the library held with your release of Playout - this can be performed using Explorer and navigating to the Playout installation folder (normally C:\Program Files\OAS Playout), highlighting the oas-audio.dll file and press the RH mouse button. Choose Properties from the menu and select the Version tab.

Ensure you only update the core with a later version.

Known backwards compatible issues

The following are known issues you will encounter in using a newer audio core than shipped with your release of Playout:

- The handling of the track frequency command within the core library (used to implement the Speed Controls) within Playout has changed in release 0.94 of the library (shipped with OAS Playout v3.1 & later). As such using this (or later) versions of the library with OAS Playout v3.0x will cause this control to malfunction.

- The DirectX volume levels were re-calibrated in v0.96 of the library (shipped with OAS Playout v3.3x & later). As such using newer versions of the library will cause the volume levels set by the controls to be different.

License and Distribution

Use of the MPGLIB decoder (and hence indirectly OAS Audio) is subject to agreement to the GNU Lesser General Public Licence (LGPL), a copy of which is enclosed with the Zip download file.

Download Instructions

Download OAS Audio API

Download and unpack the Zip file. The API DLL and import libraries are included for BC/VC compilers. The API help file is in the form of a compiled HTML help file.

 

©2020 OnAStickSoftware, Comments to: playout@onasticksoftware.co.uk