buffersink.h File Reference

memory buffer sink API for audio and video More...

#include "avfilter.h"
Include dependency graph for buffersink.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  AVBufferSinkParams
 Struct to use for initializing a buffersink context. More...
 
struct  AVABufferSinkParams
 Struct to use for initializing an abuffersink context. More...
 

Macros

#define AV_BUFFERSINK_FLAG_PEEK   1
 Tell av_buffersink_get_buffer_ref() to read video/samples buffer reference, but not remove it from the buffer. More...
 
#define AV_BUFFERSINK_FLAG_NO_REQUEST   2
 Tell av_buffersink_get_buffer_ref() not to request a frame from its input. More...
 

Functions

int av_buffersink_get_frame_flags (AVFilterContext *ctx, AVFrame *frame, int flags)
 Get a frame with filtered data from sink and put it in frame. More...
 
AVBufferSinkParamsav_buffersink_params_alloc (void)
 Create an AVBufferSinkParams structure. More...
 
AVABufferSinkParamsav_abuffersink_params_alloc (void)
 Create an AVABufferSinkParams structure. More...
 
void av_buffersink_set_frame_size (AVFilterContext *ctx, unsigned frame_size)
 Set the frame size for an audio buffer sink. More...
 
AVRational av_buffersink_get_frame_rate (AVFilterContext *ctx)
 Get the frame rate of the input. More...
 
int av_buffersink_get_frame (AVFilterContext *ctx, AVFrame *frame)
 Get a frame with filtered data from sink and put it in frame. More...
 
int av_buffersink_get_samples (AVFilterContext *ctx, AVFrame *frame, int nb_samples)
 Same as av_buffersink_get_frame(), but with the ability to specify the number of samples read. More...
 

Detailed Description

memory buffer sink API for audio and video

Definition in file buffersink.h.

Macro Definition Documentation

#define AV_BUFFERSINK_FLAG_NO_REQUEST   2

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).

Definition at line 110 of file buffersink.h.

Referenced by av_buffersink_get_frame_flags(), and reap_filters().

#define AV_BUFFERSINK_FLAG_PEEK   1

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.

Definition at line 103 of file buffersink.h.

Referenced by av_buffersink_get_frame_flags(), and lavfi_read_packet().

Function Documentation

AVABufferSinkParams* av_abuffersink_params_alloc ( void  )

Create an AVABufferSinkParams structure.

Must be freed with av_free().

Definition at line 234 of file buffersink.c.

int av_buffersink_get_frame ( AVFilterContext ctx,
AVFrame frame 
)

Get a frame with filtered data from sink and put it in frame.

Parameters
ctxpointer to a context of a buffersink or abuffersink AVFilter.
framepointer to an allocated frame that will be filled with data. The data must be freed using av_frame_unref() / av_frame_free()
Returns
>= 0 in case of success, a negative AVERROR code in case of failure.

Definition at line 121 of file buffersink.c.

Referenced by main().

int av_buffersink_get_frame_flags ( AVFilterContext ctx,
AVFrame frame,
int  flags 
)

Get a frame with filtered data from sink and put it in frame.

Parameters
ctxpointer to a buffersink or abuffersink filter context.
framepointer to an allocated frame that will be filled with data. The data must be freed using av_frame_unref() / av_frame_free()
flagsa combination of AV_BUFFERSINK_FLAG_* flags
Returns
>= 0 in for success, a negative AVERROR code for failure.

Definition at line 126 of file buffersink.c.

Referenced by audio_decode_frame(), av_buffersink_get_frame(), av_buffersink_get_samples(), av_buffersink_set_frame_size(), lavfi_read_packet(), reap_filters(), and video_thread().

AVRational av_buffersink_get_frame_rate ( AVFilterContext ctx)

Get the frame rate of the input.

Definition at line 352 of file buffersink.c.

Referenced by transcode_init().

int av_buffersink_get_samples ( AVFilterContext ctx,
AVFrame frame,
int  nb_samples 
)

Same as av_buffersink_get_frame(), but with the ability to specify the number of samples read.

This function is less efficient than av_buffersink_get_frame(), because it copies the data around.

Parameters
ctxpointer to a context of the abuffersink AVFilter.
framepointer to an allocated frame that will be filled with data. The data must be freed using av_frame_unref() / av_frame_free() frame will contain exactly nb_samples audio samples, except at the end of stream, when it can contain less than nb_samples.
Warning
do not mix this function with av_buffersink_get_frame(). Use only one or the other with a single sink, not both.

Definition at line 179 of file buffersink.c.

Referenced by av_buffersink_set_frame_size().

AVBufferSinkParams* av_buffersink_params_alloc ( void  )

Create an AVBufferSinkParams structure.

Must be freed with av_free().

Definition at line 223 of file buffersink.c.

Referenced by init_filters().

void av_buffersink_set_frame_size ( AVFilterContext ctx,
unsigned  frame_size 
)

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.

Definition at line 258 of file buffersink.c.

Referenced by decode_audio(), and transcode_init().