GStreamer and non-GStreamer applications

One question we have often got in the GStreamer community is how to quick and easily port a multimedia application not using GStreamer to GStreamer. The answer to that question is still what it always has been, to port your user interface to the GStreamer application API and turn your processing logic into GStreamer plugin modules. But for many that is not really an option and they have been looking for an intermediate step to start out with.

Two plugins that where recently moved into GStreamer-plugins-base aims to provide exactly such an intermediate step, AppSink and AppSrc. These two plugins will allow your application to get access to raw buffers from GStreamer and provide raw buffers to GStreamer. Doing this you can take whatever output your application produce, send it into GStreamer for further processing, and then take it back into the application layer again, or have GStreamer output the data to for instance an audio or video sink. Not as efficient as having all the processing happen within the boundaries of GStreamer of course, but as mentioned, for a mature existing application that porting process might be to big to take in one step.

So if you have an application already in which you want to start taking advantage of GStreamer, these plugins might be the starting point you have been looking for.


#1 Snark on 02.19.09 at 15:38

I have been pushing for AppSrc and AppSink since some years, but still haven’t been able to use them fully correctly.

See :

for the sorry state of gstreamer in ekiga.

#2 Aredridel on 02.19.09 at 16:20


I’m working on porting AudioRack Suite ( from CoreAudio to GStreamer. I’ll definitely take a look there!

#3 Vadim P. on 02.19.09 at 16:32

Some links would be nice ;)

#4 uraeus on 02.20.09 at 09:54

@Adridel: Great news, always nice to see new types of software being ported to GStreamer. Also happy to see a primarily MacOSX program using GStreamer.

@Vadim: Good idea, I added a link to the article pointing towards the AppSrc and Appsink API documention.