| @@ -89,13 +89,6 @@ static int default_interrupt_cb(void); | |||||
| int (*url_interrupt_cb)(void) = default_interrupt_cb; | int (*url_interrupt_cb)(void) = default_interrupt_cb; | ||||
| #endif | #endif | ||||
| #if FF_API_OLD_AVIO | |||||
| URLProtocol *av_protocol_next(URLProtocol *p) | |||||
| { | |||||
| return ffurl_protocol_next(p); | |||||
| } | |||||
| #endif | |||||
| const char *avio_enum_protocols(void **opaque, int output) | const char *avio_enum_protocols(void **opaque, int output) | ||||
| { | { | ||||
| URLProtocol **p = opaque; | URLProtocol **p = opaque; | ||||
| @@ -168,9 +161,7 @@ static int url_alloc_for_protocol (URLContext **puc, struct URLProtocol *up, | |||||
| int ffurl_connect(URLContext* uc, AVDictionary **options) | int ffurl_connect(URLContext* uc, AVDictionary **options) | ||||
| { | { | ||||
| int err = | int err = | ||||
| #if !FF_API_OLD_AVIO | |||||
| uc->prot->url_open2 ? uc->prot->url_open2(uc, uc->filename, uc->flags, options) : | uc->prot->url_open2 ? uc->prot->url_open2(uc, uc->filename, uc->flags, options) : | ||||
| #endif | |||||
| uc->prot->url_open(uc, uc->filename, uc->flags); | uc->prot->url_open(uc, uc->filename, uc->flags); | ||||
| if (err) | if (err) | ||||
| return err; | return err; | ||||
| @@ -183,81 +174,6 @@ int ffurl_connect(URLContext* uc, AVDictionary **options) | |||||
| return 0; | return 0; | ||||
| } | } | ||||
| #if FF_API_OLD_AVIO | |||||
| int url_open_protocol (URLContext **puc, struct URLProtocol *up, | |||||
| const char *filename, int flags) | |||||
| { | |||||
| int ret; | |||||
| ret = url_alloc_for_protocol(puc, up, filename, flags, NULL); | |||||
| if (ret) | |||||
| goto fail; | |||||
| ret = ffurl_connect(*puc, NULL); | |||||
| if (!ret) | |||||
| return 0; | |||||
| fail: | |||||
| ffurl_close(*puc); | |||||
| *puc = NULL; | |||||
| return ret; | |||||
| } | |||||
| int url_alloc(URLContext **puc, const char *filename, int flags) | |||||
| { | |||||
| return ffurl_alloc(puc, filename, flags, NULL); | |||||
| } | |||||
| int url_connect(URLContext* uc) | |||||
| { | |||||
| return ffurl_connect(uc, NULL); | |||||
| } | |||||
| int url_open(URLContext **puc, const char *filename, int flags) | |||||
| { | |||||
| return ffurl_open(puc, filename, flags, NULL, NULL); | |||||
| } | |||||
| int url_read(URLContext *h, unsigned char *buf, int size) | |||||
| { | |||||
| return ffurl_read(h, buf, size); | |||||
| } | |||||
| int url_read_complete(URLContext *h, unsigned char *buf, int size) | |||||
| { | |||||
| return ffurl_read_complete(h, buf, size); | |||||
| } | |||||
| int url_write(URLContext *h, const unsigned char *buf, int size) | |||||
| { | |||||
| return ffurl_write(h, buf, size); | |||||
| } | |||||
| int64_t url_seek(URLContext *h, int64_t pos, int whence) | |||||
| { | |||||
| return ffurl_seek(h, pos, whence); | |||||
| } | |||||
| int url_close(URLContext *h) | |||||
| { | |||||
| return ffurl_close(h); | |||||
| } | |||||
| int64_t url_filesize(URLContext *h) | |||||
| { | |||||
| return ffurl_size(h); | |||||
| } | |||||
| int url_get_file_handle(URLContext *h) | |||||
| { | |||||
| return ffurl_get_file_handle(h); | |||||
| } | |||||
| int url_get_max_packet_size(URLContext *h) | |||||
| { | |||||
| return h->max_packet_size; | |||||
| } | |||||
| void url_get_filename(URLContext *h, char *buf, int buf_size) | |||||
| { | |||||
| av_strlcpy(buf, h->filename, buf_size); | |||||
| } | |||||
| void url_set_interrupt_cb(URLInterruptCB *interrupt_cb) | |||||
| { | |||||
| avio_set_interrupt_cb(interrupt_cb); | |||||
| } | |||||
| int av_register_protocol2(URLProtocol *protocol, int size) | |||||
| { | |||||
| return ffurl_register_protocol(protocol, size); | |||||
| } | |||||
| #endif | |||||
| #define URL_SCHEME_CHARS \ | #define URL_SCHEME_CHARS \ | ||||
| "abcdefghijklmnopqrstuvwxyz" \ | "abcdefghijklmnopqrstuvwxyz" \ | ||||
| "ABCDEFGHIJKLMNOPQRSTUVWXYZ" \ | "ABCDEFGHIJKLMNOPQRSTUVWXYZ" \ | ||||
| @@ -393,17 +309,6 @@ int ffurl_close(URLContext *h) | |||||
| return ret; | return ret; | ||||
| } | } | ||||
| #if FF_API_OLD_AVIO | |||||
| int url_exist(const char *filename) | |||||
| { | |||||
| URLContext *h; | |||||
| if (ffurl_open(&h, filename, AVIO_FLAG_READ, NULL, NULL) < 0) | |||||
| return 0; | |||||
| ffurl_close(h); | |||||
| return 1; | |||||
| } | |||||
| #endif | |||||
| int avio_check(const char *url, int flags) | int avio_check(const char *url, int flags) | ||||
| { | { | ||||
| URLContext *h; | URLContext *h; | ||||
| @@ -471,19 +376,3 @@ int ff_check_interrupt(AVIOInterruptCB *cb) | |||||
| #endif | #endif | ||||
| } | } | ||||
| #if FF_API_OLD_AVIO | |||||
| int av_url_read_pause(URLContext *h, int pause) | |||||
| { | |||||
| if (!h->prot->url_read_pause) | |||||
| return AVERROR(ENOSYS); | |||||
| return h->prot->url_read_pause(h, pause); | |||||
| } | |||||
| int64_t av_url_read_seek(URLContext *h, | |||||
| int stream_index, int64_t timestamp, int flags) | |||||
| { | |||||
| if (!h->prot->url_read_seek) | |||||
| return AVERROR(ENOSYS); | |||||
| return h->prot->url_read_seek(h, stream_index, timestamp, flags); | |||||
| } | |||||
| #endif | |||||
| @@ -66,7 +66,6 @@ typedef struct { | |||||
| * function pointers specified in avio_alloc_context() | * function pointers specified in avio_alloc_context() | ||||
| */ | */ | ||||
| typedef struct { | typedef struct { | ||||
| #if !FF_API_OLD_AVIO | |||||
| /** | /** | ||||
| * A class for private options. | * A class for private options. | ||||
| * | * | ||||
| @@ -80,7 +79,6 @@ typedef struct { | |||||
| * to any av_opt_* functions in that case. | * to any av_opt_* functions in that case. | ||||
| */ | */ | ||||
| AVClass *av_class; | AVClass *av_class; | ||||
| #endif | |||||
| unsigned char *buffer; /**< Start of the buffer. */ | unsigned char *buffer; /**< Start of the buffer. */ | ||||
| int buffer_size; /**< Maximum buffer size */ | int buffer_size; /**< Maximum buffer size */ | ||||
| unsigned char *buf_ptr; /**< Current position in the buffer */ | unsigned char *buf_ptr; /**< Current position in the buffer */ | ||||
| @@ -97,9 +95,6 @@ typedef struct { | |||||
| int must_flush; /**< true if the next seek should flush */ | int must_flush; /**< true if the next seek should flush */ | ||||
| int eof_reached; /**< true if eof reached */ | int eof_reached; /**< true if eof reached */ | ||||
| int write_flag; /**< true if open for writing */ | int write_flag; /**< true if open for writing */ | ||||
| #if FF_API_OLD_AVIO | |||||
| attribute_deprecated int is_streamed; | |||||
| #endif | |||||
| int max_packet_size; | int max_packet_size; | ||||
| unsigned long checksum; | unsigned long checksum; | ||||
| unsigned char *checksum_ptr; | unsigned char *checksum_ptr; | ||||
| @@ -124,262 +119,6 @@ typedef struct { | |||||
| /* unbuffered I/O */ | /* unbuffered I/O */ | ||||
| #if FF_API_OLD_AVIO | |||||
| /** | |||||
| * 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*. | |||||
| * @deprecated This struct will be made private | |||||
| */ | |||||
| typedef struct URLContext { | |||||
| const AVClass *av_class; ///< information for av_log(). Set by url_open(). | |||||
| struct URLProtocol *prot; | |||||
| int flags; | |||||
| int is_streamed; /**< true if streamed (no seek possible), default = false */ | |||||
| int max_packet_size; /**< if non zero, the stream is packetized with this max packet size */ | |||||
| void *priv_data; | |||||
| char *filename; /**< specified URL */ | |||||
| int is_connected; | |||||
| AVIOInterruptCB interrupt_callback; | |||||
| } URLContext; | |||||
| #define URL_PROTOCOL_FLAG_NESTED_SCHEME 1 /*< The protocol name can be the first part of a nested protocol scheme */ | |||||
| #define URL_PROTOCOL_FLAG_NETWORK 2 /*< The protocol uses network */ | |||||
| /** | |||||
| * @deprecated This struct is to be made private. Use the higher-level | |||||
| * AVIOContext-based API instead. | |||||
| */ | |||||
| typedef struct URLProtocol { | |||||
| const char *name; | |||||
| int (*url_open)(URLContext *h, const char *url, int flags); | |||||
| int (*url_read)(URLContext *h, unsigned char *buf, int size); | |||||
| int (*url_write)(URLContext *h, const unsigned char *buf, int size); | |||||
| int64_t (*url_seek)(URLContext *h, int64_t pos, int whence); | |||||
| int (*url_close)(URLContext *h); | |||||
| struct URLProtocol *next; | |||||
| int (*url_read_pause)(URLContext *h, int pause); | |||||
| int64_t (*url_read_seek)(URLContext *h, int stream_index, | |||||
| int64_t timestamp, int flags); | |||||
| int (*url_get_file_handle)(URLContext *h); | |||||
| int priv_data_size; | |||||
| const AVClass *priv_data_class; | |||||
| int flags; | |||||
| int (*url_check)(URLContext *h, int mask); | |||||
| } URLProtocol; | |||||
| typedef struct URLPollEntry { | |||||
| URLContext *handle; | |||||
| int events; | |||||
| int revents; | |||||
| } URLPollEntry; | |||||
| /* not implemented */ | |||||
| attribute_deprecated int url_poll(URLPollEntry *poll_table, int n, int timeout); | |||||
| /** | |||||
| * @name URL open modes | |||||
| * The flags argument to url_open and cosins must be one of the following | |||||
| * constants, optionally ORed with other flags. | |||||
| * @{ | |||||
| */ | |||||
| #define URL_RDONLY 1 /**< read-only */ | |||||
| #define URL_WRONLY 2 /**< write-only */ | |||||
| #define URL_RDWR (URL_RDONLY|URL_WRONLY) /**< read-write */ | |||||
| /** | |||||
| * @} | |||||
| */ | |||||
| /** | |||||
| * Use non-blocking mode. | |||||
| * If this flag is set, operations on the context will return | |||||
| * AVERROR(EAGAIN) if they can not be performed immediately. | |||||
| * If this flag is not set, operations on the context will never return | |||||
| * AVERROR(EAGAIN). | |||||
| * Note that this flag does not affect the opening/connecting of the | |||||
| * context. Connecting a protocol will always block if necessary (e.g. on | |||||
| * network protocols) but never hang (e.g. on busy devices). | |||||
| * Warning: non-blocking protocols is work-in-progress; this flag may be | |||||
| * silently ignored. | |||||
| */ | |||||
| #define URL_FLAG_NONBLOCK 8 | |||||
| typedef int URLInterruptCB(void); | |||||
| extern URLInterruptCB *url_interrupt_cb; | |||||
| /** | |||||
| * @defgroup old_url_funcs Old url_* functions | |||||
| * The following functions are deprecated. Use the buffered API based on #AVIOContext instead. | |||||
| * @{ | |||||
| * @ingroup lavf_io | |||||
| */ | |||||
| attribute_deprecated int url_open_protocol (URLContext **puc, struct URLProtocol *up, | |||||
| const char *url, int flags); | |||||
| attribute_deprecated int url_alloc(URLContext **h, const char *url, int flags); | |||||
| attribute_deprecated int url_connect(URLContext *h); | |||||
| attribute_deprecated int url_open(URLContext **h, const char *url, int flags); | |||||
| attribute_deprecated int url_read(URLContext *h, unsigned char *buf, int size); | |||||
| attribute_deprecated int url_read_complete(URLContext *h, unsigned char *buf, int size); | |||||
| attribute_deprecated int url_write(URLContext *h, const unsigned char *buf, int size); | |||||
| attribute_deprecated int64_t url_seek(URLContext *h, int64_t pos, int whence); | |||||
| attribute_deprecated int url_close(URLContext *h); | |||||
| attribute_deprecated int64_t url_filesize(URLContext *h); | |||||
| attribute_deprecated int url_get_file_handle(URLContext *h); | |||||
| attribute_deprecated int url_get_max_packet_size(URLContext *h); | |||||
| attribute_deprecated void url_get_filename(URLContext *h, char *buf, int buf_size); | |||||
| attribute_deprecated int av_url_read_pause(URLContext *h, int pause); | |||||
| attribute_deprecated int64_t av_url_read_seek(URLContext *h, int stream_index, | |||||
| int64_t timestamp, int flags); | |||||
| attribute_deprecated void url_set_interrupt_cb(int (*interrupt_cb)(void)); | |||||
| /** | |||||
| * If protocol is NULL, returns the first registered protocol, | |||||
| * if protocol is non-NULL, returns the next registered protocol after protocol, | |||||
| * or NULL if protocol is the last one. | |||||
| */ | |||||
| attribute_deprecated URLProtocol *av_protocol_next(URLProtocol *p); | |||||
| /** | |||||
| * Register the URLProtocol protocol. | |||||
| * | |||||
| * @param size the size of the URLProtocol struct referenced | |||||
| */ | |||||
| attribute_deprecated int av_register_protocol2(URLProtocol *protocol, int size); | |||||
| /** | |||||
| * @} | |||||
| */ | |||||
| typedef attribute_deprecated AVIOContext ByteIOContext; | |||||
| attribute_deprecated int init_put_byte(AVIOContext *s, | |||||
| unsigned char *buffer, | |||||
| int buffer_size, | |||||
| int write_flag, | |||||
| void *opaque, | |||||
| int (*read_packet)(void *opaque, uint8_t *buf, int buf_size), | |||||
| int (*write_packet)(void *opaque, uint8_t *buf, int buf_size), | |||||
| int64_t (*seek)(void *opaque, int64_t offset, int whence)); | |||||
| attribute_deprecated AVIOContext *av_alloc_put_byte( | |||||
| unsigned char *buffer, | |||||
| int buffer_size, | |||||
| int write_flag, | |||||
| void *opaque, | |||||
| int (*read_packet)(void *opaque, uint8_t *buf, int buf_size), | |||||
| int (*write_packet)(void *opaque, uint8_t *buf, int buf_size), | |||||
| int64_t (*seek)(void *opaque, int64_t offset, int whence)); | |||||
| /** | |||||
| * @defgroup old_avio_funcs Old put_/get_*() functions | |||||
| * The following functions are deprecated. Use the "avio_"-prefixed functions instead. | |||||
| * @{ | |||||
| * @ingroup lavf_io | |||||
| */ | |||||
| attribute_deprecated int get_buffer(AVIOContext *s, unsigned char *buf, int size); | |||||
| attribute_deprecated int get_partial_buffer(AVIOContext *s, unsigned char *buf, int size); | |||||
| attribute_deprecated int get_byte(AVIOContext *s); | |||||
| attribute_deprecated unsigned int get_le16(AVIOContext *s); | |||||
| attribute_deprecated unsigned int get_le24(AVIOContext *s); | |||||
| attribute_deprecated unsigned int get_le32(AVIOContext *s); | |||||
| attribute_deprecated uint64_t get_le64(AVIOContext *s); | |||||
| attribute_deprecated unsigned int get_be16(AVIOContext *s); | |||||
| attribute_deprecated unsigned int get_be24(AVIOContext *s); | |||||
| attribute_deprecated unsigned int get_be32(AVIOContext *s); | |||||
| attribute_deprecated uint64_t get_be64(AVIOContext *s); | |||||
| attribute_deprecated void put_byte(AVIOContext *s, int b); | |||||
| attribute_deprecated void put_nbyte(AVIOContext *s, int b, int count); | |||||
| attribute_deprecated void put_buffer(AVIOContext *s, const unsigned char *buf, int size); | |||||
| attribute_deprecated void put_le64(AVIOContext *s, uint64_t val); | |||||
| attribute_deprecated void put_be64(AVIOContext *s, uint64_t val); | |||||
| attribute_deprecated void put_le32(AVIOContext *s, unsigned int val); | |||||
| attribute_deprecated void put_be32(AVIOContext *s, unsigned int val); | |||||
| attribute_deprecated void put_le24(AVIOContext *s, unsigned int val); | |||||
| attribute_deprecated void put_be24(AVIOContext *s, unsigned int val); | |||||
| attribute_deprecated void put_le16(AVIOContext *s, unsigned int val); | |||||
| attribute_deprecated void put_be16(AVIOContext *s, unsigned int val); | |||||
| attribute_deprecated void put_tag(AVIOContext *s, const char *tag); | |||||
| /** | |||||
| * @} | |||||
| */ | |||||
| attribute_deprecated int av_url_read_fpause(AVIOContext *h, int pause); | |||||
| attribute_deprecated int64_t av_url_read_fseek (AVIOContext *h, int stream_index, | |||||
| int64_t timestamp, int flags); | |||||
| /** | |||||
| * @defgroup old_url_f_funcs Old url_f* functions | |||||
| * The following functions are deprecated, use the "avio_"-prefixed functions instead. | |||||
| * @{ | |||||
| * @ingroup lavf_io | |||||
| */ | |||||
| attribute_deprecated int url_fopen( AVIOContext **s, const char *url, int flags); | |||||
| attribute_deprecated int url_fclose(AVIOContext *s); | |||||
| attribute_deprecated int64_t url_fseek(AVIOContext *s, int64_t offset, int whence); | |||||
| attribute_deprecated int url_fskip(AVIOContext *s, int64_t offset); | |||||
| attribute_deprecated int64_t url_ftell(AVIOContext *s); | |||||
| attribute_deprecated int64_t url_fsize(AVIOContext *s); | |||||
| #define URL_EOF (-1) | |||||
| attribute_deprecated int url_fgetc(AVIOContext *s); | |||||
| attribute_deprecated int url_setbufsize(AVIOContext *s, int buf_size); | |||||
| attribute_deprecated int url_fprintf(AVIOContext *s, const char *fmt, ...) av_printf_format(2, 3); | |||||
| attribute_deprecated void put_flush_packet(AVIOContext *s); | |||||
| attribute_deprecated int url_open_dyn_buf(AVIOContext **s); | |||||
| attribute_deprecated int url_open_dyn_packet_buf(AVIOContext **s, int max_packet_size); | |||||
| attribute_deprecated int url_close_dyn_buf(AVIOContext *s, uint8_t **pbuffer); | |||||
| attribute_deprecated int url_fdopen(AVIOContext **s, URLContext *h); | |||||
| /** | |||||
| * @} | |||||
| */ | |||||
| /** | |||||
| * @deprecated use AVIOContext.eof_reached | |||||
| */ | |||||
| attribute_deprecated int url_feof(AVIOContext *s); | |||||
| attribute_deprecated int url_ferror(AVIOContext *s); | |||||
| attribute_deprecated int udp_set_remote_url(URLContext *h, const char *uri); | |||||
| attribute_deprecated int udp_get_local_port(URLContext *h); | |||||
| attribute_deprecated void init_checksum(AVIOContext *s, | |||||
| unsigned long (*update_checksum)(unsigned long c, const uint8_t *p, unsigned int len), | |||||
| unsigned long checksum); | |||||
| attribute_deprecated unsigned long get_checksum(AVIOContext *s); | |||||
| attribute_deprecated void put_strz(AVIOContext *s, const char *buf); | |||||
| /** @note unlike fgets, the EOL character is not returned and a whole | |||||
| line is parsed. return NULL if first char read was EOF */ | |||||
| attribute_deprecated char *url_fgets(AVIOContext *s, char *buf, int buf_size); | |||||
| /** | |||||
| * @deprecated use avio_get_str instead | |||||
| */ | |||||
| attribute_deprecated char *get_strz(AVIOContext *s, char *buf, int maxlen); | |||||
| /** | |||||
| * @deprecated Use AVIOContext.seekable field directly. | |||||
| */ | |||||
| attribute_deprecated static inline int url_is_streamed(AVIOContext *s) | |||||
| { | |||||
| return !s->seekable; | |||||
| } | |||||
| attribute_deprecated URLContext *url_fileno(AVIOContext *s); | |||||
| /** | |||||
| * @deprecated use AVIOContext.max_packet_size directly. | |||||
| */ | |||||
| attribute_deprecated int url_fget_max_packet_size(AVIOContext *s); | |||||
| attribute_deprecated int url_open_buf(AVIOContext **s, uint8_t *buf, int buf_size, int flags); | |||||
| /** return the written or read size */ | |||||
| attribute_deprecated int url_close_buf(AVIOContext *s); | |||||
| /** | |||||
| * Return a non-zero value if the resource indicated by url | |||||
| * exists, 0 otherwise. | |||||
| * @deprecated Use avio_check instead. | |||||
| */ | |||||
| attribute_deprecated int url_exist(const char *url); | |||||
| #endif // FF_API_OLD_AVIO | |||||
| /** | /** | ||||
| * Return AVIO_FLAG_* access flags corresponding to the access permissions | * Return AVIO_FLAG_* access flags corresponding to the access permissions | ||||
| * of the resource in url, or a negative value corresponding to an | * of the resource in url, or a negative value corresponding to an | ||||
| @@ -40,7 +40,6 @@ | |||||
| */ | */ | ||||
| #define SHORT_SEEK_THRESHOLD 4096 | #define SHORT_SEEK_THRESHOLD 4096 | ||||
| #if !FF_API_OLD_AVIO | |||||
| static void *ffio_url_child_next(void *obj, void *prev) | static void *ffio_url_child_next(void *obj, void *prev) | ||||
| { | { | ||||
| AVIOContext *s = obj; | AVIOContext *s = obj; | ||||
| @@ -64,7 +63,7 @@ const AVClass ffio_url_class = { | |||||
| .child_next = ffio_url_child_next, | .child_next = ffio_url_child_next, | ||||
| .child_class_next = ffio_url_child_class_next, | .child_class_next = ffio_url_child_class_next, | ||||
| }; | }; | ||||
| #endif | |||||
| static void fill_buffer(AVIOContext *s); | static void fill_buffer(AVIOContext *s); | ||||
| static int url_resetbuf(AVIOContext *s, int flags); | static int url_resetbuf(AVIOContext *s, int flags); | ||||
| @@ -89,9 +88,6 @@ int ffio_init_context(AVIOContext *s, | |||||
| s->must_flush = 0; | s->must_flush = 0; | ||||
| s->eof_reached = 0; | s->eof_reached = 0; | ||||
| s->error = 0; | s->error = 0; | ||||
| #if FF_API_OLD_AVIO | |||||
| s->is_streamed = 0; | |||||
| #endif | |||||
| s->seekable = AVIO_SEEKABLE_NORMAL; | s->seekable = AVIO_SEEKABLE_NORMAL; | ||||
| s->max_packet_size = 0; | s->max_packet_size = 0; | ||||
| s->update_checksum= NULL; | s->update_checksum= NULL; | ||||
| @@ -104,33 +100,6 @@ int ffio_init_context(AVIOContext *s, | |||||
| return 0; | return 0; | ||||
| } | } | ||||
| #if FF_API_OLD_AVIO | |||||
| int init_put_byte(AVIOContext *s, | |||||
| unsigned char *buffer, | |||||
| int buffer_size, | |||||
| int write_flag, | |||||
| void *opaque, | |||||
| int (*read_packet)(void *opaque, uint8_t *buf, int buf_size), | |||||
| int (*write_packet)(void *opaque, uint8_t *buf, int buf_size), | |||||
| int64_t (*seek)(void *opaque, int64_t offset, int whence)) | |||||
| { | |||||
| return ffio_init_context(s, buffer, buffer_size, write_flag, opaque, | |||||
| read_packet, write_packet, seek); | |||||
| } | |||||
| AVIOContext *av_alloc_put_byte( | |||||
| unsigned char *buffer, | |||||
| int buffer_size, | |||||
| int write_flag, | |||||
| void *opaque, | |||||
| int (*read_packet)(void *opaque, uint8_t *buf, int buf_size), | |||||
| int (*write_packet)(void *opaque, uint8_t *buf, int buf_size), | |||||
| int64_t (*seek)(void *opaque, int64_t offset, int whence)) | |||||
| { | |||||
| return avio_alloc_context(buffer, buffer_size, write_flag, opaque, | |||||
| read_packet, write_packet, seek); | |||||
| } | |||||
| #endif | |||||
| AVIOContext *avio_alloc_context( | AVIOContext *avio_alloc_context( | ||||
| unsigned char *buffer, | unsigned char *buffer, | ||||
| int buffer_size, | int buffer_size, | ||||
| @@ -265,19 +234,6 @@ int64_t avio_seek(AVIOContext *s, int64_t offset, int whence) | |||||
| return offset; | return offset; | ||||
| } | } | ||||
| #if FF_API_OLD_AVIO | |||||
| int url_fskip(AVIOContext *s, int64_t offset) | |||||
| { | |||||
| int64_t ret = avio_seek(s, offset, SEEK_CUR); | |||||
| return ret < 0 ? ret : 0; | |||||
| } | |||||
| int64_t url_ftell(AVIOContext *s) | |||||
| { | |||||
| return avio_seek(s, 0, SEEK_CUR); | |||||
| } | |||||
| #endif | |||||
| int64_t avio_size(AVIOContext *s) | int64_t avio_size(AVIOContext *s) | ||||
| { | { | ||||
| int64_t size; | int64_t size; | ||||
| @@ -297,22 +253,6 @@ int64_t avio_size(AVIOContext *s) | |||||
| return size; | return size; | ||||
| } | } | ||||
| #if FF_API_OLD_AVIO | |||||
| int url_feof(AVIOContext *s) | |||||
| { | |||||
| if(!s) | |||||
| return 0; | |||||
| return s->eof_reached; | |||||
| } | |||||
| int url_ferror(AVIOContext *s) | |||||
| { | |||||
| if(!s) | |||||
| return 0; | |||||
| return s->error; | |||||
| } | |||||
| #endif | |||||
| void avio_wl32(AVIOContext *s, unsigned int val) | void avio_wl32(AVIOContext *s, unsigned int val) | ||||
| { | { | ||||
| avio_w8(s, val); | avio_w8(s, val); | ||||
| @@ -329,143 +269,6 @@ void avio_wb32(AVIOContext *s, unsigned int val) | |||||
| avio_w8(s, val); | avio_w8(s, val); | ||||
| } | } | ||||
| #if FF_API_OLD_AVIO | |||||
| void put_strz(AVIOContext *s, const char *str) | |||||
| { | |||||
| avio_put_str(s, str); | |||||
| } | |||||
| #define GET(name, type) \ | |||||
| type get_be ##name(AVIOContext *s) \ | |||||
| {\ | |||||
| return avio_rb ##name(s);\ | |||||
| }\ | |||||
| type get_le ##name(AVIOContext *s) \ | |||||
| {\ | |||||
| return avio_rl ##name(s);\ | |||||
| } | |||||
| GET(16, unsigned int) | |||||
| GET(24, unsigned int) | |||||
| GET(32, unsigned int) | |||||
| GET(64, uint64_t) | |||||
| #undef GET | |||||
| #define PUT(name, type ) \ | |||||
| void put_le ##name(AVIOContext *s, type val)\ | |||||
| {\ | |||||
| avio_wl ##name(s, val);\ | |||||
| }\ | |||||
| void put_be ##name(AVIOContext *s, type val)\ | |||||
| {\ | |||||
| avio_wb ##name(s, val);\ | |||||
| } | |||||
| PUT(16, unsigned int) | |||||
| PUT(24, unsigned int) | |||||
| PUT(32, unsigned int) | |||||
| PUT(64, uint64_t) | |||||
| #undef PUT | |||||
| int get_byte(AVIOContext *s) | |||||
| { | |||||
| return avio_r8(s); | |||||
| } | |||||
| int get_buffer(AVIOContext *s, unsigned char *buf, int size) | |||||
| { | |||||
| return avio_read(s, buf, size); | |||||
| } | |||||
| int get_partial_buffer(AVIOContext *s, unsigned char *buf, int size) | |||||
| { | |||||
| return ffio_read_partial(s, buf, size); | |||||
| } | |||||
| void put_byte(AVIOContext *s, int val) | |||||
| { | |||||
| avio_w8(s, val); | |||||
| } | |||||
| void put_buffer(AVIOContext *s, const unsigned char *buf, int size) | |||||
| { | |||||
| avio_write(s, buf, size); | |||||
| } | |||||
| void put_nbyte(AVIOContext *s, int b, int count) | |||||
| { | |||||
| ffio_fill(s, b, count); | |||||
| } | |||||
| int url_fopen(AVIOContext **s, const char *filename, int flags) | |||||
| { | |||||
| return avio_open(s, filename, flags); | |||||
| } | |||||
| int url_fclose(AVIOContext *s) | |||||
| { | |||||
| return avio_close(s); | |||||
| } | |||||
| int64_t url_fseek(AVIOContext *s, int64_t offset, int whence) | |||||
| { | |||||
| return avio_seek(s, offset, whence); | |||||
| } | |||||
| int64_t url_fsize(AVIOContext *s) | |||||
| { | |||||
| return avio_size(s); | |||||
| } | |||||
| int url_setbufsize(AVIOContext *s, int buf_size) | |||||
| { | |||||
| return ffio_set_buf_size(s, buf_size); | |||||
| } | |||||
| int url_fprintf(AVIOContext *s, const char *fmt, ...) | |||||
| { | |||||
| va_list ap; | |||||
| char buf[4096]; | |||||
| int ret; | |||||
| va_start(ap, fmt); | |||||
| ret = vsnprintf(buf, sizeof(buf), fmt, ap); | |||||
| va_end(ap); | |||||
| avio_write(s, buf, strlen(buf)); | |||||
| return ret; | |||||
| } | |||||
| void put_flush_packet(AVIOContext *s) | |||||
| { | |||||
| avio_flush(s); | |||||
| } | |||||
| int av_url_read_fpause(AVIOContext *s, int pause) | |||||
| { | |||||
| return avio_pause(s, pause); | |||||
| } | |||||
| int64_t av_url_read_fseek(AVIOContext *s, int stream_index, | |||||
| int64_t timestamp, int flags) | |||||
| { | |||||
| return avio_seek_time(s, stream_index, timestamp, flags); | |||||
| } | |||||
| void init_checksum(AVIOContext *s, | |||||
| unsigned long (*update_checksum)(unsigned long c, const uint8_t *p, unsigned int len), | |||||
| unsigned long checksum) | |||||
| { | |||||
| ffio_init_checksum(s, update_checksum, checksum); | |||||
| } | |||||
| unsigned long get_checksum(AVIOContext *s) | |||||
| { | |||||
| return ffio_get_checksum(s); | |||||
| } | |||||
| int url_open_dyn_buf(AVIOContext **s) | |||||
| { | |||||
| return avio_open_dyn_buf(s); | |||||
| } | |||||
| int url_open_dyn_packet_buf(AVIOContext **s, int max_packet_size) | |||||
| { | |||||
| return ffio_open_dyn_packet_buf(s, max_packet_size); | |||||
| } | |||||
| int url_close_dyn_buf(AVIOContext *s, uint8_t **pbuffer) | |||||
| { | |||||
| return avio_close_dyn_buf(s, pbuffer); | |||||
| } | |||||
| int url_fdopen(AVIOContext **s, URLContext *h) | |||||
| { | |||||
| return ffio_fdopen(s, h); | |||||
| } | |||||
| #endif | |||||
| int avio_put_str(AVIOContext *s, const char *str) | int avio_put_str(AVIOContext *s, const char *str) | ||||
| { | { | ||||
| int len = 1; | int len = 1; | ||||
| @@ -548,15 +351,6 @@ void avio_wb24(AVIOContext *s, unsigned int val) | |||||
| avio_w8(s, val); | avio_w8(s, val); | ||||
| } | } | ||||
| #if FF_API_OLD_AVIO | |||||
| void put_tag(AVIOContext *s, const char *tag) | |||||
| { | |||||
| while (*tag) { | |||||
| avio_w8(s, *tag++); | |||||
| } | |||||
| } | |||||
| #endif | |||||
| /* Input stream */ | /* Input stream */ | ||||
| static void fill_buffer(AVIOContext *s) | static void fill_buffer(AVIOContext *s) | ||||
| @@ -638,17 +432,6 @@ int avio_r8(AVIOContext *s) | |||||
| return 0; | return 0; | ||||
| } | } | ||||
| #if FF_API_OLD_AVIO | |||||
| int url_fgetc(AVIOContext *s) | |||||
| { | |||||
| if (s->buf_ptr >= s->buf_end) | |||||
| fill_buffer(s); | |||||
| if (s->buf_ptr < s->buf_end) | |||||
| return *s->buf_ptr++; | |||||
| return URL_EOF; | |||||
| } | |||||
| #endif | |||||
| int avio_read(AVIOContext *s, unsigned char *buf, int size) | int avio_read(AVIOContext *s, unsigned char *buf, int size) | ||||
| { | { | ||||
| int len, size1; | int len, size1; | ||||
| @@ -774,14 +557,6 @@ unsigned int avio_rb32(AVIOContext *s) | |||||
| return val; | return val; | ||||
| } | } | ||||
| #if FF_API_OLD_AVIO | |||||
| char *get_strz(AVIOContext *s, char *buf, int maxlen) | |||||
| { | |||||
| avio_get_str(s, INT_MAX, buf, maxlen); | |||||
| return buf; | |||||
| } | |||||
| #endif | |||||
| int ff_get_line(AVIOContext *s, char *buf, int maxlen) | int ff_get_line(AVIOContext *s, char *buf, int maxlen) | ||||
| { | { | ||||
| int i = 0; | int i = 0; | ||||
| @@ -879,18 +654,13 @@ int ffio_fdopen(AVIOContext **s, URLContext *h) | |||||
| av_free(buffer); | av_free(buffer); | ||||
| return AVERROR(ENOMEM); | return AVERROR(ENOMEM); | ||||
| } | } | ||||
| #if FF_API_OLD_AVIO | |||||
| (*s)->is_streamed = h->is_streamed; | |||||
| #endif | |||||
| (*s)->seekable = h->is_streamed ? 0 : AVIO_SEEKABLE_NORMAL; | (*s)->seekable = h->is_streamed ? 0 : AVIO_SEEKABLE_NORMAL; | ||||
| (*s)->max_packet_size = max_packet_size; | (*s)->max_packet_size = max_packet_size; | ||||
| if(h->prot) { | if(h->prot) { | ||||
| (*s)->read_pause = (int (*)(void *, int))h->prot->url_read_pause; | (*s)->read_pause = (int (*)(void *, int))h->prot->url_read_pause; | ||||
| (*s)->read_seek = (int64_t (*)(void *, int, int64_t, int))h->prot->url_read_seek; | (*s)->read_seek = (int64_t (*)(void *, int, int64_t, int))h->prot->url_read_seek; | ||||
| } | } | ||||
| #if !FF_API_OLD_AVIO | |||||
| (*s)->av_class = &ffio_url_class; | (*s)->av_class = &ffio_url_class; | ||||
| #endif | |||||
| return 0; | return 0; | ||||
| } | } | ||||
| @@ -993,13 +763,6 @@ int avio_close(AVIOContext *s) | |||||
| return ffurl_close(h); | return ffurl_close(h); | ||||
| } | } | ||||
| #if FF_API_OLD_AVIO | |||||
| URLContext *url_fileno(AVIOContext *s) | |||||
| { | |||||
| return s->opaque; | |||||
| } | |||||
| #endif | |||||
| int avio_printf(AVIOContext *s, const char *fmt, ...) | int avio_printf(AVIOContext *s, const char *fmt, ...) | ||||
| { | { | ||||
| va_list ap; | va_list ap; | ||||
| @@ -1013,34 +776,6 @@ int avio_printf(AVIOContext *s, const char *fmt, ...) | |||||
| return ret; | return ret; | ||||
| } | } | ||||
| #if FF_API_OLD_AVIO | |||||
| char *url_fgets(AVIOContext *s, char *buf, int buf_size) | |||||
| { | |||||
| int c; | |||||
| char *q; | |||||
| c = avio_r8(s); | |||||
| if (s->eof_reached) | |||||
| return NULL; | |||||
| q = buf; | |||||
| for(;;) { | |||||
| if (s->eof_reached || c == '\n') | |||||
| break; | |||||
| if ((q - buf) < buf_size - 1) | |||||
| *q++ = c; | |||||
| c = avio_r8(s); | |||||
| } | |||||
| if (buf_size > 0) | |||||
| *q = '\0'; | |||||
| return buf; | |||||
| } | |||||
| int url_fget_max_packet_size(AVIOContext *s) | |||||
| { | |||||
| return s->max_packet_size; | |||||
| } | |||||
| #endif | |||||
| int avio_pause(AVIOContext *s, int pause) | int avio_pause(AVIOContext *s, int pause) | ||||
| { | { | ||||
| if (!s->read_pause) | if (!s->read_pause) | ||||
| @@ -1068,29 +803,6 @@ int64_t avio_seek_time(AVIOContext *s, int stream_index, | |||||
| return ret; | return ret; | ||||
| } | } | ||||
| /* buffer handling */ | |||||
| #if FF_API_OLD_AVIO | |||||
| int url_open_buf(AVIOContext **s, uint8_t *buf, int buf_size, int flags) | |||||
| { | |||||
| int ret; | |||||
| *s = av_mallocz(sizeof(AVIOContext)); | |||||
| if(!*s) | |||||
| return AVERROR(ENOMEM); | |||||
| ret = ffio_init_context(*s, buf, buf_size, | |||||
| flags & AVIO_FLAG_WRITE, | |||||
| NULL, NULL, NULL, NULL); | |||||
| if(ret != 0) | |||||
| av_freep(s); | |||||
| return ret; | |||||
| } | |||||
| int url_close_buf(AVIOContext *s) | |||||
| { | |||||
| avio_flush(s); | |||||
| return s->buf_ptr - s->buffer; | |||||
| } | |||||
| #endif | |||||
| /* output in a dynamic buffer */ | /* output in a dynamic buffer */ | ||||
| typedef struct DynBuffer { | typedef struct DynBuffer { | ||||
| @@ -41,10 +41,8 @@ static void *format_child_next(void *obj, void *prev) | |||||
| ((s->iformat && s->iformat->priv_class) || | ((s->iformat && s->iformat->priv_class) || | ||||
| s->oformat && s->oformat->priv_class)) | s->oformat && s->oformat->priv_class)) | ||||
| return s->priv_data; | return s->priv_data; | ||||
| #if !FF_API_OLD_AVIO | |||||
| if (s->pb && s->pb->av_class && prev != s->pb) | if (s->pb && s->pb->av_class && prev != s->pb) | ||||
| return s->pb; | return s->pb; | ||||
| #endif | |||||
| return NULL; | return NULL; | ||||
| } | } | ||||
| @@ -54,11 +52,7 @@ static const AVClass *format_child_class_next(const AVClass *prev) | |||||
| AVOutputFormat *ofmt = NULL; | AVOutputFormat *ofmt = NULL; | ||||
| if (!prev) | if (!prev) | ||||
| #if !FF_API_OLD_AVIO | |||||
| return &ffio_url_class; | return &ffio_url_class; | ||||
| #else | |||||
| prev = (void *)&ifmt; // Dummy pointer; | |||||
| #endif | |||||
| while ((ifmt = av_iformat_next(ifmt))) | while ((ifmt = av_iformat_next(ifmt))) | ||||
| if (ifmt->priv_class == prev) | if (ifmt->priv_class == prev) | ||||
| @@ -31,7 +31,6 @@ | |||||
| #include "libavutil/dict.h" | #include "libavutil/dict.h" | ||||
| #include "libavutil/log.h" | #include "libavutil/log.h" | ||||
| #if !FF_API_OLD_AVIO | |||||
| #define URL_PROTOCOL_FLAG_NESTED_SCHEME 1 /*< The protocol name can be the first part of a nested protocol scheme */ | #define URL_PROTOCOL_FLAG_NESTED_SCHEME 1 /*< The protocol name can be the first part of a nested protocol scheme */ | ||||
| #define URL_PROTOCOL_FLAG_NETWORK 2 /*< The protocol uses network */ | #define URL_PROTOCOL_FLAG_NETWORK 2 /*< The protocol uses network */ | ||||
| @@ -74,7 +73,6 @@ typedef struct URLProtocol { | |||||
| int flags; | int flags; | ||||
| int (*url_check)(URLContext *h, int mask); | int (*url_check)(URLContext *h, int mask); | ||||
| } URLProtocol; | } URLProtocol; | ||||
| #endif | |||||
| /** | /** | ||||
| * Create a URLContext for accessing to the resource indicated by | * Create a URLContext for accessing to the resource indicated by | ||||
| @@ -50,9 +50,6 @@ | |||||
| #ifndef FF_API_OLD_METADATA2 | #ifndef FF_API_OLD_METADATA2 | ||||
| #define FF_API_OLD_METADATA2 (LIBAVFORMAT_VERSION_MAJOR < 54) | #define FF_API_OLD_METADATA2 (LIBAVFORMAT_VERSION_MAJOR < 54) | ||||
| #endif | #endif | ||||
| #ifndef FF_API_OLD_AVIO | |||||
| #define FF_API_OLD_AVIO (LIBAVFORMAT_VERSION_MAJOR < 54) | |||||
| #endif | |||||
| #ifndef FF_API_DUMP_FORMAT | #ifndef FF_API_DUMP_FORMAT | ||||
| #define FF_API_DUMP_FORMAT (LIBAVFORMAT_VERSION_MAJOR < 54) | #define FF_API_DUMP_FORMAT (LIBAVFORMAT_VERSION_MAJOR < 54) | ||||
| #endif | #endif | ||||