openSL ES and ALSA

I saw the OpenSL block diagram. I just want to know about how can this be related to ALSA?
ALSA is not a specification or standard, but they have the same idea of easy portability when it comes to developing audio applications across platforms.
So, where does the line lie between OpenSL and ALSA?

Hi Positron,

You are correct that ALSA is not a specification or standard. It is defined by the code itself, which also means that anybody who implements ALSA is free to change it to suit their needs. At the same time, changing it to suit their needs may affect application portability.

By developing OpenSL ES as a standard API, we don’t say anything about how it is to be implemented, but we do define a rigid contract with the application developer. That means that for an OpenSL ES application developer, you are going to receive the same behavior on any conformant system.

When comparing ALSA and OpenSL ES, they are at different abstraction levels in the software stack. ALSA is a low level framework designed for integrating audio. OpenSL ES is a high level API designed specifically to simplify access to the underlying audio system without all of the complexity. Both ALSA and OpenSL ES get you access to advanced audio features and effects. In fact, OpenSL ES can be implemented on top of ALSA if you wish to do so.

So when you draw the line between OpenSL ES and ALSA, it’s a horizontal line in the audio stack where OpenSL ES provides a higher abstraction level for the same set of functionality.