Adding GStreamer plugins

Kirill Kirichenko kirill.kirichenko at oracle.com
Wed Mar 26 13:29:41 UTC 2014


I added a wiki link: 
https://wiki.openjdk.java.net/pages/viewpage.action?pageId=18808963

I welcome free will participants to go over the steps, upgrade GStreamer 
and eventually create a precise version of the guide.
I will provide as much help as I can.

K

On 26.03.2014 16:43, Kirill Kirichenko wrote:
> Michael,
>
> On 26.03.2014 04:11, Michael Berry wrote:
>> Kirill - I think I'll take your suggestion next and start looking at
>> upgrading the existing native components to the latest version of
>> GStreamer
>> before I look at adding any more plugins, that would seem to make sense.
>> Have you any pointers in how best to approach this?
> No pointer at all. I have it my my head. And it's about time to pass
> this experience before I forget it =)
> The thing is I did it once and it took me ~ 2 months.
>
> Here is the brief plan that you need to keep:
> [1] Start with the lower lever. It's glib. Linux doesn't need any glib
> update - we use the system glib. So glib update is necessary for Win/Mac.
> [1.1] Latest glib has plenty of dependencies on other 3-rd party
> libraries. But there is one that's mandatory - libFFI. Fortunately
> Oracle has approval to use libFFI in it's products. But this probably
> isn't necessary for OpenJFX. So at you first step you need to bring
> libFFI sources, place them in
> rt/modules/media/src/main/native/gstreamer/3rd_party/libffi and make
> sure it builds on Windows and Mac producing lib/a for static linking.
> You can probably make dll/dylib instead but I don't think it's necessary.
> [1.2] Take the latest glib 2.38 or even 2.40. Place them in
> rt/modules/media/src/main/native/gstreamer/3rd_party/glib
> Note that you don't need all sources/headers. But to remove precisely
> what's redundant you should first compile gstreamer/plugins.
> Here you make sure you can compile and build
> glib-lite.dll/libglib-lite.dylib
> Having done 1.2 you should be able to run media component with the new
> glib-lite.dll. If it runs then you're done with glib upgrade.
> It's important to apply fixes that we made in glib to the newer glib
> library. You can find them by grepping for GSTREAMER_LITE in
> sources/headers.
>
> [2] GStreamer update.
> [3] Oracle plugins compilation/update. This step will also be necessary
> because 0.10.35 API is different from 1.0. For Example GstBuffer that we
> extensively use has incompatible APIs.
>
> I won't get deeper into details for [2] and [3] now. Let's just handle
> [1] and then continue.
>


More information about the openjfx-dev mailing list