GSoC 2014: GStreamer 1.x Java bindings

edited March 2014 in Summer of Code 2014


I'm interested in contributing to Processing through working on GStreamer 1.x Java bindings as a GSoC project. There are ongoing efforts towards creating such bindings, and my work would build upon the results of them, with primary focus on the automatic generation of low-level library bindings, and a handwritten high-level API based on the one in current gstreamer-java as a secondary objective. The main direction so far has been using JNAerator for GLib and GObject interface generation, and JGIR on top of this for GObject introspection. While there seems to be reasonable consensus among the gstreamer-java community that this is a good approach, it might be a good idea to look at other options, and discuss them with other developers. Could that be officially part of the project? The community bonding period seems to be a good time for this.

The main goal is creating a complete Java binding library that is API compatible (if possible) with current gstreamer-java, and of course getting Processing to use it. The project list on github says this is "quite ambitious". I'm new to Processing, JGIR, GObject introspection in general, and even JNAerator. On the other hand, I've previously worked with Java, GStreamer (elements and and applications using it), and I'm reasonably familiar with the general basics like version control, debugging, etc. from my studies (completed bachelor's degree and ongoing master's studies on computer engineering), some professional experience, and two previous GSoC projects (one of them with GStreamer). Considering this, how much do you think would fit in the time frame of a GSoC project? I do intend to complete the library, but I'd like to set reasonable goals in my proposal.

Thank you in advance for your help.

Roland Elek


  • Hello Roland, thanks so much for your interest to work on the gstreamer-java bindings! This will be really helpful to update the video library in Processing to use gstreamer 1.x, and very useful to the gstreamer-java users in general.

    Overall, I think this work would involve three separate stages: implementation of the automatic generation of the low-level GLib/GObject bindings, rewriting gstreamer-java on top of the new bindings (at least to the point of supporting the core and good plugins), and finally swapping the old gstreamer-java with the new one in Processing video (the library API shouldn't change during the transition).

    The timeframe for GSoC is May 19 - August 18, and I'd say that roughly one month for each stage should be enough. The gstreamer-java rewrite would probably be the most complex stage, time could be adjusted a bit depending on where the most challenging issues arise. Fortunately, there is some preliminary work already ongoing with JNAerator and JGIR, so this will help to get started quickly in case the project is selected.


Sign In or Register to comment.