Android audio decoder sample

This app uses the OpenSL api to decode a few audio files, measuring the time taken for conversion.

OpenSLDecoder.cpp/hpp and OpenSLEngine.cpp/hpp are portable classes wrapping the OpenSL api. DecodeTest.cpp and TestActivity.java show how such wrapper can be used.

The app does nothing with the decoded data (no operation on the audio samples is performed, and no disk writing either).

Code references: Google sample , Retieving metadata

Here are some test results: you will notice that the decoding times skyrocket on Android 7.0+ devices.

LENOVO A680 - Android 4.2.2

stereo_44.m4a   1.225 s
stereo_48.m4a   1.426 s
stereo_44.mp3   0.621 s
stereo_48.mp3   0.665 s
Samsung Galaxy S4 (GT-I9505) - Android 5.0.1



stereo_44.m4a   1.817 s

stereo_48.m4a   1.661 s

stereo_44.mp3   1.36 s

stereo_48.mp3   1.556 s


Nexus 5 - Android 6.0.1



stereo_44.m4a   0.895 s

stereo_48.m4a   0.944 s

stereo_44.mp3   0.582 s

stereo_48.mp3   0.625 s


Nexus 5X - Android 7.0


stereo_44.m4a   14.577 s

stereo_48.m4a   17.314 s

stereo_44.mp3   13.401 s

stereo_48.mp3   15.419 s


Nexus 6 - Android 7.0



stereo_44.m4a   13.704 s

stereo_48.m4a   17.094 s

stereo_44.mp3   13.565 s

stereo_48.mp3   14.283 s


Samsung S7 Edge (SM-G935F) - Android 7.0



stereo_44.m4a   17.423 s

stereo_48.m4a   22.831 s

stereo_44.mp3   15.555 s

stereo_48.mp3   16.404 s


Google Pixel - 7.1.1



stereo_44.m4a   17.34 s

stereo_48.m4a   19.043 s

stereo_44.mp3   15.29 s

stereo_48.mp3   16.495 s