diff --git a/libavutil/buffer.c b/libavutil/buffer.c index e8ec2c97e0..e9bf54b96c 100644 --- a/libavutil/buffer.c +++ b/libavutil/buffer.c @@ -117,35 +117,6 @@ void av_buffer_unref(AVBufferRef **buf) } } -int av_buffer_release(AVBufferRef **buf, uint8_t **data) -{ - AVBuffer *b; - int ret = 0; - - if (data) - *data = NULL; - if (!buf || !*buf) - return 0; - b = (*buf)->buffer; - av_freep(buf); - - if (data && avpriv_atomic_int_get(&b->refcount) > 1) { - *data = av_memdup(b->data, b->size); - if (!*data) - ret = AVERROR(ENOMEM); - } - - if (!avpriv_atomic_int_add_and_fetch(&b->refcount, -1)) { - if (data && !*data) { - ret = 0; - *data = b->data; - } else - b->free(b->opaque, b->data); - av_freep(&b); - } - return ret; -} - int av_buffer_is_writable(const AVBufferRef *buf) { if (buf->buffer->flags & AV_BUFFER_FLAG_READONLY) diff --git a/libavutil/buffer.h b/libavutil/buffer.h index 8cf2cbf302..b4399fd39f 100644 --- a/libavutil/buffer.h +++ b/libavutil/buffer.h @@ -154,18 +154,6 @@ AVBufferRef *av_buffer_ref(AVBufferRef *buf); */ void av_buffer_unref(AVBufferRef **buf); -/** - * Free a given reference and pass underlaying data to user provided pointer. - * If there is more than one reference then data is copied. - * - * @param buf the reference to be released. The pointer is set to NULL on return. - * @param data pointer to be passed with underlaying data. - * @return 0 on success, a negative AVERROR on failure. - * - * @note on error buffer is properly released and *data is set to NULL. - */ -int av_buffer_release(AVBufferRef **buf, uint8_t **data); - /** * @return 1 if the caller may write to the data referred to by buf (which is * true if and only if buf is the only reference to the underlying AVBuffer).