[FFmpeg-devel] [PATCH 3/3] lavfi/buffersink: fix header.
Stefano Sabatini
stefasab at gmail.com
Sun Mar 17 01:17:16 CET 2013
On date Saturday 2013-03-16 18:01:36 +0100, Nicolas George encoded:
> Move non-obsolete functions, structures and constants outside
> the scope of "#if FF_API_AVFILTERBUFFER".
>
> Add attribute_deprecated to av_buffersink_get_buffer_ref()
> and av_buffersink_poll_frame().
>
> Add doxygen for av_buffersink_get_frame_flags().
>
> Signed-off-by: Nicolas George <nicolas.george at normalesup.org>
> ---
> libavfilter/buffersink.h | 147 +++++++++++++++++++++++++---------------------
> 1 file changed, 79 insertions(+), 68 deletions(-)
>
> diff --git a/libavfilter/buffersink.h b/libavfilter/buffersink.h
> index eca3c23..3b92a14 100644
> --- a/libavfilter/buffersink.h
> +++ b/libavfilter/buffersink.h
> @@ -28,61 +28,6 @@
>
> #if FF_API_AVFILTERBUFFER
> /**
> - * Struct to use for initializing a buffersink context.
> - */
> -typedef struct {
> - const enum AVPixelFormat *pixel_fmts; ///< list of allowed pixel formats, terminated by AV_PIX_FMT_NONE
> -} AVBufferSinkParams;
> -
> -/**
> - * Create an AVBufferSinkParams structure.
> - *
> - * Must be freed with av_free().
> - */
> -AVBufferSinkParams *av_buffersink_params_alloc(void);
> -
> -/**
> - * Struct to use for initializing an abuffersink context.
> - */
> -typedef struct {
> - const enum AVSampleFormat *sample_fmts; ///< list of allowed sample formats, terminated by AV_SAMPLE_FMT_NONE
> - const int64_t *channel_layouts; ///< list of allowed channel layouts, terminated by -1
> - const int *channel_counts; ///< list of allowed channel counts, terminated by -1
> - int all_channel_counts; ///< if not 0, accept any channel count or layout
> - int *sample_rates; ///< list of allowed sample rates, terminated by -1
> -} AVABufferSinkParams;
> -
> -/**
> - * Create an AVABufferSinkParams structure.
> - *
> - * Must be freed with av_free().
> - */
> -AVABufferSinkParams *av_abuffersink_params_alloc(void);
> -
> -/**
> - * Set the frame size for an audio buffer sink.
> - *
> - * All calls to av_buffersink_get_buffer_ref will return a buffer with
> - * exactly the specified number of samples, or AVERROR(EAGAIN) if there is
> - * not enough. The last buffer at EOF will be padded with 0.
> - */
> -void av_buffersink_set_frame_size(AVFilterContext *ctx, unsigned frame_size);
> -
> -/**
> - * Tell av_buffersink_get_buffer_ref() to read video/samples buffer
> - * reference, but not remove it from the buffer. This is useful if you
> - * need only to read a video/samples buffer, without to fetch it.
> - */
> -#define AV_BUFFERSINK_FLAG_PEEK 1
> -
> -/**
> - * Tell av_buffersink_get_buffer_ref() not to request a frame from 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.
> @@ -92,28 +37,17 @@ void av_buffersink_set_frame_size(AVFilterContext *ctx, unsigned frame_size);
> * @return >= 0 in case of success, a negative AVERROR code in case of
> * failure
> */
> +attribute_deprecated
> int av_buffersink_get_buffer_ref(AVFilterContext *buffer_sink,
> AVFilterBufferRef **bufref, int flags);
>
> -/* TODO */
> -int av_buffersink_get_frame_flags(AVFilterContext *ctx, AVFrame *frame, int flags);
> -
> /**
> * Get the number of immediately available frames.
> */
> +attribute_deprecated
> int av_buffersink_poll_frame(AVFilterContext *ctx);
>
> /**
> - * Get the frame rate of the input.
> - */
> -AVRational av_buffersink_get_frame_rate(AVFilterContext *ctx);
> -
> -/**
> - * @defgroup libav_api Libav API
> - * @{
> - */
> -
> -/**
> * Get a buffer with filtered data from sink and put it in buf.
> *
> * @param ctx pointer to a context of a buffersink or abuffersink AVFilter.
> @@ -152,6 +86,83 @@ int av_buffersink_read_samples(AVFilterContext *ctx, AVFilterBufferRef **buf,
> /**
> * Get a frame with filtered data from sink and put it in frame.
> *
> + * @param ctx pointer to a buffersink or abuffersink filter context.
> + * @param frame pointer to an allocated frame that will be filled with data.
> + * The data must be freed using av_frame_unref() / av_frame_free()
> + * @param flags a combination of AV_BUFFERSINK_FLAG_* flags
> + *
> + * @return >= 0 in for success, a negative AVERROR code for failure.
> + */
> +int av_buffersink_get_frame_flags(AVFilterContext *ctx, AVFrame *frame, int flags);
> +
> +/**
> + * Tell av_buffersink_get_buffer_ref() to read video/samples buffer
> + * reference, but not remove it from the buffer. This is useful if you
> + * need only to read a video/samples buffer, without to fetch it.
> + */
> +#define AV_BUFFERSINK_FLAG_PEEK 1
> +
> +/**
> + * Tell av_buffersink_get_buffer_ref() not to request a frame from 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
> +
> +/**
> + * Struct to use for initializing a buffersink context.
> + */
> +typedef struct {
> + const enum AVPixelFormat *pixel_fmts; ///< list of allowed pixel formats, terminated by AV_PIX_FMT_NONE
> +} AVBufferSinkParams;
> +
> +/**
> + * Create an AVBufferSinkParams structure.
> + *
> + * Must be freed with av_free().
> + */
> +AVBufferSinkParams *av_buffersink_params_alloc(void);
> +
> +/**
> + * Struct to use for initializing an abuffersink context.
> + */
> +typedef struct {
> + const enum AVSampleFormat *sample_fmts; ///< list of allowed sample formats, terminated by AV_SAMPLE_FMT_NONE
> + const int64_t *channel_layouts; ///< list of allowed channel layouts, terminated by -1
> + const int *channel_counts; ///< list of allowed channel counts, terminated by -1
> + int all_channel_counts; ///< if not 0, accept any channel count or layout
> + int *sample_rates; ///< list of allowed sample rates, terminated by -1
> +} AVABufferSinkParams;
> +
> +/**
> + * Create an AVABufferSinkParams structure.
> + *
> + * Must be freed with av_free().
> + */
> +AVABufferSinkParams *av_abuffersink_params_alloc(void);
> +
> +/**
> + * Set the frame size for an audio buffer sink.
> + *
> + * All calls to av_buffersink_get_buffer_ref will return a buffer with
> + * exactly the specified number of samples, or AVERROR(EAGAIN) if there is
> + * not enough. The last buffer at EOF will be padded with 0.
> + */
> +void av_buffersink_set_frame_size(AVFilterContext *ctx, unsigned frame_size);
> +
> +/**
> + * Get the frame rate of the input.
> + */
> +AVRational av_buffersink_get_frame_rate(AVFilterContext *ctx);
> +
> +/**
> + * @defgroup libav_api Libav API
> + * @{
> + */
I consider this utterly pointless, but this is unrelated.
> +
> +/**
> + * Get a frame with filtered data from sink and put it in frame.
> + *
> * @param ctx pointer to a context of a buffersink or abuffersink AVFilter.
> * @param frame pointer to an allocated frame that will be filled with data.
> * The data must be freed using av_frame_unref() / av_frame_free()
LGTM and thanks.
--
FFmpeg = Furious and Friendly MultiPurpose Explosive Gadget
More information about the ffmpeg-devel
mailing list