From 9ddb8c2b7c851d82922342ee8873267f0f1ae310 Mon Sep 17 00:00:00 2001 From: tobigun Date: Fri, 11 Jan 2008 03:26:05 +0000 Subject: there were some changes in the ffmpeg interface (for example TAVFormatContext's pb member is a pointer now). To better track version changes, version numbers of the dlls are now managed by the version.inc file. git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@779 b956fd51-792f-4845-bead-9b4dfca2ff2c --- Game/Code/lib/ffmpeg/avcodec.pas | 22 ++------ Game/Code/lib/ffmpeg/avformat.pas | 23 +++----- Game/Code/lib/ffmpeg/avio.pas | 12 +---- Game/Code/lib/ffmpeg/avutil.pas | 15 +----- Game/Code/lib/ffmpeg/mathematics.pas | 11 +--- Game/Code/lib/ffmpeg/opt.pas | 11 +--- Game/Code/lib/ffmpeg/rational.pas | 10 +--- Game/Code/lib/ffmpeg/version.inc | 102 +++++++++++++++++++++++++++++++++++ 8 files changed, 121 insertions(+), 85 deletions(-) create mode 100644 Game/Code/lib/ffmpeg/version.inc diff --git a/Game/Code/lib/ffmpeg/avcodec.pas b/Game/Code/lib/ffmpeg/avcodec.pas index 4182b979..88447ffc 100644 --- a/Game/Code/lib/ffmpeg/avcodec.pas +++ b/Game/Code/lib/ffmpeg/avcodec.pas @@ -24,8 +24,8 @@ unit avcodec; {$IFDEF FPC} {$IFDEF LINUX} - {$LINKLIB libavutil} - {$LINKLIB libavcodec} + {$LINKLIB libavutil} + {$LINKLIB libavcodec} {$ENDIF} {$MODE DELPHI } (* CAT *) @@ -38,23 +38,9 @@ interface uses avutil, rational, opt; // CAT -const - -{$IFDEF MSWINDOWS} - av__format = 'avformat-50.dll'; -{$ENDIF} -{$IFDEF LINUX} - av__format = 'libavformat.so'; -{$ENDIF} -{$IFDEF DARWIN} - av__format = 'libavformat.dylib'; -{$ENDIF} - - - LIBAVUTIL_VERSION_INT = ((51 shl 16) + (12 shl 8) + 1); - LIBAVUTIL_VERSION = '51.12.1'; - LIBAVUTIL_BUILD = LIBAVUTIL_VERSION_INT; +{$I version.inc} +const AV_NOPTS_VALUE: int64 = $8000000000000000; AV_TIME_BASE = 1000000; AV_TIME_BASE_Q : TAVRational = (num:1; den:AV_TIME_BASE); (* added by CAT *) diff --git a/Game/Code/lib/ffmpeg/avformat.pas b/Game/Code/lib/ffmpeg/avformat.pas index 091b8fe0..174542b3 100644 --- a/Game/Code/lib/ffmpeg/avformat.pas +++ b/Game/Code/lib/ffmpeg/avformat.pas @@ -41,22 +41,9 @@ uses rational, avutil; (* CAT *) -const - -{$IFDEF MSWINDOWS} - av__format = 'avformat-50.dll'; -{$ENDIF} -{$IFDEF LINUX} - av__format = 'libavformat.so'; -{$ENDIF} -{$IFDEF DARWIN} - av__format = 'libavformat.dylib'; -{$ENDIF} - - LIBAVUTIL_VERSION_INT = ((51 shl 16) + (12 shl 8) + 1); - LIBAVUTIL_VERSION = '51.12.1'; - LIBAVUTIL_BUILD = LIBAVUTIL_VERSION_INT; +{$I version.inc} +const MAXINT64 = $7fffffffffffffff; MININT64 = $8000000000000000; @@ -315,8 +302,12 @@ type iformat: PAVInputFormat; oformat: PAVOutputFormat; priv_data: pointer; - + + {$IF (LIBAVFORMAT_VERSION >= 52)} pb: PByteIOContext; + {$ELSE} + pb: TByteIOContext; + {$IFEND} nb_streams: cardinal; (* CAT#3 *) streams: array [0..MAX_STREAMS - 1] of PAVStream; diff --git a/Game/Code/lib/ffmpeg/avio.pas b/Game/Code/lib/ffmpeg/avio.pas index 5e40bd4e..fa65b6fa 100644 --- a/Game/Code/lib/ffmpeg/avio.pas +++ b/Game/Code/lib/ffmpeg/avio.pas @@ -30,17 +30,9 @@ unit avio; interface (* Widows unit is deleted by CAT *) -const -(* version numbers are changed by The Creative CAT *) - -{$IFDEF win32} - av__format = 'avformat-50.dll'; -{$ELSE} - av__format = 'libavformat.so'; // .0d -//av__format = 'libavformat.51'; -{$ENDIF} - +{$I version.inc} +const URL_RDONLY = 0; URL_WRONLY = 1; URL_RDWR = 2; diff --git a/Game/Code/lib/ffmpeg/avutil.pas b/Game/Code/lib/ffmpeg/avutil.pas index ff833ad4..48c5f4c2 100644 --- a/Game/Code/lib/ffmpeg/avutil.pas +++ b/Game/Code/lib/ffmpeg/avutil.pas @@ -28,20 +28,7 @@ unit avutil; interface -const -{$IFDEF MSWINDOWS} - av__util = 'avutil-49.dll'; -{$ENDIF} -{$IFDEF LINUX} - av__util = 'libavutil.so'; // .0d -{$ENDIF} -{$IFDEF DARWIN} - av__util = 'libavutil.dylib'; -{$ENDIF} - - LIBAVUTIL_VERSION_INT = ((49 shl 16) + (4 shl 8) + 1); - LIBAVUTIL_VERSION = '49.4.1'; - LIBAVUTIL_BUILD = LIBAVUTIL_VERSION_INT; +{$I version.inc} type (** diff --git a/Game/Code/lib/ffmpeg/mathematics.pas b/Game/Code/lib/ffmpeg/mathematics.pas index 42a30925..3beef517 100644 --- a/Game/Code/lib/ffmpeg/mathematics.pas +++ b/Game/Code/lib/ffmpeg/mathematics.pas @@ -36,16 +36,7 @@ in the source codes *) uses rational; (* CAT *) -const -{$IFDEF MSWINDOWS} - av__util = 'avutil-49.dll'; -{$ENDIF} -{$IFDEF LINUX} - av__util = 'libavutil.so'; // .0d -{$ENDIF} -{$IFDEF DARWIN} - av__util = 'libavutil.dylib'; -{$ENDIF} +{$I version.inc} type TAVRounding = ( diff --git a/Game/Code/lib/ffmpeg/opt.pas b/Game/Code/lib/ffmpeg/opt.pas index e70d77ad..bd3f14fd 100644 --- a/Game/Code/lib/ffmpeg/opt.pas +++ b/Game/Code/lib/ffmpeg/opt.pas @@ -32,6 +32,8 @@ interface uses rational; (* CAT *) +{$I version.inc} + type TAVOptionType = ( FF_OPT_TYPE_FLAGS, @@ -45,15 +47,6 @@ type ); const - -{$IFDEF win32} - av__codec = 'avcodec-51.dll'; -{$ELSE} - av__codec = 'avcodec.so'; // .0d - // av__codec = 'libavcodec.51'; -{$ENDIF} - - AV_OPT_FLAG_ENCODING_PARAM = 1; ///< a generic parameter which can be set by the user for muxing or encoding AV_OPT_FLAG_DECODING_PARAM = 2; ///< a generic parameter which can be set by the user for demuxing or decoding AV_OPT_FLAG_METADATA = 4; ///< some data extracted or inserted into the file like title, comment, ... diff --git a/Game/Code/lib/ffmpeg/rational.pas b/Game/Code/lib/ffmpeg/rational.pas index 8fb3cbd8..86dbf8a4 100644 --- a/Game/Code/lib/ffmpeg/rational.pas +++ b/Game/Code/lib/ffmpeg/rational.pas @@ -29,15 +29,9 @@ unit rational; interface (* unit windows is deleted by CAT *) -const - {$IFDEF win32} - av__util = 'avutil-49.dll'; - {$ELSE} - av__util = 'libavutil.so'; // .0d -// av__util = 'libavutil.49'; - {$ENDIF} -type +{$I version.inc} +type (* * Rational number num/den. *) PAVRational = ^TAVRational; diff --git a/Game/Code/lib/ffmpeg/version.inc b/Game/Code/lib/ffmpeg/version.inc new file mode 100644 index 00000000..2944e643 --- /dev/null +++ b/Game/Code/lib/ffmpeg/version.inc @@ -0,0 +1,102 @@ +const +{$IFDEF MSWINDOWS} + av__codec = 'avcodec-51.dll'; + LIBAVCODEC_MAJOR_VERSION = 51; + LIBAVCODEC_MINOR_VERSION = 0; + LIBAVCODEC_SUB_VERSION = 0; + + av__format = 'avformat-50.dll'; + LIBAVFORMAT_MAJOR_VERSION = 50; + LIBAVFORMAT_MINOR_VERSION = 0; + LIBAVFORMAT_SUB_VERSION = 0; + + av__util = 'avutil-49.dll'; + LIBAVUTIL_MAJOR_VERSION = 49; + LIBAVUTIL_MINOR_VERSION = 0; + LIBAVUTIL_SUB_VERSION = 0; +{$ENDIF} +{$IFDEF LINUX} + av__codec = 'libavcodec.so'; + LIBAVCODEC_MAJOR_VERSION = 51; + LIBAVCODEC_MINOR_VERSION = 0; + LIBAVCODEC_SUB_VERSION = 0; + + av__format = 'libavformat.so'; +//av__format = 'libavformat.51'; + LIBAVFORMAT_MAJOR_VERSION = 51; + LIBAVFORMAT_MINOR_VERSION = 0; + LIBAVFORMAT_SUB_VERSION = 0; + + av__util = 'libavutil.so'; + LIBAVUTIL_MAJOR_VERSION = 49; + LIBAVUTIL_MINOR_VERSION = 0; + LIBAVUTIL_SUB_VERSION = 0; +{$ENDIF} +{$IFDEF DARWIN} + av__format = 'libavcodec.dylib'; + LIBAVCODEC_MAJOR_VERSION = 51; + LIBAVCODEC_MINOR_VERSION = 0; + LIBAVCODEC_SUB_VERSION = 0; + + av__format = 'libavformat.dylib'; + LIBAVFORMAT_MAJOR_VERSION = 52; + LIBAVFORMAT_MINOR_VERSION = 0; + LIBAVFORMAT_SUB_VERSION = 0; + + av__util = 'libavutil.dylib'; + LIBAVUTIL_MAJOR_VERSION = 49; + LIBAVUTIL_MINOR_VERSION = 0; + LIBAVUTIL_SUB_VERSION = 0; +{$ENDIF} + +(* Max. supported version by this header *) +(* TODO: someone has to check the changes up to version 52, add some IFDEFS and increase this version number *) + +LIBAVCODEC_MAX_MAJOR_VERSION = 51; +LIBAVCODEC_MAX_MINOR_VERSION = 12; +LIBAVCODEC_MAX_SUB_VERSION = 1; +LIBAVCODEC_MAX_VERSION = LIBAVCODEC_MAX_MAJOR_VERSION + + (LIBAVCODEC_MAX_MINOR_VERSION * 0.01) + + (LIBAVCODEC_MAX_SUB_VERSION * 0.0001); + +LIBAVFORMAT_MAX_MAJOR_VERSION = 51; +LIBAVFORMAT_MAX_MINOR_VERSION = 12; +LIBAVFORMAT_MAX_SUB_VERSION = 1; +LIBAVFORMAT_MAX_VERSION = LIBAVFORMAT_MAX_MAJOR_VERSION + + (LIBAVFORMAT_MAX_MINOR_VERSION * 0.01) + + (LIBAVFORMAT_MAX_SUB_VERSION * 0.0001); + +LIBAVUTIL_MAX_MAJOR_VERSION = 49; +LIBAVUTIL_MAX_MINOR_VERSION = 4; +LIBAVUTIL_MAX_SUB_VERSION = 1; +LIBAVUTIL_MAX_VERSION = LIBAVUTIL_MAX_MAJOR_VERSION + + (LIBAVUTIL_MAX_MINOR_VERSION * 0.01) + + (LIBAVUTIL_MAX_SUB_VERSION * 0.0001); + +(* Calc linked version *) + +LIBAVCODEC_VERSION = LIBAVCODEC_MAJOR_VERSION + + (LIBAVCODEC_MINOR_VERSION * 0.01) + + (LIBAVCODEC_SUB_VERSION * 0.0001); + +LIBAVFORMAT_VERSION = LIBAVFORMAT_MAJOR_VERSION + + (LIBAVFORMAT_MINOR_VERSION * 0.01) + + (LIBAVFORMAT_SUB_VERSION * 0.0001); + +LIBAVUTIL_VERSION = LIBAVUTIL_MAJOR_VERSION + + (LIBAVUTIL_MINOR_VERSION * 0.01) + + (LIBAVUTIL_SUB_VERSION * 0.0001); + +(* Check if linked versions are supported *) + +{$IF (LIBAVCODEC_VERSION > LIBAVCODEC_MAX_VERSION)} + {$MESSAGE Warn 'Linked version of libavcodec may be unsupported!'} +{$IFEND} + +{$IF (LIBAVFORMAT_VERSION > LIBAVFORMAT_MAX_VERSION)} + {$MESSAGE Warn 'Linked version of libavformat may be unsupported!'} +{$IFEND} + +{$IF (LIBAVUTIL_VERSION > LIBAVUTIL_MAX_VERSION)} + {$MESSAGE Warn 'Linked version of libavutil may be unsupported!'} +{$IFEND} -- cgit v1.2.3