[FFmpeg-devel] [PATCH 1/2] buffersink: Implement a poll function. With this the application can find out how many frames are available.

Stefano Sabatini stefasab at gmail.com
Thu Dec 8 15:09:43 CET 2011


On date Tuesday 2011-12-06 17:10:24 +0100, Michael Niedermayer encoded:
> Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> ---
>  libavfilter/buffersink.h  |    6 ++++++
>  libavfilter/sink_buffer.c |    8 ++++++++
>  2 files changed, 14 insertions(+), 0 deletions(-)
> 
> diff --git a/libavfilter/buffersink.h b/libavfilter/buffersink.h
> index c5ae7dc..980fa81 100644
> --- a/libavfilter/buffersink.h
> +++ b/libavfilter/buffersink.h
> @@ -76,6 +76,12 @@ AVABufferSinkParams *av_abuffersink_params_alloc(void);
>  int av_buffersink_get_buffer_ref(AVFilterContext *buffer_sink,
>                                   AVFilterBufferRef **bufref, int flags);
>  
> +
> +/**
> + * Gets the number of immedeatly available frames.

typos: Gets -> Get, immedeatly -> immediately

> + */
> +int av_buffersink_poll_frame(AVFilterContext *ctx);
> +
>  #if FF_API_OLD_VSINK_API
>  /**
>   * @deprecated Use av_buffersink_get_buffer_ref() instead.
> diff --git a/libavfilter/sink_buffer.c b/libavfilter/sink_buffer.c
> index bfbec7d..e572385 100644
> --- a/libavfilter/sink_buffer.c
> +++ b/libavfilter/sink_buffer.c
> @@ -140,6 +140,14 @@ int av_buffersink_get_buffer_ref(AVFilterContext *ctx,
>      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
>  int av_vsink_buffer_get_video_buffer_ref(AVFilterContext *ctx,
>                                           AVFilterBufferRef **picref, int flags)

Looks fine to me, just please bump minor and possibly add an
APIchanges entry or I'll do it after the commit.
-- 
FFmpeg = Foolish & Fanciful Multimedia Plastic Earthshaking Game


More information about the ffmpeg-devel mailing list