From bcec80f4bc1a7b299f37b49d463494d6817f4496 Mon Sep 17 00:00:00 2001 From: tobigun Date: Sat, 14 Jun 2008 13:57:15 +0000 Subject: ffmpeg update git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1147 b956fd51-792f-4845-bead-9b4dfca2ff2c --- Game/Code/lib/ffmpeg/avcodec.pas | 37 +++++++++++----- Game/Code/lib/ffmpeg/avformat.pas | 84 ++++++++++++++++++++++++++++++++---- Game/Code/lib/ffmpeg/avio.pas | 4 +- Game/Code/lib/ffmpeg/avutil.pas | 14 +++--- Game/Code/lib/ffmpeg/mathematics.pas | 1 + Game/Code/lib/ffmpeg/opt.pas | 9 ++-- Game/Code/lib/ffmpeg/rational.pas | 1 + Game/Code/lib/ffmpeg/swscale.pas | 1 + 8 files changed, 122 insertions(+), 29 deletions(-) (limited to 'Game') diff --git a/Game/Code/lib/ffmpeg/avcodec.pas b/Game/Code/lib/ffmpeg/avcodec.pas index c2493605..9de520c4 100644 --- a/Game/Code/lib/ffmpeg/avcodec.pas +++ b/Game/Code/lib/ffmpeg/avcodec.pas @@ -22,8 +22,9 @@ * in the source codes *) (* + * Conversion of libavcodec/avcodec.h * Min. version: 51.16.0 - * Max. version: 51.56.0, revision 13019, Tue Apr 29 14:08:01 2008 UTC + * Max. version: 51.57.2, revision 13759, Thu Jun 12 21:50:13 2008 UTC *) unit avcodec; @@ -54,8 +55,8 @@ uses const (* Max. supported version by this header *) LIBAVCODEC_MAX_VERSION_MAJOR = 51; - LIBAVCODEC_MAX_VERSION_MINOR = 56; - LIBAVCODEC_MAX_VERSION_RELEASE = 0; + LIBAVCODEC_MAX_VERSION_MINOR = 57; + LIBAVCODEC_MAX_VERSION_RELEASE = 2; LIBAVCODEC_MAX_VERSION = (LIBAVCODEC_MAX_VERSION_MAJOR * VERSION_MAJOR) + (LIBAVCODEC_MAX_VERSION_MINOR * VERSION_MINOR) + (LIBAVCODEC_MAX_VERSION_RELEASE * VERSION_RELEASE); @@ -231,6 +232,7 @@ type CODEC_ID_PCM_S24DAUD, CODEC_ID_PCM_ZORK, CODEC_ID_PCM_S16LE_PLANAR, + CODEC_ID_PCM_DVD, //* various ADPCM codecs */ CODEC_ID_ADPCM_IMA_QT= $11000, @@ -321,6 +323,7 @@ type CODEC_ID_WMAVOICE, CODEC_ID_WMAPRO, CODEC_ID_WMALOSSLESS, + CODEC_ID_ATRAC3P, //* subtitle codecs */ CODEC_ID_DVD_SUBTITLE= $17000, @@ -402,7 +405,8 @@ type ME_X1, ///< reserved for experiments ME_HEX, ///< hexagon based search ME_UMH, ///< uneven multi-hexagon search - ME_ITER ///< iterative search + ME_ITER, ///< iterative search + ME_TESA ///< transformed exhaustive search algorithm ); TAVDiscard = ( @@ -456,11 +460,13 @@ const CODEC_FLAG_INTERLACED_DCT = $00040000; ///< use interlaced dct CODEC_FLAG_LOW_DELAY = $00080000; ///< force low delay CODEC_FLAG_ALT_SCAN = $00100000; ///< use alternate scan + {$IF LIBAVCODEC_VERSION < 52000000} // < 52.0.0 CODEC_FLAG_TRELLIS_QUANT = $00200000; ///< use trellis quantization + {$IFEND} CODEC_FLAG_GLOBAL_HEADER = $00400000; ///< place global headers in extradata instead of every keyframe CODEC_FLAG_BITEXACT = $00800000; ///< use only bitexact stuff (except (i)dct) {* Fx : Flag for h263+ extra options *} - {$IF LIBAVCODEC_VERSION < 52000000} // 52.0.0 + {$IF LIBAVCODEC_VERSION < 52000000} // < 52.0.0 CODEC_FLAG_H263P_AIC = $01000000; ///< H263 Advanced intra coding / MPEG4 AC prediction (remove this) {$IFEND} CODEC_FLAG_AC_PRED = $01000000; ///< H263 Advanced intra coding / MPEG4 AC prediction @@ -1065,7 +1071,7 @@ type (** * Motion estimation algorithm used for video coding. * 1 (zero), 2 (full), 3 (log), 4 (phods), 5 (epzs), 6 (x1), 7 (hex), - * 8 (umh), 9 (iter) [7, 8 are x264 specific, 9 is snow specific] + * 8 (umh), 9 (iter), 10 (tesa) [7, 8, 10 are x264 specific, 9 is snow specific] * - encoding: MUST be set by user. * - decoding: unused *) @@ -2328,7 +2334,11 @@ type {const} supported_framerates: PAVRational; ///< array of supported framerates, or NULL if any, array is terminated by {0,0} {const} pix_fmts: PAVPixelFormat; ///< array of supported pixel formats, or NULL if unknown, array is terminated by -1 {$IF LIBAVCODEC_VERSION >= 51055000} // 51.55.0 - {const} long_name: PChar; ///< descriptive name for the codec, meant to be more human readable than \p name + (** + * Descriptive name for the codec, meant to be more human readable than \p name. + * You \e should use the NULL_IF_CONFIG_SMALL() macro to define it. + *) + {const} long_name: PChar; {$IFEND} {$IF LIBAVCODEC_VERSION >= 51056000} // 51.56.0 {const} supported_samplerates: PInteger; ///< array of supported audio samplerates, or NULL if unknown, array is terminated by 0 @@ -2907,6 +2917,8 @@ function avcodec_parse_frame (avctx: PAVCodecContext; pdata: PPointer; * @param[in] samples the input buffer containing the samples * The number of samples read from this buffer is frame_size*channels, * both of which are defined in \p avctx. + * For PCM audio the number of samples read from \p samples is equal to + * \p buf_size * input_sample_size / output_sample_size. * @return On error a negative value is returned, on success zero or the number * of bytes used to encode the data read from the input buffer. *) @@ -2996,7 +3008,7 @@ type parser: PAVCodecParser; frame_offset: int64; (* offset of the current frame *) cur_offset: int64; (* current offset (incremented by each av_parser_parse()) *) - last_frame_offset: int64; (* offset of the last frame *) + next_frame_offset: int64; (* offset of the next frame *) (* video info *) pict_type: integer; (* XXX: put it back in AVCodecContext *) repeat_pict: integer; (* XXX: put it back in AVCodecContext *) @@ -3017,7 +3029,9 @@ type {$IF LIBAVCODEC_VERSION >= 51040003} // 51.40.3 offset: int64; ///< byte offset from starting packet start - last_offset: int64; + {$IFEND} + {$IF LIBAVCODEC_VERSION >= 51057001} // 51.57.1 + cur_frame_end: array [0..AV_PARSER_PTS_NB - 1] of int64; {$IFEND} end; @@ -3120,7 +3134,9 @@ function av_bitstream_filter_next(f: PAVBitStreamFilter): PAVBitStreamFilter; *) procedure av_fast_realloc (ptr: pointer; size: PCardinal; min_size: Cardinal); cdecl; external av__codec; - + + +{$IF LIBAVCODEC_VERSION < 51057000} // 51.57.0 (* for static data only *) (** @@ -3146,6 +3162,7 @@ procedure av_free_static (); *) procedure av_mallocz_static(size: cardinal); cdecl; external av__codec; deprecated; {av_malloc_attrib av_alloc_size(1)} +{$IFEND} {$IF LIBAVCODEC_VERSION < 51035000} // 51.35.0 procedure av_realloc_static(ptr: pointer; size: Cardinal); diff --git a/Game/Code/lib/ffmpeg/avformat.pas b/Game/Code/lib/ffmpeg/avformat.pas index 720103d6..4095ddc6 100644 --- a/Game/Code/lib/ffmpeg/avformat.pas +++ b/Game/Code/lib/ffmpeg/avformat.pas @@ -23,8 +23,9 @@ * in the source codes *) (* + * Conversion of libavformat/avformat.h * Min. version: 50.5.0 - * Max. version: 52.13.0, revision 12946, Thu Apr 24 23:21:58 2008 UTC + * Max. version: 52.16.0, revision 13728, Mon Jun 9 13:38:56 2008 UTC *) unit avformat; @@ -55,7 +56,7 @@ uses const (* Max. supported version by this header *) LIBAVFORMAT_MAX_VERSION_MAJOR = 52; - LIBAVFORMAT_MAX_VERSION_MINOR = 13; + LIBAVFORMAT_MAX_VERSION_MINOR = 16; LIBAVFORMAT_MAX_VERSION_RELEASE = 0; LIBAVFORMAT_MAX_VERSION = (LIBAVFORMAT_MAX_VERSION_MAJOR * VERSION_MAJOR) + (LIBAVFORMAT_MAX_VERSION_MINOR * VERSION_MINOR) + @@ -74,8 +75,23 @@ type type PAVPacket = ^TAVPacket; TAVPacket = record - pts: int64; ///< presentation time stamp in time_base units - dts: int64; ///< decompression time stamp in time_base units + (** + * Presentation time stamp in time_base units. + * This is the time at which the decompressed packet will be presented + * to the user. + * Can be AV_NOPTS_VALUE if it is not stored in the file. + * pts MUST be larger or equal to dts as presentation can not happen before + * decompression, unless one wants to view hex dumps. Some formats misuse + * the terms dts and pts/cts to mean something different, these timestamps + * must be converted to true pts/dts before they are stored in AVPacket. + *) + pts: int64; + (** + * Decompression time stamp in time_base units. + * This is the time at which the packet is decompressed. + * Can be AV_NOPTS_VALUE if it is not stored in the file. + *) + dts: int64; data: PByte; size: integer; stream_index: integer; @@ -206,8 +222,10 @@ const AV_DISPOSITION_COMMENT = $0008; AV_DISPOSITION_LYRICS = $0010; AV_DISPOSITION_KARAOKE = $0020; - - + + // used by TAVFormatContext.debug + FF_FDEBUG_TS = 0001; + type PPAVCodecTag = ^PAVCodecTag; PAVCodecTag = Pointer; @@ -234,6 +252,16 @@ type PAVImageInfo = ^TAVImageInfo; {$IFEND} + PAVChapter = ^TAVChapter; + TAVChapter = record + id: integer; ///< Unique id to identify the chapter + time_base: TAVRational; ///< Timebase in which the start/end timestamps are specified + start, end_: int64; ///< chapter start/end time in time_base units + title: PChar; ///< chapter title + end; + TAVChapterArray = array[0..(MaxInt div SizeOf(TAVChapter))-1] of TAVChapter; + PAVChapterArray = ^TAVChapterArray; + TAVFormatParameters = record time_base: TAVRational; sample_rate: integer; @@ -267,6 +295,11 @@ type TAVOutputFormat = record name: pchar; + (** + * Descriptive name for the format, meant to be more human-readable + * than \p name. You \e should use the NULL_IF_CONFIG_SMALL() macro + * to define it. + *) long_name: pchar; mime_type: pchar; extensions: pchar; (*< comma separated filename extensions *) @@ -302,6 +335,11 @@ type TAVInputFormat = record name: pchar; + (** + * Descriptive name for the format, meant to be more human-readable + * than \p name. You \e should use the NULL_IF_CONFIG_SMALL() macro + * to define it. + *) long_name: pchar; (* size of private data so that it can be allocated in the wrapper *) priv_data_size: integer; @@ -598,14 +636,26 @@ type *) max_index_size: cardinal; {$IFEND} - + + {$IF LIBAVFORMAT_VERSION >= 52009000} // 52.9.0 (** * Maximum amount of memory in bytes to use for buffering frames * obtained from real-time capture devices. *) - {$IF LIBAVFORMAT_VERSION >= 52009000} // 52.9.0 max_picture_buffer: cardinal; {$IFEND} + + {$IF LIBAVFORMAT_VERSION >= 52014000} // 52.14.0 + nb_chapters: cardinal; + chapters: PAVChapterArray; + {$IFEND} + + {$IF LIBAVFORMAT_VERSION >= 52016000} // 52.16.0 + (** + * Flags to enable debuging. + *) + debug: integer; + {$IFEND} end; (** @@ -948,6 +998,24 @@ function av_new_program(s: PAVFormatContext; id: integer): PAVProgram; cdecl; external av__format; {$IFEND} +{$IF LIBAVFORMAT_VERSION >= 52014000} // 52.14.0 +(** + * Add a new chapter. + * This function is NOT part of the public API + * and should be ONLY used by demuxers. + * + * @param s media file handle + * @param id unique id for this chapter + * @param start chapter start time in time_base units + * @param end chapter end time in time_base units + * @param title chapter title + * + * @return AVChapter or NULL if error. + *) +function ff_new_chapter(s: PAVFormatContext; id: integer; time_base: TAVRational; start, end_: int64; title: {const} Pchar): PAVChapter; + cdecl; external av__format; +{$IFEND} + (** * Set the pts for a given stream. * diff --git a/Game/Code/lib/ffmpeg/avio.pas b/Game/Code/lib/ffmpeg/avio.pas index 778cd9bf..745725b7 100644 --- a/Game/Code/lib/ffmpeg/avio.pas +++ b/Game/Code/lib/ffmpeg/avio.pas @@ -24,6 +24,7 @@ For Mac OS X, some modifications were made by The Creative CAT, denoted as CAT in the source codes *) (* + * Conversion of libavformat/avio.h * revision 12658, Mon Mar 31 17:31:11 2008 UTC *) @@ -42,7 +43,8 @@ unit avio; interface uses - avutil, // for uint64 + avutil, + avcodec, UConfig; (* output byte stream handling *) diff --git a/Game/Code/lib/ffmpeg/avutil.pas b/Game/Code/lib/ffmpeg/avutil.pas index d0499755..3bd565c7 100644 --- a/Game/Code/lib/ffmpeg/avutil.pas +++ b/Game/Code/lib/ffmpeg/avutil.pas @@ -22,14 +22,16 @@ * in the source codes *) (* - * avutil.h: + * Conversions of + * + * libavutil/avutil.h: * Min. version: ? - * Max. version: revision 12410, Mon Mar 10 18:42:09 2008 UTC + * Max. version: revision 13595, Sun Jun 1 07:37:43 2008 UTC * - * mem.h: - * revision 12501, Wed Mar 19 07:43:43 2008 UTC + * libavutil/mem.h: + * revision 13665, Thu Jun 5 19:49:47 2008 UTC * - * log.h: + * libavutil/log.h: * revision 13068, Tue May 6 08:41:13 2008 UTC *) @@ -57,7 +59,7 @@ uses const (* Max. supported version by this header *) LIBAVUTIL_MAX_VERSION_MAJOR = 49; - LIBAVUTIL_MAX_VERSION_MINOR = 6; + LIBAVUTIL_MAX_VERSION_MINOR = 7; LIBAVUTIL_MAX_VERSION_RELEASE = 0; LIBAVUTIL_MAX_VERSION = (LIBAVUTIL_MAX_VERSION_MAJOR * VERSION_MAJOR) + (LIBAVUTIL_MAX_VERSION_MINOR * VERSION_MINOR) + diff --git a/Game/Code/lib/ffmpeg/mathematics.pas b/Game/Code/lib/ffmpeg/mathematics.pas index 9e9e360c..ede9530f 100644 --- a/Game/Code/lib/ffmpeg/mathematics.pas +++ b/Game/Code/lib/ffmpeg/mathematics.pas @@ -21,6 +21,7 @@ For Mac OS X, some modifications were made by The Creative CAT, denoted as CAT in the source codes *) (* + * Conversion of libavutil/mathematics.h * revision 12498, Wed Mar 19 06:17:43 2008 UTC *) diff --git a/Game/Code/lib/ffmpeg/opt.pas b/Game/Code/lib/ffmpeg/opt.pas index 0f94ef8e..2f9f2c0e 100644 --- a/Game/Code/lib/ffmpeg/opt.pas +++ b/Game/Code/lib/ffmpeg/opt.pas @@ -23,7 +23,8 @@ * in the source codes *) (* - * revision 12194, Mon Feb 25 09:22:11 2008 UTC + * Conversion of libavcodec/opt.h + * revision 13669, Fri Jun 6 07:00:42 2008 UTC *) unit opt; @@ -65,15 +66,15 @@ const type (** - * AVOption. + * AVOption *) PAVOption = ^TAVOption; TAVOption = record name: pchar; (** - * short English text help. - * @todo what about other languages + * short English help text + * @todo What about other languages? *) help: pchar; offset: integer; ///< offset to context structure where the parsed value should be stored diff --git a/Game/Code/lib/ffmpeg/rational.pas b/Game/Code/lib/ffmpeg/rational.pas index 73f125ca..aca690d1 100644 --- a/Game/Code/lib/ffmpeg/rational.pas +++ b/Game/Code/lib/ffmpeg/rational.pas @@ -23,6 +23,7 @@ * in the source codes *) (* + * Conversion of libavutil/rational.h * revision 12498, Wed Mar 19 06:17:43 2008 UTC *) diff --git a/Game/Code/lib/ffmpeg/swscale.pas b/Game/Code/lib/ffmpeg/swscale.pas index 0311539d..0d7831bc 100644 --- a/Game/Code/lib/ffmpeg/swscale.pas +++ b/Game/Code/lib/ffmpeg/swscale.pas @@ -24,6 +24,7 @@ *) (* + * Conversion of libswscale/swscale.h * revision 26183, Thu Mar 6 11:32:25 2008 UTC *) -- cgit v1.2.3