Adding GStreamer plugins

Scott Palmer swpalmer at
Sun Mar 23 14:03:36 UTC 2014

I applaud your effort, but please consider while you are doing this:
Addressing RT-18009 is good
Addressing RT-2684 is way better.

If there is a mechanism to write a stub plugin that hooks into the GStreamer plugin mechanism such that end users of JavaFX can write a module (in Java, with the option of using JNI) that supplies the uncompressed frames via a NativeByteBuffer, that would be a great start.


On Mar 22, 2014, at 9:26 PM, Michael Berry <berry120 at> wrote:

> Hi all,
> I've managed to clone and build OpenJFX successfully, and am now in the
> process of trying to see how feasible it would be to add support for other
> media formats. As a first port of call I'm attempting to see if I can get
> the framework accepting the Matroska plugin, but seem to be coming a bit
> unstuck on the native side of things (including the plugin with GStreamer.)
> I've made the relevant modifications on the Java side of things to persuade
> the platform to accept MKV files and pass them down to the GStreamer layer,
> and that compiles and runs without any issues.
> However, I'm not sure if I'm going about including the matroska plugin in
> the right way - I've currently done the following:
> - Downloaded the latest version of the plugins from here (
>, then added the
> matroska one to the modules/media/src/main/native/gstreamer/plugins/
> folder, as well as the
> modules/media/src/main/native/gstreamer/gstreamer-lite/gst-plugins-good/gst/
> folder (I'm unsure of this - should I add it to both these folders?).
> - Added all the C files from the first folder mentioned above to the
> plugins.vcxproj file
> - Added the relevant files and directory to Makefile.gstplugins
> - Called the additional relevant plugin_init() function in
> gstplugins-lite.c
> However, after the above I still get the same result having touched none of
> the native code, that being that GSTMediaPlayer throws a MediaException
> with flag 257, which seems to mean it couldn't create the required media
> from the given location.
> So at this point I'm a bit stuck really - of course, the whole task may be
> much more complicated than I'm assuming it should be. I'm not even sure if
> the default "gradle sdk" task is actually reflecting the changes I've made
> - certainly gstreamer-lite.dll seems to be exactly the same size as before,
> though I'm unsure if the additional plugin is meant to be embedded in this
> file or not. I'm experienced with Java but much less so with C++, and
> completely new to gradle (as of yesterday.)
> Is there anything obvious I'm not doing correctly, and if so would someone
> be kind enough to give me a bit of a nudge in the right direction?
> Many thanks,
> Michael

More information about the openjfx-dev mailing list