buffersink.c File Reference

buffer sink More...

#include "libavutil/audio_fifo.h"
#include "libavutil/avassert.h"
#include "libavutil/channel_layout.h"
#include "libavutil/common.h"
#include "libavutil/mathematics.h"
#include "audio.h"
#include "avfilter.h"
#include "buffersink.h"
#include "internal.h"

Go to the source code of this file.

Data Structures

struct  BufferSinkContext

Functions

static av_cold void uninit (AVFilterContext *ctx)
static int filter_frame (AVFilterLink *link, AVFilterBufferRef *buf)
int av_buffersink_read (AVFilterContext *ctx, AVFilterBufferRef **buf)
 Get a buffer with filtered data from sink and put it in buf.
static int read_from_fifo (AVFilterContext *ctx, AVFilterBufferRef **pbuf, int nb_samples)
int av_buffersink_read_samples (AVFilterContext *ctx, AVFilterBufferRef **pbuf, int nb_samples)
 Same as av_buffersink_read, but with the ability to specify the number of samples read.

Variables

static const AVFilterPad avfilter_vsink_buffer_inputs []
AVFilter avfilter_vsink_buffer
static const AVFilterPad avfilter_asink_abuffer_inputs []
AVFilter avfilter_asink_abuffer

Detailed Description

buffer sink

Definition in file buffersink.c.

Function Documentation

int av_buffersink_read ( AVFilterContext ctx,
AVFilterBufferRef **  buf 
)

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

Parameters
ctxpointer to a context of a buffersink or abuffersink AVFilter.
bufpointer to the buffer will be written here if buf is non-NULL. buf must be freed by the caller using avfilter_unref_buffer(). Buf may also be NULL to query whether a buffer is ready to be output.
Returns
>= 0 in case of success, a negative AVERROR code in case of failure.

Definition at line 61 of file buffersink.c.

Referenced by av_buffersink_read_samples(), poll_filter(), and video_thread().

int av_buffersink_read_samples ( AVFilterContext ctx,
AVFilterBufferRef **  buf,
int  nb_samples 
)

Same as av_buffersink_read, but with the ability to specify the number of samples read.

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

Parameters
ctxpointer to a context of the abuffersink AVFilter.
bufpointer to the buffer will be written here if buf is non-NULL. buf must be freed by the caller using avfilter_unref_buffer(). buf will contain exactly nb_samples audio samples, except at the end of stream, when it can contain less than nb_samples. Buf may also be NULL to query whether a buffer is ready to be output.
Warning
do not mix this function with av_buffersink_read(). Use only one or the other with a single sink, not both.

Definition at line 102 of file buffersink.c.

Referenced by poll_filter().

static int filter_frame ( AVFilterLink link,
AVFilterBufferRef buf 
)
static

Definition at line 51 of file buffersink.c.

static int read_from_fifo ( AVFilterContext ctx,
AVFilterBufferRef **  pbuf,
int  nb_samples 
)
static

Definition at line 82 of file buffersink.c.

Referenced by av_buffersink_read_samples().

static av_cold void uninit ( AVFilterContext ctx)
static

Definition at line 43 of file buffersink.c.

Variable Documentation

AVFilter avfilter_asink_abuffer
Initial value:
{
.name = "abuffersink",
.description = NULL_IF_CONFIG_SMALL("Buffer audio frames, and make them available to the end of the filter graph."),
.priv_size = sizeof(BufferSinkContext),
}

Definition at line 174 of file buffersink.c.

const AVFilterPad avfilter_asink_abuffer_inputs[]
static
Initial value:
{
{
.name = "default",
.filter_frame = filter_frame,
.min_perms = AV_PERM_READ,
.needs_fifo = 1
},
{ NULL }
}

Definition at line 163 of file buffersink.c.

AVFilter avfilter_vsink_buffer
Initial value:
{
.name = "buffersink",
.description = NULL_IF_CONFIG_SMALL("Buffer video frames, and make them available to the end of the filter graph."),
.priv_size = sizeof(BufferSinkContext),
}

Definition at line 153 of file buffersink.c.

const AVFilterPad avfilter_vsink_buffer_inputs[]
static
Initial value:
{
{
.name = "default",
.filter_frame = filter_frame,
.min_perms = AV_PERM_READ,
.needs_fifo = 1
},
{ NULL }
}

Definition at line 142 of file buffersink.c.