FFmpeg 5.1.6
|
The buffersink and abuffersink filters are there to connect filter graphs to applications. More...
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... | |
The buffersink and abuffersink filters are there to connect filter graphs to applications.
They have a single input, connected to the graph, and no output. Frames must be extracted using av_buffersink_get_frame() or av_buffersink_get_samples().
The format negotiated by the graph during configuration can be obtained using the accessor functions:
The layout returned by av_buffersink_get_ch_layout() must de uninitialized by the caller.
The format can be constrained by setting options, using av_opt_set() and related functions with the AV_OPT_SEARCH_CHILDREN flag.
As a special case, if ch_layouts is not set, all valid channel layouts are accepted except for UNSPEC layouts, unless all_channel_counts is set.
#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 88 of file buffersink.h.
#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 95 of file buffersink.h.
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.
ctx | pointer to a buffersink or abuffersink filter context. |
frame | pointer to an allocated frame that will be filled with data. The data must be freed using av_frame_unref() / av_frame_free() |
flags | a combination of AV_BUFFERSINK_FLAG_* flags |
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.
int av_buffersink_get_frame | ( | AVFilterContext * | ctx, |
AVFrame * | frame | ||
) |
Get a frame with filtered data from sink and put it in frame.
ctx | pointer to a context of a buffersink or abuffersink AVFilter. |
frame | pointer to an allocated frame that will be filled with data. The data must be freed using av_frame_unref() / av_frame_free() |
Referenced by filter_encode_write_frame(), and main().
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.
ctx | pointer to a context of the abuffersink AVFilter. |
frame | pointer 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. |