You are viewing an old version of this page. View the current version.
        
        
            Compare with Current
                        View Page History
        
        
            
            
                                     Version 1
                            
                            Next »
            
        
     
            
                                            
        
                           
        This page contains brief and not precise description of how to upgrade
GLib/GStreamer 3-rd party libraries of JavaFX Media component.
[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.