diff options
author | Robert Nagy <ronag89@gmail.com> | 2012-04-16 08:17:25 +0200 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2012-07-20 21:06:18 +0200 |
commit | b70d89a033dacf53758256f875f1b23ce0ae13f1 (patch) | |
tree | 430b0d376ca386efaa49062d3d8ed2de5df44d9c /libavfilter | |
parent | ce64e5bfd11ae63af0fb10317a2aea6f7501be62 (diff) | |
download | ffmpeg-b70d89a033dacf53758256f875f1b23ce0ae13f1.tar.gz |
lavfi: add avfilter_unref_bufferp()
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Diffstat (limited to 'libavfilter')
-rw-r--r-- | libavfilter/avfilter.h | 12 | ||||
-rw-r--r-- | libavfilter/buffer.c | 6 |
2 files changed, 18 insertions, 0 deletions
diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h index 10d64ad614..7fbdd8a2fb 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 be0da26ea1..e3ebc9b8c7 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; |