FFmpeg
|
基于图形的框架编辑库。 更多的...
模块 | |
缓冲接收器API | |
缓冲区源API | |
文件 | |
file | AV过滤器.h |
file | 版本.h |
file | 版本_主要.h |
数据结构 | |
struct | 音视频过滤器 |
过滤器定义。 更多的... | |
struct | AV过滤上下文 |
过滤器的实例。 更多的... | |
struct | AVFilterFormats配置 |
格式列表/等 更多... | |
struct | AV过滤器链接 |
两个过滤器之间的链接。 更多的... | |
struct | AV过滤图 |
struct | AV过滤输入输出 |
过滤器链的输入/输出的链表。 更多的... | |
struct | AVFilterPad参数 |
滤波器输入或输出垫的参数。 更多的... | |
struct | AV过滤参数 |
描述要在过滤器图中创建的过滤器的参数。 更多的... | |
struct | AV过滤链 |
过滤器链是过滤器规范的列表。 更多的... | |
struct | AVFilterGraphSegment |
过滤器图段的解析表示。 更多的... | |
宏 | |
#define | AVFILTER_FLAG_DYNAMIC_INPUTS (1 << 0) |
过滤器输入的数量不仅仅由AVFilter.inputs决定。 更多的... | |
#define | AVFILTER_FLAG_DYNAMIC_OUTPUTS (1 << 1) |
过滤器输出的数量不仅仅由AVFilter.outputs决定。 更多的... | |
#define | AVFILTER_FLAG_SLICE_THREADS (1 << 2) |
该过滤器通过将帧分割成多个部分并同时处理它们来支持多线程。 更多的... | |
#define | AVFILTER_FLAG_METADATA_ONLY (1 << 3) |
该过滤器是一个“元数据”过滤器 - 它不会以任何方式修改帧数据。 更多的... | |
#define | AVFILTER_FLAG_HWDEVICE (1 << 4) |
过滤器可以使用AVFilterContext.hw_device_ctx创建硬件帧。 更多的... | |
#define | AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC (1 << 16) |
某些过滤器支持通用“启用”表达式选项,可用于启用或禁用时间线中的过滤器。 更多的... | |
#define | AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL (1 << 17) |
与 AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC 相同,不同之处在于,即使启用表达式为 false,过滤器也会照常调用其filter_frame()回调。 更多的... | |
#define | AVFILTER_FLAG_SUPPORT_TIMELINE ( AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL ) |
方便的掩码,用于测试过滤器是否支持时间线功能(内部或一般)。 更多的... | |
#define | AVFILTER_THREAD_SLICE (1 << 0) |
同时处理框架的多个部分。 更多的... | |
#define | AVFILTER_CMD_FLAG_ONE 1 |
一旦过滤器理解了命令(例如 target=all),就停止,快速过滤器会自动受到青睐。 更多的... | |
#define | AVFILTER_CMD_FLAG_FAST 2 |
仅在速度快时执行命令(例如支持硬件对比度调整的视频输出) 更多... | |
类型定义 | |
typedef int() | avfilter_action_func ( AVFilterContext * ctx , void * arg , int jobnr, int nb_jobs) |
传递给AVFilterGraph::execute回调的函数指针将被多次执行,可能是并行执行。 更多的... | |
typedef int() | avfilter_execute_func ( AVFilterContext * ctx , avfilter_action_func * func , void * arg , int * ret , int nb_jobs) |
一个函数执行多个作业,可能是并行的。 更多的... | |
枚举 | |
enum | { AVFILTER_AUTO_CONVERT_ALL = 0, AVFILTER_AUTO_CONVERT_NONE = -1 } |
基于图形的框架编辑库。
#define AVFILTER_FLAG_DYNAMIC_INPUTS (1 << 0) |
#define AVFILTER_FLAG_DYNAMIC_OUTPUTS (1 << 1) |
#define AVFILTER_FLAG_SLICE_THREADS (1 << 2) |
该过滤器通过将帧分割成多个部分并同时处理它们来支持多线程。
定义位于文件avfilter.h的第117行。
#define AVFILTER_FLAG_METADATA_ONLY (1 << 3) |
该过滤器是一个“元数据”过滤器 - 它不会以任何方式修改帧数据。
它可能只影响元数据(即由av_frame_copy_props()复制的那些字段)。
更准确地说,这意味着:
定义位于文件avfilter.h的第133行。
#define AVFILTER_FLAG_HWDEVICE (1 << 4) |
过滤器可以使用AVFilterContext.hw_device_ctx创建硬件帧。
定义位于文件avfilter.h的第138行。
#define AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC (1 << 16) |
某些过滤器支持通用“启用”表达式选项,可用于启用或禁用时间线中的过滤器。
支持此选项的过滤器设置了此标志。当启用表达式为 false 时,将调用默认的无操作filter_frame()函数来代替每个输入板上定义的filter_frame()回调,从而将帧原封不动地传递到下一个过滤器。
定义位于文件avfilter.h的第147行。
#define AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL (1 << 17) |
与 AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC 相同,不同之处在于,即使启用表达式为 false,过滤器也会照常调用其filter_frame()回调。
过滤器将在filter_frame()回调本身内禁用过滤,例如根据 AVFilterContext->is_disabled 值执行代码。
定义位于文件avfilter.h的第155行。
#define AVFILTER_FLAG_SUPPORT_TIMELINE (AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL) |
方便的掩码,用于测试过滤器是否支持时间线功能(内部或一般)。
定义位于文件avfilter.h的第160行。
#define AVFILTER_THREAD_SLICE (1 << 0) |
同时处理框架的多个部分。
定义位于文件avfilter.h的第392行。
#define AVFILTER_CMD_FLAG_ONE 1 |
一旦过滤器理解了命令(例如 target=all),就停止,快速过滤器会自动受到青睐。
文件avfilter.h第742行的定义。
#define AVFILTER_CMD_FLAG_FAST 2 |
仅在速度快时执行命令(例如支持硬件对比度调整的视频输出)
定义在文件avfilter.h的第743行。
传递给AVFilterGraph::execute回调的函数指针将被多次执行,可能是并行执行。
ctx | 作业所属的过滤器上下文 |
arg | 从AVFilterGraph::execute传递的不透明参数 |
jobnr | 正在执行的作业的索引 |
nb_jobs | 就业岗位总数 |
定义在文件avfilter.h的第847行。
typedef int() avfilter_execute_func(AVFilterContext *ctx, avfilter_action_func *func, void *arg, int *ret, int nb_jobs) |
一个函数执行多个作业,可能是并行的。
ctx | 作业所属的过滤器上下文 |
func | 被多次调用的函数 |
arg | 要传递给 func 的参数 |
ret | 一个 nb_jobs 大小的数组,填充每次调用 func 的返回值 |
nb_jobs | 要执行的作业数量 |
定义在文件avfilter.h的第861行。
anonymous enum |
枚举器 | |
---|---|
AVFILTER_AUTO_CONVERT_ALL | 启用所有自动转换 |
AVFILTER_AUTO_CONVERT_NONE | 禁用所有自动转换 |
定义在文件avfilter.h的第995行。
unsigned avfilter_version | ( | 空白 | ) |
返回 LIBAVFILTER_VERSION_INT 常量。
定义位于文件version.c的第 29行。
const char* avfilter_configuration | ( | 空白 | ) |
返回 libavfilter 构建时配置。
定义位于文件version.c的第35行。
const char* avfilter_pad_get_name | ( | 常量AVFilterPad * | 垫, |
整数 | 焊盘IDX | ||
) |
获取AVFilterPad的名称。
pads | AVFilterPad 数组 |
pad_idx | 数组中 pad 的索引;调用者有责任确保索引有效 |
文件avfilter.c第932行的定义。
由describe_filter_link()、print_digraph()和print_formats_internal()引用。
enum AVMediaType avfilter_pad_get_type | ( | 常量AVFilterPad * | 垫, |
整数 | 焊盘IDX | ||
) |
获取AVFilterPad的类型。
pads | AVFilterPad 数组 |
pad_idx | 数组中 pad 的索引;调用者有责任确保索引有效 |
文件avfilter.c第937行的定义。
由configure_output_filter()、create_sink()、fg_create()、insert_trim()、lavfi_read_header()、main()和show_filters()引用。
int avfilter_link | ( | AVFilterContext * | 源代码, |
未签名 | 源代码, | ||
AVFilterContext * | 目的地, | ||
未签名 | 目标键盘 | ||
) |
将两个过滤器链接在一起。
src | 源过滤器 |
srcpad | 源滤波器上输出焊盘的索引 |
dst | 目标过滤器 |
dstpad | 目标过滤器上输入板的索引 |
文件avfilter.c第149行的定义。
由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 引用_修剪(),lavfi_read_header()、link_inputs()和link_outputs()。
void avfilter_link_free | ( | AVFilterLink ** | 关联 | ) |
int avfilter_config_links | ( | AVFilterContext * | 筛选 | ) |
协商过滤器所有输入的媒体格式、尺寸等。
filter | 过滤器协商其输入的属性 |
定义位于文件avfilter.c的第299行。
由avfilter_config_links()、graph_config_links()和process_command()引用。
int avfilter_process_command | ( | AVFilterContext * | 筛选, |
常量字符* | 命令, | ||
常量字符* | 精氨酸, | ||
字符* | 资源, | ||
整数 | 资源长度, | ||
整数 | 旗帜 | ||
) |
使过滤器实例处理命令。
建议使用avfilter_graph_send_command()。
文件avfilter.c第556行的定义。
由avfilter_graph_send_command()和ff_inlink_process_commands()引用。
const AVFilter* av_filter_iterate | ( | 空白 ** | 不透明 | ) |
迭代所有已注册的过滤器。
opaque | libavfilter 将存储迭代状态的指针。必须指向 NULL 才能开始迭代。 |
文件allfilters.c第614行的定义。
由avfilter_get_by_name()、filter_child_class_iterate()和show_filters()引用。
const AVFilter* avfilter_get_by_name | ( | 常量字符* | 姓名 | ) |
获取与给定名称匹配的过滤器定义。
name | 要查找的过滤器名称 |
文件allfilters.c第625行的定义。
由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()和query_formats()。
int avfilter_init_str | ( | AVFilterContext * | ctx , |
常量字符* | 参数 | ||
) |
使用提供的参数初始化过滤器。
ctx | 要初始化的未初始化过滤器上下文 |
args | 用于初始化过滤器的选项。这必须是“key=value”形式的以“:”分隔的选项列表。如果直接使用 AVOptions API 设置选项或者没有需要设置的选项,则可能为 NULL。 |
文件avfilter.c第904行的定义。
由avfilter_graph_create_filter()、init_filter_graph()、insert_trim()和main()引用。
int avfilter_init_dict | ( | AVFilterContext * | ctx , |
AV词典** | 选项 | ||
) |
使用提供的选项字典初始化过滤器。
ctx | 要初始化的未初始化过滤器上下文 |
options | 包含此过滤器选项的AVDictionary。返回时,此参数将被销毁并替换为包含未找到的选项的字典。该字典必须由调用者释放。可能为NULL,那么这个函数相当于第二个参数设置为NULL的avfilter_init_str() 。 |
文件avfilter.c第864行的定义。
由avfilter_graph_segment_init()、avfilter_init_str()和init_filter_graph()引用。
void avfilter_free | ( | AVFilterContext * | 筛选 | ) |
释放过滤器上下文。
这也将从其过滤器图表的过滤器列表中删除该过滤器。
filter | 过滤器释放 |
文件avfilter.c第740行的定义。
由avfilter_graph_create_filter()、avfilter_graph_free()、avfilter_graph_parse()、avfilter_graph_parse2()、avfilter_graph_parse_ptr()、avfilter_graph_segment_create_filters()和main()引用。
int avfilter_insert_filter | ( | AV 过滤器链接* | 关联, |
AVFilterContext * | 过滤, | ||
未签名 | filt_srcpad_idx , | ||
未签名 | filt_dstpad_idx | ||
) |
在现有链接的中间插入过滤器。
link | 应插入过滤器的链接 |
filt | 要插入的过滤器 |
filt_srcpad_idx | 滤波器上的输入板要连接 |
filt_dstpad_idx | 滤波器上的输出焊盘要连接 |
文件avfilter.c第262行的定义。
const AVClass* avfilter_get_class | ( | 空白 | ) |
AVFilterGraph* avfilter_graph_alloc | ( | 空白 | ) |
分配过滤器图。
定义位于文件avfiltergraph.c第82行。
由configure_audio_filters()、configure_filtergraph()、fg_create()、init_filter()、init_filter_graph()、init_filters()、lavfi_read_header()、main()和video_thread()引用。
AVFilterContext* avfilter_graph_alloc_filter | ( | AVFilterGraph * | 图表, |
常量AVFilter * | 筛选, | ||
常量字符* | 姓名 | ||
) |
在过滤器图中创建一个新的过滤器实例。
graph | 将使用新过滤器的图表 |
filter | 用于创建实例的过滤器 |
name | 为新实例指定的名称(将复制到AVFilterContext.name)。调用者可以使用它来识别不同的过滤器,libavfilter 本身没有为此参数分配任何语义。可能为 NULL。 |
文件avfiltergraph.c第165行的定义。
由avfilter_graph_create_filter()、avfilter_graph_segment_create_filters()、init_filter_graph()、insert_trim()和main()引用。
AVFilterContext* avfilter_graph_get_filter | ( | AVFilterGraph * | 图表, |
常量字符* | 姓名 | ||
) |
从图中获取由实例名称标识的过滤器实例。
graph | 过滤图进行搜索。 |
name | 过滤器实例名称(在图中应该是唯一的)。 |
定义位于文件avfiltergraph.c的第283行。
int avfilter_graph_create_filter | ( | AVFilterContext ** | 过滤ctx, |
常量AVFilter * | 过滤, | ||
常量字符* | 姓名, | ||
常量字符* | 参数, | ||
空白 * | 不透明, | ||
AVFilterGraph * | 图_ctx | ||
) |
创建过滤器实例并将其添加到现有图表中。
过滤器实例是从过滤器 filt 创建的,并使用参数 args 初始化。目前忽略不透明。
如果成功,请将指针放入 *filt_ctx 中,指向创建的过滤器实例,否则将 *filt_ctx 设置为 NULL。
name | 赋予创建的过滤器实例的实例名称 |
graph_ctx | 过滤图 |
文件avfiltergraph.c第138行的定义。
由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()和query_formats()引用。
void avfilter_graph_set_auto_convert | ( | AVFilterGraph * | 图表, |
未签名 | 旗帜 | ||
) |
启用或禁用图表内的自动格式转换。
请注意,格式转换仍然可以在显式插入的比例和样本过滤器内发生。
flags | 任何 AVFILTER_AUTO_CONVERT_* 常量 |
文件avfiltergraph.c第160行的定义。
int avfilter_graph_config | ( | AVFilterGraph * | 图形x , |
空白 * | 日志_ctx | ||
) |
检查有效性并配置图中的所有链接和格式。
graphctx | 过滤图 |
log_ctx | 用于记录的上下文 |
文件avfiltergraph.c第1169行的定义。
由configure_filtergraph()、init_filter()、init_filter_graph()、init_filters()、lavfi_read_header()和main()引用。
void avfilter_graph_free | ( | AVFilterGraph ** | 图形 | ) |
释放一个图,销毁其链接,并将 *graph 设置为 NULL。
如果 *graph 为 NULL,则不执行任何操作。
文件avfiltergraph.c第119行的定义。
由audio_thread()、cleanup_filtergraph()、configure_audio_filters()、fg_create()、fg_free()、lavfi_read_close()、main()和video_thread()引用。
AVFilterInOut* avfilter_inout_alloc | ( | 空白 | ) |
void avfilter_inout_free | ( | AV 过滤器输入输出** | 进出 | ) |
释放提供的AVFilterInOut列表并将 *inout 设置为 NULL。
如果 *inout 为 NULL,则不执行任何操作。
文件graphparser.c第75行的定义。
由avfilter_graph_parse()、avfilter_graph_parse_ptr()、avfilter_graph_segment_link()、configure_filtergraph()、fg_create()、init_filter()、init_filters()、inout_add()和lavfi_read_header()引用。
int avfilter_graph_parse | ( | AVFilterGraph * | 图表, |
常量字符* | 过滤器, | ||
AV 过滤输入输出* | 输入, | ||
AV 过滤输入输出* | 输出, | ||
空白 * | 日志_ctx | ||
) |
将字符串描述的图形添加到图形中。
graph | 过滤图链接解析图上下文的位置 |
filters | 待解析的字符串 |
inputs | 到图输入的链接列表 |
outputs | 到图输出的链表 |
文件graphparser.c第163行的定义。
由main()引用。
int avfilter_graph_parse_ptr | ( | AVFilterGraph * | 图表, |
常量字符* | 过滤器, | ||
AV 过滤器输入输出** | 输入, | ||
AV 过滤器输入输出** | 输出, | ||
空白 * | 日志_ctx | ||
) |
将字符串描述的图形添加到图形中。
在图过滤器描述中,如果未指定第一个过滤器的输入标签,则假定为“in”;如果未指定最后一个过滤器的输出标签,则假定为“out”。
graph | 过滤图链接解析图上下文的位置 |
filters | 待解析的字符串 |
inputs | 指向图输入的链表的指针可以为 NULL。如果非 NULL,则 *inputs 会更新为包含解析后打开的输入列表,应使用avfilter_inout_free()释放。 |
outputs | 指向图输出的链表的指针可以为 NULL。如果非 NULL,则 *outputs 会更新为包含解析后打开的输出列表,应使用avfilter_inout_free()释放。 |
文件graphparser.c第918行的定义。
由configure_filtergraph()、init_filter()、init_filters()、lavfi_read_header()和main()引用。
int avfilter_graph_parse2 | ( | AVFilterGraph * | 图表, |
常量字符* | 过滤器, | ||
AV 过滤器输入输出** | 输入, | ||
AV 过滤器输入输出** | 输出 | ||
) |
将字符串描述的图形添加到图形中。
[in] | 图形 | 过滤图链接解析图上下文的位置 |
[in] | 过滤器 | 待解析的字符串 |
[out] | 输入 | 解析图的所有空闲(未链接)输入的链接列表将在此处返回。它由调用者使用avfilter_inout_free()释放。 |
[out] | 输出 | 解析图的所有空闲(未链接)输出的链接列表将在此处返回。它由调用者使用avfilter_inout_free()释放。 |
文件graphparser.c第137行的定义。
int avfilter_graph_segment_parse | ( | AVFilterGraph * | 图表, |
常量字符* | 图_str , | ||
整数 | 旗帜, | ||
AVFilterGraphSegment ** | 段 | ||
) |
将文本过滤图描述解析为中间形式。
此中间表示旨在由调用者进行修改,如AVFilterGraphSegment及其子项的文档中所述,然后手动或使用其他 avfilter_graph_segment_*() 函数应用于图表。有关应用AVFilterGraphSegment的规范方法,请参阅avfilter_graph_segment_apply()的文档。
graph | 与解析的段关联的过滤图。仅用于日志记录和类似的辅助目的。该函数实际上不会修改图表 - 解析结果会存储在 seg 中以供进一步处理。 |
graph_str | 描述filtergraph段的字符串 |
flags | 保留供将来使用,调用者现在必须设置为 0 |
seg | 如果成功,则会在此处写入指向新创建的AVFilterGraphSegment的指针。图段由调用者拥有,并且必须在图本身被释放之前使用avfilter_graph_segment_free()释放。 |
non-negative number | 成功 |
negative error code | 失败 |
文件graphparser.c第459行的定义。
由avfilter_graph_parse2()、avfilter_graph_parse_ptr()和graph_parse()引用。
int avfilter_graph_segment_create_filters | ( | AVFilterGraphSegment * | 段, |
整数 | 旗帜 | ||
) |
创建在图形段中指定的过滤器。
遍历段中待创建的AVFilterParams并为它们创建新的过滤器实例。创建待处理参数是AVFilterParams.filter_name为非 NULL 的参数(因此AVFilterParams.filter为 NULL)。所有其他AVFilterParams实例都将被忽略。
对于此函数创建的任何过滤器,相应的AVFilterParams.filter将设置为新创建的过滤器上下文,AVFilterParams.filter_name和AVFilterParams.instance_name将被释放并设置为 NULL。
seg | 要处理的filtergraph段 |
flags | 保留供将来使用,调用者现在必须设置为 0 |
non-negative number | 成功,所有待创建的过滤器均已成功创建 |
AVERROR_FILTER_NOT_FOUND | 某些过滤器的名称与已知过滤器不对应 |
another negative error code | 其他故障 |
文件graphparser.c第515行的定义。
由avfilter_graph_parse_ptr()、avfilter_graph_segment_apply()和graph_parse()引用。
int avfilter_graph_segment_apply_opts | ( | AVFilterGraphSegment * | 段, |
整数 | 旗帜 | ||
) |
应用解析的选项来过滤图形段中的实例。
遍历图形段中具有与其关联的选项字典的所有过滤器实例,并使用 av_opt_set_dict2(..., AV_OPT_SEARCH_CHILDREN) 应用这些选项。AVFilterParams.opts被av_opt_set_dict2()输出的字典替换,如果成功应用所有选项,该字典应该为空 (NULL)。
如果找不到任何选项,此函数将继续处理所有其他过滤器并最终返回 AVERROR_OPTION_NOT_FOUND (除非发生另一个错误)。然后,调用程序可以根据需要处理未应用的选项。
段中存在的任何待创建的过滤器(请参阅avfilter_graph_segment_create_filters() )都会导致此函数失败。没有关联过滤器上下文的AVFilterParams会被简单地跳过。
seg | 要处理的filtergraph段 |
flags | 保留供将来使用,调用者现在必须设置为 0 |
non-negative number | 成功,所有选项均已成功应用。 |
AVERROR_OPTION_NOT_FOUND | 在过滤器中找不到某些选项 |
another negative error code | 其他故障 |
文件graphparser.c第585行的定义。
由avfilter_graph_parse_ptr()和avfilter_graph_segment_apply()引用。
int avfilter_graph_segment_init | ( | AVFilterGraphSegment * | 段, |
整数 | 旗帜 | ||
) |
初始化图段中的所有过滤器实例。
遍历图形段中的所有过滤器实例,并对尚未初始化的过滤器实例调用 avfilter_init_dict(..., NULL) 。
段中存在的任何待创建的过滤器(请参阅avfilter_graph_segment_create_filters() )都会导致此函数失败。没有关联过滤器上下文或其过滤器上下文已初始化的AVFilterParams将被简单地跳过。
seg | 要处理的filtergraph段 |
flags | 保留供将来使用,调用者现在必须设置为 0 |
non-negative number | 成功,所有过滤器实例均已成功初始化 |
negative error code | 失败 |
文件graphparser.c第615行的定义。
由avfilter_graph_parse_ptr()和avfilter_graph_segment_apply()引用。
int avfilter_graph_segment_link | ( | AVFilterGraphSegment * | 段, |
整数 | 旗帜, | ||
AV 过滤器输入输出** | 输入, | ||
AV 过滤器输入输出** | 输出 | ||
) |
链接图段中的过滤器。
遍历图形段中的所有过滤器实例,并尝试链接所有未链接的输入和输出板。段中存在的任何待创建的过滤器(请参阅avfilter_graph_segment_create_filters() )都会导致此函数失败。禁用的过滤器和已链接的焊盘将被跳过。
每个具有相应AVFilterPadParams且带有非 NULL 标签的过滤器输出垫是
同样,未链接的输入板将导出到输入链接列表中。
段 | 要处理的filtergraph段 | |
旗帜 | 保留供将来使用,调用者现在必须设置为 0 | |
[out] | 输入 | 此处将返回该图段中过滤器的所有空闲(未链接)输入的链接列表。它由调用者使用avfilter_inout_free()释放。 |
[out] | 输出 | 此处将返回该图段中过滤器的所有空闲(未链接)输出的链接列表。它由调用者使用avfilter_inout_free()释放。 |
non-negative number | 成功 |
negative error code | 失败 |
文件graphparser.c第812行的定义。
int avfilter_graph_segment_apply | ( | AVFilterGraphSegment * | 段, |
整数 | 旗帜, | ||
AV 过滤器输入输出** | 输入, | ||
AV 过滤器输入输出** | 输出 | ||
) |
将图形段中的所有过滤器/链接描述应用到关联的过滤器图形。
该函数目前相当于按顺序调用以下函数:
由于上述函数是幂等的,因此调用者可以手动调用其中一些函数,然后对filtergraph进行一些自定义处理,然后调用此函数来完成其余的操作。
段 | 要处理的filtergraph段 | |
旗帜 | 保留供将来使用,调用者现在必须设置为 0 | |
[out] | 输入 | 传递给avfilter_graph_segment_link() |
[out] | 输出 | 传递给avfilter_graph_segment_link() |
non-negative number | 成功 |
negative error code | 失败 |
文件graphparser.c第880行的定义。
由avfilter_graph_parse2()、avfilter_graph_parse_ptr()和graph_parse()引用。
void avfilter_graph_segment_free | ( | AVFilterGraphSegment ** | 段 | ) |
释放提供的AVFilterGraphSegment以及与之相关的所有内容。
seg | 指向要释放的AVFilterGraphSegment 的双指针。退出该函数时,NULL 将被写入该指针。 |
文件graphparser.c第275行的定义。
由avfilter_graph_parse2()、avfilter_graph_parse_ptr()、avfilter_graph_segment_parse()和graph_parse()引用。
int avfilter_graph_send_command | ( | AVFilterGraph * | 图表, |
常量字符* | 目标, | ||
常量字符* | 命令, | ||
常量字符* | 精氨酸, | ||
字符* | 资源, | ||
整数 | 资源长度, | ||
整数 | 旗帜 | ||
) |
向一个或多个过滤器实例发送命令。
graph | 过滤图 |
target | 命令应发送到的过滤器“all”发送到所有过滤器,否则它可以是过滤器或过滤器实例名称,它将命令发送到所有匹配的过滤器。 |
cmd | 要发送的命令,为了处理简单,所有命令必须仅为字母数字 |
arg | 命令的参数 |
res | 大小为 res_size 的缓冲区,其中过滤器可以返回响应。 |
文件avfiltergraph.c第1187行的定义。
int avfilter_graph_queue_command | ( | AVFilterGraph * | 图表, |
常量字符* | 目标, | ||
常量字符* | 命令, | ||
常量字符* | 精氨酸, | ||
整数 | 旗帜, | ||
双倍的 | ts | ||
) |
将一个或多个过滤器实例的命令排队。
graph | 过滤图 |
target | 命令应发送到的过滤器“all”发送到所有过滤器,否则它可以是过滤器或过滤器实例名称,它将命令发送到所有匹配的过滤器。 |
cmd | 要发送的命令,为了处理简单,所有命令只能是字母数字 |
arg | 命令的参数 |
ts | 命令应发送到过滤器的时间 |
文件avfiltergraph.c第1217行的定义。
char* avfilter_graph_dump | ( | AVFilterGraph * | 图表, |
常量字符* | 选项 | ||
) |
将图表转储为人类可读的字符串表示形式。
graph | 要转储的图表 |
options | 格式选项;目前被忽略 |
文件graphdump.c第157行的定义。
int avfilter_graph_request_oldest | ( | AVFilterGraph * | 图形 | ) |
在最旧的接收器链路上请求帧。
如果请求返回 AVERROR_EOF,请尝试下一步。
请注意,此函数并不意味着成为 FilterGraph 的唯一调度机制,而只是一个在正常情况下帮助以平衡方式耗尽 FilterGraph 的便利函数。
另请注意,AVERROR_EOF 并不意味着在此过程中帧未到达某些接收器。当存在多个接收器链接时,如果请求的链接返回 EOF,则这可能会导致过滤器刷新发送到另一个接收器链接的待处理帧(尽管未经请求)。
文件avfiltergraph.c第1297行的定义。