Libav
Modules | Files | Data Structures | Macros | Typedefs | Functions
Libavfilter - graph-based frame editing library

Modules

 Buffer sink API
 
 Buffer source API
 

Files

file  avfilter.h
 Main libavfilter public API header.
 
file  version.h
 Libavfilter version macros.
 

Data Structures

struct  AVFilter
 Filter definition. More...
 
struct  AVFilterContext
 An instance of a filter. More...
 
struct  AVFilterLink
 A link between two filters. More...
 
struct  AVFilterGraph
 
struct  AVFilterInOut
 A linked-list of the inputs/outputs of the filter chain. More...
 

Macros

#define AVFILTER_FLAG_DYNAMIC_INPUTS   (1 << 0)
 The number of the filter inputs is not determined just by AVFilter.inputs. More...
 
#define AVFILTER_FLAG_DYNAMIC_OUTPUTS   (1 << 1)
 The number of the filter outputs is not determined just by AVFilter.outputs. More...
 
#define AVFILTER_FLAG_SLICE_THREADS   (1 << 2)
 The filter supports multithreading by splitting frames into multiple parts and processing them concurrently. More...
 
#define AVFILTER_THREAD_SLICE   (1 << 0)
 Process multiple parts of the frame concurrently. More...
 

Typedefs

typedef int( avfilter_action_func )(AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs)
 A function pointer passed to the AVFilterGraph::execute callback to be executed multiple times, possibly in parallel. More...
 
typedef int( avfilter_execute_func )(AVFilterContext *ctx, avfilter_action_func *func, void *arg, int *ret, int nb_jobs)
 A function executing multiple jobs, possibly in parallel. More...
 

Functions

unsigned avfilter_version (void)
 Return the LIBAVFILTER_VERSION_INT constant. More...
 
const char * avfilter_configuration (void)
 Return the libavfilter build-time configuration. More...
 
const char * avfilter_license (void)
 Return the libavfilter license. More...
 
int avfilter_pad_count (const AVFilterPad *pads)
 Get the number of elements in a NULL-terminated array of AVFilterPads (e.g. More...
 
const char * avfilter_pad_get_name (const AVFilterPad *pads, int pad_idx)
 Get the name of an AVFilterPad. More...
 
enum AVMediaType avfilter_pad_get_type (const AVFilterPad *pads, int pad_idx)
 Get the type of an AVFilterPad. More...
 
int avfilter_link (AVFilterContext *src, unsigned srcpad, AVFilterContext *dst, unsigned dstpad)
 Link two filters together. More...
 
int avfilter_config_links (AVFilterContext *filter)
 Negotiate the media format, dimensions, etc of all inputs to a filter. More...
 
void avfilter_register_all (void)
 Initialize the filter system. More...
 
int avfilter_register (AVFilter *filter)
 Register a filter. More...
 
const AVFilteravfilter_get_by_name (const char *name)
 Get a filter definition matching the given name. More...
 
const AVFilteravfilter_next (const AVFilter *prev)
 Iterate over all registered filters. More...
 
int avfilter_init_str (AVFilterContext *ctx, const char *args)
 Initialize a filter with the supplied parameters. More...
 
int avfilter_init_dict (AVFilterContext *ctx, AVDictionary **options)
 Initialize a filter with the supplied dictionary of options. More...
 
void avfilter_free (AVFilterContext *filter)
 Free a filter context. More...
 
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. More...
 
const AVClassavfilter_get_class (void)
 
AVFilterGraphavfilter_graph_alloc (void)
 Allocate a filter graph. More...
 
AVFilterContextavfilter_graph_alloc_filter (AVFilterGraph *graph, const AVFilter *filter, const char *name)
 Create a new filter instance in a filter graph. More...
 
AVFilterContextavfilter_graph_get_filter (AVFilterGraph *graph, char *name)
 Get a filter instance with name name from graph. More...
 
int avfilter_graph_create_filter (AVFilterContext **filt_ctx, const AVFilter *filt, const char *name, const char *args, void *opaque, AVFilterGraph *graph_ctx)
 Create and add a filter instance into an existing graph. More...
 
int avfilter_graph_config (AVFilterGraph *graphctx, void *log_ctx)
 Check validity and configure all the links and formats in the graph. More...
 
void avfilter_graph_free (AVFilterGraph **graph)
 Free a graph, destroy its links, and set *graph to NULL. More...
 
AVFilterInOutavfilter_inout_alloc (void)
 Allocate a single AVFilterInOut entry. More...
 
void avfilter_inout_free (AVFilterInOut **inout)
 Free the supplied list of AVFilterInOut and set *inout to NULL. More...
 
int avfilter_graph_parse (AVFilterGraph *graph, const char *filters, AVFilterInOut *inputs, AVFilterInOut *outputs, void *log_ctx)
 Add a graph described by a string to a graph. More...
 
int avfilter_graph_parse2 (AVFilterGraph *graph, const char *filters, AVFilterInOut **inputs, AVFilterInOut **outputs)
 Add a graph described by a string to a graph. More...
 

Detailed Description

Macro Definition Documentation

#define AVFILTER_FLAG_DYNAMIC_INPUTS   (1 << 0)

The number of the filter inputs is not determined just by AVFilter.inputs.

The filter might add additional inputs during initialization depending on the options supplied to it.

Definition at line 404 of file avfilter.h.

#define AVFILTER_FLAG_DYNAMIC_OUTPUTS   (1 << 1)

The number of the filter outputs is not determined just by AVFilter.outputs.

The filter might add additional outputs during initialization depending on the options supplied to it.

Definition at line 410 of file avfilter.h.

#define AVFILTER_FLAG_SLICE_THREADS   (1 << 2)

The filter supports multithreading by splitting frames into multiple parts and processing them concurrently.

Definition at line 415 of file avfilter.h.

Referenced by avfilter_init_dict().

#define AVFILTER_THREAD_SLICE   (1 << 0)

Process multiple parts of the frame concurrently.

Definition at line 558 of file avfilter.h.

Referenced by avfilter_init_dict().

Typedef Documentation

typedef int( avfilter_action_func)(AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs)

A function pointer passed to the AVFilterGraph::execute callback to be executed multiple times, possibly in parallel.

Parameters
ctxthe filter context the job belongs to
argan opaque parameter passed through from AVFilterGraph::execute
jobnrthe index of the job being executed
nb_jobsthe total number of jobs
Returns
0 on success, a negative AVERROR on error

Definition at line 923 of file avfilter.h.

typedef int( avfilter_execute_func)(AVFilterContext *ctx, avfilter_action_func *func, void *arg, int *ret, int nb_jobs)

A function executing multiple jobs, possibly in parallel.

Parameters
ctxthe filter context to which the jobs belong
functhe function to be called multiple times
argthe argument to be passed to func
reta nb_jobs-sized array to be filled with return values from each invocation of func
nb_jobsthe number of jobs to execute
Returns
0 on success, a negative AVERROR on error

Definition at line 937 of file avfilter.h.

Function Documentation

unsigned avfilter_version ( void  )

Return the LIBAVFILTER_VERSION_INT constant.

Definition at line 38 of file avfilter.c.

const char* avfilter_configuration ( void  )

Return the libavfilter build-time configuration.

Definition at line 43 of file avfilter.c.

const char* avfilter_license ( void  )

Return the libavfilter license.

Definition at line 48 of file avfilter.c.

int avfilter_pad_count ( const AVFilterPad pads)

Get the number of elements in a NULL-terminated array of AVFilterPads (e.g.

AVFilter.inputs/outputs).

Definition at line 318 of file avfilter.c.

Referenced by ff_filter_alloc().

const char* avfilter_pad_get_name ( const AVFilterPad pads,
int  pad_idx 
)

Get the name of an AVFilterPad.

Parameters
padsan array of AVFilterPads
pad_idxindex of the pad in the array it; is the caller's responsibility to ensure the index is valid
Returns
name of the pad_idx'th pad in pads

Definition at line 713 of file avfilter.c.

enum AVMediaType avfilter_pad_get_type ( const AVFilterPad pads,
int  pad_idx 
)

Get the type of an AVFilterPad.

Parameters
padsan array of AVFilterPads
pad_idxindex of the pad in the array; it is the caller's responsibility to ensure the index is valid
Returns
type of the pad_idx'th pad in pads

Definition at line 718 of file avfilter.c.

Referenced by configure_input_filter(), configure_output_filter(), init_input_filter(), init_output_filter(), insert_trim(), and open_output_file().

int avfilter_link ( AVFilterContext src,
unsigned  srcpad,
AVFilterContext dst,
unsigned  dstpad 
)

Link two filters together.

Parameters
srcthe source filter
srcpadindex of the output pad on the source filter
dstthe destination filter
dstpadindex of the input pad on the destination filter
Returns
zero on success

Definition at line 75 of file avfilter.c.

Referenced by avfilter_graph_parse(), avfilter_insert_filter(), configure_input_audio_filter(), configure_input_video_filter(), configure_output_audio_filter(), configure_output_video_filter(), insert_trim(), and link_filter().

int avfilter_config_links ( AVFilterContext filter)

Negotiate the media format, dimensions, etc of all inputs to a filter.

Parameters
filterthe filter to negotiate the properties for its inputs
Returns
zero on successful negotiation

Definition at line 145 of file avfilter.c.

Referenced by avfilter_config_links(), and graph_config_links().

void avfilter_register_all ( void  )

Initialize the filter system.

Register all builtin filters.

Definition at line 39 of file allfilters.c.

Referenced by main().

int avfilter_register ( AVFilter filter)

Register a filter.

This is only needed if you plan to use avfilter_get_by_name later to lookup the AVFilter structure by name. A filter can still by instantiated with avfilter_graph_alloc_filter even if it is not registered.

Parameters
filterthe filter to register
Returns
0 if the registration was succesfull, a negative value otherwise

Definition at line 292 of file avfilter.c.

const AVFilter* avfilter_get_by_name ( const char *  name)

Get a filter definition matching the given name.

Parameters
namethe filter name to find
Returns
the filter definition, if any matching one is registered. NULL if none found.

Definition at line 278 of file avfilter.c.

Referenced by configure_input_audio_filter(), configure_input_video_filter(), configure_output_audio_filter(), configure_output_video_filter(), create_filter(), graph_insert_fifos(), insert_trim(), main(), and query_formats().

const AVFilter* avfilter_next ( const AVFilter prev)

Iterate over all registered filters.

Returns
If prev is non-NULL, next registered filter after prev or NULL if prev is the last filter. If prev is NULL, return the first registered filter.

Definition at line 302 of file avfilter.c.

Referenced by avfilter_get_by_name(), filter_child_class_next(), and show_filters().

int avfilter_init_str ( AVFilterContext ctx,
const char *  args 
)

Initialize a filter with the supplied parameters.

Parameters
ctxuninitialized filter context to initialize
argsOptions to initialize the filter with. This must be a ':'-separated list of options in the 'key=value' form. May be NULL if the options have been set directly using the AVOptions API or there are no options that need to be set.
Returns
0 on success, a negative AVERROR on failure

Definition at line 596 of file avfilter.c.

Referenced by avfilter_graph_create_filter(), create_filter(), insert_trim(), and main().

int avfilter_init_dict ( AVFilterContext ctx,
AVDictionary **  options 
)

Initialize a filter with the supplied dictionary of options.

Parameters
ctxuninitialized filter context to initialize
optionsAn AVDictionary filled with options for this filter. On return this parameter will be destroyed and replaced with a dict containing options that were not found. This dictionary must be freed by the caller. May be NULL, then this function is equivalent to avfilter_init_str() with the second parameter set to NULL.
Returns
0 on success, a negative AVERROR on failure
Note
This function and avfilter_init_str() do essentially the same thing, the difference is in manner in which the options are passed. It is up to the calling code to choose whichever is more preferable. The two functions also behave differently when some of the provided options are not declared as supported by the filter. In such a case, avfilter_init_str() will fail, but this function will leave those extra options in the options AVDictionary and continue as usual.

Definition at line 561 of file avfilter.c.

Referenced by avfilter_init_str().

void avfilter_free ( AVFilterContext filter)

Free a filter context.

This will also remove the filter from its filtergraph's list of filters.

Parameters
filterthe filter to free

Definition at line 491 of file avfilter.c.

Referenced by avfilter_graph_alloc_filter(), avfilter_graph_create_filter(), avfilter_graph_free(), avfilter_graph_parse(), avfilter_graph_parse2(), create_filter(), and main().

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.

Parameters
linkthe link into which the filter should be inserted
filtthe filter to be inserted
filt_srcpad_idxthe input pad on the filter to connect
filt_dstpad_idxthe output pad on the filter to connect
Returns
zero on success

Definition at line 108 of file avfilter.c.

Referenced by graph_insert_fifos(), and query_formats().

const AVClass* avfilter_get_class ( void  )
Returns
AVClass for AVFilterContext.
See also
av_opt_find().

Definition at line 793 of file avfilter.c.

Referenced by show_help_default().

AVFilterGraph* avfilter_graph_alloc ( void  )

Allocate a filter graph.

Definition at line 71 of file avfiltergraph.c.

Referenced by configure_filtergraph(), main(), and video_thread().

AVFilterContext* avfilter_graph_alloc_filter ( AVFilterGraph graph,
const AVFilter filter,
const char *  name 
)

Create a new filter instance in a filter graph.

Parameters
graphgraph in which the new filter will be used
filterthe filter to create an instance of
nameName to give to the new instance (will be copied to AVFilterContext.name). This may be used by the caller to identify different filters, libavfilter itself assigns no semantics to this parameter. May be NULL.
Returns
the context of the newly created filter instance (note that it is also retrievable directly through AVFilterGraph.filters or with avfilter_graph_get_filter()) on success or NULL or failure.

Definition at line 165 of file avfiltergraph.c.

Referenced by avfilter_graph_create_filter(), create_filter(), insert_trim(), and main().

AVFilterContext* avfilter_graph_get_filter ( AVFilterGraph graph,
char *  name 
)

Get a filter instance with name name from graph.

Returns
the pointer to the found filter instance or NULL if it cannot be found.

Definition at line 267 of file avfiltergraph.c.

int avfilter_graph_create_filter ( AVFilterContext **  filt_ctx,
const AVFilter filt,
const char *  name,
const char *  args,
void opaque,
AVFilterGraph graph_ctx 
)

Create and add a filter instance into an existing graph.

The filter instance is created from the filter filt and inited with the parameters args and opaque.

In case of success put in *filt_ctx the pointer to the created filter instance, otherwise set *filt_ctx to NULL.

Parameters
namethe instance name to give to the created filter instance
graph_ctxthe filter graph
Returns
a negative AVERROR error code in case of failure, a non negative value otherwise

Definition at line 142 of file avfiltergraph.c.

Referenced by configure_input_audio_filter(), configure_input_video_filter(), configure_output_audio_filter(), configure_output_video_filter(), graph_insert_fifos(), and query_formats().

int avfilter_graph_config ( AVFilterGraph graphctx,
void log_ctx 
)

Check validity and configure all the links and formats in the graph.

Parameters
graphctxthe filter graph
log_ctxcontext used for logging
Returns
0 in case of success, a negative AVERROR code otherwise

Definition at line 811 of file avfiltergraph.c.

Referenced by configure_filtergraph(), main(), and transcode_init().

void avfilter_graph_free ( AVFilterGraph **  graph)

Free a graph, destroy its links, and set *graph to NULL.

If *graph is NULL, do nothing.

Definition at line 102 of file avfiltergraph.c.

Referenced by avconv_cleanup(), configure_filtergraph(), main(), and video_thread().

AVFilterInOut* avfilter_inout_alloc ( void  )

Allocate a single AVFilterInOut entry.

Must be freed with avfilter_inout_free().

Returns
allocated AVFilterInOut on success, NULL on failure.

Definition at line 174 of file graphparser.c.

void avfilter_inout_free ( AVFilterInOut **  inout)

Free the supplied list of AVFilterInOut and set *inout to NULL.

If *inout is NULL, do nothing.

Definition at line 179 of file graphparser.c.

Referenced by avfilter_graph_parse(), avfilter_graph_parse2(), configure_filtergraph(), and init_output_filter().

int avfilter_graph_parse ( AVFilterGraph graph,
const char *  filters,
AVFilterInOut inputs,
AVFilterInOut outputs,
void log_ctx 
)

Add a graph described by a string to a graph.

Parameters
graphthe filter graph where to link the parsed graph context
filtersstring to be parsed
inputslinked list to the inputs of the graph
outputslinked list to the outputs of the graph
Returns
zero on success, a negative AVERROR code on error

Definition at line 451 of file graphparser.c.

Referenced by main().

int avfilter_graph_parse2 ( AVFilterGraph graph,
const char *  filters,
AVFilterInOut **  inputs,
AVFilterInOut **  outputs 
)

Add a graph described by a string to a graph.

Parameters
[in]graphthe filter graph where to link the parsed graph context
[in]filtersstring to be parsed
[out]inputsa linked list of all free (unlinked) inputs of the parsed graph will be returned here. It is to be freed by the caller using avfilter_inout_free().
[out]outputsa linked list of all free (unlinked) outputs of the parsed graph will be returned here. It is to be freed by the caller using avfilter_inout_free().
Returns
zero on success, a negative AVERROR code on error
Note
the difference between avfilter_graph_parse2() and avfilter_graph_parse() is that in avfilter_graph_parse(), the caller provides the lists of inputs and outputs, which therefore must be known before calling the function. On the other hand, avfilter_graph_parse2() returns the inputs and outputs that are left unlinked after parsing the graph and the caller then deals with them. Another difference is that in avfilter_graph_parse(), the inputs parameter describes inputs of the already existing part of the graph; i.e. from the point of view of the newly created part, they are outputs. Similarly the outputs parameter describes outputs of the already existing filters, which are provided as inputs to the parsed filters. avfilter_graph_parse2() takes the opposite approach – it makes no reference whatsoever to already existing parts of the graph and the inputs parameter will on return contain inputs of the newly parsed part of the graph. Analogously the outputs parameter will contain outputs of the newly created filters.

Definition at line 383 of file graphparser.c.

Referenced by avfilter_graph_parse(), and configure_filtergraph().