aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortobigun <tobigun@b956fd51-792f-4845-bead-9b4dfca2ff2c>2008-01-11 03:26:05 +0000
committertobigun <tobigun@b956fd51-792f-4845-bead-9b4dfca2ff2c>2008-01-11 03:26:05 +0000
commit9ddb8c2b7c851d82922342ee8873267f0f1ae310 (patch)
tree5bd532af8f9b468b312b0b21cbf4c38d69bae331
parentfc79f056741619c9432fe5f5e99f861e82705a2e (diff)
downloadusdx-9ddb8c2b7c851d82922342ee8873267f0f1ae310.tar.gz
usdx-9ddb8c2b7c851d82922342ee8873267f0f1ae310.tar.xz
usdx-9ddb8c2b7c851d82922342ee8873267f0f1ae310.zip
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
-rw-r--r--Game/Code/lib/ffmpeg/avcodec.pas22
-rw-r--r--Game/Code/lib/ffmpeg/avformat.pas23
-rw-r--r--Game/Code/lib/ffmpeg/avio.pas12
-rw-r--r--Game/Code/lib/ffmpeg/avutil.pas15
-rw-r--r--Game/Code/lib/ffmpeg/mathematics.pas11
-rw-r--r--Game/Code/lib/ffmpeg/opt.pas11
-rw-r--r--Game/Code/lib/ffmpeg/rational.pas10
-rw-r--r--Game/Code/lib/ffmpeg/version.inc102
8 files changed, 121 insertions, 85 deletions
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}