FFmpeg  4.2.2
Data Fields
AVFilter Struct Reference

Filter definition. More...

#include <libavfilter/avfilter.h>

Data Fields

const char * name
 Filter name. More...
 
const char * description
 A description of the filter. More...
 
const AVFilterPadinputs
 List of inputs, terminated by a zeroed element. More...
 
const AVFilterPadoutputs
 List of outputs, terminated by a zeroed element. More...
 
const AVClasspriv_class
 A class for the private data, used to declare filter private AVOptions. More...
 
int flags
 A combination of AVFILTER_FLAG_*. More...
 
uint8_t nb_inputs
 The number of entries in the list of inputs. More...
 
uint8_t nb_outputs
 The number of entries in the list of outputs. More...
 
uint8_t formats_state
 This field determines the state of the formats union. More...
 
int(* preinit )(AVFilterContext *ctx)
 Filter pre-initialization function. More...
 
int(* init )(AVFilterContext *ctx)
 Filter initialization function. More...
 
int(* init_dict )(AVFilterContext *ctx, AVDictionary **options)
 Should be set instead of init by the filters that want to pass a dictionary of AVOptions to nested contexts that are allocated during init. More...
 
void(* uninit )(AVFilterContext *ctx)
 Filter uninitialization function. More...
 
int(* query_formats )(AVFilterContext *)
 Query formats supported by the filter on its inputs and outputs. More...
 
union {
   int(*   query_func )(AVFilterContext *)
 Query formats supported by the filter on its inputs and outputs. More...
 
   enum AVPixelFormat *   pixels_list
 A pointer to an array of admissible pixel formats delimited by AV_PIX_FMT_NONE. More...
 
   enum AVSampleFormat *   samples_list
 Analogous to pixels, but delimited by AV_SAMPLE_FMT_NONE and restricted to filters that only have AVMEDIA_TYPE_AUDIO inputs and outputs. More...
 
   enum AVPixelFormat   pix_fmt
 Equivalent to { pix_fmt, AV_PIX_FMT_NONE } as pixels_list. More...
 
   enum AVSampleFormat   sample_fmt
 Equivalent to { sample_fmt, AV_SAMPLE_FMT_NONE } as samples_list. More...
 
formats
 
int priv_size
 size of private data to allocate for the filter More...
 
int flags_internal
 Additional flags for avfilter internal use only. More...
 
struct AVFilternext
 Used by the filter registration system. More...
 
int(* process_command )(AVFilterContext *, const char *cmd, const char *arg, char *res, int res_len, int flags)
 Make the filter instance process a command. More...
 
int(* init_opaque )(AVFilterContext *ctx, void *opaque)
 Filter initialization function, alternative to the init() callback. More...
 
int(* activate )(AVFilterContext *ctx)
 Filter activation function. More...
 

Detailed Description

Filter definition.

This defines the pads a filter contains, and all the callback functions used to interact with the filter.

Examples
filter_audio.c, filtering_audio.c, filtering_video.c, and transcoding.c.

Definition at line 144 of file avfilter.h.

Field Documentation

◆ name

const char* AVFilter::name

Filter name.

Must be non-NULL and unique among filters.

Definition at line 148 of file avfilter.h.

◆ description

const char* AVFilter::description

A description of the filter.

May be NULL.

You should use the NULL_IF_CONFIG_SMALL() macro to define it.

Definition at line 155 of file avfilter.h.

◆ inputs

const AVFilterPad* AVFilter::inputs

List of inputs, terminated by a zeroed element.

NULL if there are no (static) inputs. Instances of filters with AVFILTER_FLAG_DYNAMIC_INPUTS set may have more inputs than present in this list.

Definition at line 164 of file avfilter.h.

◆ outputs

const AVFilterPad* AVFilter::outputs

List of outputs, terminated by a zeroed element.

NULL if there are no (static) outputs. Instances of filters with AVFILTER_FLAG_DYNAMIC_OUTPUTS set may have more outputs than present in this list.

Definition at line 172 of file avfilter.h.

◆ priv_class

const AVClass* AVFilter::priv_class

A class for the private data, used to declare filter private AVOptions.

This field is NULL for filters that do not declare any options.

If this field is non-NULL, the first member of the filter private data must be a pointer to AVClass, which will be set by libavfilter generic code to this class.

Definition at line 182 of file avfilter.h.

◆ flags

int AVFilter::flags

A combination of AVFILTER_FLAG_*.

Definition at line 187 of file avfilter.h.

◆ nb_inputs

uint8_t AVFilter::nb_inputs

The number of entries in the list of inputs.

Definition at line 191 of file avfilter.h.

◆ nb_outputs

uint8_t AVFilter::nb_outputs

The number of entries in the list of outputs.

Definition at line 196 of file avfilter.h.

◆ formats_state

uint8_t AVFilter::formats_state

This field determines the state of the formats union.

It is an enum FilterFormatsState value.

Definition at line 202 of file avfilter.h.

◆ preinit

int(* AVFilter::preinit) (AVFilterContext *ctx)

Filter pre-initialization function.

This callback will be called immediately after the filter context is allocated, to allow allocating and initing sub-objects.

If this callback is not NULL, the uninit callback will be called on allocation failure.

Returns
0 on success, AVERROR code on failure (but the code will be dropped and treated as ENOMEM by the calling code)

Definition at line 224 of file avfilter.h.

◆ init

int(* AVFilter::init) (AVFilterContext *ctx)

Filter initialization function.

This callback will be called only once during the filter lifetime, after all the options have been set, but before links between filters are established and format negotiation is done.

Basic filter initialization should be done here. Filters with dynamic inputs and/or outputs should create those inputs/outputs here based on provided options. No more changes to this filter's inputs/outputs can be done after this callback.

This callback must not assume that the filter links exist or frame parameters are known.

uninit is guaranteed to be called even if initialization fails, so this callback does not have to clean up on failure.

Returns
0 on success, a negative AVERROR on failure

Definition at line 247 of file avfilter.h.

◆ init_dict

int(* AVFilter::init_dict) (AVFilterContext *ctx, AVDictionary **options)

Should be set instead of init by the filters that want to pass a dictionary of AVOptions to nested contexts that are allocated during init.

On return, the options dict should be freed and replaced with one that contains all the options which could not be processed by this filter (or with NULL if all the options were processed).

Otherwise the semantics is the same as for init.

Definition at line 260 of file avfilter.h.

◆ uninit

void(* AVFilter::uninit) (AVFilterContext *ctx)

Filter uninitialization function.

Called only once right before the filter is freed. Should deallocate any memory held by the filter, release any buffer references, etc. It does not need to deallocate the AVFilterContext.priv memory itself.

This callback may be called even if init was not called or failed, so it must be prepared to handle such a situation.

Definition at line 272 of file avfilter.h.

◆ query_formats

int(* AVFilter::query_formats) (AVFilterContext *)

Query formats supported by the filter on its inputs and outputs.

This callback is called after the filter is initialized (so the inputs and outputs are fixed), shortly before the format negotiation. This callback may be called more than once.

This callback must set AVFilterLink.out_formats on every input link and AVFilterLink.in_formats on every output link to a list of pixel/sample formats that the filter supports on that link. For audio links, this filter must also set in_samplerates / out_samplerates and in_channel_layouts / out_channel_layouts analogously.

This callback may be NULL for filters with one input, in which case libavfilter assumes that it supports all input formats and preserves them on output.

Returns
zero on success, a negative value corresponding to an AVERROR code otherwise

Definition at line 296 of file avfilter.h.

◆ query_func

int(* AVFilter::query_func) (AVFilterContext *)

Query formats supported by the filter on its inputs and outputs.

This callback is called after the filter is initialized (so the inputs and outputs are fixed), shortly before the format negotiation. This callback may be called more than once.

This callback must set AVFilterLink's outcfg.formats on every input link and incfg.formats on every output link to a list of pixel/sample formats that the filter supports on that link. For audio links, this filter must also set incfg.samplerates / outcfg.samplerates and incfg.channel_layouts / outcfg.channel_layouts analogously.

This callback must never be NULL if the union is in this state.

Returns
zero on success, a negative value corresponding to an AVERROR code otherwise

Definition at line 326 of file avfilter.h.

◆ pixels_list

enum AVPixelFormat* AVFilter::pixels_list

A pointer to an array of admissible pixel formats delimited by AV_PIX_FMT_NONE.

The generic code will use this list to indicate that this filter supports each of these pixel formats, provided that all inputs and outputs use the same pixel format.

This list must never be NULL if the union is in this state. The type of all inputs and outputs of filters using this must be AVMEDIA_TYPE_VIDEO.

Definition at line 337 of file avfilter.h.

◆ samples_list

enum AVSampleFormat* AVFilter::samples_list

Analogous to pixels, but delimited by AV_SAMPLE_FMT_NONE and restricted to filters that only have AVMEDIA_TYPE_AUDIO inputs and outputs.

In addition to that the generic code will mark all inputs and all outputs as supporting all sample rates and every channel count and channel layout, as long as all inputs and outputs use the same sample rate and channel count/layout.

Definition at line 348 of file avfilter.h.

◆ pix_fmt

enum AVPixelFormat AVFilter::pix_fmt

Equivalent to { pix_fmt, AV_PIX_FMT_NONE } as pixels_list.

Definition at line 352 of file avfilter.h.

◆ sample_fmt

enum AVSampleFormat AVFilter::sample_fmt

Equivalent to { sample_fmt, AV_SAMPLE_FMT_NONE } as samples_list.

Definition at line 356 of file avfilter.h.

◆ formats

union { ... } AVFilter::formats

◆ priv_size

int AVFilter::priv_size

size of private data to allocate for the filter

Definition at line 359 of file avfilter.h.

◆ flags_internal

int AVFilter::flags_internal

Additional flags for avfilter internal use only.

Definition at line 361 of file avfilter.h.

◆ next

struct AVFilter* AVFilter::next

Used by the filter registration system.

Must not be touched by any other code.

Definition at line 367 of file avfilter.h.

◆ process_command

int(* AVFilter::process_command) (AVFilterContext *, const char *cmd, const char *arg, char *res, int res_len, int flags)

Make the filter instance process a command.

Parameters
cmdthe command to process, 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. This must not change when the command is not supported.
flagsif AVFILTER_CMD_FLAG_FAST is set and the command would be time consuming then a filter should treat it like an unsupported command
Returns
>=0 on success otherwise an error code. AVERROR(ENOSYS) on unsupported commands

Definition at line 381 of file avfilter.h.

◆ init_opaque

int(* AVFilter::init_opaque) (AVFilterContext *ctx, void *opaque)

Filter initialization function, alternative to the init() callback.

Args contains the user-supplied parameters, opaque is used for providing binary data.

Definition at line 388 of file avfilter.h.

◆ activate

int(* AVFilter::activate) (AVFilterContext *ctx)

Filter activation function.

Called when any processing is needed from the filter, instead of any filter_frame and request_frame on pads.

The function must examine inlinks and outlinks and perform a single step of processing. If there is nothing to do, the function must do nothing and not return an error. If more steps are or may be possible, it must use ff_filter_set_ready() to schedule another activation.

Definition at line 402 of file avfilter.h.


The documentation for this struct was generated from the following file: