From 30343a531999b5e50673ee1731f1c54cbc008dfd Mon Sep 17 00:00:00 2001 From: jaybinks Date: Wed, 5 Sep 2007 12:02:06 +0000 Subject: added 3rd party dependencies ( except Jedi-SDL ) modified DPR to statically include all files needed (using relative paths) this means 3rd party components should not need installation in the IDE, or adding to search paths. git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@368 b956fd51-792f-4845-bead-9b4dfca2ff2c --- Game/Code/lib/ffmpeg/avio.pas | 241 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 241 insertions(+) create mode 100644 Game/Code/lib/ffmpeg/avio.pas (limited to 'Game/Code/lib/ffmpeg/avio.pas') diff --git a/Game/Code/lib/ffmpeg/avio.pas b/Game/Code/lib/ffmpeg/avio.pas new file mode 100644 index 00000000..20275ab7 --- /dev/null +++ b/Game/Code/lib/ffmpeg/avio.pas @@ -0,0 +1,241 @@ + (* + * unbuffered io for ffmpeg system + * copyright (c) 2001 Fabrice Bellard + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + *) +unit avio; + +interface + +uses + windows; + +const + av__format = 'avformat-50.dll'; + + URL_RDONLY = 0; + URL_WRONLY = 1; + URL_RDWR = 2; + +(* output byte stream handling *) + +type + offset_t = int64; + int = integer; + +(* unbuffered I/O *) + PURLProtocol = ^TURLProtocol; + PURLContext = ^TURLContext; + TURLContext = record + prot: PURLProtocol; + flags: int; + is_streamed: int; //* true if streamed (no seek possible), default = false */ + max_packet_size: int; //* if non zero, the stream is packetized with this max packet size */ + priv_data: pointer; + filename: array [0..0] of char; (* specified filename *) + end; + + PURLPollEntry = ^TURLPollEntry; + TURLPollEntry = record + handle: PURLContext; + events: integer; + revents: integer; + end; + + TURLProtocol = record + name: pchar; + url_open: function (h: PURLContext; const filename: pchar; flags: integer): integer; cdecl; + url_read: function (h: PURLContext; buf: pchar; size: integer): integer; cdecl; + url_write: function (h: PURLContext; buf: pchar; size: integer): integer; cdecl; + url_seek: function (h: PURLContext; pos: int64; whence: integer): int64; cdecl; + url_close: function (h: PURLContext): integer; cdecl; + next: PURLProtocol; + end; + + PByteIOContext = ^TByteIOContext; + TByteIOContext = record + buffer: pchar; + buffer_size: integer; + buf_ptr: pchar; + buf_end: pchar; + opaque: pointer; + read_packet: function (opaque: pointer; buf: pchar; buf_size: integer): integer; cdecl; + write_packet: function (opaque: pointer; buf: pchar; buf_size: integer): integer; cdecl; + seek: function (opaque: pointer; offset: int64; whence: integer): int64; cdecl; + pos: int64; (* position in the file of the current buffer *) + must_flush: integer; (* true if the next seek should flush *) + eof_reached: integer; (* true if eof reached *) + write_flag: integer; (* true if open for writing *) + is_streamed: integer; + max_packet_size: integer; + checksum: longword; + checksum_ptr: pchar; + update_checksum: function (checksum: cardinal; const buf: pchar; size: cardinal): LongWord; cdecl; + error: integer; ///< contains the error code or 0 if no error happened + end; + + function url_open(h: PPointer; const filename: pchar; flags: integer): integer; + cdecl; external av__format; + function url_read (h: PURLContext; buf: pchar; size: integer): integer; + cdecl; external av__format; + function url_write (h: PURLContext; buf: pchar; size: integer): integer; + cdecl; external av__format; + function url_seek (h: PURLContext; pos: int64; whence: integer): int64; + cdecl; external av__format; + function url_close (h: PURLContext): integer; + cdecl; external av__format; + function url_exist(const filename: pchar): integer; + cdecl; external av__format; + function url_filesize (h: PURLContext): int64; + cdecl; external av__format; + function url_get_max_packet_size(h: PURLContext): integer; + cdecl; external av__format; + procedure url_get_filename(h: PURLContext; buf: pchar; buf_size: integer); + cdecl; external av__format; + +(* the callback is called in blocking functions to test regulary if + asynchronous interruption is needed. -EINTR is returned in this + case by the interrupted function. 'NULL' means no interrupt + callback is given. *) + procedure url_set_interrupt_cb (interrupt_cb: pinteger); + cdecl; external av__format; + +(* not implemented *) +//int url_poll(URLPollEntry *poll_table, int n, int timeout); + + function register_protocol (protocol: PURLProtocol): integer; + cdecl; external av__format; + + function init_put_byte(s: PByteIOContext; + buffer: pchar; + buffer_size: integer; write_flag: integer; + opaque: pointer; + read_packet: pointer; //int (*read_packet)(void *opaque, uint8_t *buf, int buf_size), + write_packet: pointer; //int (*write_packet)(void *opaque, uint8_t *buf, int buf_size), + seek: pointer //offset_t (*seek)(void *opaque, offset_t offset, int whence) + ): integer; + cdecl; external av__format; + procedure put_byte(s: PByteIOContext; b: integer); + cdecl; external av__format; + procedure put_buffer (s: PByteIOContext; const buf: pchar; size: integer); + cdecl; external av__format; + procedure put_le64(s: PByteIOContext; val: int64); + cdecl; external av__format; + procedure put_be64(s: PByteIOContext; val: int64); + cdecl; external av__format; + procedure put_le32(s: PByteIOContext; val: cardinal); + cdecl; external av__format; + procedure put_be32(s: PByteIOContext; val: cardinal); + cdecl; external av__format; + procedure put_be24(s: PByteIOContext; val: cardinal); + cdecl; external av__format; + procedure put_le16(s: PByteIOContext; val: cardinal); + cdecl; external av__format; + procedure put_be16(s: PByteIOContext; val: cardinal); + cdecl; external av__format; + procedure put_tag(s: PByteIOContext; const tag: pchar); + cdecl; external av__format; + + procedure put_strz(s: PByteIOContext; const buf: pchar); + cdecl; external av__format; + + function url_fseek(s: PByteIOContext; offset: int64; whence: integer): int64; + cdecl; external av__format; + procedure url_fskip(s: PByteIOContext; offset: int64); + cdecl; external av__format; + function url_ftell(s: PByteIOContext): int64; + cdecl; external av__format; + function url_fsize(s: PByteIOContext): int64; + cdecl; external av__format; + function url_feof(s: PByteIOContext): integer; + cdecl; external av__format; + function url_ferror(s: PByteIOContext): integer; + cdecl; external av__format; + + procedure put_flush_packet (s: PByteIOContext); + cdecl; external av__format; + function get_buffer(s: PByteIOContext; buf: pchar; size: integer): integer; + cdecl; external av__format; + function get_partial_buffer(s: PByteIOContext; buf: pchar; size: integer): integer; + cdecl; external av__format; + function get_byte(s: PByteIOContext): integer; + cdecl; external av__format; + function get_le32(s: PByteIOContext): cardinal; + cdecl; external av__format; + function get_le64(s: PByteIOContext): int64; + cdecl; external av__format; + function get_le16(s: PByteIOContext): cardinal; + cdecl; external av__format; + + function get_strz(s: PByteIOContext; buf: pchar; maxlen: integer): pchar; + cdecl; external av__format; + function get_be16(s: PByteIOContext): cardinal; + cdecl; external av__format; + function get_be24(s: PByteIOContext): cardinal; + cdecl; external av__format; + function get_be32(s: PByteIOContext): cardinal; + cdecl; external av__format; + function get_be64(s: PByteIOContext): int64; + cdecl; external av__format; + + function url_is_streamed(s: PByteIOContext): integer; + + function url_fdopen (s: PByteIOContext; h: PURLContext): integer; + cdecl; external av__format; + function url_setbufsize (s: PByteIOContext; buf_size: integer): integer; + cdecl; external av__format; + function url_fopen(s: PByteIOContext; const filename: pchar; flags: integer): integer; + cdecl; external av__format; + function url_fclose(s: PByteIOContext): integer; + cdecl; external av__format; + + function url_fileno(s: PByteIOContext): PURLContext; + cdecl; external av__format; + function url_fget_max_packet_size (s: PByteIOContext): integer; + cdecl; external av__format; + function url_open_buf(s: PByteIOContext; buf: pchar; buf_size: integer; flags: integer): integer; + cdecl; external av__format; + function url_close_buf(s: PByteIOContext): integer; + cdecl; external av__format; + + function url_open_dyn_buf(s: PByteIOContext): integer; + cdecl; external av__format; + function url_open_dyn_packet_buf(s: PByteIOContext; max_packet_size: integer): integer; + cdecl; external av__format; + function url_close_dyn_buf(s: PByteIOContext; pbuffer:PPointer): integer; + cdecl; external av__format; + + function get_checksum(s: PByteIOContext): cardinal; + cdecl; external av__format; + + procedure init_checksum (s: PByteIOContext; update_checksum: pointer; checksum: cardinal); + cdecl; external av__format; + + function udp_set_remote_url(h: PURLContext; const uri: pchar): integer; + cdecl; external av__format; + function udp_get_local_port(h: PURLContext): integer; + cdecl; external av__format; + function udp_get_file_handle(h: PURLContext): integer; + cdecl; external av__format; + +implementation + +function url_is_streamed(s: PByteIOContext): integer; +begin + Result := s^.is_streamed; +end; + +end. -- cgit v1.2.3 From 5a778181e947cfb883f85d3239f6d1f1714dacc8 Mon Sep 17 00:00:00 2001 From: jaybinks Date: Thu, 13 Sep 2007 11:39:57 +0000 Subject: changes to make 3rd party libraries compile / work in lazarus. git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@387 b956fd51-792f-4845-bead-9b4dfca2ff2c --- Game/Code/lib/ffmpeg/avio.pas | 2 ++ 1 file changed, 2 insertions(+) (limited to 'Game/Code/lib/ffmpeg/avio.pas') diff --git a/Game/Code/lib/ffmpeg/avio.pas b/Game/Code/lib/ffmpeg/avio.pas index 20275ab7..7d0e8c04 100644 --- a/Game/Code/lib/ffmpeg/avio.pas +++ b/Game/Code/lib/ffmpeg/avio.pas @@ -224,12 +224,14 @@ type procedure init_checksum (s: PByteIOContext; update_checksum: pointer; checksum: cardinal); cdecl; external av__format; + {$IFNDEF FPC} function udp_set_remote_url(h: PURLContext; const uri: pchar): integer; cdecl; external av__format; function udp_get_local_port(h: PURLContext): integer; cdecl; external av__format; function udp_get_file_handle(h: PURLContext): integer; cdecl; external av__format; + {$ENDIF} implementation -- cgit v1.2.3 From 1c3dedbdd8522e63080133197af763d1995f8236 Mon Sep 17 00:00:00 2001 From: jaybinks Date: Wed, 19 Sep 2007 23:34:09 +0000 Subject: tested ffmpeg in lazarus - linux.. working :) just need to make sure development packages are installed for ffmpeg. such as : libavcodec-dev & libavformat-dev git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@405 b956fd51-792f-4845-bead-9b4dfca2ff2c --- Game/Code/lib/ffmpeg/avio.pas | 492 +++++++++++++++++++++--------------------- 1 file changed, 249 insertions(+), 243 deletions(-) (limited to 'Game/Code/lib/ffmpeg/avio.pas') diff --git a/Game/Code/lib/ffmpeg/avio.pas b/Game/Code/lib/ffmpeg/avio.pas index 7d0e8c04..84622f0d 100644 --- a/Game/Code/lib/ffmpeg/avio.pas +++ b/Game/Code/lib/ffmpeg/avio.pas @@ -1,243 +1,249 @@ - (* - * unbuffered io for ffmpeg system - * copyright (c) 2001 Fabrice Bellard - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - *) -unit avio; - -interface - -uses - windows; - -const - av__format = 'avformat-50.dll'; - - URL_RDONLY = 0; - URL_WRONLY = 1; - URL_RDWR = 2; - -(* output byte stream handling *) - -type - offset_t = int64; - int = integer; - -(* unbuffered I/O *) - PURLProtocol = ^TURLProtocol; - PURLContext = ^TURLContext; - TURLContext = record - prot: PURLProtocol; - flags: int; - is_streamed: int; //* true if streamed (no seek possible), default = false */ - max_packet_size: int; //* if non zero, the stream is packetized with this max packet size */ - priv_data: pointer; - filename: array [0..0] of char; (* specified filename *) - end; - - PURLPollEntry = ^TURLPollEntry; - TURLPollEntry = record - handle: PURLContext; - events: integer; - revents: integer; - end; - - TURLProtocol = record - name: pchar; - url_open: function (h: PURLContext; const filename: pchar; flags: integer): integer; cdecl; - url_read: function (h: PURLContext; buf: pchar; size: integer): integer; cdecl; - url_write: function (h: PURLContext; buf: pchar; size: integer): integer; cdecl; - url_seek: function (h: PURLContext; pos: int64; whence: integer): int64; cdecl; - url_close: function (h: PURLContext): integer; cdecl; - next: PURLProtocol; - end; - - PByteIOContext = ^TByteIOContext; - TByteIOContext = record - buffer: pchar; - buffer_size: integer; - buf_ptr: pchar; - buf_end: pchar; - opaque: pointer; - read_packet: function (opaque: pointer; buf: pchar; buf_size: integer): integer; cdecl; - write_packet: function (opaque: pointer; buf: pchar; buf_size: integer): integer; cdecl; - seek: function (opaque: pointer; offset: int64; whence: integer): int64; cdecl; - pos: int64; (* position in the file of the current buffer *) - must_flush: integer; (* true if the next seek should flush *) - eof_reached: integer; (* true if eof reached *) - write_flag: integer; (* true if open for writing *) - is_streamed: integer; - max_packet_size: integer; - checksum: longword; - checksum_ptr: pchar; - update_checksum: function (checksum: cardinal; const buf: pchar; size: cardinal): LongWord; cdecl; - error: integer; ///< contains the error code or 0 if no error happened - end; - - function url_open(h: PPointer; const filename: pchar; flags: integer): integer; - cdecl; external av__format; - function url_read (h: PURLContext; buf: pchar; size: integer): integer; - cdecl; external av__format; - function url_write (h: PURLContext; buf: pchar; size: integer): integer; - cdecl; external av__format; - function url_seek (h: PURLContext; pos: int64; whence: integer): int64; - cdecl; external av__format; - function url_close (h: PURLContext): integer; - cdecl; external av__format; - function url_exist(const filename: pchar): integer; - cdecl; external av__format; - function url_filesize (h: PURLContext): int64; - cdecl; external av__format; - function url_get_max_packet_size(h: PURLContext): integer; - cdecl; external av__format; - procedure url_get_filename(h: PURLContext; buf: pchar; buf_size: integer); - cdecl; external av__format; - -(* the callback is called in blocking functions to test regulary if - asynchronous interruption is needed. -EINTR is returned in this - case by the interrupted function. 'NULL' means no interrupt - callback is given. *) - procedure url_set_interrupt_cb (interrupt_cb: pinteger); - cdecl; external av__format; - -(* not implemented *) -//int url_poll(URLPollEntry *poll_table, int n, int timeout); - - function register_protocol (protocol: PURLProtocol): integer; - cdecl; external av__format; - - function init_put_byte(s: PByteIOContext; - buffer: pchar; - buffer_size: integer; write_flag: integer; - opaque: pointer; - read_packet: pointer; //int (*read_packet)(void *opaque, uint8_t *buf, int buf_size), - write_packet: pointer; //int (*write_packet)(void *opaque, uint8_t *buf, int buf_size), - seek: pointer //offset_t (*seek)(void *opaque, offset_t offset, int whence) - ): integer; - cdecl; external av__format; - procedure put_byte(s: PByteIOContext; b: integer); - cdecl; external av__format; - procedure put_buffer (s: PByteIOContext; const buf: pchar; size: integer); - cdecl; external av__format; - procedure put_le64(s: PByteIOContext; val: int64); - cdecl; external av__format; - procedure put_be64(s: PByteIOContext; val: int64); - cdecl; external av__format; - procedure put_le32(s: PByteIOContext; val: cardinal); - cdecl; external av__format; - procedure put_be32(s: PByteIOContext; val: cardinal); - cdecl; external av__format; - procedure put_be24(s: PByteIOContext; val: cardinal); - cdecl; external av__format; - procedure put_le16(s: PByteIOContext; val: cardinal); - cdecl; external av__format; - procedure put_be16(s: PByteIOContext; val: cardinal); - cdecl; external av__format; - procedure put_tag(s: PByteIOContext; const tag: pchar); - cdecl; external av__format; - - procedure put_strz(s: PByteIOContext; const buf: pchar); - cdecl; external av__format; - - function url_fseek(s: PByteIOContext; offset: int64; whence: integer): int64; - cdecl; external av__format; - procedure url_fskip(s: PByteIOContext; offset: int64); - cdecl; external av__format; - function url_ftell(s: PByteIOContext): int64; - cdecl; external av__format; - function url_fsize(s: PByteIOContext): int64; - cdecl; external av__format; - function url_feof(s: PByteIOContext): integer; - cdecl; external av__format; - function url_ferror(s: PByteIOContext): integer; - cdecl; external av__format; - - procedure put_flush_packet (s: PByteIOContext); - cdecl; external av__format; - function get_buffer(s: PByteIOContext; buf: pchar; size: integer): integer; - cdecl; external av__format; - function get_partial_buffer(s: PByteIOContext; buf: pchar; size: integer): integer; - cdecl; external av__format; - function get_byte(s: PByteIOContext): integer; - cdecl; external av__format; - function get_le32(s: PByteIOContext): cardinal; - cdecl; external av__format; - function get_le64(s: PByteIOContext): int64; - cdecl; external av__format; - function get_le16(s: PByteIOContext): cardinal; - cdecl; external av__format; - - function get_strz(s: PByteIOContext; buf: pchar; maxlen: integer): pchar; - cdecl; external av__format; - function get_be16(s: PByteIOContext): cardinal; - cdecl; external av__format; - function get_be24(s: PByteIOContext): cardinal; - cdecl; external av__format; - function get_be32(s: PByteIOContext): cardinal; - cdecl; external av__format; - function get_be64(s: PByteIOContext): int64; - cdecl; external av__format; - - function url_is_streamed(s: PByteIOContext): integer; - - function url_fdopen (s: PByteIOContext; h: PURLContext): integer; - cdecl; external av__format; - function url_setbufsize (s: PByteIOContext; buf_size: integer): integer; - cdecl; external av__format; - function url_fopen(s: PByteIOContext; const filename: pchar; flags: integer): integer; - cdecl; external av__format; - function url_fclose(s: PByteIOContext): integer; - cdecl; external av__format; - - function url_fileno(s: PByteIOContext): PURLContext; - cdecl; external av__format; - function url_fget_max_packet_size (s: PByteIOContext): integer; - cdecl; external av__format; - function url_open_buf(s: PByteIOContext; buf: pchar; buf_size: integer; flags: integer): integer; - cdecl; external av__format; - function url_close_buf(s: PByteIOContext): integer; - cdecl; external av__format; - - function url_open_dyn_buf(s: PByteIOContext): integer; - cdecl; external av__format; - function url_open_dyn_packet_buf(s: PByteIOContext; max_packet_size: integer): integer; - cdecl; external av__format; - function url_close_dyn_buf(s: PByteIOContext; pbuffer:PPointer): integer; - cdecl; external av__format; - - function get_checksum(s: PByteIOContext): cardinal; - cdecl; external av__format; - - procedure init_checksum (s: PByteIOContext; update_checksum: pointer; checksum: cardinal); - cdecl; external av__format; - - {$IFNDEF FPC} - function udp_set_remote_url(h: PURLContext; const uri: pchar): integer; - cdecl; external av__format; - function udp_get_local_port(h: PURLContext): integer; - cdecl; external av__format; - function udp_get_file_handle(h: PURLContext): integer; - cdecl; external av__format; - {$ENDIF} - -implementation - -function url_is_streamed(s: PByteIOContext): integer; -begin - Result := s^.is_streamed; -end; - -end. + (* + * unbuffered io for ffmpeg system + * copyright (c) 2001 Fabrice Bellard + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + *) +unit avio; + +interface + +{$IFDEF win32} +uses + windows; +{$ENDIF} + +const + {$IFDEF win32} + av__format = 'avformat-50.dll'; + {$ELSE} + av__format = 'libavformat.so'; // .0d + {$ENDIF} + + URL_RDONLY = 0; + URL_WRONLY = 1; + URL_RDWR = 2; + +(* output byte stream handling *) + +type + offset_t = int64; + int = integer; + +(* unbuffered I/O *) + PURLProtocol = ^TURLProtocol; + PURLContext = ^TURLContext; + TURLContext = record + prot: PURLProtocol; + flags: int; + is_streamed: int; //* true if streamed (no seek possible), default = false */ + max_packet_size: int; //* if non zero, the stream is packetized with this max packet size */ + priv_data: pointer; + filename: array [0..0] of char; (* specified filename *) + end; + + PURLPollEntry = ^TURLPollEntry; + TURLPollEntry = record + handle: PURLContext; + events: integer; + revents: integer; + end; + + TURLProtocol = record + name: pchar; + url_open: function (h: PURLContext; const filename: pchar; flags: integer): integer; cdecl; + url_read: function (h: PURLContext; buf: pchar; size: integer): integer; cdecl; + url_write: function (h: PURLContext; buf: pchar; size: integer): integer; cdecl; + url_seek: function (h: PURLContext; pos: int64; whence: integer): int64; cdecl; + url_close: function (h: PURLContext): integer; cdecl; + next: PURLProtocol; + end; + + PByteIOContext = ^TByteIOContext; + TByteIOContext = record + buffer: pchar; + buffer_size: integer; + buf_ptr: pchar; + buf_end: pchar; + opaque: pointer; + read_packet: function (opaque: pointer; buf: pchar; buf_size: integer): integer; cdecl; + write_packet: function (opaque: pointer; buf: pchar; buf_size: integer): integer; cdecl; + seek: function (opaque: pointer; offset: int64; whence: integer): int64; cdecl; + pos: int64; (* position in the file of the current buffer *) + must_flush: integer; (* true if the next seek should flush *) + eof_reached: integer; (* true if eof reached *) + write_flag: integer; (* true if open for writing *) + is_streamed: integer; + max_packet_size: integer; + checksum: longword; + checksum_ptr: pchar; + update_checksum: function (checksum: cardinal; const buf: pchar; size: cardinal): LongWord; cdecl; + error: integer; ///< contains the error code or 0 if no error happened + end; + + function url_open(h: PPointer; const filename: pchar; flags: integer): integer; + cdecl; external av__format; + function url_read (h: PURLContext; buf: pchar; size: integer): integer; + cdecl; external av__format; + function url_write (h: PURLContext; buf: pchar; size: integer): integer; + cdecl; external av__format; + function url_seek (h: PURLContext; pos: int64; whence: integer): int64; + cdecl; external av__format; + function url_close (h: PURLContext): integer; + cdecl; external av__format; + function url_exist(const filename: pchar): integer; + cdecl; external av__format; + function url_filesize (h: PURLContext): int64; + cdecl; external av__format; + function url_get_max_packet_size(h: PURLContext): integer; + cdecl; external av__format; + procedure url_get_filename(h: PURLContext; buf: pchar; buf_size: integer); + cdecl; external av__format; + +(* the callback is called in blocking functions to test regulary if + asynchronous interruption is needed. -EINTR is returned in this + case by the interrupted function. 'NULL' means no interrupt + callback is given. *) + procedure url_set_interrupt_cb (interrupt_cb: pinteger); + cdecl; external av__format; + +(* not implemented *) +//int url_poll(URLPollEntry *poll_table, int n, int timeout); + + function register_protocol (protocol: PURLProtocol): integer; + cdecl; external av__format; + + function init_put_byte(s: PByteIOContext; + buffer: pchar; + buffer_size: integer; write_flag: integer; + opaque: pointer; + read_packet: pointer; //int (*read_packet)(void *opaque, uint8_t *buf, int buf_size), + write_packet: pointer; //int (*write_packet)(void *opaque, uint8_t *buf, int buf_size), + seek: pointer //offset_t (*seek)(void *opaque, offset_t offset, int whence) + ): integer; + cdecl; external av__format; + procedure put_byte(s: PByteIOContext; b: integer); + cdecl; external av__format; + procedure put_buffer (s: PByteIOContext; const buf: pchar; size: integer); + cdecl; external av__format; + procedure put_le64(s: PByteIOContext; val: int64); + cdecl; external av__format; + procedure put_be64(s: PByteIOContext; val: int64); + cdecl; external av__format; + procedure put_le32(s: PByteIOContext; val: cardinal); + cdecl; external av__format; + procedure put_be32(s: PByteIOContext; val: cardinal); + cdecl; external av__format; + procedure put_be24(s: PByteIOContext; val: cardinal); + cdecl; external av__format; + procedure put_le16(s: PByteIOContext; val: cardinal); + cdecl; external av__format; + procedure put_be16(s: PByteIOContext; val: cardinal); + cdecl; external av__format; + procedure put_tag(s: PByteIOContext; const tag: pchar); + cdecl; external av__format; + + procedure put_strz(s: PByteIOContext; const buf: pchar); + cdecl; external av__format; + + function url_fseek(s: PByteIOContext; offset: int64; whence: integer): int64; + cdecl; external av__format; + procedure url_fskip(s: PByteIOContext; offset: int64); + cdecl; external av__format; + function url_ftell(s: PByteIOContext): int64; + cdecl; external av__format; + function url_fsize(s: PByteIOContext): int64; + cdecl; external av__format; + function url_feof(s: PByteIOContext): integer; + cdecl; external av__format; + function url_ferror(s: PByteIOContext): integer; + cdecl; external av__format; + + procedure put_flush_packet (s: PByteIOContext); + cdecl; external av__format; + function get_buffer(s: PByteIOContext; buf: pchar; size: integer): integer; + cdecl; external av__format; + function get_partial_buffer(s: PByteIOContext; buf: pchar; size: integer): integer; + cdecl; external av__format; + function get_byte(s: PByteIOContext): integer; + cdecl; external av__format; + function get_le32(s: PByteIOContext): cardinal; + cdecl; external av__format; + function get_le64(s: PByteIOContext): int64; + cdecl; external av__format; + function get_le16(s: PByteIOContext): cardinal; + cdecl; external av__format; + + function get_strz(s: PByteIOContext; buf: pchar; maxlen: integer): pchar; + cdecl; external av__format; + function get_be16(s: PByteIOContext): cardinal; + cdecl; external av__format; + function get_be24(s: PByteIOContext): cardinal; + cdecl; external av__format; + function get_be32(s: PByteIOContext): cardinal; + cdecl; external av__format; + function get_be64(s: PByteIOContext): int64; + cdecl; external av__format; + + function url_is_streamed(s: PByteIOContext): integer; + + function url_fdopen (s: PByteIOContext; h: PURLContext): integer; + cdecl; external av__format; + function url_setbufsize (s: PByteIOContext; buf_size: integer): integer; + cdecl; external av__format; + function url_fopen(s: PByteIOContext; const filename: pchar; flags: integer): integer; + cdecl; external av__format; + function url_fclose(s: PByteIOContext): integer; + cdecl; external av__format; + + function url_fileno(s: PByteIOContext): PURLContext; + cdecl; external av__format; + function url_fget_max_packet_size (s: PByteIOContext): integer; + cdecl; external av__format; + function url_open_buf(s: PByteIOContext; buf: pchar; buf_size: integer; flags: integer): integer; + cdecl; external av__format; + function url_close_buf(s: PByteIOContext): integer; + cdecl; external av__format; + + function url_open_dyn_buf(s: PByteIOContext): integer; + cdecl; external av__format; + function url_open_dyn_packet_buf(s: PByteIOContext; max_packet_size: integer): integer; + cdecl; external av__format; + function url_close_dyn_buf(s: PByteIOContext; pbuffer:PPointer): integer; + cdecl; external av__format; + + function get_checksum(s: PByteIOContext): cardinal; + cdecl; external av__format; + + procedure init_checksum (s: PByteIOContext; update_checksum: pointer; checksum: cardinal); + cdecl; external av__format; + + {$IFNDEF FPC} + function udp_set_remote_url(h: PURLContext; const uri: pchar): integer; + cdecl; external av__format; + function udp_get_local_port(h: PURLContext): integer; + cdecl; external av__format; + function udp_get_file_handle(h: PURLContext): integer; + cdecl; external av__format; + {$ENDIF} + +implementation + +function url_is_streamed(s: PByteIOContext): integer; +begin + Result := s^.is_streamed; +end; + +end. -- cgit v1.2.3 From 48676faa6c0da1eb77999512322896840ea13cb1 Mon Sep 17 00:00:00 2001 From: jaybinks Date: Thu, 11 Oct 2007 08:03:12 +0000 Subject: major changes to FFMPEG Headers so they now support linux. git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@500 b956fd51-792f-4845-bead-9b4dfca2ff2c --- Game/Code/lib/ffmpeg/avio.pas | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) (limited to 'Game/Code/lib/ffmpeg/avio.pas') diff --git a/Game/Code/lib/ffmpeg/avio.pas b/Game/Code/lib/ffmpeg/avio.pas index 84622f0d..f1abea3e 100644 --- a/Game/Code/lib/ffmpeg/avio.pas +++ b/Game/Code/lib/ffmpeg/avio.pas @@ -16,21 +16,21 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *) -unit avio; -interface +(* This is a part of Pascal porting of ffmpeg. Originally by Victor Zinetz for Delphi and Free Pascal on Windows. +For Mac OS X, some modifications were made by The Creative CAT, denoted as CAT +in the source codes *) + +unit avio; +{$MODE DELPHI } (* CAT *) +{$PACKENUM 4} (* every enum type variables uses 4 bytes, CAT *) +{$PACKRECORDS C} (* GCC compatible, Record Packing, CAT *) -{$IFDEF win32} -uses - windows; -{$ENDIF} +interface (* Widows unit is deleted by CAT *) const - {$IFDEF win32} - av__format = 'avformat-50.dll'; - {$ELSE} - av__format = 'libavformat.so'; // .0d - {$ENDIF} +(* version numbers are changed by The Creative CAT *) + av__format = 'libavformat.51'; URL_RDONLY = 0; URL_WRONLY = 1; @@ -230,14 +230,12 @@ type procedure init_checksum (s: PByteIOContext; update_checksum: pointer; checksum: cardinal); cdecl; external av__format; - {$IFNDEF FPC} function udp_set_remote_url(h: PURLContext; const uri: pchar): integer; cdecl; external av__format; function udp_get_local_port(h: PURLContext): integer; cdecl; external av__format; function udp_get_file_handle(h: PURLContext): integer; cdecl; external av__format; - {$ENDIF} implementation -- cgit v1.2.3 From 0d997f8433e982584a0ab67a6d630d12f4314759 Mon Sep 17 00:00:00 2001 From: jaybinks Date: Thu, 11 Oct 2007 10:50:01 +0000 Subject: fixes so codebase builds in delphi now, after major FFMpeg changse for linux. git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@503 b956fd51-792f-4845-bead-9b4dfca2ff2c --- Game/Code/lib/ffmpeg/avio.pas | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'Game/Code/lib/ffmpeg/avio.pas') diff --git a/Game/Code/lib/ffmpeg/avio.pas b/Game/Code/lib/ffmpeg/avio.pas index f1abea3e..5e40bd4e 100644 --- a/Game/Code/lib/ffmpeg/avio.pas +++ b/Game/Code/lib/ffmpeg/avio.pas @@ -22,15 +22,24 @@ For Mac OS X, some modifications were made by The Creative CAT, denoted as CAT in the source codes *) unit avio; -{$MODE DELPHI } (* CAT *) -{$PACKENUM 4} (* every enum type variables uses 4 bytes, CAT *) -{$PACKRECORDS C} (* GCC compatible, Record Packing, CAT *) +{$IFDEF FPC} + {$MODE DELPHI } (* CAT *) + {$PACKENUM 4} (* every enum type variables uses 4 bytes, CAT *) + {$PACKRECORDS C} (* GCC compatible, Record Packing, CAT *) +{$ENDIF} interface (* Widows unit is deleted by CAT *) const (* version numbers are changed by The Creative CAT *) - av__format = 'libavformat.51'; + +{$IFDEF win32} + av__format = 'avformat-50.dll'; +{$ELSE} + av__format = 'libavformat.so'; // .0d +//av__format = 'libavformat.51'; +{$ENDIF} + URL_RDONLY = 0; URL_WRONLY = 1; -- cgit v1.2.3 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/avio.pas | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) (limited to 'Game/Code/lib/ffmpeg/avio.pas') 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; -- cgit v1.2.3 From 89ac41a2ccb85d6dfccb501ff4877231cab72094 Mon Sep 17 00:00:00 2001 From: tobigun Date: Tue, 5 Feb 2008 13:43:38 +0000 Subject: Update of the ffmpeg headers to their current trunk versions. IMPORTANT: parameter of av_free_packet is a pointer now procedure av_free_packet (pkt: PAVPacket); as it is with av_free() and av_freep() git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@814 b956fd51-792f-4845-bead-9b4dfca2ff2c --- Game/Code/lib/ffmpeg/avio.pas | 569 ++++++++++++++++++++++++++++++------------ 1 file changed, 404 insertions(+), 165 deletions(-) (limited to 'Game/Code/lib/ffmpeg/avio.pas') diff --git a/Game/Code/lib/ffmpeg/avio.pas b/Game/Code/lib/ffmpeg/avio.pas index fa65b6fa..d316d2b2 100644 --- a/Game/Code/lib/ffmpeg/avio.pas +++ b/Game/Code/lib/ffmpeg/avio.pas @@ -1,58 +1,85 @@ - (* +(* * unbuffered io for ffmpeg system * copyright (c) 2001 Fabrice Bellard * - * This library is free software; you can redistribute it and/or + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. + * version 2.1 of the License, or (at your option) any later version. * - * This library is distributed in the hope that it will be useful, + * FFmpeg is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software + * License along with FFmpeg; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - *) + *) (* This is a part of Pascal porting of ffmpeg. Originally by Victor Zinetz for Delphi and Free Pascal on Windows. For Mac OS X, some modifications were made by The Creative CAT, denoted as CAT in the source codes *) +// Revision: 11295 + unit avio; + {$IFDEF FPC} - {$MODE DELPHI } (* CAT *) - {$PACKENUM 4} (* every enum type variables uses 4 bytes, CAT *) - {$PACKRECORDS C} (* GCC compatible, Record Packing, CAT *) + {$MODE DELPHI } + {$PACKENUM 4} (* use 4-byte enums *) + {$PACKRECORDS C} (* C/C++-compatible record packing *) +{$ELSE} + {$MINENUMSIZE 4} (* use 4-byte enums *) {$ENDIF} -interface (* Widows unit is deleted by CAT *) +interface + +uses + UConfig; -{$I version.inc} +(* output byte stream handling *) + +type + TOffset = int64; + +(* unbuffered I/O *) const URL_RDONLY = 0; URL_WRONLY = 1; URL_RDWR = 2; -(* output byte stream handling *) + (** + * Passing this as the "whence" parameter to a seek function causes it to + * return the filesize without seeking anywhere. Supporting this is optional. + * If it is not supported then the seek function will return <0. + *) + AVSEEK_SIZE = $10000; type - offset_t = int64; - int = integer; + TURLInterruptCB = function (): integer; cdecl; -(* unbuffered I/O *) +type PURLProtocol = ^TURLProtocol; + + (** + * URL Context. + * New fields can be added to the end with minor version bumps. + * Removal, reordering and changes to existing fields require a major + * version bump. + * sizeof(URLContext) must not be used outside libav*. + *) PURLContext = ^TURLContext; TURLContext = record prot: PURLProtocol; - flags: int; - is_streamed: int; //* true if streamed (no seek possible), default = false */ - max_packet_size: int; //* if non zero, the stream is packetized with this max packet size */ + flags: integer; + is_streamed: integer; (**< true if streamed (no seek possible), default = false *) + max_packet_size: integer; (**< if non zero, the stream is packetized with this max packet size *) priv_data: pointer; - filename: array [0..0] of char; (* specified filename *) + filename: PChar; (**< specified filename *) end; PURLPollEntry = ^TURLPollEntry; @@ -64,14 +91,32 @@ type TURLProtocol = record name: pchar; - url_open: function (h: PURLContext; const filename: pchar; flags: integer): integer; cdecl; + url_open: function (h: PURLContext; {const} filename: pchar; flags: integer): integer; cdecl; url_read: function (h: PURLContext; buf: pchar; size: integer): integer; cdecl; url_write: function (h: PURLContext; buf: pchar; size: integer): integer; cdecl; - url_seek: function (h: PURLContext; pos: int64; whence: integer): int64; cdecl; + url_seek: function (h: PURLContext; pos: TOffset; whence: integer): TOffset; cdecl; url_close: function (h: PURLContext): integer; cdecl; next: PURLProtocol; + {$IF (LIBAVFORMAT_VERSION >= 52001000) and (LIBAVFORMAT_VERSION < 52004000)} // 52.1.0 .. 52.4.0 + url_read_play: function (h: PURLContext): integer; + url_read_pause: function (h: PURLContext): integer; + {$IFEND} + {$IF LIBAVFORMAT_VERSION >= 52004000} // 52.4.0 + url_read_pause: function (h: PURLContext; pause: integer): integer; cdecl; + {$IFEND} + {$IF LIBAVFORMAT_VERSION >= 52001000} // 52.1.0 + url_read_seek: function (h: PURLContext; + stream_index: integer; timestamp: int64; flags: integer): TOffset; cdecl; + {$IFEND} end; + (** + * Bytestream IO Context. + * New fields can be added to the end with minor version bumps. + * Removal, reordering and changes to existing fields require a major + * version bump. + * sizeof(ByteIOContext) must not be used outside libav*. + *) PByteIOContext = ^TByteIOContext; TByteIOContext = record buffer: pchar; @@ -81,8 +126,8 @@ type opaque: pointer; read_packet: function (opaque: pointer; buf: pchar; buf_size: integer): integer; cdecl; write_packet: function (opaque: pointer; buf: pchar; buf_size: integer): integer; cdecl; - seek: function (opaque: pointer; offset: int64; whence: integer): int64; cdecl; - pos: int64; (* position in the file of the current buffer *) + seek: function (opaque: pointer; offset: TOffset; whence: integer): TOffset; cdecl; + pos: TOffset; (* position in the file of the current buffer *) must_flush: integer; (* true if the next seek should flush *) eof_reached: integer; (* true if eof reached *) write_flag: integer; (* true if open for writing *) @@ -90,153 +135,347 @@ type max_packet_size: integer; checksum: longword; checksum_ptr: pchar; - update_checksum: function (checksum: cardinal; const buf: pchar; size: cardinal): LongWord; cdecl; + update_checksum: function (checksum: Longword; {const} buf: pchar; size: cardinal): Longword; cdecl; error: integer; ///< contains the error code or 0 if no error happened + {$IF (LIBAVFORMAT_VERSION >= 52001000) and (LIBAVFORMAT_VERSION < 52004000)} // 52.1.0 .. 52.4.0 + read_play: function(opaque: Pointer): integer; cdecl; + read_pause: function(opaque: Pointer): integer; cdecl; + {$IFEND} + {$IF LIBAVFORMAT_VERSION >= 52004000} // 52.4.0 + read_pause: function(opaque: Pointer; pause: integer): integer; cdecl; + {$IFEND} + {$IF LIBAVFORMAT_VERSION >= 52001000} // 52.1.0 + read_seek: function(opaque: Pointer; + stream_index: integer; timestamp: int64; flags: integer): TOffset; cdecl; + {$IFEND} end; - function url_open(h: PPointer; const filename: pchar; flags: integer): integer; - cdecl; external av__format; - function url_read (h: PURLContext; buf: pchar; size: integer): integer; - cdecl; external av__format; - function url_write (h: PURLContext; buf: pchar; size: integer): integer; - cdecl; external av__format; - function url_seek (h: PURLContext; pos: int64; whence: integer): int64; - cdecl; external av__format; - function url_close (h: PURLContext): integer; - cdecl; external av__format; - function url_exist(const filename: pchar): integer; - cdecl; external av__format; - function url_filesize (h: PURLContext): int64; - cdecl; external av__format; - function url_get_max_packet_size(h: PURLContext): integer; - cdecl; external av__format; - procedure url_get_filename(h: PURLContext; buf: pchar; buf_size: integer); - cdecl; external av__format; - -(* the callback is called in blocking functions to test regulary if - asynchronous interruption is needed. -EINTR is returned in this - case by the interrupted function. 'NULL' means no interrupt - callback is given. *) - procedure url_set_interrupt_cb (interrupt_cb: pinteger); - cdecl; external av__format; +function url_open(h: PPointer; {const} filename: pchar; flags: integer): integer; + cdecl; external av__format; +function url_read (h: PURLContext; buf: pchar; size: integer): integer; + cdecl; external av__format; +function url_write (h: PURLContext; buf: pchar; size: integer): integer; + cdecl; external av__format; +function url_seek (h: PURLContext; pos: TOffset; whence: integer): TOffset; + cdecl; external av__format; +function url_close (h: PURLContext): integer; + cdecl; external av__format; +function url_exist(const filename: pchar): integer; + cdecl; external av__format; +function url_filesize (h: PURLContext): TOffset; + cdecl; external av__format; + +(** + * Return the maximum packet size associated to packetized file + * handle. If the file is not packetized (stream like HTTP or file on + * disk), then 0 is returned. + * + * @param h file handle + * @return maximum packet size in bytes + *) +function url_get_max_packet_size(h: PURLContext): integer; + cdecl; external av__format; +procedure url_get_filename(h: PURLContext; buf: pchar; buf_size: integer); + cdecl; external av__format; + +(** + * The callback is called in blocking functions to test regulary if + * asynchronous interruption is needed. AVERROR(EINTR) is returned + * in this case by the interrupted function. 'NULL' means no interrupt + * callback is given. + *) +procedure url_set_interrupt_cb (interrupt_cb: TURLInterruptCB); + cdecl; external av__format; (* not implemented *) -//int url_poll(URLPollEntry *poll_table, int n, int timeout); - - function register_protocol (protocol: PURLProtocol): integer; - cdecl; external av__format; - - function init_put_byte(s: PByteIOContext; - buffer: pchar; - buffer_size: integer; write_flag: integer; - opaque: pointer; - read_packet: pointer; //int (*read_packet)(void *opaque, uint8_t *buf, int buf_size), - write_packet: pointer; //int (*write_packet)(void *opaque, uint8_t *buf, int buf_size), - seek: pointer //offset_t (*seek)(void *opaque, offset_t offset, int whence) - ): integer; - cdecl; external av__format; - procedure put_byte(s: PByteIOContext; b: integer); - cdecl; external av__format; - procedure put_buffer (s: PByteIOContext; const buf: pchar; size: integer); - cdecl; external av__format; - procedure put_le64(s: PByteIOContext; val: int64); - cdecl; external av__format; - procedure put_be64(s: PByteIOContext; val: int64); - cdecl; external av__format; - procedure put_le32(s: PByteIOContext; val: cardinal); - cdecl; external av__format; - procedure put_be32(s: PByteIOContext; val: cardinal); - cdecl; external av__format; - procedure put_be24(s: PByteIOContext; val: cardinal); - cdecl; external av__format; - procedure put_le16(s: PByteIOContext; val: cardinal); - cdecl; external av__format; - procedure put_be16(s: PByteIOContext; val: cardinal); - cdecl; external av__format; - procedure put_tag(s: PByteIOContext; const tag: pchar); - cdecl; external av__format; - - procedure put_strz(s: PByteIOContext; const buf: pchar); - cdecl; external av__format; - - function url_fseek(s: PByteIOContext; offset: int64; whence: integer): int64; - cdecl; external av__format; - procedure url_fskip(s: PByteIOContext; offset: int64); - cdecl; external av__format; - function url_ftell(s: PByteIOContext): int64; - cdecl; external av__format; - function url_fsize(s: PByteIOContext): int64; - cdecl; external av__format; - function url_feof(s: PByteIOContext): integer; - cdecl; external av__format; - function url_ferror(s: PByteIOContext): integer; - cdecl; external av__format; - - procedure put_flush_packet (s: PByteIOContext); - cdecl; external av__format; - function get_buffer(s: PByteIOContext; buf: pchar; size: integer): integer; - cdecl; external av__format; - function get_partial_buffer(s: PByteIOContext; buf: pchar; size: integer): integer; - cdecl; external av__format; - function get_byte(s: PByteIOContext): integer; - cdecl; external av__format; - function get_le32(s: PByteIOContext): cardinal; - cdecl; external av__format; - function get_le64(s: PByteIOContext): int64; - cdecl; external av__format; - function get_le16(s: PByteIOContext): cardinal; - cdecl; external av__format; - - function get_strz(s: PByteIOContext; buf: pchar; maxlen: integer): pchar; - cdecl; external av__format; - function get_be16(s: PByteIOContext): cardinal; - cdecl; external av__format; - function get_be24(s: PByteIOContext): cardinal; - cdecl; external av__format; - function get_be32(s: PByteIOContext): cardinal; - cdecl; external av__format; - function get_be64(s: PByteIOContext): int64; - cdecl; external av__format; - - function url_is_streamed(s: PByteIOContext): integer; - - function url_fdopen (s: PByteIOContext; h: PURLContext): integer; - cdecl; external av__format; - function url_setbufsize (s: PByteIOContext; buf_size: integer): integer; - cdecl; external av__format; - function url_fopen(s: PByteIOContext; const filename: pchar; flags: integer): integer; - cdecl; external av__format; - function url_fclose(s: PByteIOContext): integer; - cdecl; external av__format; - - function url_fileno(s: PByteIOContext): PURLContext; - cdecl; external av__format; - function url_fget_max_packet_size (s: PByteIOContext): integer; - cdecl; external av__format; - function url_open_buf(s: PByteIOContext; buf: pchar; buf_size: integer; flags: integer): integer; - cdecl; external av__format; - function url_close_buf(s: PByteIOContext): integer; - cdecl; external av__format; - - function url_open_dyn_buf(s: PByteIOContext): integer; - cdecl; external av__format; - function url_open_dyn_packet_buf(s: PByteIOContext; max_packet_size: integer): integer; - cdecl; external av__format; - function url_close_dyn_buf(s: PByteIOContext; pbuffer:PPointer): integer; - cdecl; external av__format; - - function get_checksum(s: PByteIOContext): cardinal; - cdecl; external av__format; - - procedure init_checksum (s: PByteIOContext; update_checksum: pointer; checksum: cardinal); - cdecl; external av__format; - - function udp_set_remote_url(h: PURLContext; const uri: pchar): integer; - cdecl; external av__format; - function udp_get_local_port(h: PURLContext): integer; - cdecl; external av__format; - function udp_get_file_handle(h: PURLContext): integer; - cdecl; external av__format; +function url_poll(poll_table: PURLPollEntry; n: integer; timeout: integer): integer; + cdecl; external av__format; + +{$IF LIBAVFORMAT_VERSION >= 52004000} // 52.4.0 +(** + * Pause and resume playing - only meaningful if using a network streaming + * protocol (e.g. MMS). + * @param pause 1 for pause, 0 for resume + *) +function av_url_read_pause(h: PURLContext; pause: integer): integer; +{$IFEND} + +{$IF LIBAVFORMAT_VERSION >= 52001000} // 52.1.0 +(** + * Seek to a given timestamp relative to some component stream. + * Only meaningful if using a network streaming protocol (e.g. MMS.). + * @param stream_index The stream index that the timestamp is relative to. + * If stream_index is (-1) the timestamp should be in AV_TIME_BASE + * units from the beginning of the presentation. + * If a stream_index >= 0 is used and the protocol does not support + * seeking based on component streams, the call will fail with ENOTSUP. + * @param timestamp timestamp in AVStream.time_base units + * or if there is no stream specified then in AV_TIME_BASE units. + * @param flags Optional combination of AVSEEK_FLAG_BACKWARD, AVSEEK_FLAG_BYTE + * and AVSEEK_FLAG_ANY. The protocol may silently ignore + * AVSEEK_FLAG_BACKWARD and AVSEEK_FLAG_ANY, but AVSEEK_FLAG_BYTE will + * fail with ENOTSUP if used and not supported. + * @return >= 0 on success + * @see AVInputFormat::read_seek + *) +function av_url_read_seek(h: PURLContext; + stream_index: integer; timestamp: int64; flags: integer): TOffset; + cdecl; external av__format; +{$IFEND} + +{ +var + first_protocol: PURLProtocol; external av__format; + url_interrupt_cb: PURLInterruptCB; external av__format; +} + +{$IF LIBAVFORMAT_VERSION >= 52002000} // 52.2.0 +function av_protocol_next(p: PURLProtocol): PURLProtocol; + cdecl; external av__format; +{$IFEND} + +function register_protocol (protocol: PURLProtocol): integer; + cdecl; external av__format; + +type + TReadWriteFunc = function (opaque: Pointer; buf: PChar; buf_size: integer): integer; cdecl; + TSeekFunc = function (opaque: Pointer; offset: TOffset; whence: integer): TOffset; cdecl; + +function init_put_byte(s: PByteIOContext; + buffer: pchar; + buffer_size: integer; write_flag: integer; + opaque: pointer; + read_packet: TReadWriteFunc; + write_packet: TReadWriteFunc; + seek: TSeekFunc): integer; + cdecl; external av__format; +{$IF LIBAVFORMAT_VERSION >= 52004000} // 52.4.0 +function av_alloc_put_byte( + buffer: PChar; + buffer_size: integer; + write_flag: integer; + opaque: Pointer; + read_packet: TReadWriteFunc, + write_packet: TReadWriteFunc, + seek: TSeekFunc): PByteIOContext; + cdecl; external av__format; +{$IFEND} + +procedure put_byte(s: PByteIOContext; b: integer); + cdecl; external av__format; +procedure put_buffer (s: PByteIOContext; {const} buf: pchar; size: integer); + cdecl; external av__format; +procedure put_le64(s: PByteIOContext; val: int64); + cdecl; external av__format; +procedure put_be64(s: PByteIOContext; val: int64); + cdecl; external av__format; +procedure put_le32(s: PByteIOContext; val: cardinal); + cdecl; external av__format; +procedure put_be32(s: PByteIOContext; val: cardinal); + cdecl; external av__format; +procedure put_le24(s: PByteIOContext; val: cardinal); + cdecl; external av__format; +procedure put_be24(s: PByteIOContext; val: cardinal); + cdecl; external av__format; +procedure put_le16(s: PByteIOContext; val: cardinal); + cdecl; external av__format; +procedure put_be16(s: PByteIOContext; val: cardinal); + cdecl; external av__format; +procedure put_tag(s: PByteIOContext; {const} tag: pchar); + cdecl; external av__format; + +procedure put_strz(s: PByteIOContext; {const} buf: pchar); + cdecl; external av__format; + +function url_fseek(s: PByteIOContext; offset: TOffset; whence: integer): TOffset; + cdecl; external av__format; +procedure url_fskip(s: PByteIOContext; offset: TOffset); + cdecl; external av__format; +function url_ftell(s: PByteIOContext): TOffset; + cdecl; external av__format; +function url_fsize(s: PByteIOContext): TOffset; + cdecl; external av__format; +function url_feof(s: PByteIOContext): integer; + cdecl; external av__format; +function url_ferror(s: PByteIOContext): integer; + cdecl; external av__format; + +{$IF LIBAVFORMAT_VERSION >= 52004000} // 52.4.0 +function av_url_read_fpause(h: PByteIOContext; pause: integer): integer; + cdecl; external av__format; +{$IFEND} +{$IF LIBAVFORMAT_VERSION >= 52001000} // 52.1.0 +function av_url_read_fseek(h: PByteIOContext; + stream_index: integer; timestamp: int64; flags: integer): TOffset; + cdecl; external av__format; +{$IFEND} + +const + URL_EOF = -1; +(** @note return URL_EOF (-1) if EOF *) +function url_fgetc(s: PByteIOContext): integer; + cdecl; external av__format; + +(** @warning currently size is limited *) +function url_fprintf(s: PByteIOContext; {const} fmt: PChar; args: array of const): integer; + cdecl; external av__format; + +(** @note unlike fgets, the EOL character is not returned and a whole + line is parsed. return NULL if first char read was EOF *) +function url_fgets(s: PByteIOContext; buf: PChar; buf_size: integer): PChar; + cdecl; external av__format; + +procedure put_flush_packet (s: PByteIOContext); + cdecl; external av__format; + +function get_buffer(s: PByteIOContext; buf: pchar; size: integer): integer; + cdecl; external av__format; +function get_partial_buffer(s: PByteIOContext; buf: pchar; size: integer): integer; + cdecl; external av__format; + +(** @note return 0 if EOF, so you cannot use it if EOF handling is + necessary *) +function get_byte(s: PByteIOContext): integer; + cdecl; external av__format; +function get_le24(s: PByteIOContext): cardinal; + cdecl; external av__format; +function get_le32(s: PByteIOContext): cardinal; + cdecl; external av__format; +function get_le64(s: PByteIOContext): uint64; + cdecl; external av__format; +function get_le16(s: PByteIOContext): cardinal; + cdecl; external av__format; + +function get_strz(s: PByteIOContext; buf: pchar; maxlen: integer): pchar; + cdecl; external av__format; +function get_be16(s: PByteIOContext): cardinal; + cdecl; external av__format; +function get_be24(s: PByteIOContext): cardinal; + cdecl; external av__format; +function get_be32(s: PByteIOContext): cardinal; + cdecl; external av__format; +function get_be64(s: PByteIOContext): uint64; + cdecl; external av__format; + +{$IF LIBAVFORMAT_VERSION >= 51017001} // 51.17.1 +function ff_get_v(bc: PByteIOContext): uint64; + cdecl; external av__format; +{$IFEND} + +function url_is_streamed(s: PByteIOContext): integer; inline; + +(** @note when opened as read/write, the buffers are only used for + writing *) +{$IF LIBAVFORMAT_VERSION >= 52000000} // 52.0.0 +function url_fdopen (var s: PByteIOContext; h: PURLContext): integer; +{$ELSE} +function url_fdopen (s: PByteIOContext; h: PURLContext): integer; +{$IFEND} + cdecl; external av__format; + +(** @warning must be called before any I/O *) +function url_setbufsize (s: PByteIOContext; buf_size: integer): integer; + cdecl; external av__format; + +{$IF LIBAVFORMAT_VERSION >= 51015000} // 51.15.0 +(** Reset the buffer for reading or writing. + * @note Will drop any data currently in the buffer without transmitting it. + * @param flags URL_RDONLY to set up the buffer for reading, or URL_WRONLY + * to set up the buffer for writing. *) +function url_resetbuf(s: PByteIOContext; flags: integer): integer; + cdecl; external av__format; +{$IFEND} + +(** @note when opened as read/write, the buffers are only used for + writing *) +{$IF LIBAVFORMAT_VERSION >= 52000000} // 52.0.0 +function url_fopen(var s: PByteIOContext; const filename: pchar; flags: integer): integer; +{$ELSE} +function url_fopen(s: PByteIOContext; const filename: pchar; flags: integer): integer; +{$IFEND} + cdecl; external av__format; +function url_fclose(s: PByteIOContext): integer; + cdecl; external av__format; +function url_fileno(s: PByteIOContext): PURLContext; + cdecl; external av__format; + +(** + * Return the maximum packet size associated to packetized buffered file + * handle. If the file is not packetized (stream like http or file on + * disk), then 0 is returned. + * + * @param s buffered file handle + * @return maximum packet size in bytes + *) +function url_fget_max_packet_size (s: PByteIOContext): integer; + cdecl; external av__format; + +{$IF LIBAVFORMAT_VERSION >= 52000000} // 52.0.0 +function url_open_buf(var s: PByteIOContext; buf: pchar; buf_size: integer; flags: integer): integer; +{$ELSE} +function url_open_buf(s: PByteIOContext; buf: pchar; buf_size: integer; flags: integer): integer; +{$IFEND} + cdecl; external av__format; + +(** return the written or read size *) +function url_close_buf(s: PByteIOContext): integer; + cdecl; external av__format; + +(** + * Open a write only memory stream. + * + * @param s new IO context + * @return zero if no error. + *) +{$IF LIBAVFORMAT_VERSION >= 52000000} // 52.0.0 +function url_open_dyn_buf(var s: PByteIOContext): integer; +{$ELSE} +function url_open_dyn_buf(s: PByteIOContext): integer; +{$IFEND} + cdecl; external av__format; + +(** + * Open a write only packetized memory stream with a maximum packet + * size of 'max_packet_size'. The stream is stored in a memory buffer + * with a big endian 4 byte header giving the packet size in bytes. + * + * @param s new IO context + * @param max_packet_size maximum packet size (must be > 0) + * @return zero if no error. + *) +{$IF LIBAVFORMAT_VERSION >= 52000000} // 52.0.0 +function url_open_dyn_packet_buf(var s: PByteIOContext; max_packet_size: integer): integer; +{$ELSE} +function url_open_dyn_packet_buf(s: PByteIOContext; max_packet_size: integer): integer; +{$IFEND} + cdecl; external av__format; + +(** + * Return the written size and a pointer to the buffer. The buffer + * must be freed with av_free(). + * @param s IO context + * @param pbuffer pointer to a byte buffer + * @return the length of the byte buffer + *) +function url_close_dyn_buf(s: PByteIOContext; pbuffer:PPointer): integer; + cdecl; external av__format; + +{$IF LIBAVFORMAT_VERSION >= 51017001} // 51.17.1 +function ff_crc04C11DB7_update(checksum: longword; {const} buf: PChar; len: cardinal): longword; + cdecl; external av__format; +{$IFEND} +function get_checksum(s: PByteIOContext): cardinal; + cdecl; external av__format; +procedure init_checksum (s: PByteIOContext; update_checksum: pointer; checksum: cardinal); + cdecl; external av__format; + +(* udp.c *) +function udp_set_remote_url(h: PURLContext; {const} uri: pchar): integer; + cdecl; external av__format; +function udp_get_local_port(h: PURLContext): integer; + cdecl; external av__format; +function udp_get_file_handle(h: PURLContext): integer; + cdecl; external av__format; implementation -- cgit v1.2.3 From f49d49ac6af3f39a00e19ce314636520e1ae1faf Mon Sep 17 00:00:00 2001 From: tobigun Date: Thu, 7 Feb 2008 13:22:40 +0000 Subject: compatibility with the current svn-version git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@837 b956fd51-792f-4845-bead-9b4dfca2ff2c --- Game/Code/lib/ffmpeg/avio.pas | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'Game/Code/lib/ffmpeg/avio.pas') diff --git a/Game/Code/lib/ffmpeg/avio.pas b/Game/Code/lib/ffmpeg/avio.pas index d316d2b2..a4d7af12 100644 --- a/Game/Code/lib/ffmpeg/avio.pas +++ b/Game/Code/lib/ffmpeg/avio.pas @@ -23,7 +23,9 @@ For Mac OS X, some modifications were made by The Creative CAT, denoted as CAT in the source codes *) -// Revision: 11295 +(* + * Revision: 11305, Sat Dec 22 16:18:07 2007 UTC + *) unit avio; @@ -198,6 +200,7 @@ function url_poll(poll_table: PURLPollEntry; n: integer; timeout: integer): inte * @param pause 1 for pause, 0 for resume *) function av_url_read_pause(h: PURLContext; pause: integer): integer; + cdecl; external av__format; {$IFEND} {$IF LIBAVFORMAT_VERSION >= 52001000} // 52.1.0 @@ -255,8 +258,8 @@ function av_alloc_put_byte( buffer_size: integer; write_flag: integer; opaque: Pointer; - read_packet: TReadWriteFunc, - write_packet: TReadWriteFunc, + read_packet: TReadWriteFunc; + write_packet: TReadWriteFunc; seek: TSeekFunc): PByteIOContext; cdecl; external av__format; {$IFEND} -- cgit v1.2.3