From de9e17f44c6e4e702e86c33d194ca2f41a4c73c6 Mon Sep 17 00:00:00 2001 From: Stephane Dallongeville <stephane.dallongeville@pasteur.fr> Date: Wed, 17 Nov 2021 12:26:27 +0100 Subject: [PATCH] Added XugglerPlugin.init() to help with native library loading --- .../plugins/stef/library/XugglerPlugin.java | 45 ++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/src/main/java/plugins/stef/library/XugglerPlugin.java b/src/main/java/plugins/stef/library/XugglerPlugin.java index fcc5528..4be5c8d 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; + } } -- GitLab