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 }
 

功能

unsigned avfilter_version(空)
 返回 LIBAVFILTER_VERSION_INT 常量。 更多的...
 
const char * avfilter_configuration(空)
 返回 libavfilter 构建时配置。 更多的...
 
const char * avfilter_license(无效)
 返回 libavfilter 许可证。 更多的...
 
const char * avfilter_pad_get_name (const AVFilterPad *pads, int pad_idx)
 获取AVFilterPad的名称。 更多的...
 
enum AVMediaType avfilter_pad_get_type (const AVFilterPad *pads, int pad_idx)
 获取AVFilterPad的类型。 更多的...
 
unsigned avfilter_filter_pad_count (const AVFilter *过滤器, int is_output)
 获取AVFilter的输入或输出数组 中的元素数量。更多的...
 
int avfilter_link ( AVFilterContext * src , 无符号 srcpad , AVFilterContext *dst , 无符号 dstpad )
 将两个过滤器链接在一起。 更多的...
 
void avfilter_link_free ( AVFilterLink **链接)
 释放 *link 中的链接,并将其指针设置为 NULL。 更多的...
 
int avfilter_config_links ( AVFilterContext *过滤器)
 协商过滤器所有输入的媒体格式、尺寸等。 更多的...
 
int avfilter_process_command ( AVFilterContext * filter , const char *cmd, const char * arg , char *res, int res_len, int flags )
 使过滤器实例处理命令。 更多的...
 
const AVFilterav_filter_iterate (void **不透明)
 迭代所有已注册的过滤器。 更多的...
 
const AVFilteravfilter_get_by_name (const char *名称)
 获取与给定名称匹配的过滤器定义。 更多的...
 
int avfilter_init_str ( AVFilterContext * ctx , const char *args)
 使用提供的参数初始化过滤器。 更多的...
 
int avfilter_init_dict ( AVFilterContext * ctx , AVDictionary **选项)
 使用提供的选项字典初始化过滤器。 更多的...
 
void avfilter_free ( AVFilterContext *过滤器)
 释放过滤器上下文。 更多的...
 
int avfilter_insert_filter ( AVFilterLink *链接, AVFilterContext * filt , 无符号 filt_srcpad_idx, 无符号 filt_dstpad_idx)
 在现有链接的中间插入过滤器。 更多的...
 
const AVClassavfilter_get_class(无效)
 
AVFilterGraphavfilter_graph_alloc(无效)
 分配过滤器图。 更多的...
 
AVFilterContextavfilter_graph_alloc_filter ( AVFilterGraph *graph, const AVFilter * filter , const char * name )
 在过滤器图中创建一个新的过滤器实例。 更多的...
 
AVFilterContextavfilter_graph_get_filter ( AVFilterGraph *graph, const char * name )
 从图中获取由实例名称标识的过滤器实例。 更多的...
 
int avfilter_graph_create_filter ( AVFilterContext **filt_ctx, const AVFilter * filt , const char * name , const char *args, void *opaque, AVFilterGraph *graph_ctx)
 创建过滤器实例并将其添加到现有图表中。 更多的...
 
void avfilter_graph_set_auto_convertAVFilterGraph *图,无符号标志
 启用或禁用图表内的自动格式转换。 更多的...
 
int avfilter_graph_config ( AVFilterGraph *graphctx, void *log_ctx)
 检查有效性并配置图中的所有链接和格式。 更多的...
 
void avfilter_graph_free ( AVFilterGraph **图)
 释放一个图,销毁其链接,并将 *graph 设置为 NULL。 更多的...
 
AVFilterInOutavfilter_inout_alloc(无效)
 分配单个AVFilterInOut条目。 更多的...
 
void avfilter_inout_free ( AVFilterInOut **inout )
 释放提供的AVFilterInOut列表并将 *inout 设置为 NULL。 更多的...
 
int avfilter_graph_parse ( AVFilterGraph *graph, const char *过滤器, AVFilterInOut *输入, AVFilterInOut *输出, void *log_ctx)
 将字符串描述的图形添加到图形中。 更多的...
 
int avfilter_graph_parse_ptr ( AVFilterGraph *graph, const char *过滤器, AVFilterInOut **输入, AVFilterInOut **输出, void *log_ctx)
 将字符串描述的图形添加到图形中。 更多的...
 
int avfilter_graph_parse2 ( AVFilterGraph *graph, const char *过滤器, AVFilterInOut **输入, AVFilterInOut **输出)
 将字符串描述的图形添加到图形中。 更多的...
 
int avfilter_graph_segment_parse ( AVFilterGraph *graph, const char *graph_str, int flags , AVFilterGraphSegment **seg)
 将文本过滤图描述解析为中间形式。 更多的...
 
int avfilter_graph_segment_create_filters ( AVFilterGraphSegment *seg, int flags )
 创建在图形段中指定的过滤器。 更多的...
 
int avfilter_graph_segment_apply_opts ( AVFilterGraphSegment *seg, int flags )
 应用解析的选项来过滤图形段中的实例。 更多的...
 
int avfilter_graph_segment_init ( AVFilterGraphSegment *seg, int flags )
 初始化图段中的所有过滤器实例。 更多的...
 
int avfilter_graph_segment_link ( AVFilterGraphSegment *seg, int flags , AVFilterInOut **输入, AVFilterInOut **输出)
 链接图段中的过滤器。 更多的...
 
int avfilter_graph_segment_apply ( AVFilterGraphSegment *seg, int flags , AVFilterInOut **输入, AVFilterInOut **输出)
 将图形段中的所有过滤器/链接描述应用到关联的过滤器图形。 更多的...
 
void avfilter_graph_segment_free ( AVFilterGraphSegment **seg)
 释放提供的AVFilterGraphSegment以及与之相关的所有内容。 更多的...
 
int avfilter_graph_send_command ( AVFilterGraph *graph, const char *target, const char *cmd, const char * arg , char *res, int res_len, int flags )
 向一个或多个过滤器实例发送命令。 更多的...
 
int avfilter_graph_queue_command ( AVFilterGraph *graph, const char *target, const char *cmd, const char * arg , int flags , double ts)
 一个或多个过滤器实例的命令排队。 更多的...
 
char * avfilter_graph_dump ( AVFilterGraph *graph, const char * options )
 将图表转储为人类可读的字符串表示形式。 更多的...
 
int avfilter_graph_request_oldest ( AVFilterGraph *图)
 在最旧的接收器链路上请求帧。 更多的...
 

详细说明

基于图形的框架编辑库。

宏定义文档

◆ AVFILTER_FLAG_DYNAMIC_INPUTS

#define AVFILTER_FLAG_DYNAMIC_INPUTS   (1 << 0)

过滤器输入的数量不仅仅由AVFilter.inputs决定。

过滤器可能会在初始化期间添加额外的输入,具体取决于提供给它的选项。

定义在文件avfilter.h的第106行。

◆ AVFILTER_FLAG_DYNAMIC_OUTPUTS

#define AVFILTER_FLAG_DYNAMIC_OUTPUTS   (1 << 1)

过滤器输出的数量不仅仅由AVFilter.outputs决定。

过滤器可能会在初始化期间添加额外的输出,具体取决于提供给它的选项。

定义位于文件avfilter.h的第112行。

◆ AVFILTER_FLAG_SLICE_THREADS

#define AVFILTER_FLAG_SLICE_THREADS   (1 << 2)

该过滤器通过将帧分割成多个部分并同时处理它们来支持多线程。

定义位于文件avfilter.h的第117行。

◆ AVFILTER_FLAG_METADATA_ONLY

#define AVFILTER_FLAG_METADATA_ONLY   (1 << 3)

该过滤器是一个“元数据”过滤器 - 它不会以任何方式修改帧数据。

它可能只影响元数据(即由av_frame_copy_props()复制的那些字段)。

更准确地说,这意味着:

  • 视频:过滤器输出的任何帧的数据必须完全等于其输入之一接收到的某个帧。此外,给定输出上生成的所有帧必须对应于同一输入上接收到的帧,并且它们的顺序必须不变。请注意,过滤器仍可能会丢弃或重复帧。
  • 音频:滤波器在其任何输出上产生的数据(例如,视为交错样本的数组)必须完全等于滤波器在其输入之一上接收到的数据。

定义位于文件avfilter.h的第133行。

◆ AVFILTER_FLAG_HWDEVICE

#define AVFILTER_FLAG_HWDEVICE   (1 << 4)

过滤器可以使用AVFilterContext.hw_device_ctx创建硬件帧。

定义位于文件avfilter.h的第138行。

◆ AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC

#define AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC   (1 << 16)

某些过滤器支持通用“启用”表达式选项,可用于启用或禁用时间线中的过滤器。

支持此选项的过滤器设置了此标志。当启用表达式为 false 时,将调用默认的无操作filter_frame()函数来代替每个输入板上定义的filter_frame()回调,从而将帧原封不动地传递到下一个过滤器。

定义位于文件avfilter.h的第147行。

◆ AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL

#define AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL   (1 << 17)

与 AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC 相同,不同之处在于,即使启用表达式为 false,过滤器也会照常调用其filter_frame()回调。

过滤器将在filter_frame()回调本身内禁用过滤,例如根据 AVFilterContext->is_disabled 值执行代码。

定义位于文件avfilter.h的第155行。

◆ AVFILTER_FLAG_SUPPORT_TIMELINE

方便的掩码,用于测试过滤器是否支持时间线功能(内部或一般)。

定义位于文件avfilter.h的第160行。

◆ AVFILTER_THREAD_SLICE

#define AVFILTER_THREAD_SLICE   (1 << 0)

同时处理框架的多个部分。

定义位于文件avfilter.h的第392行。

◆ AVFILTER_CMD_FLAG_ONE

#define AVFILTER_CMD_FLAG_ONE   1

一旦过滤器理解了命令(例如 target=all),就停止,快速过滤器会自动受到青睐。

文件avfilter.h第742行的定义。

◆ AVFILTER_CMD_FLAG_FAST

#define AVFILTER_CMD_FLAG_FAST   2

仅在速度快时执行命令(例如支持硬件对比度调整的视频输出)

定义在文件avfilter.h的第743行。

Typedef 文档

◆ avfilter_action_func

typedef int() avfilter_action_func(AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs)

传递给AVFilterGraph::execute回调的函数指针将被多次执行,可能是并行执行。

Parameters
ctx作业所属的过滤器上下文
arg从AVFilterGraph::execute传递的不透明参数
jobnr正在执行的作业的索引
nb_jobs就业岗位总数
Returns
成功时为 0,错误时为负 AVERROR

定义在文件avfilter.h的第847行。

◆ avfilter_execute_func 函数

typedef int() avfilter_execute_func(AVFilterContext *ctx, avfilter_action_func *func, void *arg, int *ret, int nb_jobs)

一个函数执行多个作业,可能是并行的。

Parameters
ctx作业所属的过滤器上下文
func被多次调用的函数
arg要传递给 func 的参数
ret一个 nb_jobs 大小的数组,填充每次调用 func 的返回值
nb_jobs要执行的作业数量
Returns
成功时为 0,错误时为负 AVERROR

定义在文件avfilter.h的第861行。

枚举类型文档

◆ 匿名枚举

anonymous enum
枚举器
AVFILTER_AUTO_CONVERT_ALL 

启用所有自动转换

AVFILTER_AUTO_CONVERT_NONE 

禁用所有自动转换

定义在文件avfilter.h的第995行。

功能文档

◆ avfilter_version()

unsigned avfilter_version 空白 

返回 LIBAVFILTER_VERSION_INT 常量。

定义位于文件version.c的第 29行。

◆ avfilter_configuration()

const char* avfilter_configuration 空白 

返回 libavfilter 构建时配置。

定义位于文件version.c的第35行。

◆ avfilter_license()

const char* avfilter_license 空白 

返回 libavfilter 许可证。

定义位于文件version.c第 40行。

◆ avfilter_pad_get_name()

const char* avfilter_pad_get_name 常量AVFilterPad ,
整数  焊盘IDX 

获取AVFilterPad的名称。

Parameters
padsAVFilterPad 数组
pad_idx数组中 pad 的索引;调用者有责任确保索引有效
Returns
pads 中第 pad_idx 个 pad 的名称

文件avfilter.c第932行的定义。

describe_filter_link()print_digraph()print_formats_internal()引用。

◆ avfilter_pad_get_type()

enum AVMediaType avfilter_pad_get_type 常量AVFilterPad ,
整数  焊盘IDX 

获取AVFilterPad的类型。

Parameters
padsAVFilterPad 数组
pad_idx数组中 pad 的索引;调用者有责任确保索引有效
Returns
pads 中第 pad_idx 个 pad 的类型

文件avfilter.c第937行的定义。

configure_output_filter()create_sink()fg_create()insert_trim()lavfi_read_header()main()show_filters()引用。

◆ avfilter_filter_pad_count()

unsigned avfilter_filter_pad_count 常量AVFilter 筛选
整数  是输出 

获取AVFilter的输入或输出数组中的元素数量。

文件avfilter.c第577行的定义。

由show_filters()引用。

◆ avfilter_link()

int avfilter_link AVFilterContext 源代码,
未签名  源代码,
AVFilterContext 目的地,
未签名  目标键盘 

将两个过滤器链接在一起。

Parameters
src源过滤器
srcpad源滤波器上输出焊盘的索引
dst目标过滤器
dstpad目标过滤器上输入板的索引
Returns
成功归零

文件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()

◆ avfilter_link_free()

void avfilter_link_free AVFilterLink **  关联

释放 *link 中的链接,并将其指针设置为 NULL。

文件avfilter.c第193行的定义。

由free_link()引用。

◆ avfilter_config_links()

int avfilter_config_links AVFilterContext 筛选

协商过滤器所有输入的媒体格式、尺寸等。

Parameters
filter过滤器协商其输入的属性
Returns
成功谈判为零

定义位于文件avfilter.c的第299行。

avfilter_config_links()graph_config_links()process_command()引用。

◆ avfilter_process_command()

int avfilter_process_command AVFilterContext 筛选
常量字符*  命令
常量字符*  精氨酸
字符*  资源,
整数  资源长度
整数  旗帜 

使过滤器实例处理命令。

建议使用avfilter_graph_send_command()

文件avfilter.c第556行的定义。

由avfilter_graph_send_command()ff_inlink_process_commands()引用。

◆ av_filter_iterate()

const AVFilter* av_filter_iterate 空白 **  不透明

迭代所有已注册的过滤器。

Parameters
opaquelibavfilter 将存储迭代状态的指针。必须指向 NULL 才能开始迭代。
Returns
迭代完成时下一个注册的过滤器或 NULL

文件allfilters.c第614行的定义。

avfilter_get_by_name()filter_child_class_iterate()show_filters()引用。

◆ avfilter_get_by_name()

const AVFilter* avfilter_get_by_name 常量字符*  姓名

获取与给定名称匹配的过滤器定义。

Parameters
name要查找的过滤器名称
Returns
过滤器定义(如果注册了任何匹配的过滤器定义)。如果没有找到则为 NULL。

文件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()

◆ avfilter_init_str()

int avfilter_init_str AVFilterContext ctx ,
常量字符*  参数 

使用提供的参数初始化过滤器。

Parameters
ctx要初始化的未初始化过滤器上下文
args用于初始化过滤器的选项。这必须是“key=value”形式的以“:”分隔的选项列表。如果直接使用 AVOptions API 设置选项或者没有需要设置的选项,则可能为 NULL。
Returns
成功时为 0,失败时为负 AVERROR

文件avfilter.c第904行的定义。

avfilter_graph_create_filter()init_filter_graph()insert_trim()main()引用。

◆ avfilter_init_dict()

int avfilter_init_dict AVFilterContext ctx ,
AV词典**  选项 

使用提供的选项字典初始化过滤器。

Parameters
ctx要初始化的未初始化过滤器上下文
options包含此过滤器选项的AVDictionary。返回时,此参数将被销毁并替换为包含未找​​到的选项的字典。该字典必须由调用者释放。可能为NULL,那么这个函数相当于第二个参数设置为NULL的avfilter_init_str() 。
Returns
成功时为 0,失败时为负 AVERROR
Note
该函数和avfilter_init_str()本质上做同样的事情,区别在于传递选项的方式。由调用代码选择更优选的一个。当某些提供的选项未声明为过滤器支持时,这两个函数的行为也不同。在这种情况下,avfilter_init_str()将失败,但该函数会将这些额外选项保留在选项AVDictionary中并照常继续。

文件avfilter.c第864行的定义。

avfilter_graph_segment_init()avfilter_init_str()init_filter_graph()引用。

◆ avfilter_free()

void avfilter_free AVFilterContext 筛选

释放过滤器上下文。

这也将从其过滤器图表的过滤器列表中删除该过滤器。

Parameters
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()引用。

◆ avfilter_insert_filter()

int avfilter_insert_filter AV 过滤器链接 关联
AVFilterContext 过滤,
未签名  filt_srcpad_idx ,
未签名  filt_dstpad_idx 

在现有链接的中间插入过滤器。

Parameters
link应插入过滤器的链接
filt要插入的过滤器
filt_srcpad_idx滤波器上的输入板要连接
filt_dstpad_idx滤波器上的输出焊盘要连接
Returns
成功归零

文件avfilter.c第262行的定义。

由query_formats()引用。

◆ avfilter_get_class()

const AVClass* avfilter_get_class 空白 
Returns
AVFilterContextAVClass
See also
av_opt_find()

文件avfilter.c第 1542行的定义。

由show_help_default()引用。

◆ avfilter_graph_alloc()

AVFilterGraph* avfilter_graph_alloc 空白 

分配过滤器图。

Returns
成功或 NULL 时分配的过滤器图。
Examples
decode_filter_audio.cdecode_filter_video.cfilter_audio.ctranscode.c

定义位于文件avfiltergraph.c第82行。

configure_audio_filters()configure_filtergraph()fg_create()init_filter()init_filter_graph()init_filters()lavfi_read_header()main()video_thread()引用。

◆ avfilter_graph_alloc_filter()

AVFilterContext* avfilter_graph_alloc_filter AVFilterGraph 图表,
常量AVFilter 筛选
常量字符*  姓名 

在过滤器图中创建一个新的过滤器实例。

Parameters
graph将使用新过滤器的图表
filter用于创建实例的过滤器
name为新实例指定的名称(将复制到AVFilterContext.name)。调用者可以使用它来识别不同的过滤器,libavfilter 本身没有为此参数分配任何语义。可能为 NULL。
Returns
新创建的过滤器实例的上下文(请注意,它也可以直接通过AVFilterGraph.filters或使用avfilter_graph_get_filter() 检索)成功时或失败时为 NULL。
Examples
filter_audio.c

文件avfiltergraph.c第165行的定义。

avfilter_graph_create_filter()avfilter_graph_segment_create_filters()init_filter_graph()insert_trim()main()引用。

◆ avfilter_graph_get_filter()

AVFilterContext* avfilter_graph_get_filter AVFilterGraph 图表,
常量字符*  姓名 

从图中获取由实例名称标识的过滤器实例。

Parameters
graph过滤图进行搜索。
name过滤器实例名称(在图中应该是唯一的)。
Returns
指向找到的过滤器实例的指针,如果找不到,则为 NULL。

定义位于文件avfiltergraph.c的第283行。

◆ avfilter_graph_create_filter()

int avfilter_graph_create_filter AVFilterContext **  过滤ctx
常量AVFilter 过滤,
常量字符*  姓名
常量字符*  参数
空白 *  不透明,
AVFilterGraph 图_ctx 

创建过滤器实例并将其添加到现有图表中。

过滤器实例是从过滤器 filt 创建的,并使用参数 args 初始化。目前忽略不透明。

如果成功,请将指针放入 *filt_ctx 中,指向创建的过滤器实例,否则将 *filt_ctx 设置为 NULL。

Parameters
name赋予创建的过滤器实例的实例名称
graph_ctx过滤图
Returns
如果失败,则为负 AVERROR 错误代码,否则为非负值
Examples
decode_filter_audio.cdecode_filter_video.ctranscode.c

文件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()引用。

◆ avfilter_graph_set_auto_convert()

void avfilter_graph_set_auto_convert AVFilterGraph 图表,
未签名  旗帜 

启用或禁用图表内的自动格式转换。

请注意,格式转换仍然可以在显式插入的比例和样本过滤器内发生。

Parameters
flags任何 AVFILTER_AUTO_CONVERT_* 常量

文件avfiltergraph.c第160行的定义。

由configure_filtergraph()init()引用。

◆ avfilter_graph_config()

int avfilter_graph_config AVFilterGraph 图形x ,
空白 *  日志_ctx 

检查有效性并配置图中的所有链接和格式。

Parameters
graphctx过滤图
log_ctx用于记录的上下文
Returns
>= 0 表示成功,否则为负 AVERROR 代码
Examples
decode_filter_audio.cdecode_filter_video.cfilter_audio.ctranscode.c

文件avfiltergraph.c第1169行的定义。

configure_filtergraph()init_filter()init_filter_graph()init_filters()lavfi_read_header()main()引用。

◆ avfilter_graph_free()

void avfilter_graph_free AVFilterGraph **  图形

释放一个图,销毁其链接,并将 *graph 设置为 NULL。

如果 *graph 为 NULL,则不执行任何操作。

Examples
decode_filter_audio.cdecode_filter_video.cfilter_audio.ctranscode.c

文件avfiltergraph.c第119行的定义。

audio_thread()cleanup_filtergraph()configure_audio_filters()fg_create()fg_free()lavfi_read_close()main()video_thread()引用。

◆ avfilter_inout_alloc()

AVFilterInOut* avfilter_inout_alloc 空白 

◆ avfilter_inout_free()

void avfilter_inout_free AV 过滤器输入输出**  进出

◆ avfilter_graph_parse()

int avfilter_graph_parse AVFilterGraph 图表,
常量字符*  过滤器,
AV 过滤输入输出 输入,
AV 过滤输入输出 输出,
空白 *  日志_ctx 

将字符串描述的图形添加到图形中。

Note
调用者必须提供输入和输出列表,因此在调用函数之前必须知道这些列表。
输入参数描述了图表中已经存在的部分的输入;即从新创建的部分的角度来看,它们是输出。类似地,outputs 参数描述了现有过滤器的输出,这些输出作为已解析过滤器的输入提供。
Parameters
graph过滤图链接解析图上下文的位置
filters待解析的字符串
inputs到图输入的链接列表
outputs到图输出的链表
Returns
成功时为零,错误时为负 AVERROR 代码

文件graphparser.c第163行的定义。

由main()引用。

◆ avfilter_graph_parse_ptr()

int avfilter_graph_parse_ptr AVFilterGraph 图表,
常量字符*  过滤器,
AV 过滤器输入输出**  输入,
AV 过滤器输入输出**  输出,
空白 *  日志_ctx 

将字符串描述的图形添加到图形中。

在图过滤器描述中,如果未指定第一个过滤器的输入标签,则假定为“in”;如果未指定最后一个过滤器的输出标签,则假定为“out”。

Parameters
graph过滤图链接解析图上下文的位置
filters待解析的字符串
inputs指向图输入的链表的指针可以为 NULL。如果非 NULL,则 *inputs 会更新为包含解析后打开的输入列表,应使用avfilter_inout_free()释放。
outputs指向图输出的链表的指针可以为 NULL。如果非 NULL,则 *outputs 会更新为包含解析后打开的输出列表,应使用avfilter_inout_free()释放。
Returns
成功时为非负值,错误时为负值 AVERROR 代码
Examples
decode_filter_audio.cdecode_filter_video.ctranscode.c

文件graphparser.c第918行的定义。

configure_filtergraph()init_filter()init_filters()lavfi_read_header()main()引用。

◆ avfilter_graph_parse2()

int avfilter_graph_parse2 AVFilterGraph 图表,
常量字符*  过滤器,
AV 过滤器输入输出**  输入,
AV 过滤器输入输出**  输出 

将字符串描述的图形添加到图形中。

Parameters
[in]图形过滤图链接解析图上下文的位置
[in]过滤器待解析的字符串
[out]输入解析图的所有空闲(未链接)输入的链接列表将在此处返回。它由调用者使用avfilter_inout_free()释放。
[out]输出解析图的所有空闲(未链接)输出的链接列表将在此处返回。它由调用者使用avfilter_inout_free()释放。
Returns
成功时为零,错误时为负 AVERROR 代码
Note
该函数返回解析图形后未链接的输入和输出,然后调用者处理它们。
该函数不会引用图表中已经存在的部分,并且输入参数将在返回时包含图表中新解析部分的输入。类似地,输出参数将包含新创建的过滤器的输出。

文件graphparser.c第137行的定义。

由avfilter_graph_parse()引用。

◆ avfilter_graph_segment_parse()

int avfilter_graph_segment_parse AVFilterGraph 图表,
常量字符*  图_str ,
整数  旗帜,
AVFilterGraphSegment **   

将文本过滤图描述解析为中间形式。

此中间表示旨在由调用者进行修改,如AVFilterGraphSegment及其子项的文档中所述,然后手动或使用其他 avfilter_graph_segment_*() 函数应用于图表。有关应用AVFilterGraphSegment的规范方法,请参阅avfilter_graph_segment_apply()的文档。

Parameters
graph与解析的段关联的过滤图。仅用于日志记录和类似的辅助目的。该函数实际上不会修改图表 - 解析结果会存储在 seg 中以供进一步处理。
graph_str描述filtergraph段的字符串
flags保留供将来使用,调用者现在必须设置为 0
seg如果成功,则会在此处写入指向新创建的AVFilterGraphSegment的指针。图段由调用者拥有,并且必须在图本身被释放之前使用avfilter_graph_segment_free()释放。
Return values
non-negative number成功
negative error code失败

文件graphparser.c第459行的定义。

avfilter_graph_parse2()avfilter_graph_parse_ptr()graph_parse()引用。

◆ avfilter_graph_segment_create_filters()

int avfilter_graph_segment_create_filters AVFilterGraphSegment ,
整数  旗帜 

创建在图形段中指定的过滤器。

遍历段中待创建的AVFilterParams并为它们创建新的过滤器实例。创建待处理参数是AVFilterParams.filter_name为非 NULL 的参数(因此AVFilterParams.filter为 NULL)。所有其他AVFilterParams实例都将被忽略。

对于此函数创建的任何过滤器,相应的AVFilterParams.filter将设置为新创建的过滤器上下文,AVFilterParams.filter_nameAVFilterParams.instance_name将被释放并设置为 NULL。

Parameters
seg要处理的filtergraph段
flags保留供将来使用,调用者现在必须设置为 0
Return values
non-negative number成功,所有待创建的过滤器均已成功创建
AVERROR_FILTER_NOT_FOUND某些过滤器的名称与已知过滤器不对应
another negative error code其他故障
Note
多次调用此函数是安全的,因为它是幂等的。

文件graphparser.c第515行的定义。

avfilter_graph_parse_ptr()avfilter_graph_segment_apply()graph_parse()引用。

◆ avfilter_graph_segment_apply_opts()

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会被简单地跳过。

Parameters
seg要处理的filtergraph段
flags保留供将来使用,调用者现在必须设置为 0
Return values
non-negative number成功,所有选项均已成功应用。
AVERROR_OPTION_NOT_FOUND在过滤器中找不到某些选项
another negative error code其他故障
Note
多次调用此函数是安全的,因为它是幂等的。

文件graphparser.c第585行的定义。

由avfilter_graph_parse_ptr()avfilter_graph_segment_apply()引用。

◆ avfilter_graph_segment_init()

int avfilter_graph_segment_init AVFilterGraphSegment ,
整数  旗帜 

初始化图段中的所有过滤器实例。

遍历图形段中的所有过滤器实例,并对尚未初始化的过滤器实例调用 avfilter_init_dict(..., NULL) 。

段中存在的任何待创建的过滤器(请参阅avfilter_graph_segment_create_filters() )都会导致此函数失败。没有关联过滤器上下文或其过滤器上下文已初始化的AVFilterParams将被简单地跳过。

Parameters
seg要处理的filtergraph段
flags保留供将来使用,调用者现在必须设置为 0
Return values
non-negative number成功,所有过滤器实例均已成功初始化
negative error code失败
Note
多次调用此函数是安全的,因为它是幂等的。

文件graphparser.c第615行的定义。

由avfilter_graph_parse_ptr()avfilter_graph_segment_apply()引用。

◆ avfilter_graph_segment_link()

int avfilter_graph_segment_link AVFilterGraphSegment ,
整数  旗帜,
AV 过滤器输入输出**  输入,
AV 过滤器输入输出**  输出 

链接图段中的过滤器。

遍历图形段中的所有过滤器实例,并尝试链接所有未链接的输入和输出板。段中存在的任何待创建的过滤器(请参阅avfilter_graph_segment_create_filters() )都会导致此函数失败。禁用的过滤器和已链接的焊盘将被跳过。

每个具有相应AVFilterPadParams且带有非 NULL 标签的过滤器输出垫是

  • 链接到具有匹配标签的输入(如果存在);
  • 否则导出到输出链接列表中,并保留标签。未标记的输出是
  • 链接到链中下一个非禁用过滤器中的第一个未链接的未标记输入(如果存在)
  • 否则在输出链表中导出,带有 NULL 标签

同样,未链接的输入板将导出到输入链接列表中。

Parameters
要处理的filtergraph段
旗帜保留供将来使用,调用者现在必须设置为 0
[out]输入此处将返回该图段中过滤器的所有空闲(未链接)输入的链接列表。它由调用者使用avfilter_inout_free()释放。
[out]输出此处将返回该图段中过滤器的所有空闲(未链接)输出的链接列表。它由调用者使用avfilter_inout_free()释放。
Return values
non-negative number成功
negative error code失败
Note
多次调用此函数是安全的,因为它是幂等的。

文件graphparser.c第812行的定义。

由avfilter_graph_segment_apply()引用。

◆ avfilter_graph_segment_apply()

int avfilter_graph_segment_apply AVFilterGraphSegment ,
整数  旗帜,
AV 过滤器输入输出**  输入,
AV 过滤器输入输出**  输出 

将图形段中的所有过滤器/链接描述应用到关联的过滤器图形。

该函数目前相当于按顺序调用以下函数:

由于上述函数是幂等的,因此调用者可以手动调用其中一些函数,然后对filtergraph进行一些自定义处理,然后调用此函数来完成其余的操作。

Parameters
要处理的filtergraph段
旗帜保留供将来使用,调用者现在必须设置为 0
[out]输入传递给avfilter_graph_segment_link()
[out]输出传递给avfilter_graph_segment_link()
Return values
non-negative number成功
negative error code失败
Note
多次调用此函数是安全的,因为它是幂等的。

文件graphparser.c第880行的定义。

avfilter_graph_parse2()avfilter_graph_parse_ptr()graph_parse()引用。

◆ avfilter_graph_segment_free()

void avfilter_graph_segment_free AVFilterGraphSegment ** 

释放提供的AVFilterGraphSegment以及与之相关的所有内容。

Parameters
seg指向要释放的AVFilterGraphSegment 的双指针。退出该函数时,NULL 将被写入该指针。
Note
过滤器上下文(AVFilterParams.filter)由AVFilterGraph而不是AVFilterGraphSegment所有,因此它们不会被释放。

文件graphparser.c第275行的定义。

avfilter_graph_parse2()avfilter_graph_parse_ptr()avfilter_graph_segment_parse()graph_parse()引用。

◆ avfilter_graph_send_command()

int avfilter_graph_send_command AVFilterGraph 图表,
常量字符*  目标
常量字符*  命令
常量字符*  精氨酸
字符*  资源,
整数  资源长度
整数  旗帜 

向一个或多个过滤器实例发送命令。

Parameters
graph过滤图
target命令应发送到的过滤器“all”发送到所有过滤器,否则它可以是过滤器或过滤器实例名称,它将命令发送到所有匹配的过滤器。
cmd要发送的命令,为了处理简单,所有命令必须仅为字母数字
arg命令的参数
res大小为 res_size 的缓冲区,其中过滤器可以返回响应。
Returns
>=0 表示成功,否则返回错误代码。AVERROR(ENOSYS)不支持的命令

文件avfiltergraph.c第1187行的定义。

由fg_send_command()filter_frame()引用。

◆ avfilter_graph_queue_command()

int avfilter_graph_queue_command AVFilterGraph 图表,
常量字符*  目标
常量字符*  命令
常量字符*  精氨酸
整数  旗帜,
双倍的  ts 

一个或多个过滤器实例的命令排队。

Parameters
graph过滤图
target命令应发送到的过滤器“all”发送到所有过滤器,否则它可以是过滤器或过滤器实例名称,它将命令发送到所有匹配的过滤器。
cmd要发送的命令,为了处理简单,所有命令只能是字母数字
arg命令的参数
ts命令应发送到过滤器的时间
Note
由于此函数返回后执行命令,因此不提供过滤器的返回代码,也不支持 AVFILTER_CMD_FLAG_ONE。

文件avfiltergraph.c第1217行的定义。

由fg_send_command()引用。

◆ avfilter_graph_dump()

char* avfilter_graph_dump AVFilterGraph 图表,
常量字符*  选项 

将图表转储为人类可读的字符串表示形式。

Parameters
graph要转储的图表
options格式选项;目前被忽略
Returns
一个字符串,如果内存分配失败则为 NULL;必须使用 av_free 释放字符串

文件graphdump.c第157行的定义。

由lavfi_read_header()引用。

◆ avfilter_graph_request_oldest()

int avfilter_graph_request_oldest AVFilterGraph 图形

在最旧的接收器链路上请求帧。

如果请求返回 AVERROR_EOF,请尝试下一步。

请注意,此函数并不意味着成为 FilterGraph 的唯一调度机制,而只是一个在正常情况下帮助以平衡方式耗尽 FilterGraph 的便利函数。

另请注意,AVERROR_EOF 并不意味着在此过程中帧未到达某些接收器。当存在多个接收器链接时,如果请求的链接返回 EOF,则这可能会导致过滤器刷新发送到另一个接收器链接的待处理帧(尽管未经请求)。

Returns
ff_request_frame()的返回值,或者 AVERROR_EOF(如果所有链接都返回 AVERROR_EOF)

文件avfiltergraph.c第1297行的定义。

由fg_transcode_step()main()引用。