From 4fe8f07c82d531fbdc88e60a7c319fc462522cd2 Mon Sep 17 00:00:00 2001 From: Sven Gothel Date: Sat, 21 Apr 2012 21:16:00 +0200 Subject: FFMPEGMediaPlayer: Fix NPE; Add remarks about binary incompatibility in upcoming version (master branch) We need native structure access methods to deal with API changes in the libav headers, which break binary compatibility! Currently we are binary compatible w/ [0.6 ?, ] 0.7 and 0.8 but not w/ trunk. Tested: Linux, Windows and OSX (self compiled binary) --- .../opengl/util/av/impl/FFMPEGDynamicLibraryBundleInfo.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/jogl/classes') diff --git a/src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGDynamicLibraryBundleInfo.java b/src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGDynamicLibraryBundleInfo.java index b82ad0459..492e99477 100644 --- a/src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGDynamicLibraryBundleInfo.java +++ b/src/jogl/classes/jogamp/opengl/util/av/impl/FFMPEGDynamicLibraryBundleInfo.java @@ -42,10 +42,15 @@ import com.jogamp.common.os.DynamicLibraryBundle; import com.jogamp.common.os.DynamicLibraryBundleInfo; import com.jogamp.common.util.RunnableExecutor; +/** + * FIXME: We need native structure access methods to deal with API changes + * in the libav headers, which break binary compatibility! + * Currently we are binary compatible w/ [0.6 ?, ] 0.7 and 0.8 but not w/ trunk. + */ class FFMPEGDynamicLibraryBundleInfo implements DynamicLibraryBundleInfo { private static List glueLibNames = new ArrayList(); // none - private static final int symbolCount = 29; + private static final int symbolCount = 31; private static String[] symbolNames = { "avcodec_version", "avformat_version", @@ -71,6 +76,8 @@ class FFMPEGDynamicLibraryBundleInfo implements DynamicLibraryBundleInfo { /* 18 */ "av_get_bits_per_pixel", // libavformat + "avformat_alloc_context", + "avformat_free_context", // 52.96.0 (opt) "avformat_close_input", // 53.17.0 (opt) "av_close_input_file", "av_register_all", @@ -94,6 +101,7 @@ class FFMPEGDynamicLibraryBundleInfo implements DynamicLibraryBundleInfo { // optional symbol names private static String[] optionalSymbolNames = { + "avformat_free_context", // 52.96.0 (opt) "avformat_network_init", // 53.13.0 (opt) "avformat_network_deinit", // 53.13.0 (opt) }; -- cgit v1.2.3