buffersink: Implement a poll function.

With this the application can find out how many frames are available.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
pull/2/head
Michael Niedermayer 13 years ago
parent fab97adb66
commit a502939d64
  1. 2
      libavfilter/avfilter.h
  2. 6
      libavfilter/buffersink.h
  3. 8
      libavfilter/sink_buffer.c

@ -29,7 +29,7 @@
#include "libavutil/rational.h" #include "libavutil/rational.h"
#define LIBAVFILTER_VERSION_MAJOR 2 #define LIBAVFILTER_VERSION_MAJOR 2
#define LIBAVFILTER_VERSION_MINOR 51 #define LIBAVFILTER_VERSION_MINOR 52
#define LIBAVFILTER_VERSION_MICRO 0 #define LIBAVFILTER_VERSION_MICRO 0
#define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \ #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \

@ -76,6 +76,12 @@ AVABufferSinkParams *av_abuffersink_params_alloc(void);
int av_buffersink_get_buffer_ref(AVFilterContext *buffer_sink, int av_buffersink_get_buffer_ref(AVFilterContext *buffer_sink,
AVFilterBufferRef **bufref, int flags); AVFilterBufferRef **bufref, int flags);
/**
* Get the number of immediately available frames.
*/
int av_buffersink_poll_frame(AVFilterContext *ctx);
#if FF_API_OLD_VSINK_API #if FF_API_OLD_VSINK_API
/** /**
* @deprecated Use av_buffersink_get_buffer_ref() instead. * @deprecated Use av_buffersink_get_buffer_ref() instead.

@ -140,6 +140,14 @@ int av_buffersink_get_buffer_ref(AVFilterContext *ctx,
return 0; return 0;
} }
int av_buffersink_poll_frame(AVFilterContext *ctx)
{
BufferSinkContext *buf = ctx->priv;
AVFilterLink *inlink = ctx->inputs[0];
return av_fifo_size(buf->fifo)/sizeof(AVFilterBufferRef *) + avfilter_poll_frame(inlink);
}
#if FF_API_OLD_VSINK_API #if FF_API_OLD_VSINK_API
int av_vsink_buffer_get_video_buffer_ref(AVFilterContext *ctx, int av_vsink_buffer_get_video_buffer_ref(AVFilterContext *ctx,
AVFilterBufferRef **picref, int flags) AVFilterBufferRef **picref, int flags)

Loading…
Cancel
Save