diff options
author | James Almer <jamrial@gmail.com> | 2020-06-01 11:22:01 -0300 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2020-06-05 10:07:05 -0300 |
commit | b6c8444e2387d9a75b24d5ec1d8308fe6e37645b (patch) | |
tree | b53b4c3f9597e45319f23775f0f9958f2ccd2325 | |
parent | f2ad89beff2720b9659cee5d79667f6136f6b47a (diff) |
avutil/buffer: separate public and internal flags inside AVBuffers
It's better to not mix user provided flags and internal flags set by
AVBufferRef helper functions.
Signed-off-by: James Almer <jamrial@gmail.com>
-rw-r--r-- | libavutil/buffer.c | 7 | ||||
-rw-r--r-- | libavutil/buffer_internal.h | 13 |
2 files changed, 10 insertions, 10 deletions
diff --git a/libavutil/buffer.c b/libavutil/buffer.c index b43cd179d7..38a554208a 100644 --- a/libavutil/buffer.c +++ b/libavutil/buffer.c @@ -44,8 +44,7 @@ AVBufferRef *av_buffer_create(uint8_t *data, int size, atomic_init(&buf->refcount, 1); - if (flags & AV_BUFFER_FLAG_READONLY) - buf->flags |= BUFFER_FLAG_READONLY; + buf->flags = flags; ref = av_mallocz(sizeof(*ref)); if (!ref) { @@ -185,14 +184,14 @@ int av_buffer_realloc(AVBufferRef **pbuf, int size) return AVERROR(ENOMEM); } - buf->buffer->flags |= BUFFER_FLAG_REALLOCATABLE; + buf->buffer->flags_internal |= BUFFER_FLAG_REALLOCATABLE; *pbuf = buf; return 0; } else if (buf->size == size) return 0; - if (!(buf->buffer->flags & BUFFER_FLAG_REALLOCATABLE) || + if (!(buf->buffer->flags_internal & BUFFER_FLAG_REALLOCATABLE) || !av_buffer_is_writable(buf) || buf->data != buf->buffer->data) { /* cannot realloc, allocate a new reallocable buffer and copy data */ AVBufferRef *new = NULL; diff --git a/libavutil/buffer_internal.h b/libavutil/buffer_internal.h index 54b67047e5..70d2615a06 100644 --- a/libavutil/buffer_internal.h +++ b/libavutil/buffer_internal.h @@ -26,13 +26,9 @@ #include "thread.h" /** - * The buffer is always treated as read-only. - */ -#define BUFFER_FLAG_READONLY (1 << 0) -/** * The buffer was av_realloc()ed, so it is reallocatable. */ -#define BUFFER_FLAG_REALLOCATABLE (1 << 1) +#define BUFFER_FLAG_REALLOCATABLE (1 << 0) struct AVBuffer { uint8_t *data; /**< data described by this buffer */ @@ -54,9 +50,14 @@ struct AVBuffer { void *opaque; /** - * A combination of BUFFER_FLAG_* + * A combination of AV_BUFFER_FLAG_* */ int flags; + + /** + * A combination of BUFFER_FLAG_* + */ + int flags_internal; }; typedef struct BufferPoolEntry { |