buffersink: add AV_BUFFERSINK_FLAG_NO_REQUEST.
authorNicolas George <nicolas.george@normalesup.org>
Thu, 19 Apr 2012 15:08:27 +0000 (17:08 +0200)
committerNicolas George <nicolas.george@normalesup.org>
Mon, 23 Apr 2012 12:13:59 +0000 (14:13 +0200)
libavfilter/buffersink.h
libavfilter/sink_buffer.c
libavfilter/version.h

index 73926a4..cf6bd69 100644 (file)
@@ -64,6 +64,13 @@ AVABufferSinkParams *av_abuffersink_params_alloc(void);
 #define AV_BUFFERSINK_FLAG_PEEK 1
 
 /**
+ * Tell av_buffersink_get_buffer_ref() not to request a frame fom its input.
+ * If a frame is already buffered, it is read (and removed from the buffer),
+ * but if no frame is present, return AVERROR(EAGAIN).
+ */
+#define AV_BUFFERSINK_FLAG_NO_REQUEST 2
+
+/**
  * Get an audio/video buffer data from buffer_sink and put it in bufref.
  *
  * This function works with both audio and video buffer sinks.
index 8eb695e..b0cc519 100644 (file)
@@ -126,6 +126,8 @@ int av_buffersink_get_buffer_ref(AVFilterContext *ctx,
 
     /* no picref available, fetch it from the filterchain */
     if (!av_fifo_size(buf->fifo)) {
+        if (flags & AV_BUFFERSINK_FLAG_NO_REQUEST)
+            return AVERROR(EAGAIN);
         if ((ret = avfilter_request_frame(inlink)) < 0)
             return ret;
     }
index 361155f..0f7ea50 100644 (file)
@@ -29,8 +29,8 @@
 #include "libavutil/avutil.h"
 
 #define LIBAVFILTER_VERSION_MAJOR  2
-#define LIBAVFILTER_VERSION_MINOR 71
-#define LIBAVFILTER_VERSION_MICRO 102
+#define LIBAVFILTER_VERSION_MINOR 72
+#define LIBAVFILTER_VERSION_MICRO 100
 
 #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
                                                LIBAVFILTER_VERSION_MINOR, \