lavfi: add avfilter_unref_bufferp()
authorRobert Nagy <ronag89@gmail.com>
Mon, 16 Apr 2012 06:17:25 +0000 (08:17 +0200)
committerAnton Khirnov <anton@khirnov.net>
Fri, 20 Jul 2012 19:06:18 +0000 (21:06 +0200)
Signed-off-by: Anton Khirnov <anton@khirnov.net>
doc/APIchanges
libavfilter/avfilter.h
libavfilter/buffer.c

index f936d5f..8770b6d 100644 (file)
@@ -13,6 +13,9 @@ libavutil:     2011-04-18
 
 API changes, most recent first:
 
+2012-07-xx - xxxxxxx - lavfi 3.0.0 - avfilter.h
+  Add avfilter_unref_bufferp().
+
 2012-07-10 - 5fade8a - lavu 51.37.0
   Add av_malloc_array() and av_mallocz_array()
 
index 10d64ad..7fbdd8a 100644 (file)
@@ -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.
index be0da26..e3ebc9b 100644 (file)
@@ -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;