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: Marton Balint <cus@passwd.hu>tags/n4.3
| @@ -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 @@ | |||||
| #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) | |||||
| 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); | |||||
| */ | */ | ||||
| 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 @@ | |||||
| */ | */ | ||||
| #define LIBAVUTIL_VERSION_MAJOR 56 | #define LIBAVUTIL_VERSION_MAJOR 56 | ||||
| #define LIBAVUTIL_VERSION_MINOR 36 | |||||
| #define LIBAVUTIL_VERSION_MICRO 101 | |||||
| #define LIBAVUTIL_VERSION_MINOR 37 | |||||
| #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, \ | ||||