avfiltergraph.c File Reference
#include <ctype.h>
#include <string.h>
#include "libavutil/avassert.h"
#include "libavutil/avstring.h"
#include "libavutil/channel_layout.h"
#include "libavutil/common.h"
#include "libavutil/log.h"
#include "avfilter.h"
#include "avfiltergraph.h"
#include "formats.h"
#include "internal.h"

Go to the source code of this file.

Macros

#define REDUCE_FORMATS(fmt_type, list_type, list, var, nb, add_format)
#define CH_CENTER_PAIR   (AV_CH_FRONT_LEFT_OF_CENTER | AV_CH_FRONT_RIGHT_OF_CENTER)
#define CH_FRONT_PAIR   (AV_CH_FRONT_LEFT | AV_CH_FRONT_RIGHT)
#define CH_STEREO_PAIR   (AV_CH_STEREO_LEFT | AV_CH_STEREO_RIGHT)
#define CH_WIDE_PAIR   (AV_CH_WIDE_LEFT | AV_CH_WIDE_RIGHT)
#define CH_SIDE_PAIR   (AV_CH_SIDE_LEFT | AV_CH_SIDE_RIGHT)
#define CH_DIRECT_PAIR   (AV_CH_SURROUND_DIRECT_LEFT | AV_CH_SURROUND_DIRECT_RIGHT)
#define CH_BACK_PAIR   (AV_CH_BACK_LEFT | AV_CH_BACK_RIGHT)

Functions

AVFilterGraphavfilter_graph_alloc (void)
 Allocate a filter graph.
void avfilter_graph_free (AVFilterGraph **graph)
 Free a graph, destroy its links, and set *graph to NULL.
int avfilter_graph_add_filter (AVFilterGraph *graph, 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.
static int graph_check_validity (AVFilterGraph *graph, AVClass *log_ctx)
 Check for the validity of graph.
static int graph_config_links (AVFilterGraph *graph, AVClass *log_ctx)
 Configure all the links of graphctx.
AVFilterContextavfilter_graph_get_filter (AVFilterGraph *graph, char *name)
 Get a filter instance with name name from graph.
static int query_formats (AVFilterGraph *graph, AVClass *log_ctx)
static int pick_format (AVFilterLink *link)
static int reduce_formats_on_filter (AVFilterContext *filter)
static void reduce_formats (AVFilterGraph *graph)
static void swap_samplerates_on_filter (AVFilterContext *filter)
static void swap_samplerates (AVFilterGraph *graph)
static void swap_channel_layouts_on_filter (AVFilterContext *filter)
static void swap_channel_layouts (AVFilterGraph *graph)
static void swap_sample_fmts_on_filter (AVFilterContext *filter)
static void swap_sample_fmts (AVFilterGraph *graph)
static int pick_formats (AVFilterGraph *graph)
static int graph_config_formats (AVFilterGraph *graph, AVClass *log_ctx)
 Configure the formats of all the links in the graph.
static int graph_insert_fifos (AVFilterGraph *graph, AVClass *log_ctx)
int avfilter_graph_config (AVFilterGraph *graphctx, void *log_ctx)
 Check validity and configure all the links and formats in the graph.

Variables

static const AVClass filtergraph_class
static const uint64_t ch_subst [][2]

Macro Definition Documentation

#define CH_BACK_PAIR   (AV_CH_BACK_LEFT | AV_CH_BACK_RIGHT)

Definition at line 438 of file avfiltergraph.c.

Definition at line 432 of file avfiltergraph.c.

Definition at line 437 of file avfiltergraph.c.

#define CH_FRONT_PAIR   (AV_CH_FRONT_LEFT | AV_CH_FRONT_RIGHT)

Definition at line 433 of file avfiltergraph.c.

#define CH_SIDE_PAIR   (AV_CH_SIDE_LEFT | AV_CH_SIDE_RIGHT)

Definition at line 436 of file avfiltergraph.c.

#define CH_STEREO_PAIR   (AV_CH_STEREO_LEFT | AV_CH_STEREO_RIGHT)

Definition at line 434 of file avfiltergraph.c.

#define CH_WIDE_PAIR   (AV_CH_WIDE_LEFT | AV_CH_WIDE_RIGHT)

Definition at line 435 of file avfiltergraph.c.

#define REDUCE_FORMATS (   fmt_type,
  list_type,
  list,
  var,
  nb,
  add_format 
)

Definition at line 324 of file avfiltergraph.c.

Referenced by reduce_formats_on_filter().

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.

static int graph_check_validity ( AVFilterGraph graph,
AVClass log_ctx 
)
static

Check for the validity of graph.

A graph is considered valid if all its input and output pads are connected.

Returns
0 in case of success, a negative value otherwise

Definition at line 104 of file avfiltergraph.c.

Referenced by avfilter_graph_config().

static int graph_config_formats ( AVFilterGraph graph,
AVClass log_ctx 
)
static

Configure the formats of all the links in the graph.

Definition at line 636 of file avfiltergraph.c.

Referenced by avfilter_graph_config().

static int graph_config_links ( AVFilterGraph graph,
AVClass log_ctx 
)
static

Configure all the links of graphctx.

Returns
0 in case of success, a negative value otherwise

Definition at line 139 of file avfiltergraph.c.

Referenced by avfilter_graph_config().

static int graph_insert_fifos ( AVFilterGraph graph,
AVClass log_ctx 
)
static

Definition at line 661 of file avfiltergraph.c.

Referenced by avfilter_graph_config().

static int pick_format ( AVFilterLink link)
static

Definition at line 286 of file avfiltergraph.c.

Referenced by pick_formats().

static int pick_formats ( AVFilterGraph graph)
static

Definition at line 616 of file avfiltergraph.c.

Referenced by graph_config_formats().

static int query_formats ( AVFilterGraph graph,
AVClass log_ctx 
)
static

Definition at line 167 of file avfiltergraph.c.

Referenced by graph_config_formats().

static void reduce_formats ( AVFilterGraph graph)
static

Definition at line 373 of file avfiltergraph.c.

Referenced by graph_config_formats().

static int reduce_formats_on_filter ( AVFilterContext filter)
static

Definition at line 359 of file avfiltergraph.c.

Referenced by reduce_formats().

static void swap_channel_layouts ( AVFilterGraph graph)
static

Definition at line 539 of file avfiltergraph.c.

Referenced by graph_config_formats().

static void swap_channel_layouts_on_filter ( AVFilterContext filter)
static

Definition at line 466 of file avfiltergraph.c.

Referenced by swap_channel_layouts().

static void swap_sample_fmts ( AVFilterGraph graph)
static

Definition at line 607 of file avfiltergraph.c.

Referenced by graph_config_formats().

static void swap_sample_fmts_on_filter ( AVFilterContext filter)
static

Definition at line 547 of file avfiltergraph.c.

Referenced by swap_sample_fmts().

static void swap_samplerates ( AVFilterGraph graph)
static

Definition at line 424 of file avfiltergraph.c.

Referenced by graph_config_formats().

static void swap_samplerates_on_filter ( AVFilterContext filter)
static

Definition at line 385 of file avfiltergraph.c.

Referenced by swap_samplerates().

Variable Documentation

const AVClass filtergraph_class
static
Initial value:
{
.class_name = "AVFilterGraph",
.item_name = av_default_item_name,
}

Definition at line 36 of file avfiltergraph.c.

Referenced by avfilter_graph_alloc().