FFmpeg  4.3.1
Modules | Files | Macros | Functions
Buffer sink API

Modules

 Buffer sink accessors
 Get the properties of the stream.
 

Files

file  buffersink.h
 memory buffer sink API for audio and video
 

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...
 
void av_buffersink_set_frame_size (AVFilterContext *ctx, unsigned frame_size)
 Set the frame size for an audio buffer sink. 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

Macro Definition Documentation

◆ AV_BUFFERSINK_FLAG_PEEK

#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 53 of file buffersink.h.

◆ AV_BUFFERSINK_FLAG_NO_REQUEST

#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 60 of file buffersink.h.

Function Documentation

◆ av_buffersink_get_frame_flags()

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.

◆ av_buffersink_set_frame_size()

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.

◆ av_buffersink_get_frame()

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 if a frame was successfully returned.
  • AVERROR(EAGAIN) if no frames are available at this point; more input frames must be added to the filtergraph to get more output.
  • AVERROR_EOF if there will be no more output frames on this sink.
  • A different negative AVERROR code in other failure cases.
Examples
filter_audio.c, filtering_audio.c, filtering_video.c, and transcoding.c.

Referenced by filter_encode_write_frame(), and main().

◆ av_buffersink_get_samples()

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.
Returns
The return codes have the same meaning as for av_buffersink_get_frame().
Warning
do not mix this function with av_buffersink_get_frame(). Use only one or the other with a single sink, not both.