You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-06-14 22:15:12 +02:00
lavf: remove disabled FF_API_OLD_AVIO cruft
This commit is contained in:
@ -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
|
||||||
|
Reference in New Issue
Block a user