Commit 16685114 authored by Marton Balint's avatar Marton Balint

avutil/buffer: add av_buffer_pool_buffer_get_opaque

In order to access the original opaque parameter of a buffer in the buffer
pool. (The buffer pool implementation overrides the normal opaque parameter but
also saves it so it is accessible).

v2: add assertion check before dereferencing the BufferPoolEntry.
Signed-off-by: 's avatarMarton Balint <cus@passwd.hu>
parent e3dca074
...@@ -15,6 +15,9 @@ libavutil: 2017-10-21 ...@@ -15,6 +15,9 @@ libavutil: 2017-10-21
API changes, most recent first: API changes, most recent first:
2019-12-xx - xxxxxxxxxx - lavu 56.37.100 - buffer.h
Add av_buffer_pool_buffer_get_opaque().
2019-11-17 - 1c23abc88f - lavu 56.36.100 - eval API 2019-11-17 - 1c23abc88f - lavu 56.36.100 - eval API
Add av_expr_count_vars(). Add av_expr_count_vars().
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#include <stdint.h> #include <stdint.h>
#include <string.h> #include <string.h>
#include "avassert.h"
#include "buffer_internal.h" #include "buffer_internal.h"
#include "common.h" #include "common.h"
#include "mem.h" #include "mem.h"
...@@ -355,3 +356,10 @@ AVBufferRef *av_buffer_pool_get(AVBufferPool *pool) ...@@ -355,3 +356,10 @@ AVBufferRef *av_buffer_pool_get(AVBufferPool *pool)
return ret; return ret;
} }
void *av_buffer_pool_buffer_get_opaque(AVBufferRef *ref)
{
BufferPoolEntry *buf = ref->buffer->opaque;
av_assert0(buf);
return buf->opaque;
}
...@@ -284,6 +284,19 @@ void av_buffer_pool_uninit(AVBufferPool **pool); ...@@ -284,6 +284,19 @@ void av_buffer_pool_uninit(AVBufferPool **pool);
*/ */
AVBufferRef *av_buffer_pool_get(AVBufferPool *pool); AVBufferRef *av_buffer_pool_get(AVBufferPool *pool);
/**
* Query the original opaque parameter of an allocated buffer in the pool.
*
* @param ref a buffer reference to a buffer returned by av_buffer_pool_get.
* @return the opaque parameter set by the buffer allocator function of the
* buffer pool.
*
* @note the opaque parameter of ref is used by the buffer pool implementation,
* therefore you have to use this function to access the original opaque
* parameter of an allocated buffer.
*/
void *av_buffer_pool_buffer_get_opaque(AVBufferRef *ref);
/** /**
* @} * @}
*/ */
......
...@@ -79,8 +79,8 @@ ...@@ -79,8 +79,8 @@
*/ */
#define LIBAVUTIL_VERSION_MAJOR 56 #define LIBAVUTIL_VERSION_MAJOR 56
#define LIBAVUTIL_VERSION_MINOR 36 #define LIBAVUTIL_VERSION_MINOR 37
#define LIBAVUTIL_VERSION_MICRO 101 #define LIBAVUTIL_VERSION_MICRO 100
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
LIBAVUTIL_VERSION_MINOR, \ LIBAVUTIL_VERSION_MINOR, \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment