diff options
author | Derek Buitenhuis <derek.buitenhuis@gmail.com> | 2016-02-17 16:07:16 +0000 |
---|---|---|
committer | Derek Buitenhuis <derek.buitenhuis@gmail.com> | 2016-02-17 16:07:16 +0000 |
commit | 26abd5149ebf9602d8036be4c6e72e08c98ea998 (patch) | |
tree | ffc931a2c7a53ff57272601f2a43dca7b799c301 /libavutil/buffer.h | |
parent | ae3c0a9c1f66367586c82e9b48d31bedac3e14aa (diff) | |
parent | 721a4efc0545548a241080b53ab480e34f366240 (diff) | |
download | ffmpeg-26abd5149ebf9602d8036be4c6e72e08c98ea998.tar.gz |
Merge commit '721a4efc0545548a241080b53ab480e34f366240'
* commit '721a4efc0545548a241080b53ab480e34f366240':
buffer: add support for pools using caller data in allocation
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Diffstat (limited to 'libavutil/buffer.h')
-rw-r--r-- | libavutil/buffer.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/libavutil/buffer.h b/libavutil/buffer.h index b4399fd39f..207e971190 100644 --- a/libavutil/buffer.h +++ b/libavutil/buffer.h @@ -249,6 +249,23 @@ typedef struct AVBufferPool AVBufferPool; AVBufferPool *av_buffer_pool_init(int size, AVBufferRef* (*alloc)(int size)); /** + * Allocate and initialize a buffer pool with a more complex allocator. + * + * @param size size of each buffer in this pool + * @param opaque arbitrary user data used by the allocator + * @param alloc a function that will be used to allocate new buffers when the + * pool is empty. + * @param pool_free a function that will be called immediately before the pool + * is freed. I.e. after av_buffer_pool_can_uninit() is called + * by the pool and all the frames are returned to the pool and + * freed. It is intended to uninitialize the user opaque data. + * @return newly created buffer pool on success, NULL on error. + */ +AVBufferPool *av_buffer_pool_init2(int size, void *opaque, + AVBufferRef* (*alloc)(void *opaque, int size), + void (*pool_free)(void *opaque)); + +/** * Mark the pool as being available for freeing. It will actually be freed only * once all the allocated buffers associated with the pool are released. Thus it * is safe to call this function while some of the allocated buffers are still |