[patch] PulseAudio server for Android with OpenSL ES sink
I've ported PulseAudio server to Android, with OpenSL ES audio output plugin, based on VLC media player sources.
I'm creating this issue just as a notification for anyone interested. Adding my patches to upstream repository would be problematic, because of a bunch of nasty-looking Android build scripts.
In theory the plugin should work on any system with OpenSL ES library, in practice the only system with OpenSL ES support is Android. There is no Java or JNI code, OpenSL ES does not require Java wrapper code the same way as Android AudioTrack API does. Getting device native sample rate still requires some Java code, but it is passed to the plugin in the environment variable, so you can do 'export AUDIO_NATIVE_SAMPLE_RATE=48000' before starting the server from command line if you know the sample rate beforehand.
Repository with build scripts: https://github.com/pelya/pulseaudio-android
OpenSL ES plugin source: https://github.com/pelya/pulseaudio-android/blob/master/src/modules/module-opensles.c
PulseAudio server packaged into Android app (with X11 server as a bonus): https://play.google.com/store/apps/details?id=x.org.server