Gstreamer android/linux portability
lma at spaceapplications.com
Tue Feb 11 02:55:26 PST 2014
I'm new to using gstreamer and I'm in need of some general advice regarding its utilisation.
I'm developing some software that needs to get audio from a microphone and stream it over the network. Other devices need to connect to my audio software component to receive audio streams over the network.
The audio component that I am developing needs to be built for linux and android platforms.
My current thinking is to solve the problem in the following fashion :
Linux : Get raw audio via pulseAudio, feed this as a raw buffer into gstreamer using appsrc, encode using gstreamer, send stream to network socket
Android : Get raw audio via OpenSL ES, feed this as a raw buffer into gstreamer using appsrc, encode using gstreamer, send stream to network socket
I would then build some kind of abstraction layer that lets me choose between sourcing the data from PulseAudio or OpenSLES depending on what the final build target is.
Some questions :
1) I'm not sure that this is the best way of doing this, do you think that this sounds like a good approach ?
2) Instead, could I simply use exactly the same implementation on both linux and Android platforms just using gstreamer ? So for example, instead of using appsrc to push the raw buffer data into the gstreamer pipeline, could I use the element autoaudiosrc to grab the audio stream from the microphone independent of what the platform is ?
3) If I do implementation (2), would the gstreamer code need to change between android and linux ?
Thanks in advance
More information about the gstreamer-devel