madmaw/marmalade-openal — pull request #6 by vedran- (2013-09-12 21:18:28+00:00)
Title: New and more stable version of OpenAL implementation

Almost completely rewritten s3esoundaudio.c - worker thread now uses its own buffer to pre-mix the sound data.

Also, removed usage of pthread_mutex as it is buggy in Marmalade, instead implemented recursive mutex with s3eThreadLock.

In general, this version should behave stable on all platforms - it has been tested on PC, Android and iOS.
Stable means that OpenAL and s3e sound thread and application are properly synchronized, it means that it won't freeze or crash your application on device suspend/resume, and that it won't hang your application when it should be closed.

Only negative side is that current implementation has lot of cracking in the sound on PC, but luckily on Android and iPhone/iPad/iPod it sounds good without cracking.

All this effort is only because Marmalade doesn't allow mutex locks inside s3e callback - something which definitely should be doable. Until they fix that, this will have to do.