avfiltergraph.h File Reference
#include "avfilter.h"
#include "libavutil/log.h"

Go to the source code of this file.

Data Structures

struct  AVFilterGraph
struct  AVFilterInOut
 A linked-list of the inputs/outputs of the filter chain. More...

Typedefs

typedef struct AVFilterGraph AVFilterGraph
typedef struct AVFilterInOut AVFilterInOut
 A linked-list of the inputs/outputs of the filter chain.

Functions

AVFilterGraphavfilter_graph_alloc (void)
 Allocate a filter graph.
AVFilterContextavfilter_graph_get_filter (AVFilterGraph *graph, char *name)
 Get a filter instance with name name from graph.
int avfilter_graph_add_filter (AVFilterGraph *graphctx, AVFilterContext *filter)
 Add an existing filter instance to a filter graph.
int avfilter_graph_create_filter (AVFilterContext **filt_ctx, AVFilter *filt, const char *name, const char *args, void *opaque, AVFilterGraph *graph_ctx)
 Create and add a filter instance into an existing graph.
int avfilter_graph_config (AVFilterGraph *graphctx, void *log_ctx)
 Check validity and configure all the links and formats in the graph.
void avfilter_graph_free (AVFilterGraph **graph)
 Free a graph, destroy its links, and set *graph to NULL.
AVFilterInOutavfilter_inout_alloc (void)
 Allocate a single AVFilterInOut entry.
void avfilter_inout_free (AVFilterInOut **inout)
 Free the supplied list of AVFilterInOut and set *inout to NULL.
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.
int avfilter_graph_parse2 (AVFilterGraph *graph, const char *filters, AVFilterInOut **inputs, AVFilterInOut **outputs)
 Add a graph described by a string to a graph.

Typedef Documentation

typedef struct AVFilterGraph AVFilterGraph
typedef struct AVFilterInOut AVFilterInOut

A linked-list of the inputs/outputs of the filter chain.

This is mainly useful for avfilter_graph_parse() / avfilter_graph_parse2(), where it is used to communicate open (unlinked) inputs and outputs from and to the caller. This struct specifies, per each not connected pad contained in the graph, the filter context and the pad index required for establishing a link.

Function Documentation

int avfilter_graph_add_filter ( AVFilterGraph graphctx,
AVFilterContext filter 
)

Add an existing filter instance to a filter graph.

Parameters
graphctxthe filter graph
filterthe filter to be added

Definition at line 62 of file avfiltergraph.c.

Referenced by avfilter_graph_create_filter(), and create_filter().

AVFilterGraph* avfilter_graph_alloc ( void  )

Allocate a filter graph.

Definition at line 42 of file avfiltergraph.c.

Referenced by configure_filtergraph(), and video_thread().

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 699 of file avfiltergraph.c.

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

int avfilter_graph_create_filter ( AVFilterContext **  filt_ctx,
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 75 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().

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 51 of file avfiltergraph.c.

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

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 156 of file avfiltergraph.c.

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 453 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 385 of file graphparser.c.

Referenced by avfilter_graph_parse(), and configure_filtergraph().

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 176 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 181 of file graphparser.c.

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