diff options
author | Sven Gothel <[email protected]> | 2013-08-26 13:38:40 +0200 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2013-08-26 13:38:40 +0200 |
commit | b5876b598ecf3eb32ceb183ecbd5d29b8885a304 (patch) | |
tree | 9b63eb4a58e12e1df27e1406e0c041218b7fe2c5 /src/jogl/native/libav/ffmpeg_tool.h | |
parent | ee64b0b3e47cc5d52fb3679c582d3ad0134adb9e (diff) |
libav/ffmpeg: Compile/Link 2 versions of native FFMPEGMediaPlayer methods FFMPEGNatives -> FFMPEGv08Natives + FFMPEGv09Natives
Enables FFMPEGMediaPlayer to work w/ either ffmpeg/libav version 8 or 9 w/ same JOGL binary
Same C source code is compiled against
1: version 0.8 FFMPEGv08Natives lavc53.lavf53.lavu51
2: version 0.9 FFMPEGv09Natives lavc54.lavf54.lavu52.lavr01
FFMPEGv08Natives and FFMPEGv09Natives implements FFMPEGNatives,
native C code uses CPP '##' macro concatenation to produce unique function names.
To enable 'cpp' to find the libav* header files matching the desired version,
we have placed them in the c-file's folder, issued '#include "path/file.h"
and added symbolic links to allow finding same module and 'sister modules':
ls -l libavformat/
..
lrwxrwxrwx 1 sven sven 13 Aug 26 12:56 libavcodec -> ../libavcodec
lrwxrwxrwx 1 sven sven 14 Aug 26 12:56 libavformat -> ../libavformat
lrwxrwxrwx 1 sven sven 12 Aug 26 12:57 libavutil -> ../libavutil
..
At static init FFMPEGDynamicLibraryBundleInfo, determines the runtime version
and instantiates the matching FFMPEGNatives, or null if non matches.
FFMPEGMediaPlayer still compares the compile-time and runtime versions.
FFMPEGMediaPlayer passes it's own instance to FFMPEGNatives for callbacks.
Diffstat (limited to 'src/jogl/native/libav/ffmpeg_tool.h')
-rw-r--r-- | src/jogl/native/libav/ffmpeg_tool.h | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/jogl/native/libav/ffmpeg_tool.h b/src/jogl/native/libav/ffmpeg_tool.h index a44bbb39a..d62cff60f 100644 --- a/src/jogl/native/libav/ffmpeg_tool.h +++ b/src/jogl/native/libav/ffmpeg_tool.h @@ -29,6 +29,7 @@ #ifndef _FFMPEG_TOOL_H #define _FFMPEG_TOOL_H +/*** #ifdef _WIN32 #include <windows.h> // __declspec(dllimport) void __stdcall Sleep(unsigned long dwMilliseconds); @@ -41,13 +42,15 @@ #include <gluegen_stddef.h> #include <gluegen_stdint.h> -#include <libavcodec/avcodec.h> -#include <libavformat/avformat.h> -#include <libavutil/avutil.h> +#include "libavcodec/avcodec.h" +#include "libavformat/avformat.h" +#include "libavutil/avutil.h" #if LIBAVCODEC_VERSION_MAJOR >= 54 -#include <libavresample/avresample.h> +#include "libavresample/avresample.h" #endif +*/ + #ifndef LIBAVRESAMPLE_VERSION_MAJOR #define LIBAVRESAMPLE_VERSION_MAJOR 0 typedef void* AVAudioResampleContext; @@ -122,6 +125,7 @@ typedef struct { typedef struct { + jobject ffmpegMediaPlayer; int32_t verbose; uint32_t avcodecVersion; |