Gstreamer android/linux portability

Lee Matthews lma at spaceapplications.com
Tue Feb 11 02:55:26 PST 2014


Hi,

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
Lee


More information about the gstreamer-devel mailing list