avformat/avio: Constify data pointees of write callbacks
They are currently non-const for reasons unknown, although avio_write() accepts a const buffer. Reviewed-by: Anton Khirnov <anton@khirnov.net> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
parent
e8704a8f60
commit
2a68d945cd
@ -2,6 +2,10 @@ The last version increases of all libraries were on 2023-02-09
|
|||||||
|
|
||||||
API changes, most recent first:
|
API changes, most recent first:
|
||||||
|
|
||||||
|
2023-09-07 - xxxxxxxxxx - lavf 60.12.100 - avio.h
|
||||||
|
Constify the buffer pointees in the write_packet and write_data_type
|
||||||
|
callbacks of AVIOContext on the next major bump.
|
||||||
|
|
||||||
2023-09-07 - xxxxxxxxxx - lavc 60.26.100 - defs.h
|
2023-09-07 - xxxxxxxxxx - lavc 60.26.100 - defs.h
|
||||||
Add AV_PROFILE_* and AV_LEVEL_* replacements in defs.h for the
|
Add AV_PROFILE_* and AV_LEVEL_* replacements in defs.h for the
|
||||||
defines from avcodec.h. The latter are deprecated.
|
defines from avcodec.h. The latter are deprecated.
|
||||||
|
@ -408,7 +408,11 @@ int ffurl_read_complete(URLContext *h, unsigned char *buf, int size)
|
|||||||
return retry_transfer_wrapper(h, buf, size, size, h->prot->url_read);
|
return retry_transfer_wrapper(h, buf, size, size, h->prot->url_read);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if FF_API_AVIO_WRITE_NONCONST
|
||||||
int ffurl_write2(void *urlcontext, uint8_t *buf, int size)
|
int ffurl_write2(void *urlcontext, uint8_t *buf, int size)
|
||||||
|
#else
|
||||||
|
int ffurl_write2(void *urlcontext, const uint8_t *buf, int size)
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
URLContext *h = urlcontext;
|
URLContext *h = urlcontext;
|
||||||
|
|
||||||
|
@ -238,7 +238,11 @@ typedef struct AVIOContext {
|
|||||||
void *opaque; /**< A private pointer, passed to the read/write/seek/...
|
void *opaque; /**< A private pointer, passed to the read/write/seek/...
|
||||||
functions. */
|
functions. */
|
||||||
int (*read_packet)(void *opaque, uint8_t *buf, int buf_size);
|
int (*read_packet)(void *opaque, uint8_t *buf, int buf_size);
|
||||||
|
#if FF_API_AVIO_WRITE_NONCONST
|
||||||
int (*write_packet)(void *opaque, uint8_t *buf, int buf_size);
|
int (*write_packet)(void *opaque, uint8_t *buf, int buf_size);
|
||||||
|
#else
|
||||||
|
int (*write_packet)(void *opaque, const uint8_t *buf, int buf_size);
|
||||||
|
#endif
|
||||||
int64_t (*seek)(void *opaque, int64_t offset, int whence);
|
int64_t (*seek)(void *opaque, int64_t offset, int whence);
|
||||||
int64_t pos; /**< position in the file of the current buffer */
|
int64_t pos; /**< position in the file of the current buffer */
|
||||||
int eof_reached; /**< true if was unable to read due to error or eof */
|
int eof_reached; /**< true if was unable to read due to error or eof */
|
||||||
@ -286,8 +290,13 @@ typedef struct AVIOContext {
|
|||||||
/**
|
/**
|
||||||
* A callback that is used instead of write_packet.
|
* A callback that is used instead of write_packet.
|
||||||
*/
|
*/
|
||||||
|
#if FF_API_AVIO_WRITE_NONCONST
|
||||||
int (*write_data_type)(void *opaque, uint8_t *buf, int buf_size,
|
int (*write_data_type)(void *opaque, uint8_t *buf, int buf_size,
|
||||||
enum AVIODataMarkerType type, int64_t time);
|
enum AVIODataMarkerType type, int64_t time);
|
||||||
|
#else
|
||||||
|
int (*write_data_type)(void *opaque, const uint8_t *buf, int buf_size,
|
||||||
|
enum AVIODataMarkerType type, int64_t time);
|
||||||
|
#endif
|
||||||
/**
|
/**
|
||||||
* If set, don't call write_data_type separately for AVIO_DATA_MARKER_BOUNDARY_POINT,
|
* If set, don't call write_data_type separately for AVIO_DATA_MARKER_BOUNDARY_POINT,
|
||||||
* but ignore them and treat them as AVIO_DATA_MARKER_UNKNOWN (to avoid needlessly
|
* but ignore them and treat them as AVIO_DATA_MARKER_UNKNOWN (to avoid needlessly
|
||||||
@ -407,7 +416,11 @@ AVIOContext *avio_alloc_context(
|
|||||||
int write_flag,
|
int write_flag,
|
||||||
void *opaque,
|
void *opaque,
|
||||||
int (*read_packet)(void *opaque, uint8_t *buf, int buf_size),
|
int (*read_packet)(void *opaque, uint8_t *buf, int buf_size),
|
||||||
|
#if FF_API_AVIO_WRITE_NONCONST
|
||||||
int (*write_packet)(void *opaque, uint8_t *buf, int buf_size),
|
int (*write_packet)(void *opaque, uint8_t *buf, int buf_size),
|
||||||
|
#else
|
||||||
|
int (*write_packet)(void *opaque, const uint8_t *buf, int buf_size),
|
||||||
|
#endif
|
||||||
int64_t (*seek)(void *opaque, int64_t offset, int whence));
|
int64_t (*seek)(void *opaque, int64_t offset, int whence));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -89,7 +89,11 @@ void ffio_init_context(FFIOContext *s,
|
|||||||
int write_flag,
|
int write_flag,
|
||||||
void *opaque,
|
void *opaque,
|
||||||
int (*read_packet)(void *opaque, uint8_t *buf, int buf_size),
|
int (*read_packet)(void *opaque, uint8_t *buf, int buf_size),
|
||||||
|
#if FF_API_AVIO_WRITE_NONCONST
|
||||||
int (*write_packet)(void *opaque, uint8_t *buf, int buf_size),
|
int (*write_packet)(void *opaque, uint8_t *buf, int buf_size),
|
||||||
|
#else
|
||||||
|
int (*write_packet)(void *opaque, const uint8_t *buf, int buf_size),
|
||||||
|
#endif
|
||||||
int64_t (*seek)(void *opaque, int64_t offset, int whence));
|
int64_t (*seek)(void *opaque, int64_t offset, int whence));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -84,7 +84,11 @@ void ffio_init_context(FFIOContext *ctx,
|
|||||||
int write_flag,
|
int write_flag,
|
||||||
void *opaque,
|
void *opaque,
|
||||||
int (*read_packet)(void *opaque, uint8_t *buf, int buf_size),
|
int (*read_packet)(void *opaque, uint8_t *buf, int buf_size),
|
||||||
|
#if FF_API_AVIO_WRITE_NONCONST
|
||||||
int (*write_packet)(void *opaque, uint8_t *buf, int buf_size),
|
int (*write_packet)(void *opaque, uint8_t *buf, int buf_size),
|
||||||
|
#else
|
||||||
|
int (*write_packet)(void *opaque, const uint8_t *buf, int buf_size),
|
||||||
|
#endif
|
||||||
int64_t (*seek)(void *opaque, int64_t offset, int whence))
|
int64_t (*seek)(void *opaque, int64_t offset, int whence))
|
||||||
{
|
{
|
||||||
AVIOContext *const s = &ctx->pub;
|
AVIOContext *const s = &ctx->pub;
|
||||||
@ -143,7 +147,11 @@ AVIOContext *avio_alloc_context(
|
|||||||
int write_flag,
|
int write_flag,
|
||||||
void *opaque,
|
void *opaque,
|
||||||
int (*read_packet)(void *opaque, uint8_t *buf, int buf_size),
|
int (*read_packet)(void *opaque, uint8_t *buf, int buf_size),
|
||||||
|
#if FF_API_AVIO_WRITE_NONCONST
|
||||||
int (*write_packet)(void *opaque, uint8_t *buf, int buf_size),
|
int (*write_packet)(void *opaque, uint8_t *buf, int buf_size),
|
||||||
|
#else
|
||||||
|
int (*write_packet)(void *opaque, const uint8_t *buf, int buf_size),
|
||||||
|
#endif
|
||||||
int64_t (*seek)(void *opaque, int64_t offset, int whence))
|
int64_t (*seek)(void *opaque, int64_t offset, int whence))
|
||||||
{
|
{
|
||||||
FFIOContext *s = av_malloc(sizeof(*s));
|
FFIOContext *s = av_malloc(sizeof(*s));
|
||||||
@ -165,12 +173,20 @@ static void writeout(AVIOContext *s, const uint8_t *data, int len)
|
|||||||
if (!s->error) {
|
if (!s->error) {
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
if (s->write_data_type)
|
if (s->write_data_type)
|
||||||
|
#if FF_API_AVIO_WRITE_NONCONST
|
||||||
ret = s->write_data_type(s->opaque, (uint8_t *)data,
|
ret = s->write_data_type(s->opaque, (uint8_t *)data,
|
||||||
|
#else
|
||||||
|
ret = s->write_data_type(s->opaque, data,
|
||||||
|
#endif
|
||||||
len,
|
len,
|
||||||
ctx->current_type,
|
ctx->current_type,
|
||||||
ctx->last_time);
|
ctx->last_time);
|
||||||
else if (s->write_packet)
|
else if (s->write_packet)
|
||||||
|
#if FF_API_AVIO_WRITE_NONCONST
|
||||||
ret = s->write_packet(s->opaque, (uint8_t *)data, len);
|
ret = s->write_packet(s->opaque, (uint8_t *)data, len);
|
||||||
|
#else
|
||||||
|
ret = s->write_packet(s->opaque, data, len);
|
||||||
|
#endif
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
s->error = ret;
|
s->error = ret;
|
||||||
} else {
|
} else {
|
||||||
@ -1396,7 +1412,11 @@ typedef struct DynBuffer {
|
|||||||
uint8_t io_buffer[1];
|
uint8_t io_buffer[1];
|
||||||
} DynBuffer;
|
} DynBuffer;
|
||||||
|
|
||||||
|
#if FF_API_AVIO_WRITE_NONCONST
|
||||||
static int dyn_buf_write(void *opaque, uint8_t *buf, int buf_size)
|
static int dyn_buf_write(void *opaque, uint8_t *buf, int buf_size)
|
||||||
|
#else
|
||||||
|
static int dyn_buf_write(void *opaque, const uint8_t *buf, int buf_size)
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
DynBuffer *d = opaque;
|
DynBuffer *d = opaque;
|
||||||
unsigned new_size;
|
unsigned new_size;
|
||||||
@ -1428,7 +1448,11 @@ static int dyn_buf_write(void *opaque, uint8_t *buf, int buf_size)
|
|||||||
return buf_size;
|
return buf_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if FF_API_AVIO_WRITE_NONCONST
|
||||||
static int dyn_packet_buf_write(void *opaque, uint8_t *buf, int buf_size)
|
static int dyn_packet_buf_write(void *opaque, uint8_t *buf, int buf_size)
|
||||||
|
#else
|
||||||
|
static int dyn_packet_buf_write(void *opaque, const uint8_t *buf, int buf_size)
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
unsigned char buf1[4];
|
unsigned char buf1[4];
|
||||||
int ret;
|
int ret;
|
||||||
@ -1565,7 +1589,11 @@ void ffio_free_dyn_buf(AVIOContext **s)
|
|||||||
avio_context_free(s);
|
avio_context_free(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if FF_API_AVIO_WRITE_NONCONST
|
||||||
static int null_buf_write(void *opaque, uint8_t *buf, int buf_size)
|
static int null_buf_write(void *opaque, uint8_t *buf, int buf_size)
|
||||||
|
#else
|
||||||
|
static int null_buf_write(void *opaque, const uint8_t *buf, int buf_size)
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
DynBuffer *d = opaque;
|
DynBuffer *d = opaque;
|
||||||
|
|
||||||
|
@ -112,7 +112,11 @@ static int parse_header(OutputStream *os, const uint8_t *buf, int buf_size)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if FF_API_AVIO_WRITE_NONCONST
|
||||||
static int hds_write(void *opaque, uint8_t *buf, int buf_size)
|
static int hds_write(void *opaque, uint8_t *buf, int buf_size)
|
||||||
|
#else
|
||||||
|
static int hds_write(void *opaque, const uint8_t *buf, int buf_size)
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
OutputStream *os = opaque;
|
OutputStream *os = opaque;
|
||||||
if (os->out) {
|
if (os->out) {
|
||||||
|
@ -75,7 +75,11 @@ typedef struct SmoothStreamingContext {
|
|||||||
int nb_fragments;
|
int nb_fragments;
|
||||||
} SmoothStreamingContext;
|
} SmoothStreamingContext;
|
||||||
|
|
||||||
|
#if FF_API_AVIO_WRITE_NONCONST
|
||||||
static int ism_write(void *opaque, uint8_t *buf, int buf_size)
|
static int ism_write(void *opaque, uint8_t *buf, int buf_size)
|
||||||
|
#else
|
||||||
|
static int ism_write(void *opaque, const uint8_t *buf, int buf_size)
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
OutputStream *os = opaque;
|
OutputStream *os = opaque;
|
||||||
if (os->out)
|
if (os->out)
|
||||||
|
@ -194,7 +194,11 @@ static inline int ffurl_read(URLContext *h, uint8_t *buf, int size)
|
|||||||
*/
|
*/
|
||||||
int ffurl_read_complete(URLContext *h, unsigned char *buf, int size);
|
int ffurl_read_complete(URLContext *h, unsigned char *buf, int size);
|
||||||
|
|
||||||
|
#if FF_API_AVIO_WRITE_NONCONST
|
||||||
int ffurl_write2(void *urlcontext, uint8_t *buf, int size);
|
int ffurl_write2(void *urlcontext, uint8_t *buf, int size);
|
||||||
|
#else
|
||||||
|
int ffurl_write2(void *urlcontext, const uint8_t *buf, int size);
|
||||||
|
#endif
|
||||||
/**
|
/**
|
||||||
* Write size bytes from buf to the resource accessed by h.
|
* Write size bytes from buf to the resource accessed by h.
|
||||||
*
|
*
|
||||||
@ -203,7 +207,11 @@ int ffurl_write2(void *urlcontext, uint8_t *buf, int size);
|
|||||||
*/
|
*/
|
||||||
static inline int ffurl_write(URLContext *h, const uint8_t *buf, int size)
|
static inline int ffurl_write(URLContext *h, const uint8_t *buf, int size)
|
||||||
{
|
{
|
||||||
|
#if FF_API_AVIO_WRITE_NONCONST
|
||||||
return ffurl_write2(h, (uint8_t*)buf, size);
|
return ffurl_write2(h, (uint8_t*)buf, size);
|
||||||
|
#else
|
||||||
|
return ffurl_write2(h, buf, size);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
int64_t ffurl_seek2(void *urlcontext, int64_t pos, int whence);
|
int64_t ffurl_seek2(void *urlcontext, int64_t pos, int whence);
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
|
|
||||||
#include "version_major.h"
|
#include "version_major.h"
|
||||||
|
|
||||||
#define LIBAVFORMAT_VERSION_MINOR 11
|
#define LIBAVFORMAT_VERSION_MINOR 12
|
||||||
#define LIBAVFORMAT_VERSION_MICRO 100
|
#define LIBAVFORMAT_VERSION_MICRO 100
|
||||||
|
|
||||||
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
|
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
|
||||||
|
@ -45,6 +45,7 @@
|
|||||||
#define FF_API_GET_END_PTS (LIBAVFORMAT_VERSION_MAJOR < 61)
|
#define FF_API_GET_END_PTS (LIBAVFORMAT_VERSION_MAJOR < 61)
|
||||||
#define FF_API_AVIODIRCONTEXT (LIBAVFORMAT_VERSION_MAJOR < 61)
|
#define FF_API_AVIODIRCONTEXT (LIBAVFORMAT_VERSION_MAJOR < 61)
|
||||||
#define FF_API_AVFORMAT_IO_CLOSE (LIBAVFORMAT_VERSION_MAJOR < 61)
|
#define FF_API_AVFORMAT_IO_CLOSE (LIBAVFORMAT_VERSION_MAJOR < 61)
|
||||||
|
#define FF_API_AVIO_WRITE_NONCONST (LIBAVFORMAT_VERSION_MAJOR < 61)
|
||||||
|
|
||||||
|
|
||||||
#define FF_API_R_FRAME_RATE 1
|
#define FF_API_R_FRAME_RATE 1
|
||||||
|
Loading…
x
Reference in New Issue
Block a user