On 7/20/12 10:20 AM, Anton Khirnov wrote:
From: Robert Nagy <rona...@gmail.com>

Signed-off-by: Anton Khirnov <an...@khirnov.net>
---
Seems I failed to include this in my error checking patchset for lavfi.
That set depends on it.
---
  doc/APIchanges         |    3 +++
  libavfilter/avfilter.h |   12 ++++++++++++
  libavfilter/buffer.c   |    6 ++++++
  3 files changed, 21 insertions(+)

diff --git a/doc/APIchanges b/doc/APIchanges
index f936d5f..8770b6d 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -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()

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;



Ok?
_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to