#include "libavutil/audio_fifo.h"
#include "libavutil/audioconvert.h"
#include "libavutil/fifo.h"
#include "libavutil/mathematics.h"
#include "audio.h"
#include "avfilter.h"
#include "buffersink.h"
Go to the source code of this file.
Data Structures | |
| struct | BufferSinkContext |
Defines | |
| #define | FIFO_INIT_SIZE 8 |
Functions | |
| static av_cold void | uninit (AVFilterContext *ctx) |
| static av_cold int | init (AVFilterContext *ctx, const char *args, void *opaque) |
| static void | write_buf (AVFilterContext *ctx, AVFilterBufferRef *buf) |
| static void | end_frame (AVFilterLink *link) |
| static void | filter_samples (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 | |
| AVFilter | avfilter_vsink_buffer |
| AVFilter | avfilter_asink_abuffer |
Definition in file buffersink.c.
| #define FIFO_INIT_SIZE 8 |
| int av_buffersink_read | ( | AVFilterContext * | sink, | |
| AVFilterBufferRef ** | buf | |||
| ) |
Get a buffer with filtered data from sink and put it in buf.
| sink | pointer to a context of a buffersink or abuffersink AVFilter. | |
| buf | pointer 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. |
Definition at line 95 of file buffersink.c.
Referenced by av_buffersink_read_samples(), and poll_filters().
| 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.
| sink | pointer to a context of the abuffersink AVFilter. | |
| buf | pointer 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. |
Definition at line 140 of file buffersink.c.
Referenced by poll_filters().
| static void end_frame | ( | AVFilterLink * | link | ) | [static] |
Definition at line 84 of file buffersink.c.
| static void filter_samples | ( | AVFilterLink * | link, | |
| AVFilterBufferRef * | buf | |||
| ) | [static] |
Definition at line 90 of file buffersink.c.
| static av_cold int init | ( | AVFilterContext * | ctx, | |
| const char * | args, | |||
| void * | opaque | |||
| ) | [static] |
Definition at line 59 of file buffersink.c.
| static int read_from_fifo | ( | AVFilterContext * | ctx, | |
| AVFilterBufferRef ** | pbuf, | |||
| int | nb_samples | |||
| ) | [static] |
| static av_cold void uninit | ( | AVFilterContext * | ctx | ) | [static] |
Definition at line 44 of file buffersink.c.
| static void write_buf | ( | AVFilterContext * | ctx, | |
| AVFilterBufferRef * | buf | |||
| ) | [static] |
Initial value:
{
.name = "abuffersink_old",
.description = NULL_IF_CONFIG_SMALL("Buffer audio frames, and make them available to the end of the filter graph."),
.priv_size = sizeof(BufferSinkContext),
.init = init,
.uninit = uninit,
.inputs = (AVFilterPad[]) {{ .name = "default",
.type = AVMEDIA_TYPE_AUDIO,
.filter_samples = filter_samples,
.min_perms = AV_PERM_READ, },
{ .name = NULL }},
.outputs = (AVFilterPad[]) {{ .name = NULL }},
}
Definition at line 195 of file buffersink.c.
Referenced by avfilter_register_all().
Initial value:
{
.name = "buffersink_old",
.description = NULL_IF_CONFIG_SMALL("Buffer video frames, and make them available to the end of the filter graph."),
.priv_size = sizeof(BufferSinkContext),
.init = init,
.uninit = uninit,
.inputs = (AVFilterPad[]) {{ .name = "default",
.type = AVMEDIA_TYPE_VIDEO,
.end_frame = end_frame,
.min_perms = AV_PERM_READ, },
{ .name = NULL }},
.outputs = (AVFilterPad[]) {{ .name = NULL }},
}
Definition at line 180 of file buffersink.c.
Referenced by avfilter_register_all().
1.5.8