diff --git a/src/main/java/plugins/stef/library/XugglerPlugin.java b/src/main/java/plugins/stef/library/XugglerPlugin.java index fcc552847fa2979874e03affea7e1e2235deca79..4be5c8d70a10735f8d4b80aa90f65f3983555796 100644 --- a/src/main/java/plugins/stef/library/XugglerPlugin.java +++ b/src/main/java/plugins/stef/library/XugglerPlugin.java @@ -1,5 +1,7 @@ package plugins.stef.library; +import com.xuggle.ferry.Ferry; + import icy.plugin.abstract_.Plugin; import icy.plugin.interface_.PluginLibrary; @@ -10,5 +12,46 @@ import icy.plugin.interface_.PluginLibrary; */ public class XugglerPlugin extends Plugin implements PluginLibrary { - // + static boolean initialized = false; + + /** + * Force initialization (native library loading mainly) of Xuggler library + */ + public static synchronized void init() + { + // we try the easier library loading process + if (!initialized) + { + Throwable error = null; + + if (loadLibrary(XugglerPlugin.class, "xuggle")) + initialized = true; + + try + { + + Ferry.load(); + initialized = true; + } + catch (Throwable t) + { + error = t; + } + + if (!initialized) + { + if (error != null) + System.err.println(error.getMessage()); + System.err.println("Xuggler native library load failed."); + } + } + } + + /** + * @return true if Xuggler library has been initialized + */ + public static boolean isInitialized() + { + return initialized; + } }