| 257 | } |
| 258 | |
| 259 | AVBufferPool *av_buffer_pool_init2(size_t size, void *opaque, |
| 260 | AVBufferRef* (*alloc)(void *opaque, size_t size), |
| 261 | void (*pool_free)(void *opaque)) |
| 262 | { |
| 263 | AVBufferPool *pool = av_mallocz(sizeof(*pool)); |
| 264 | if (!pool) |
| 265 | return NULL; |
| 266 | |
| 267 | if (ff_mutex_init(&pool->mutex, NULL)) { |
| 268 | av_free(pool); |
| 269 | return NULL; |
| 270 | } |
| 271 | |
| 272 | pool->size = size; |
| 273 | pool->opaque = opaque; |
| 274 | pool->alloc2 = alloc; |
| 275 | pool->alloc = av_buffer_alloc; // fallback |
| 276 | pool->pool_free = pool_free; |
| 277 | |
| 278 | atomic_init(&pool->refcount, 1); |
| 279 | |
| 280 | return pool; |
| 281 | } |
| 282 | |
| 283 | AVBufferPool *av_buffer_pool_init(size_t size, AVBufferRef* (*alloc)(size_t size)) |
| 284 | { |
no test coverage detected