summaryrefslogtreecommitdiff
path: root/libavutil/buffer.h
diff options
context:
space:
mode:
authorDerek Buitenhuis <derek.buitenhuis@gmail.com>2016-02-17 16:07:16 +0000
committerDerek Buitenhuis <derek.buitenhuis@gmail.com>2016-02-17 16:07:16 +0000
commit26abd5149ebf9602d8036be4c6e72e08c98ea998 (patch)
treeffc931a2c7a53ff57272601f2a43dca7b799c301 /libavutil/buffer.h
parentae3c0a9c1f66367586c82e9b48d31bedac3e14aa (diff)
parent721a4efc0545548a241080b53ab480e34f366240 (diff)
downloadffmpeg-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.h17
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