FFmpeg
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions | Variables
avfilter.c File Reference
#include "libavutil/avassert.h"
#include "libavutil/avstring.h"
#include "libavutil/channel_layout.h"
#include "libavutil/common.h"
#include "libavutil/imgutils.h"
#include "libavutil/pixdesc.h"
#include "libavutil/rational.h"
#include "libavutil/samplefmt.h"
#include "audio.h"
#include "avfilter.h"
#include "formats.h"
#include "internal.h"

Go to the source code of this file.

Macros

#define LICENSE_PREFIX   "libavfilter license: "
 
#define MAX_REGISTERED_AVFILTERS_NB   128
 

Functions

static int ff_filter_frame_framed (AVFilterLink *link, AVFilterBufferRef *frame)
 
char * ff_get_ref_perms_string (char *buf, size_t buf_size, int perms)
 
void ff_tlog_ref (void *ctx, AVFilterBufferRef *ref, int end)
 
unsigned avfilter_version (void)
 Return the LIBAVFILTER_VERSION_INT constant.
 
const char * avfilter_configuration (void)
 Return the libavfilter build-time configuration.
 
const char * avfilter_license (void)
 Return the libavfilter license.
 
void ff_command_queue_pop (AVFilterContext *filter)
 
void ff_insert_pad (unsigned idx, unsigned *count, size_t padidx_off, AVFilterPad **pads, AVFilterLink ***links, AVFilterPad *newpad)
 Insert a new pad.
 
int avfilter_link (AVFilterContext *src, unsigned srcpad, AVFilterContext *dst, unsigned dstpad)
 Link two filters together.
 
void avfilter_link_free (AVFilterLink **link)
 Free the link in *link, and set its pointer to NULL.
 
int avfilter_link_get_channels (AVFilterLink *link)
 Get the number of channels of a link.
 
void avfilter_link_set_closed (AVFilterLink *link, int closed)
 Set the closed field of a link.
 
int avfilter_insert_filter (AVFilterLink *link, AVFilterContext *filt, unsigned filt_srcpad_idx, unsigned filt_dstpad_idx)
 Insert a filter in the middle of an existing link.
 
int avfilter_config_links (AVFilterContext *filter)
 Negotiate the media format, dimensions, etc of all inputs to a filter.
 
void ff_tlog_link (void *ctx, AVFilterLink *link, int end)
 
int ff_request_frame (AVFilterLink *link)
 Request an input frame from the filter at the other end of the link.
 
int ff_poll_frame (AVFilterLink *link)
 Poll a frame from the filter chain.
 
void ff_update_link_current_pts (AVFilterLink *link, int64_t pts)
 
int avfilter_process_command (AVFilterContext *filter, const char *cmd, const char *arg, char *res, int res_len, int flags)
 Make the filter instance process a command.
 
AVFilteravfilter_get_by_name (const char *name)
 Get a filter definition matching the given name.
 
int avfilter_register (AVFilter *filter)
 Register a filter.
 
AVFilter ** av_filter_next (AVFilter **filter)
 If filter is NULL, returns a pointer to the first registered filter pointer, if filter is non-NULL, returns the next pointer after filter.
 
void avfilter_uninit (void)
 Uninitialize the filter system.
 
static int pad_count (const AVFilterPad *pads)
 
static const char * default_filter_name (void *filter_ctx)
 
static voidfilter_child_next (void *obj, void *prev)
 
static const AVClassfilter_child_class_next (const AVClass *prev)
 
const AVClassavfilter_get_class (void)
 Get the class for the AVFilterContext struct.
 
int avfilter_open (AVFilterContext **filter_ctx, AVFilter *filter, const char *inst_name)
 Create a filter instance.
 
void avfilter_free (AVFilterContext *filter)
 Free a filter context.
 
int avfilter_init_filter (AVFilterContext *filter, const char *args, void *opaque)
 Initialize a filter.
 
const char * avfilter_pad_get_name (AVFilterPad *pads, int pad_idx)
 Get the name of an AVFilterPad.
 
enum AVMediaType avfilter_pad_get_type (AVFilterPad *pads, int pad_idx)
 Get the type of an AVFilterPad.
 
static int default_filter_frame (AVFilterLink *link, AVFilterBufferRef *frame)
 
static int ff_filter_frame_needs_framing (AVFilterLink *link, AVFilterBufferRef *frame)
 
int ff_filter_frame (AVFilterLink *link, AVFilterBufferRef *frame)
 Send a frame of data to the next filter.
 

Variables

static AVFilterregistered_avfilters [MAX_REGISTERED_AVFILTERS_NB+1]
 
static int next_registered_avfilter_idx = 0
 
static const AVClass avfilter_class
 

Macro Definition Documentation

#define LICENSE_PREFIX   "libavfilter license: "
#define MAX_REGISTERED_AVFILTERS_NB   128

Definition at line 394 of file avfilter.c.

Referenced by avfilter_register().

Function Documentation

static int ff_filter_frame_framed ( AVFilterLink link,
AVFilterBufferRef frame 
)
static

Definition at line 641 of file avfilter.c.

Referenced by ff_filter_frame(), ff_filter_frame_needs_framing(), and ff_request_frame().

char* ff_get_ref_perms_string ( char *  buf,
size_t  buf_size,
int  perms 
)

Definition at line 39 of file avfilter.c.

Referenced by ff_get_video_buffer(), and ff_tlog_ref().

void ff_tlog_ref ( void ctx,
AVFilterBufferRef ref,
int  end 
)

Definition at line 51 of file avfilter.c.

Referenced by ff_filter_frame(), and ff_get_video_buffer().

void ff_command_queue_pop ( AVFilterContext filter)

Definition at line 95 of file avfilter.c.

Referenced by avfilter_free(), and ff_filter_frame_framed().

void ff_insert_pad ( unsigned  idx,
unsigned *  count,
size_t  padidx_off,
AVFilterPad **  pads,
AVFilterLink ***  links,
AVFilterPad newpad 
)

Insert a new pad.

Parameters
idxInsertion point. Pad is inserted at the end if this point is beyond the end of the list of pads.
countPointer to the number of pads in the list
padidx_offOffset within an AVFilterLink structure to the element to increment when inserting a new pad causes link numbering to change
padsPointer to the pointer to the beginning of the list of pads
linksPointer to the pointer to the beginning of the list of links
newpadThe new pad to add. A copy is made when adding.

Definition at line 104 of file avfilter.c.

Referenced by ff_insert_inpad(), and ff_insert_outpad().

void ff_tlog_link ( void ctx,
AVFilterLink link,
int  end 
)

Definition at line 309 of file avfilter.c.

Referenced by ff_filter_frame(), ff_get_video_buffer(), and ff_request_frame().

int ff_request_frame ( AVFilterLink link)

Request an input frame from the filter at the other end of the link.

Parameters
linkthe input link
Returns
zero on success

Definition at line 333 of file avfilter.c.

Referenced by av_buffersink_get_buffer_ref(), avfilter_graph_request_oldest(), ff_buffersink_read_compat(), ff_request_frame(), join_request_frame(), poll_frame(), request_frame(), request_samples(), and return_audio_frame().

int ff_poll_frame ( AVFilterLink link)

Poll a frame from the filter chain.

Parameters
linkthe input link
Returns
the number of immediately available frames, a negative number in case of error

Definition at line 355 of file avfilter.c.

Referenced by av_buffersink_poll_frame(), ff_buffersink_read_compat(), ff_poll_frame(), and poll_frame().

void ff_update_link_current_pts ( AVFilterLink link,
int64_t  pts 
)

Definition at line 373 of file avfilter.c.

Referenced by ff_filter_frame_framed().

static int pad_count ( const AVFilterPad pads)
static

Definition at line 444 of file avfilter.c.

Referenced by avfilter_open().

static const char* default_filter_name ( void filter_ctx)
static

Definition at line 455 of file avfilter.c.

static void* filter_child_next ( void obj,
void prev 
)
static

Definition at line 461 of file avfilter.c.

static const AVClass* filter_child_class_next ( const AVClass prev)
static

Definition at line 469 of file avfilter.c.

static int default_filter_frame ( AVFilterLink link,
AVFilterBufferRef frame 
)
static

Definition at line 636 of file avfilter.c.

Referenced by ff_filter_frame_framed().

static int ff_filter_frame_needs_framing ( AVFilterLink link,
AVFilterBufferRef frame 
)
static

Definition at line 724 of file avfilter.c.

Referenced by ff_filter_frame().

int ff_filter_frame ( AVFilterLink link,
AVFilterBufferRef frame 
)

Send a frame of data to the next filter.

Parameters
linkthe output link over which the data is being sent
framea reference to the buffer of data being sent. The receiving filter will free this reference when it no longer needs it or pass it on to the next filter.
Returns
>= 0 on success, a negative AVERROR on error. The receiving filter is responsible for unreferencing frame in case of error.

Definition at line 765 of file avfilter.c.

Referenced by channelmap_filter_frame(), default_filter_frame(), end_last_frame(), ff_vf_next_put_image(), filter_frame(), geq_filter_frame(), join_request_frame(), movie_push_frame(), output_frame(), pp_filter_frame(), push_frame(), push_samples(), request_frame(), return_audio_frame(), return_frame(), send_out(), send_silence(), and try_filter_frame().

Variable Documentation

AVFilter* registered_avfilters[MAX_REGISTERED_AVFILTERS_NB+1]
static

Definition at line 396 of file avfilter.c.

int next_registered_avfilter_idx = 0
static

Definition at line 398 of file avfilter.c.

Referenced by avfilter_register(), and avfilter_uninit().

const AVClass avfilter_class
static
Initial value:
= {
.class_name = "AVFilter",
.item_name = default_filter_name,
.child_next = filter_child_next,
.child_class_next = filter_child_class_next,
}

Definition at line 489 of file avfilter.c.

Referenced by avfilter_get_class(), and avfilter_open().