OpenSL ES

Last updated

OpenSL ES
OpenSL ES logo.svg
Developer(s) Khronos Group, Inc.
Stable release
1.1 / January 18, 2011;11 years ago (2011-01-18)
Operating system Cross-platform
Type API
License Royalty free
Website www.khronos.org/opensles/

OpenSL ES (Open Sound Library for Embedded Systems) is a royalty-free, cross-platform, hardware-accelerated, C-language audio API for 2D and 3D audio. It provides access to features such as 3D positional audio and MIDI playback. It is made for developers in the mobile and gaming industry and is working toward allowing for easy porting of applications across multiple platforms.

Contents

Overview

The OpenSL ES API has five major features:

The features of Audio Playback and Recording and Basic MIDI are common with OpenMAX AL.

Design

OpenSL ES utilizes an object oriented design to give application developers access to the audio functionality. The object model is shared with OpenMAX AL, and a device manufacturer can choose to implement one or both of the APIs. Together the two APIs give access to a wide range of functionality of the device's multimedia engine.

The design goal of OpenSL ES is to give application developers access to advanced audio features such as 3D positional audio and MIDI playback while striving for easy application porting between manufacturers and platforms. It is developed primarily for application developers in the mobile and gaming industry.

Profiles

To avoid fragmentation, OpenSL ES is divided up into three profiles:

Each profile is designed for the respective device needs with a specific set of audio functionalities. A vendor can choose to be conformant with only one or with any combination of profiles.

An application can query the OpenSL ES implementation to find out which profiles are supported. The application developer can then design their application to either work with only the common parts of the profiles, or adapt to the available functionality as given by the profiles in the device it is running on. An application developer can also specify both the minimum and the optimal profile requirements.

Development

OpenSL ES is managed by the non-profit technology consortium Khronos Group. The current chair of the OpenSL ES working group is Erik Noreke.

Specification versions

Implementations

See also

Related Research Articles

OpenGL Cross-platform graphics API

OpenGL is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardware-accelerated rendering.

Java Platform, Micro Edition or Java ME is a computing platform for development and deployment of portable code for embedded and mobile devices. Java ME was formerly known as Java 2 Platform, Micro Edition or J2ME. As of December 22, 2006, the Java ME source code is licensed under the GNU General Public License, and is released under the project name phoneME.

In computing, cross-platform software is computer software that is designed to work in several computing platforms. Some cross-platform software requires a separate build for each platform, but some can be directly run on any platform without special preparation, being written in an interpreted language or compiled to portable bytecode for which the interpreters or run-time packages are common or standard components of all supported platforms.

OpenAL

OpenAL is a cross-platform audio application programming interface (API). It is designed for efficient rendering of multichannel three-dimensional positional audio. Its API style and conventions deliberately resemble those of OpenGL. OpenAL is an environmental 3D audio library, which can add realism to a game by simulating attenuation, the Doppler effect, and material densities. OpenAL aimed to originally be an open standard and open-source replacement for proprietary 3D audio APIs such as DirectSound and Core Audio, though in practice has largely been implemented on various platforms as a wrapper around said proprietary APIs or as a proprietary and vendor-specific fork. While the reference implementation later became proprietary, there are open source implementations such as OpenAL Soft available.

Game programming, a subset of game development, is the software development of video games. Game programming requires substantial skill in software engineering and computer programming in a given language, as well as specialization in one or more of the following areas: simulation, computer graphics, artificial intelligence, physics, audio programming, and input. For massively multiplayer online games (MMOGs), knowledge of additional areas such as network programming and database programming are required. Though often engaged in by professional game programmers, some may program games as a hobby.

Direct3D and OpenGL are competing application programming interfaces (APIs) which can be used in applications to render 2D and 3D computer graphics. As of 2005, graphics processing units (GPUs) almost always implement one version of both of these APIs. Examples include: DirectX 9 and OpenGL 2 circa 2004; DirectX 10 and OpenGL 3 circa 2008; and most recently, DirectX 11 and OpenGL 4 circa 2011. GPUs that support more recent versions of the standards are backward compatible with applications that use the older standards; for example, one can run older DirectX 9 games on a more recent DirectX 11-certified GPU.

OpenVG is an API designed for hardware-accelerated 2D vector graphics. Its primary platforms are mobile phones, gaming & media consoles and consumer electronic devices. It was designed to help manufacturers create more attractive user interfaces by offloading computationally intensive graphics processing from the CPU onto a GPU to save energy. OpenVG is well suited to accelerating Flash and mobile profile of SVG sequences. The OpenGL ES library provides similar functionality for 3D graphics. OpenVG is managed by the non-profit technology consortium Khronos Group.

OpenMAX, often shortened as "OMX", is a non-proprietary and royalty-free cross-platform set of C-language programming interfaces. It provides abstractions for routines that are especially useful for processing of audio, video, and still images. It is intended for low power and embedded system devices that need to efficiently process large amounts of multimedia data in predictable ways, such as video codecs, graphics libraries, and other functions for video, image, audio, voice and speech.

The Khronos Group, Inc. is an open, non-profit, member-driven consortium of 170 organizations developing, publishing and maintaining royalty-free interoperability standards for 3D graphics, virtual reality, augmented reality, parallel computation, vision acceleration and machine learning. The open standards and associated conformance tests enable software applications and middleware to effectively harness authoring and accelerated playback of dynamic media across a wide variety of platforms and devices. The group is based in Beaverton, Oregon.

OpenGL ES Subset of the OpenGL API for embedded systems

OpenGL for Embedded Systems is a subset of the OpenGL computer graphics rendering application programming interface (API) for rendering 2D and 3D computer graphics such as those used by video games, typically hardware-accelerated using a graphics processing unit (GPU). It is designed for embedded systems like smartphones, tablet computers, video game consoles and PDAs. OpenGL ES is the "most widely deployed 3D graphics API in history".

OpenGL Shading Language

OpenGL Shading Language (GLSL) is a high-level shading language with a syntax based on the C programming language. It was created by the OpenGL ARB to give developers more direct control of the graphics pipeline without having to use ARB assembly language or hardware-specific languages.

This article describes audio APIs and components in Microsoft Windows which are now obsolete or deprecated.

In computing, the Advanced Multimedia Supplements is an API specification for the Java ME platform. Practically speaking, it is an extension to JSR 135 Mobile Media API providing new features, such as positional 3D audio processing, audio and video effects processing, better controls for digital camera, and better support for analog radio tuner including Radio Data System. AMMS was developed under the Java Community Process as JSR 234.

OpenCL Open standard for programming heterogenous computing systems, such as CPUs or GPUs

OpenCL is a framework for writing programs that execute across heterogeneous platforms consisting of central processing units (CPUs), graphics processing units (GPUs), digital signal processors (DSPs), field-programmable gate arrays (FPGAs) and other processors or hardware accelerators. OpenCL specifies programming languages for programming these devices and application programming interfaces (APIs) to control the platform and execute programs on the compute devices. OpenCL provides a standard interface for parallel computing using task- and data-based parallelism.

WebGL JavaScript bindings for OpenGL in web browsers

WebGL is a JavaScript API for rendering interactive 2D and 3D graphics within any compatible web browser without the use of plug-ins. WebGL is fully integrated with other web standards, allowing GPU-accelerated usage of physics and image processing and effects as part of the web page canvas. WebGL elements can be mixed with other HTML elements and composited with other parts of the page or page background.

EGL (API) Application programming interface

EGL is an interface between Khronos rendering APIs and the underlying native platform windowing system. EGL handles graphics context management, surface/buffer binding, rendering synchronization, and enables "high-performance, accelerated, mixed-mode 2D and 3D rendering using other Khronos APIs." EGL is managed by the non-profit technology consortium Khronos Group.

HTML5 Audio is a subject of the HTML5 specification, incorporating audio input, playback, and synthesis, as well as speech to text, in the browser.

Google Play Services is a proprietary background service and API package for Android devices from Google. When it was introduced in 2012, it provided access to the Google+ APIs and OAuth 2.0. It expanded to cover a variety of Google services, allowing applications to communicate with the services through common means.

Vulkan is a low-overhead, cross-platform API, open standard for 3D graphics and computing. Vulkan targets high-performance real-time 3D graphics applications, such as video games and interactive media. In contrast to the older OpenGL and Direct3D 11 APIs, Vulkan is intended to offer higher performance and more balanced CPU and GPU usage. It provides a considerably lower-level API and parallel tasking for the application, comparable to Metal and Direct3D 12. In addition to its lower CPU usage, Vulkan is designed to allow developers to better distribute work among multiple CPU cores.

OpenXR is an open, royalty-free standard for access to virtual reality and augmented reality platforms and devices. It is developed by a working group managed by the Khronos Group consortium. OpenXR was announced by the Khronos Group on February 27, 2017 during GDC 2017. A provisional version of the standard was released on March 18, 2019 to enable developers and implementers to provide feedback on it. On July 29, 2019, OpenXR 1.0 was released to the public by Khronos Group at SIGGRAPH 2019.

References

  1. "Intel Developer Zone".
  2. Khronos Group Releases OpenSL ES 1.0 Specification for Portable Mobile and Embedded Audio Processing Archived 7 April 2009 at the Wayback Machine , Khronos press release
  3. Khronos Group Releases OpenSL ES 1.1 Specification For Stereo and 3D Audio on Any Mobile Platform and OS Archived 17 March 2011 at the Wayback Machine , Khronos press release
  4. Ionut Arghire (7 December 2010). "Android 2.3 Brings Changes for Developers too, New SDK Available". softpedia.
  5. "Native Audio: OpenSL ES™ for Android".
  6. "Audio Latency Measurements".
  7. Rudi Villing (3 December 2015). "APPROACHES FOR CONSTANT AUDIO LATENCY ON ANDROID". Proc. of the 18th Int. Conference on Digital Audio Effects.
  8. "Rebooting Android's 10 Millisecond Problem: Audio Latency Improvements in Android 6.0 Marshmallow". Superpowered Audio for iOS, OSX and Android. 25 August 2016.
  9. "SRS Labs Launches Industry's First Khronos OpenSL ES 1.1 Audio Solution for Android Mobile Devices at Mobile World Congress".