FFmpeg
|
Graph-based frame editing library. More...
Modules | |
Buffer sink API | |
Buffer source API | |
Files | |
file | avfilter.h |
file | version.h |
file | version_major.h |
Data Structures | |
struct | AVFilter |
Filter definition. More... | |
struct | AVFilterContext |
An instance of a filter. More... | |
struct | AVFilterFormatsConfig |
Lists of formats / etc. More... | |
struct | AVFilterLink |
A link between two filters. More... | |
struct | AVFilterGraph |
struct | AVFilterInOut |
A linked-list of the inputs/outputs of the filter chain. More... | |
struct | AVFilterPadParams |
Parameters of a filter's input or output pad. More... | |
struct | AVFilterParams |
Parameters describing a filter to be created in a filtergraph. More... | |
struct | AVFilterChain |
A filterchain is a list of filter specifications. More... | |
struct | AVFilterGraphSegment |
A parsed representation of a filtergraph segment. More... | |
Macros | |
#define | AVFILTER_FLAG_DYNAMIC_INPUTS (1 << 0) |
The number of the filter inputs is not determined just by AVFilter.inputs. More... | |
#define | AVFILTER_FLAG_DYNAMIC_OUTPUTS (1 << 1) |
The number of the filter outputs is not determined just by AVFilter.outputs. More... | |
#define | AVFILTER_FLAG_SLICE_THREADS (1 << 2) |
The filter supports multithreading by splitting frames into multiple parts and processing them concurrently. More... | |
#define | AVFILTER_FLAG_METADATA_ONLY (1 << 3) |
The filter is a "metadata" filter - it does not modify the frame data in any way. More... | |
#define | AVFILTER_FLAG_HWDEVICE (1 << 4) |
The filter can create hardware frames using AVFilterContext.hw_device_ctx. More... | |
#define | AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC (1 << 16) |
Some filters support a generic "enable" expression option that can be used to enable or disable a filter in the timeline. More... | |
#define | AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL (1 << 17) |
Same as AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, except that the filter will have its filter_frame() callback(s) called as usual even when the enable expression is false. More... | |
#define | AVFILTER_FLAG_SUPPORT_TIMELINE (AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL) |
Handy mask to test whether the filter supports or no the timeline feature (internally or generically). More... | |
#define | AVFILTER_THREAD_SLICE (1 << 0) |
Process multiple parts of the frame concurrently. More... | |
#define | AVFILTER_CMD_FLAG_ONE 1 |
Stop once a filter understood the command (for target=all for example), fast filters are favored automatically. More... | |
#define | AVFILTER_CMD_FLAG_FAST 2 |
Only execute command when its fast (like a video out that supports contrast adjustment in hw) More... | |
Typedefs | |
typedef 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, possibly in parallel. More... | |
typedef 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. More... | |
Enumerations | |
enum | { AVFILTER_AUTO_CONVERT_ALL = 0, AVFILTER_AUTO_CONVERT_NONE = -1 } |
Functions | |
unsigned | avfilter_version (void) |
Return the LIBAVFILTER_VERSION_INT constant. More... | |
const char * | avfilter_configuration (void) |
Return the libavfilter build-time configuration. More... | |
const char * | avfilter_license (void) |
Return the libavfilter license. More... | |
const char * | avfilter_pad_get_name (const AVFilterPad *pads, int pad_idx) |
Get the name of an AVFilterPad. More... | |
enum AVMediaType | avfilter_pad_get_type (const AVFilterPad *pads, int pad_idx) |
Get the type of an AVFilterPad. More... | |
unsigned | avfilter_filter_pad_count (const AVFilter *filter, int is_output) |
Get the number of elements in an AVFilter's inputs or outputs array. More... | |
int | avfilter_link (AVFilterContext *src, unsigned srcpad, AVFilterContext *dst, unsigned dstpad) |
Link two filters together. More... | |
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. More... | |
const AVFilter * | av_filter_iterate (void **opaque) |
Iterate over all registered filters. More... | |
const AVFilter * | avfilter_get_by_name (const char *name) |
Get a filter definition matching the given name. More... | |
int | avfilter_init_str (AVFilterContext *ctx, const char *args) |
Initialize a filter with the supplied parameters. More... | |
int | avfilter_init_dict (AVFilterContext *ctx, AVDictionary **options) |
Initialize a filter with the supplied dictionary of options. More... | |
void | avfilter_free (AVFilterContext *filter) |
Free a filter context. More... | |
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. More... | |
const AVClass * | avfilter_get_class (void) |
AVFilterGraph * | avfilter_graph_alloc (void) |
Allocate a filter graph. More... | |
AVFilterContext * | avfilter_graph_alloc_filter (AVFilterGraph *graph, const AVFilter *filter, const char *name) |
Create a new filter instance in a filter graph. More... | |
AVFilterContext * | avfilter_graph_get_filter (AVFilterGraph *graph, const char *name) |
Get a filter instance identified by instance name from graph. More... | |
int | avfilter_graph_create_filter (AVFilterContext **filt_ctx, const AVFilter *filt, const char *name, const char *args, void *opaque, AVFilterGraph *graph_ctx) |
Create and add a filter instance into an existing graph. More... | |
void | avfilter_graph_set_auto_convert (AVFilterGraph *graph, unsigned flags) |
Enable or disable automatic format conversion inside the graph. More... | |
int | avfilter_graph_config (AVFilterGraph *graphctx, void *log_ctx) |
Check validity and configure all the links and formats in the graph. More... | |
void | avfilter_graph_free (AVFilterGraph **graph) |
Free a graph, destroy its links, and set *graph to NULL. More... | |
AVFilterInOut * | avfilter_inout_alloc (void) |
Allocate a single AVFilterInOut entry. More... | |
void | avfilter_inout_free (AVFilterInOut **inout) |
Free the supplied list of AVFilterInOut and set *inout to NULL. More... | |
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. More... | |
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. More... | |
int | avfilter_graph_parse2 (AVFilterGraph *graph, const char *filters, AVFilterInOut **inputs, AVFilterInOut **outputs) |
Add a graph described by a string to a graph. More... | |
int | avfilter_graph_segment_parse (AVFilterGraph *graph, const char *graph_str, int flags, AVFilterGraphSegment **seg) |
Parse a textual filtergraph description into an intermediate form. More... | |
int | avfilter_graph_segment_create_filters (AVFilterGraphSegment *seg, int flags) |
Create filters specified in a graph segment. More... | |
int | avfilter_graph_segment_apply_opts (AVFilterGraphSegment *seg, int flags) |
Apply parsed options to filter instances in a graph segment. More... | |
int | avfilter_graph_segment_init (AVFilterGraphSegment *seg, int flags) |
Initialize all filter instances in a graph segment. More... | |
int | avfilter_graph_segment_link (AVFilterGraphSegment *seg, int flags, AVFilterInOut **inputs, AVFilterInOut **outputs) |
Link filters in a graph segment. More... | |
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. More... | |
void | avfilter_graph_segment_free (AVFilterGraphSegment **seg) |
Free the provided AVFilterGraphSegment and everything associated with it. More... | |
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. More... | |
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. More... | |
char * | avfilter_graph_dump (AVFilterGraph *graph, const char *options) |
Dump a graph into a human-readable string representation. More... | |
int | avfilter_graph_request_oldest (AVFilterGraph *graph) |
Request a frame on the oldest sink link. More... | |
Graph-based frame editing library.
#define AVFILTER_FLAG_DYNAMIC_INPUTS (1 << 0) |
The number of the filter inputs is not determined just by AVFilter.inputs.
The filter might add additional inputs during initialization depending on the options supplied to it.
Definition at line 106 of file avfilter.h.
#define AVFILTER_FLAG_DYNAMIC_OUTPUTS (1 << 1) |
The number of the filter outputs is not determined just by AVFilter.outputs.
The filter might add additional outputs during initialization depending on the options supplied to it.
Definition at line 112 of file avfilter.h.
#define AVFILTER_FLAG_SLICE_THREADS (1 << 2) |
The filter supports multithreading by splitting frames into multiple parts and processing them concurrently.
Definition at line 117 of file avfilter.h.
#define AVFILTER_FLAG_METADATA_ONLY (1 << 3) |
The filter is a "metadata" filter - it does not modify the frame data in any way.
It may only affect the metadata (i.e. those fields copied by av_frame_copy_props()).
More precisely, this means:
Definition at line 133 of file avfilter.h.
#define AVFILTER_FLAG_HWDEVICE (1 << 4) |
The filter can create hardware frames using AVFilterContext.hw_device_ctx.
Definition at line 138 of file avfilter.h.
#define AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC (1 << 16) |
Some filters support a generic "enable" expression option that can be used to enable or disable a filter in the timeline.
Filters supporting this option have this flag set. When the enable expression is false, the default no-op filter_frame() function is called in place of the filter_frame() callback defined on each input pad, thus the frame is passed unchanged to the next filters.
Definition at line 147 of file avfilter.h.
#define AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL (1 << 17) |
Same as AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, except that the filter will have its filter_frame() callback(s) called as usual even when the enable expression is false.
The filter will disable filtering within the filter_frame() callback(s) itself, for example executing code depending on the AVFilterContext->is_disabled value.
Definition at line 155 of file avfilter.h.
#define AVFILTER_FLAG_SUPPORT_TIMELINE (AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL) |
Handy mask to test whether the filter supports or no the timeline feature (internally or generically).
Definition at line 160 of file avfilter.h.
#define AVFILTER_THREAD_SLICE (1 << 0) |
Process multiple parts of the frame concurrently.
Definition at line 404 of file avfilter.h.
#define AVFILTER_CMD_FLAG_ONE 1 |
Stop once a filter understood the command (for target=all for example), fast filters are favored automatically.
Definition at line 693 of file avfilter.h.
#define AVFILTER_CMD_FLAG_FAST 2 |
Only execute command when its fast (like a video out that supports contrast adjustment in hw)
Definition at line 694 of file avfilter.h.
A function pointer passed to the AVFilterGraph::execute callback to be executed multiple times, possibly in parallel.
ctx | the filter context the job belongs to |
arg | an opaque parameter passed through from AVFilterGraph::execute |
jobnr | the index of the job being executed |
nb_jobs | the total number of jobs |
Definition at line 796 of file avfilter.h.
typedef 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.
ctx | the filter context to which the jobs belong |
func | the function to be called multiple times |
arg | the argument to be passed to func |
ret | a nb_jobs-sized array to be filled with return values from each invocation of func |
nb_jobs | the number of jobs to execute |
Definition at line 810 of file avfilter.h.
anonymous enum |
Enumerator | |
---|---|
AVFILTER_AUTO_CONVERT_ALL | all automatic conversions enabled |
AVFILTER_AUTO_CONVERT_NONE | all automatic conversions disabled |
Definition at line 927 of file avfilter.h.
unsigned avfilter_version | ( | void | ) |
const char* avfilter_configuration | ( | void | ) |
const char* avfilter_license | ( | void | ) |
const char* avfilter_pad_get_name | ( | const AVFilterPad * | pads, |
int | pad_idx | ||
) |
Get the name of an AVFilterPad.
pads | an array of AVFilterPads |
pad_idx | index of the pad in the array; it is the caller's responsibility to ensure the index is valid |
Definition at line 972 of file avfilter.c.
Referenced by describe_filter_link(), print_digraph(), and print_formats_internal().
enum AVMediaType avfilter_pad_get_type | ( | const AVFilterPad * | pads, |
int | pad_idx | ||
) |
Get the type of an AVFilterPad.
pads | an array of AVFilterPads |
pad_idx | index of the pad in the array; it is the caller's responsibility to ensure the index is valid |
Definition at line 977 of file avfilter.c.
Referenced by configure_output_filter(), create_sink(), fg_create(), insert_trim(), lavfi_read_header(), main(), and show_filters().
Get the number of elements in an AVFilter's inputs or outputs array.
Definition at line 615 of file avfilter.c.
Referenced by fg_create(), and show_filters().
int avfilter_link | ( | AVFilterContext * | src, |
unsigned | srcpad, | ||
AVFilterContext * | dst, | ||
unsigned | dstpad | ||
) |
Link two filters together.
src | the source filter |
srcpad | index of the output pad on the source filter |
dst | the destination filter |
dstpad | index of the input pad on the destination filter |
Definition at line 148 of file avfilter.c.
Referenced by avfilter_graph_parse(), avfilter_graph_parse_ptr(), avfilter_insert_filter(), configure_filtergraph(), configure_input_audio_filter(), configure_input_video_filter(), configure_output_audio_filter(), configure_output_video_filter(), create_sink(), init_filter_graph(), insert_filter(), insert_trim(), lavfi_read_header(), link_inputs(), and link_outputs().
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.
It is recommended to use avfilter_graph_send_command().
Definition at line 594 of file avfilter.c.
Referenced by avfilter_graph_send_command(), and ff_inlink_process_commands().
const AVFilter* av_filter_iterate | ( | void ** | opaque | ) |
Iterate over all registered filters.
opaque | a pointer where libavfilter will store the iteration state. Must point to NULL to start the iteration. |
Definition at line 618 of file allfilters.c.
Referenced by avfilter_get_by_name(), filter_child_class_iterate(), and show_filters().
const AVFilter* avfilter_get_by_name | ( | const char * | name | ) |
Get a filter definition matching the given name.
name | the filter name to find |
Definition at line 629 of file allfilters.c.
Referenced by avfilter_graph_segment_create_filters(), configure_audio_filters(), configure_input_audio_filter(), configure_input_video_filter(), configure_output_audio_filter(), configure_output_video_filter(), configure_video_filters(), create_sink(), filter_parse(), init_filter(), init_filter_graph(), init_filters(), insert_filter(), insert_trim(), lavfi_read_header(), main(), and query_formats().
int avfilter_init_str | ( | AVFilterContext * | ctx, |
const char * | args | ||
) |
Initialize a filter with the supplied parameters.
ctx | uninitialized filter context to initialize |
args | Options to initialize the filter with. This must be a ':'-separated list of options in the 'key=value' form. May be NULL if the options have been set directly using the AVOptions API or there are no options that need to be set. |
Definition at line 944 of file avfilter.c.
Referenced by avfilter_graph_create_filter(), init_filter_graph(), insert_trim(), and main().
int avfilter_init_dict | ( | AVFilterContext * | ctx, |
AVDictionary ** | options | ||
) |
Initialize a filter with the supplied dictionary of options.
ctx | uninitialized filter context to initialize |
options | An AVDictionary filled with options for this filter. On return this parameter will be destroyed and replaced with a dict containing options that were not found. This dictionary must be freed by the caller. May be NULL, then this function is equivalent to avfilter_init_str() with the second parameter set to NULL. |
Definition at line 903 of file avfilter.c.
Referenced by avfilter_graph_segment_init(), avfilter_init_str(), and init_filter_graph().
void avfilter_free | ( | AVFilterContext * | filter | ) |
Free a filter context.
This will also remove the filter from its filtergraph's list of filters.
filter | the filter to free |
Definition at line 780 of file avfilter.c.
Referenced by avfilter_graph_create_filter(), avfilter_graph_free(), avfilter_graph_parse(), avfilter_graph_parse2(), avfilter_graph_parse_ptr(), avfilter_graph_segment_create_filters(), and main().
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.
link | the link into which the filter should be inserted |
filt | the filter to be inserted |
filt_srcpad_idx | the input pad on the filter to connect |
filt_dstpad_idx | the output pad on the filter to connect |
Definition at line 286 of file avfilter.c.
Referenced by query_formats().
const AVClass* avfilter_get_class | ( | void | ) |
Definition at line 1611 of file avfilter.c.
Referenced by show_help_default().
AVFilterGraph* avfilter_graph_alloc | ( | void | ) |
Allocate a filter graph.
Definition at line 82 of file avfiltergraph.c.
Referenced by configure_audio_filters(), configure_filtergraph(), fg_create(), init_filter(), init_filter_graph(), init_filters(), lavfi_read_header(), main(), and video_thread().
AVFilterContext* avfilter_graph_alloc_filter | ( | AVFilterGraph * | graph, |
const AVFilter * | filter, | ||
const char * | name | ||
) |
Create a new filter instance in a filter graph.
graph | graph in which the new filter will be used |
filter | the filter to create an instance of |
name | Name to give to the new instance (will be copied to AVFilterContext.name). This may be used by the caller to identify different filters, libavfilter itself assigns no semantics to this parameter. May be NULL. |
Definition at line 164 of file avfiltergraph.c.
Referenced by avfilter_graph_create_filter(), avfilter_graph_segment_create_filters(), init_filter_graph(), insert_trim(), and main().
AVFilterContext* avfilter_graph_get_filter | ( | AVFilterGraph * | graph, |
const char * | name | ||
) |
Get a filter instance identified by instance name from graph.
graph | filter graph to search through. |
name | filter instance name (should be unique in the graph). |
Definition at line 283 of file avfiltergraph.c.
int avfilter_graph_create_filter | ( | AVFilterContext ** | filt_ctx, |
const 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 parameter args. opaque is currently ignored.
In case of success put in *filt_ctx the pointer to the created filter instance, otherwise set *filt_ctx to NULL.
name | the instance name to give to the created filter instance |
graph_ctx | the filter graph |
Definition at line 137 of file avfiltergraph.c.
Referenced by configure_audio_filters(), configure_input_audio_filter(), configure_input_video_filter(), configure_output_audio_filter(), configure_output_video_filter(), configure_video_filters(), create_sink(), init_filter(), init_filters(), insert_filter(), 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 aresample filters.
flags | any of the AVFILTER_AUTO_CONVERT_* constants |
Definition at line 159 of file avfiltergraph.c.
Referenced by configure_filtergraph(), and init().
int avfilter_graph_config | ( | AVFilterGraph * | graphctx, |
void * | log_ctx | ||
) |
Check validity and configure all the links and formats in the graph.
graphctx | the filter graph |
log_ctx | context used for logging |
Definition at line 1243 of file avfiltergraph.c.
Referenced by configure_filtergraph(), init_filter(), init_filter_graph(), init_filters(), lavfi_read_header(), and main().
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 116 of file avfiltergraph.c.
Referenced by audio_thread(), cleanup_filtergraph(), configure_audio_filters(), fg_create(), fg_thread_uninit(), lavfi_read_close(), main(), and video_thread().
AVFilterInOut* avfilter_inout_alloc | ( | void | ) |
Allocate a single AVFilterInOut entry.
Must be freed with avfilter_inout_free().
Definition at line 71 of file graphparser.c.
Referenced by configure_filtergraph(), init_filter(), and 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 76 of file graphparser.c.
Referenced by avfilter_graph_parse(), avfilter_graph_parse_ptr(), avfilter_graph_segment_link(), configure_filtergraph(), fg_create(), init_filter(), init_filters(), inout_add(), 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.
graph | the filter graph where to link the parsed graph context |
filters | string to be parsed |
inputs | linked list to the inputs of the graph |
outputs | linked list to the outputs of the graph |
Definition at line 164 of file graphparser.c.
Referenced by main().
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.
In the graph filters description, if the input label of the first filter is not specified, "in" is assumed; if the output label of the last filter is not specified, "out" is assumed.
graph | the filter graph where to link the parsed graph context |
filters | string to be parsed |
inputs | pointer 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(). |
outputs | pointer 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(). |
Definition at line 919 of file graphparser.c.
Referenced by configure_filtergraph(), init_filter(), 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.
[in] | graph | the filter graph where to link the parsed graph context |
[in] | filters | string to be parsed |
[out] | inputs | a 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] | outputs | a 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(). |
Definition at line 138 of file graphparser.c.
Referenced by avfilter_graph_parse().
int avfilter_graph_segment_parse | ( | AVFilterGraph * | graph, |
const char * | graph_str, | ||
int | flags, | ||
AVFilterGraphSegment ** | seg | ||
) |
Parse a textual filtergraph description into an intermediate form.
This intermediate representation is intended to be modified by the caller as described in the documentation of AVFilterGraphSegment and its children, and then applied to the graph either manually or with other avfilter_graph_segment_*() functions. See the documentation for avfilter_graph_segment_apply() for the canonical way to apply AVFilterGraphSegment.
graph | Filter graph the parsed segment is associated with. Will only be used for logging and similar auxiliary purposes. The graph will not be actually modified by this function - the parsing results are instead stored in seg for further processing. |
graph_str | a string describing the filtergraph segment |
flags | reserved for future use, caller must set to 0 for now |
seg | A pointer to the newly-created AVFilterGraphSegment is written here on success. The graph segment is owned by the caller and must be freed with avfilter_graph_segment_free() before graph itself is freed. |
non-negative number | success |
negative error code | failure |
Definition at line 460 of file graphparser.c.
Referenced by avfilter_graph_parse2(), avfilter_graph_parse_ptr(), and graph_parse().
int avfilter_graph_segment_create_filters | ( | AVFilterGraphSegment * | seg, |
int | flags | ||
) |
Create filters specified in a graph segment.
Walk through the creation-pending AVFilterParams in the segment and create new filter instances for them. Creation-pending params are those where AVFilterParams.filter_name is non-NULL (and hence AVFilterParams.filter is NULL). All other AVFilterParams instances are ignored.
For any filter created by this function, the corresponding AVFilterParams.filter is set to the newly-created filter context, AVFilterParams.filter_name and AVFilterParams.instance_name are freed and set to NULL.
seg | the filtergraph segment to process |
flags | reserved for future use, caller must set to 0 for now |
non-negative number | Success, all creation-pending filters were successfully created |
AVERROR_FILTER_NOT_FOUND | some filter's name did not correspond to a known filter |
another negative error code | other failures |
Definition at line 516 of file graphparser.c.
Referenced by avfilter_graph_parse_ptr(), avfilter_graph_segment_apply(), and graph_parse().
int avfilter_graph_segment_apply_opts | ( | AVFilterGraphSegment * | seg, |
int | flags | ||
) |
Apply parsed options to filter instances in a graph segment.
Walk through all filter instances in the graph segment that have option dictionaries associated with them and apply those options with av_opt_set_dict2(..., AV_OPT_SEARCH_CHILDREN). AVFilterParams.opts is replaced by the dictionary output by av_opt_set_dict2(), which should be empty (NULL) if all options were successfully applied.
If any options could not be found, this function will continue processing all other filters and finally return AVERROR_OPTION_NOT_FOUND (unless another error happens). The calling program may then deal with unapplied options as it wishes.
Any creation-pending filters (see avfilter_graph_segment_create_filters()) present in the segment will cause this function to fail. AVFilterParams with no associated filter context are simply skipped.
seg | the filtergraph segment to process |
flags | reserved for future use, caller must set to 0 for now |
non-negative number | Success, all options were successfully applied. |
AVERROR_OPTION_NOT_FOUND | some options were not found in a filter |
another negative error code | other failures |
Definition at line 586 of file graphparser.c.
Referenced by avfilter_graph_parse_ptr(), and avfilter_graph_segment_apply().
int avfilter_graph_segment_init | ( | AVFilterGraphSegment * | seg, |
int | flags | ||
) |
Initialize all filter instances in a graph segment.
Walk through all filter instances in the graph segment and call avfilter_init_dict(..., NULL) on those that have not been initialized yet.
Any creation-pending filters (see avfilter_graph_segment_create_filters()) present in the segment will cause this function to fail. AVFilterParams with no associated filter context or whose filter context is already initialized, are simply skipped.
seg | the filtergraph segment to process |
flags | reserved for future use, caller must set to 0 for now |
non-negative number | Success, all filter instances were successfully initialized |
negative error code | failure |
Definition at line 616 of file graphparser.c.
Referenced by avfilter_graph_parse_ptr(), and avfilter_graph_segment_apply().
int avfilter_graph_segment_link | ( | AVFilterGraphSegment * | seg, |
int | flags, | ||
AVFilterInOut ** | inputs, | ||
AVFilterInOut ** | outputs | ||
) |
Link filters in a graph segment.
Walk through all filter instances in the graph segment and try to link all unlinked input and output pads. Any creation-pending filters (see avfilter_graph_segment_create_filters()) present in the segment will cause this function to fail. Disabled filters and already linked pads are skipped.
Every filter output pad that has a corresponding AVFilterPadParams with a non-NULL label is
Similarly, unlinked input pads are exported in the inputs linked list.
seg | the filtergraph segment to process | |
flags | reserved for future use, caller must set to 0 for now | |
[out] | inputs | a linked list of all free (unlinked) inputs of the filters in this graph segment will be returned here. It is to be freed by the caller using avfilter_inout_free(). |
[out] | outputs | a linked list of all free (unlinked) outputs of the filters in this graph segment will be returned here. It is to be freed by the caller using avfilter_inout_free(). |
non-negative number | success |
negative error code | failure |
Definition at line 813 of file graphparser.c.
Referenced by avfilter_graph_segment_apply().
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.
This functions is currently equivalent to calling the following in sequence:
Since the above functions are idempotent, the caller may call some of them manually, then do some custom processing on the filtergraph, then call this function to do the rest.
seg | the filtergraph segment to process | |
flags | reserved for future use, caller must set to 0 for now | |
[out] | inputs | passed to avfilter_graph_segment_link() |
[out] | outputs | passed to avfilter_graph_segment_link() |
non-negative number | success |
negative error code | failure |
Definition at line 881 of file graphparser.c.
Referenced by avfilter_graph_parse2(), avfilter_graph_parse_ptr(), and graph_parse().
void avfilter_graph_segment_free | ( | AVFilterGraphSegment ** | seg | ) |
Free the provided AVFilterGraphSegment and everything associated with it.
seg | double pointer to the AVFilterGraphSegment to be freed. NULL will be written to this pointer on exit from this function. |
Definition at line 276 of file graphparser.c.
Referenced by avfilter_graph_parse2(), avfilter_graph_parse_ptr(), avfilter_graph_segment_parse(), and graph_parse().
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.
graph | the filter graph |
target | the 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. |
cmd | the command to send, for handling simplicity all commands must be alphanumeric only |
arg | the argument for the command |
res | a buffer with size res_size where the filter(s) can return a response. |
Definition at line 1261 of file avfiltergraph.c.
Referenced by filter_frame(), and send_command().
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.
graph | the filter graph |
target | the 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. |
cmd | the command to sent, for handling simplicity all commands must be alphanumeric only |
arg | the argument for the command |
ts | time at which the command should be sent to the filter |
Definition at line 1291 of file avfiltergraph.c.
Referenced by send_command().
char* avfilter_graph_dump | ( | AVFilterGraph * | graph, |
const char * | options | ||
) |
Dump a graph into a human-readable string representation.
graph | the graph to dump |
options | formatting options; currently ignored |
Definition at line 155 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.
Definition at line 1373 of file avfiltergraph.c.
Referenced by configure_filtergraph(), main(), and read_frames().