FFmpeg
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Enumerations | Functions
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...
 

Enumerations

enum  { AVFILTER_AUTO_CONVERT_ALL = 0, AVFILTER_AUTO_CONVERT_NONE = -1 }
 

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.
 
void avfilter_graph_set_auto_convert (AVFilterGraph *graph, unsigned flags)
 Enable or disable automatic format conversion inside the 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.
 
int avfilter_graph_send_command (AVFilterGraph *graph, const char *target, const char *cmd, const char *arg, char *res, int res_len, int flags)
 Send a command to one or more filter instances.
 
int avfilter_graph_queue_command (AVFilterGraph *graph, const char *target, const char *cmd, const char *arg, int flags, double ts)
 Queue a command for one or more filter instances.
 
char * avfilter_graph_dump (AVFilterGraph *graph, const char *options)
 Dump a graph into a human-readable string representation.
 
int avfilter_graph_request_oldest (AVFilterGraph *graph)
 Request a frame on the oldest sink link.
 

Enumeration Type Documentation

anonymous enum
Enumerator:
AVFILTER_AUTO_CONVERT_ALL 

all automatic conversions enabled

AVFILTER_AUTO_CONVERT_NONE 

all automatic conversions disabled

Definition at line 98 of file avfiltergraph.h.

Function Documentation

AVFilterGraph* avfilter_graph_alloc ( void  )

Allocate a filter graph.

Definition at line 52 of file avfiltergraph.c.

Referenced by configure_filtergraph(), init_filters(), lavfi_read_header(), 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 177 of file avfiltergraph.c.

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

Referenced by avfilter_graph_create_filter(), and create_filter().

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 88 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(), init_filters(), lavfi_read_header(), and query_formats().

void avfilter_graph_set_auto_convert ( AVFilterGraph graph,
unsigned  flags 
)

Enable or disable automatic format conversion inside the graph.

Note that format conversion can still happen inside explicitly inserted scale and aconvert filters.

Parameters
flagsany of the AVFILTER_AUTO_CONVERT_* constants

Definition at line 109 of file avfiltergraph.c.

Referenced by choose_pix_fmts().

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

Referenced by configure_filtergraph(), init_filters(), lavfi_read_header(), 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 61 of file avfiltergraph.c.

Referenced by configure_filtergraph(), exit_program(), lavfi_read_close(), 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.
Examples:
doc/examples/filtering_audio.c, and doc/examples/filtering_video.c.

Definition at line 175 of file graphparser.c.

Referenced by init_filters().

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

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

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
inputspointer to a linked list to the inputs of the graph, may be NULL. If non-NULL, *inputs is updated to contain the list of open inputs after the parsing, should be freed with avfilter_inout_free().
outputspointer to a linked list to the outputs of the graph, may be NULL. If non-NULL, *outputs is updated to contain the list of open outputs after the parsing, should be freed with avfilter_inout_free().
Returns
non negative on success, a negative AVERROR code on error
Examples:
doc/examples/filtering_audio.c, and doc/examples/filtering_video.c.

Definition at line 452 of file graphparser.c.

Referenced by init_filters(), lavfi_read_header(), and 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 384 of file graphparser.c.

Referenced by avfilter_graph_parse(), and configure_filtergraph().

int avfilter_graph_send_command ( AVFilterGraph graph,
const char *  target,
const char *  cmd,
const char *  arg,
char *  res,
int  res_len,
int  flags 
)

Send a command to one or more filter instances.

Parameters
graphthe filter graph
targetthe filter(s) to which the command should be sent "all" sends to all filters otherwise it can be a filter or filter instance name which will send the command to all matching filters.
cmdthe command to sent, for handling simplicity all commands must be alphanumeric only
argthe argument for the command
resa buffer with size res_size where the filter(s) can return a response.
Returns
>=0 on success otherwise an error code. AVERROR(ENOSYS) on unsupported commands

Definition at line 952 of file avfiltergraph.c.

Referenced by avfilter_graph_send_command(), check_keyboard_interaction(), and filter_frame().

int avfilter_graph_queue_command ( AVFilterGraph graph,
const char *  target,
const char *  cmd,
const char *  arg,
int  flags,
double  ts 
)

Queue a command for one or more filter instances.

Parameters
graphthe filter graph
targetthe filter(s) to which the command should be sent "all" sends to all filters otherwise it can be a filter or filter instance name which will send the command to all matching filters.
cmdthe command to sent, for handling simplicity all commands must be alphanummeric only
argthe argument for the command
tstime at which the command should be sent to the filter
Note
As this executes commands after this function returns, no return code from the filter is provided, also AVFILTER_CMD_FLAG_ONE is not supported.

Definition at line 982 of file avfiltergraph.c.

Referenced by check_keyboard_interaction().

char* avfilter_graph_dump ( AVFilterGraph graph,
const char *  options 
)

Dump a graph into a human-readable string representation.

Parameters
graphthe graph to dump
optionsformatting options; currently ignored
Returns
a string, or NULL in case of memory allocation failure; the string must be freed using av_free

Definition at line 153 of file graphdump.c.

Referenced by lavfi_read_header().

int avfilter_graph_request_oldest ( AVFilterGraph graph)

Request a frame on the oldest sink link.

If the request returns AVERROR_EOF, try the next.

Note that this function is not meant to be the sole scheduling mechanism of a filtergraph, only a convenience function to help drain a filtergraph in a balanced way under normal circumstances.

Also note that AVERROR_EOF does not mean that frames did not arrive on some of the sinks during the process. When there are multiple sink links, in case the requested link returns an EOF, this may cause a filter to flush pending frames which are sent to another sink link, although unrequested.

Returns
the return value of ff_request_frame(), or AVERROR_EOF if all links returned AVERROR_EOF

Definition at line 1056 of file avfiltergraph.c.

Referenced by transcode_from_filter().