API changes, most recent first:
+2021-03-10 - xxxxxxxxxx - lavu 56.68.100 - buffer.h
+ Change AVBufferRef related function and struct size parameter and fields
+ type to size_t at next major bump.
+
2021-03-04 - xxxxxxxxxx - lavc 58.128.101 - avcodec.h
Enable err_recognition to be set for encoders.
#include "mem.h"
#include "thread.h"
-AVBufferRef *av_buffer_create(uint8_t *data, int size,
+AVBufferRef *av_buffer_create(uint8_t *data, buffer_size_t size,
void (*free)(void *opaque, uint8_t *data),
void *opaque, int flags)
{
av_free(data);
}
-AVBufferRef *av_buffer_alloc(int size)
+AVBufferRef *av_buffer_alloc(buffer_size_t size)
{
AVBufferRef *ret = NULL;
uint8_t *data = NULL;
return ret;
}
-AVBufferRef *av_buffer_allocz(int size)
+AVBufferRef *av_buffer_allocz(buffer_size_t size)
{
AVBufferRef *ret = av_buffer_alloc(size);
if (!ret)
return 0;
}
-int av_buffer_realloc(AVBufferRef **pbuf, int size)
+int av_buffer_realloc(AVBufferRef **pbuf, buffer_size_t size)
{
AVBufferRef *buf = *pbuf;
uint8_t *tmp;
return 0;
}
-AVBufferPool *av_buffer_pool_init2(int size, void *opaque,
- AVBufferRef* (*alloc)(void *opaque, int size),
+AVBufferPool *av_buffer_pool_init2(buffer_size_t size, void *opaque,
+ AVBufferRef* (*alloc)(void *opaque, buffer_size_t size),
void (*pool_free)(void *opaque))
{
AVBufferPool *pool = av_mallocz(sizeof(*pool));
return pool;
}
-AVBufferPool *av_buffer_pool_init(int size, AVBufferRef* (*alloc)(int size))
+AVBufferPool *av_buffer_pool_init(buffer_size_t size, AVBufferRef* (*alloc)(buffer_size_t size))
{
AVBufferPool *pool = av_mallocz(sizeof(*pool));
if (!pool)
#ifndef AVUTIL_BUFFER_H
#define AVUTIL_BUFFER_H
+#include <stddef.h>
#include <stdint.h>
+#include "version.h"
+
/**
* @defgroup lavu_buffer AVBuffer
* @ingroup lavu_data
/**
* Size of data in bytes.
*/
+#if FF_API_BUFFER_SIZE_T
int size;
+#else
+ size_t size;
+#endif
} AVBufferRef;
/**
*
* @return an AVBufferRef of given size or NULL when out of memory
*/
+#if FF_API_BUFFER_SIZE_T
AVBufferRef *av_buffer_alloc(int size);
+#else
+AVBufferRef *av_buffer_alloc(size_t size);
+#endif
/**
* Same as av_buffer_alloc(), except the returned buffer will be initialized
* to zero.
*/
+#if FF_API_BUFFER_SIZE_T
AVBufferRef *av_buffer_allocz(int size);
+#else
+AVBufferRef *av_buffer_allocz(size_t size);
+#endif
/**
* Always treat the buffer as read-only, even when it has only one
*
* @return an AVBufferRef referring to data on success, NULL on failure.
*/
+#if FF_API_BUFFER_SIZE_T
AVBufferRef *av_buffer_create(uint8_t *data, int size,
+#else
+AVBufferRef *av_buffer_create(uint8_t *data, size_t size,
+#endif
void (*free)(void *opaque, uint8_t *data),
void *opaque, int flags);
* reference to it (i.e. the one passed to this function). In all other cases
* a new buffer is allocated and the data is copied.
*/
+#if FF_API_BUFFER_SIZE_T
int av_buffer_realloc(AVBufferRef **buf, int size);
+#else
+int av_buffer_realloc(AVBufferRef **buf, size_t size);
+#endif
/**
* Ensure dst refers to the same data as src.
* (av_buffer_alloc()).
* @return newly created buffer pool on success, NULL on error.
*/
+#if FF_API_BUFFER_SIZE_T
AVBufferPool *av_buffer_pool_init(int size, AVBufferRef* (*alloc)(int size));
+#else
+AVBufferPool *av_buffer_pool_init(size_t size, AVBufferRef* (*alloc)(size_t size));
+#endif
/**
* Allocate and initialize a buffer pool with a more complex allocator.
* data. May be NULL.
* @return newly created buffer pool on success, NULL on error.
*/
+#if FF_API_BUFFER_SIZE_T
AVBufferPool *av_buffer_pool_init2(int size, void *opaque,
AVBufferRef* (*alloc)(void *opaque, int size),
+#else
+AVBufferPool *av_buffer_pool_init2(size_t size, void *opaque,
+ AVBufferRef* (*alloc)(void *opaque, size_t size),
+#endif
void (*pool_free)(void *opaque));
/**
struct AVBuffer {
uint8_t *data; /**< data described by this buffer */
- int size; /**< size of data in bytes */
+ buffer_size_t size; /**< size of data in bytes */
/**
* number of existing AVBufferRef instances referring to this buffer
*/
atomic_uint refcount;
- int size;
+ buffer_size_t size;
void *opaque;
- AVBufferRef* (*alloc)(int size);
- AVBufferRef* (*alloc2)(void *opaque, int size);
+ AVBufferRef* (*alloc)(buffer_size_t size);
+ AVBufferRef* (*alloc2)(void *opaque, buffer_size_t size);
void (*pool_free)(void *opaque);
};
#define FF_PSEUDOPAL 0
#endif
+// Temporary typedef to simplify porting all AVBufferRef users to size_t
+#if FF_API_BUFFER_SIZE_T
+typedef int buffer_size_t;
+#else
+typedef size_t buffer_size_t;
+#endif
+
#endif /* AVUTIL_INTERNAL_H */
*/
#define LIBAVUTIL_VERSION_MAJOR 56
-#define LIBAVUTIL_VERSION_MINOR 67
+#define LIBAVUTIL_VERSION_MINOR 68
#define LIBAVUTIL_VERSION_MICRO 100
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
#ifndef FF_API_CHILD_CLASS_NEXT
#define FF_API_CHILD_CLASS_NEXT (LIBAVUTIL_VERSION_MAJOR < 57)
#endif
+#ifndef FF_API_BUFFER_SIZE_T
+#define FF_API_BUFFER_SIZE_T (LIBAVUTIL_VERSION_MAJOR < 57)
+#endif
#ifndef FF_API_D2STR
#define FF_API_D2STR (LIBAVUTIL_VERSION_MAJOR < 58)
#endif