From b70d89a033dacf53758256f875f1b23ce0ae13f1 Mon Sep 17 00:00:00 2001 From: Robert Nagy Date: Mon, 16 Apr 2012 08:17:25 +0200 Subject: lavfi: add avfilter_unref_bufferp() Signed-off-by: Anton Khirnov --- libavfilter/avfilter.h | 12 ++++++++++++ libavfilter/buffer.c | 6 ++++++ 2 files changed, 18 insertions(+) (limited to 'libavfilter') diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h index 10d64ad..7fbdd8a 100644 --- a/libavfilter/avfilter.h +++ b/libavfilter/avfilter.h @@ -195,9 +195,21 @@ AVFilterBufferRef *avfilter_ref_buffer(AVFilterBufferRef *ref, int pmask); * buffer, the buffer itself is also automatically freed. * * @param ref reference to the buffer, may be NULL + * + * @note it is recommended to use avfilter_unref_bufferp() instead of this + * function */ void avfilter_unref_buffer(AVFilterBufferRef *ref); +/** + * Remove a reference to a buffer and set the pointer to NULL. + * If this is the last reference to the buffer, the buffer itself + * is also automatically freed. + * + * @param ref pointer to the buffer reference + */ +void avfilter_unref_bufferp(AVFilterBufferRef **ref); + #if FF_API_AVFILTERPAD_PUBLIC /** * A filter pad used for either input or output. diff --git a/libavfilter/buffer.c b/libavfilter/buffer.c index be0da26..e3ebc9b 100644 --- a/libavfilter/buffer.c +++ b/libavfilter/buffer.c @@ -84,6 +84,12 @@ void avfilter_unref_buffer(AVFilterBufferRef *ref) av_free(ref); } +void avfilter_unref_bufferp(AVFilterBufferRef **ref) +{ + avfilter_unref_buffer(*ref); + *ref = NULL; +} + int avfilter_copy_frame_props(AVFilterBufferRef *dst, const AVFrame *src) { dst->pts = src->pts; -- cgit v1.1