libavfilter/buffersink.c File Reference

buffer sink More...

#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


Detailed Description

buffer sink

Definition in file buffersink.c.


Define Documentation

#define FIFO_INIT_SIZE   8

Definition at line 42 of file buffersink.c.

Referenced by common_init(), and init().


Function Documentation

int av_buffersink_read ( AVFilterContext sink,
AVFilterBufferRef **  buf 
)

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

Parameters:
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.
Returns:
>= 0 in case of success, a negative AVERROR code in case of failure.

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.

Parameters:
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.
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 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]

Definition at line 120 of file buffersink.c.

Referenced by av_buffersink_read_samples().

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]

Definition at line 71 of file buffersink.c.

Referenced by end_frame(), and filter_samples().


Variable Documentation

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


Generated on Fri Oct 26 02:48:00 2012 for FFmpeg by  doxygen 1.5.8