22#ifndef AVFILTER_AVFILTER_H
23#define AVFILTER_AVFILTER_H
50#ifndef HAVE_AV_CONFIG_H
151#define AVFILTER_FLAG_DYNAMIC_INPUTS (1 << 0)
157#define AVFILTER_FLAG_DYNAMIC_OUTPUTS (1 << 1)
162#define AVFILTER_FLAG_SLICE_THREADS (1 << 2)
178#define AVFILTER_FLAG_METADATA_ONLY (1 << 3)
183#define AVFILTER_FLAG_HWDEVICE (1 << 4)
192#define AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC (1 << 16)
200#define AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL (1 << 17)
205#define AVFILTER_FLAG_SUPPORT_TIMELINE (AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL)
266#define AVFILTER_THREAD_SLICE (1 << 0)
313#if FF_API_CONTEXT_PUBLIC
318 struct AVFilterCommand *command_queue;
322#if FF_API_CONTEXT_PUBLIC
353#if FF_API_CONTEXT_PUBLIC
462#define AVFILTER_CMD_FLAG_ONE 1
463#define AVFILTER_CMD_FLAG_FAST 2
544 unsigned filt_srcpad_idx,
unsigned filt_dstpad_idx);
580 void *arg,
int *ret,
int nb_jobs);
697 const char *name,
const char *args,
void *opaque,
Macro definitions for various function/variable attributes.
#define attribute_deprecated
Convenience header that includes libavutil's core.
refcounted data buffer API
reference-counted frame API
struct AVFilterPad AVFilterPad
int avfilter_init_str(AVFilterContext *ctx, const char *args)
Initialize a filter with the supplied parameters.
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.
void avfilter_free(AVFilterContext *filter)
Free a filter context.
int avfilter_graph_config(AVFilterGraph *graphctx, void *log_ctx)
Check validity and configure all the links and formats in the graph.
const AVFilter * avfilter_get_by_name(const char *name)
Get a filter definition matching the given name.
char * avfilter_graph_dump(AVFilterGraph *graph, const char *options)
Dump a graph into a human-readable string representation.
void avfilter_inout_free(AVFilterInOut **inout)
Free the supplied list of AVFilterInOut and set *inout to NULL.
enum AVMediaType avfilter_pad_get_type(const AVFilterPad *pads, int pad_idx)
Get the type of an AVFilterPad.
int avfilter_graph_segment_parse(AVFilterGraph *graph, const char *graph_str, int flags, AVFilterGraphSegment **seg)
Parse a textual filtergraph description into an intermediate form.
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.
const char * avfilter_configuration(void)
Return the libavfilter build-time configuration.
int avfilter_graph_parse_ptr(AVFilterGraph *graph, const char *filters, AVFilterInOut **inputs, AVFilterInOut **outputs, void *log_ctx)
Add a graph described by a string to a graph.
AVFilterContext * avfilter_graph_get_filter(AVFilterGraph *graph, const char *name)
Get a filter instance identified by instance name from graph.
void avfilter_graph_segment_free(AVFilterGraphSegment **seg)
Free the provided AVFilterGraphSegment and everything associated with it.
unsigned avfilter_filter_pad_count(const AVFilter *filter, int is_output)
Get the number of elements in an AVFilter's inputs or outputs array.
AVFilterContext * avfilter_graph_alloc_filter(AVFilterGraph *graph, const AVFilter *filter, const char *name)
Create a new filter instance in a filter graph.
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,...
const char * avfilter_pad_get_name(const AVFilterPad *pads, int pad_idx)
Get the name of an AVFilterPad.
const AVFilter * av_filter_iterate(void **opaque)
Iterate over all registered filters.
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_process_command(AVFilterContext *filter, const char *cmd, const char *arg, char *res, int res_len, int flags)
Make the filter instance process a command.
AVBufferRef * avfilter_link_get_hw_frames_ctx(AVFilterLink *link)
Get the hardware frames context of a filter link.
void avfilter_graph_free(AVFilterGraph **graph)
Free a graph, destroy its links, and set *graph to NULL.
int avfilter_init_dict(AVFilterContext *ctx, AVDictionary **options)
Initialize a filter with the supplied dictionary of options.
int avfilter_graph_segment_apply_opts(AVFilterGraphSegment *seg, int flags)
Apply parsed options to filter instances in a graph segment.
const char * avfilter_license(void)
Return the libavfilter license.
struct AVFilterChannelLayouts AVFilterChannelLayouts
int avfilter_graph_segment_init(AVFilterGraphSegment *seg, int flags)
Initialize all filter instances in a graph segment.
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_request_oldest(AVFilterGraph *graph)
Request a frame on the oldest sink link.
unsigned avfilter_version(void)
Return the LIBAVFILTER_VERSION_INT constant.
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_link(AVFilterContext *src, unsigned srcpad, AVFilterContext *dst, unsigned dstpad)
Link two filters together.
int avfilter_graph_create_filter(AVFilterContext **filt_ctx, const AVFilter *filt, const char *name, const char *args, void *opaque, AVFilterGraph *graph_ctx)
A convenience wrapper that allocates and initializes a filter in a single step.
const AVClass * avfilter_get_class(void)
struct AVFilterFormats AVFilterFormats
int avfilter_graph_segment_link(AVFilterGraphSegment *seg, int flags, AVFilterInOut **inputs, AVFilterInOut **outputs)
Link filters in a graph segment.
int avfilter_graph_segment_apply(AVFilterGraphSegment *seg, int flags, AVFilterInOut **inputs, AVFilterInOut **outputs)
Apply all filter/link descriptions from a graph segment to the associated filtergraph.
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.
int avfilter_graph_segment_create_filters(AVFilterGraphSegment *seg, int flags)
Create filters specified in a graph segment.
void avfilter_graph_set_auto_convert(AVFilterGraph *graph, unsigned flags)
Enable or disable automatic format conversion inside the graph.
AVFilterInOut * avfilter_inout_alloc(void)
Allocate a single AVFilterInOut entry.
AVFilterGraph * avfilter_graph_alloc(void)
Allocate a filter graph.
@ AVFILTER_AUTO_CONVERT_NONE
all automatic conversions disabled
@ AVFILTER_AUTO_CONVERT_ALL
all automatic conversions enabled
struct AVDictionary AVDictionary
Libavfilter version macros.
Libavfilter version macros.
AVColorRange
Visual content value range.
AVColorSpace
YUV colorspace type.
Utilities for rational number calculation.
A reference to a data buffer.
An AVChannelLayout holds information about the channel layout of audio data.
Describe the class of an AVClass context structure.
A filterchain is a list of filter specifications.
AVFilterParams ** filters
const AVClass * av_class
needed for av_log() and filters common options
int nb_threads
Max number of threads allowed in this filter instance.
int thread_type
Type of multithreading being allowed/used.
int extra_hw_frames
Sets the number of extra hardware frames which the filter will allocate on its output links for use i...
char * name
name of this filter instance
unsigned nb_inputs
number of input pads
AVFilterLink ** inputs
array of pointers to input links
char * enable_str
enable expression string
const AVFilter * filter
the AVFilter of which this is an instance
struct AVFilterGraph * graph
filtergraph this filter belongs to
AVFilterPad * input_pads
array of input pads
void * priv
private data for use by the filter
unsigned nb_outputs
number of output pads
AVFilterPad * output_pads
array of output pads
int is_disabled
MUST NOT be accessed from outside avfilter.
AVBufferRef * hw_device_ctx
For filters which will create hardware frames, sets the device the filter should create them in.
AVFilterLink ** outputs
array of pointers to output links
A parsed representation of a filtergraph segment.
char * scale_sws_opts
A string containing a colon-separated list of key=value options applied to all scale filters in this ...
AVFilterGraph * graph
The filtergraph this segment is associated with.
AVFilterChain ** chains
A list of filter chain contained in this segment.
char * scale_sws_opts
sws options to use for the auto-inserted scale filters
AVFilterContext ** filters
unsigned max_buffered_frames
Sets the maximum number of buffered frames in the filtergraph combined.
void * opaque
Opaque user data.
char * aresample_swr_opts
swr options to use for the auto-inserted aresample filters, Access ONLY through AVOptions
int thread_type
Type of multithreading allowed for filters in this graph.
avfilter_execute_func * execute
This callback may be set by the caller immediately after allocating the graph and before adding any f...
int nb_threads
Maximum number of threads used by filters in this graph.
A linked-list of the inputs/outputs of the filter chain.
AVFilterContext * filter_ctx
filter context associated to this input/output
int pad_idx
index of the filt_ctx pad to use for linking
char * name
unique name for this input/output in the list
struct AVFilterInOut * next
next input/input in the list, NULL if this is the last
A link between two filters.
AVFilterFormatsConfig incfg
Lists of supported formats / etc.
int w
agreed upon image width
int h
agreed upon image height
AVFilterFormatsConfig outcfg
Lists of supported formats / etc.
enum AVMediaType type
filter media type
AVFilterContext * src
source filter
AVRational time_base
Define the time base used by the PTS of the frames/samples which will pass through this link.
int sample_rate
samples per second
AVChannelLayout ch_layout
channel layout of current buffer (see libavutil/channel_layout.h)
AVRational sample_aspect_ratio
agreed upon sample aspect ratio
enum AVColorSpace colorspace
For non-YUV links, these are respectively set to fallback values (as appropriate for that colorspace)...
AVFilterPad * srcpad
output pad on the source filter
AVFilterPad * dstpad
input pad on the dest filter
AVFilterContext * dst
dest filter
int format
agreed upon media format
enum AVColorRange color_range
agreed upon YUV color range
AVFrameSideData ** side_data
Parameters of a filter's input or output pad.
char * label
An av_malloc()'ed string containing the pad label.
Parameters describing a filter to be created in a filtergraph.
char * instance_name
Name to be used for this filter instance.
AVFilterPadParams ** inputs
AVFilterPadParams ** outputs
AVDictionary * opts
Options to be applied to the filter.
AVFilterContext * filter
The filter context.
char * filter_name
Name of the AVFilter to be used.
const char * name
Filter name.
int flags
A combination of AVFILTER_FLAG_*.
const AVClass * priv_class
A class for the private data, used to declare filter private AVOptions.
const AVFilterPad * outputs
List of static outputs.
const AVFilterPad * inputs
List of static inputs.
const char * description
A description of the filter.
Structure to hold side data for an AVFrame.
Rational number (pair of numerator and denominator).