没有合适的资源?快使用搜索试试~ 我知道了~
3 .description = NULL_IF_CONFIG_SMALL("Overlay a video source on 4 .preinit = ov
资源详情
资源评论
资源推荐
1
--
FF
mp
eg
过
滤
器
框架
分
析
主
要
结
构
体
和
A
P
I
介
绍
A
V
F
il
t
e
r
G
r
a
p
h
-
对
fil
t
e
rs
系统
的
整
体
管
理
A
V
F
il
t
e
r
-
定
义
fil
t
e
r
本
身
的
能
⼒
A
V
F
il
t
e
r
C
ont
e
xt
-
fil
t
e
r
实
例
,
管
理
fil
t
e
r
与
外
部
的
联
系
A
V
F
il
t
e
r
L
i
n
k
-
定
义
两个
fil
t
e
rs
之
间
的
联
接
A
V
F
il
t
e
r
P
ad
-
定
义
fil
t
e
r
的
输
⼊
/
输
出
接
⼝
A
V
F
il
t
e
r
I
n
O
ut
-
过
滤
器
链
输
⼊
/
输
出
的
链
接
列
表
函
数
使
⽤
A
V
F
il
t
e
r
主体
框架
流
程
《
FFmpeg/WebRTC/RTMP
⾳
视
频
流
媒
体
⾼
级
开
发
》
https://ke.qq.com/course/468797?
tuin=137bb271
零
声
学
院
整
理
联
系
⽼
师
:
QQ 326873713
ffmpeg
的
filter
⽤
起
来是
和
Gstreamer
的
plugin
是
⼀
样
的
概
念
,
通过
avfilter_link
,
将
各
个
创
建
好
的
filter
按
⾃
⼰
想
要
的
次
序
链
接
到
⼀
起
,
然
后
avfilter_graph_config
之
后
,
就
可
以
正
常
使
⽤
。
⽐
较
常
⽤
的
滤
镜
有
:
scale
、
trim
、
overlay
、
rotate
、
movie
、
yadif
。
scale
滤
镜
⽤
于
缩
放
,
trim
滤
镜
⽤
于
帧
级
剪切
,
overlay
滤
镜
⽤
于
视
频
叠
加
,
rotate
滤
镜
实
现
旋
转
,
movie
滤
镜
可
以
加
载
第
三
⽅
的
视
频
,
yadif
滤
镜
可
以
去
隔
⾏
。
重
点
struct AVFilterGraph
{
AVFilterContext **filters;
unsigned nb_filters;
}
完
整
结
构
体
1
主
要
结
构
体
和
API
介
绍
AVFilterGraph-
对
filters
系统
的
整
体
管
理
2
1 //
对
filters
系统
的
整
体
管
理
2 typedef struct AVFilterGraph {
3 const AVClass *av_class;
4 AVFilterContext **filters;
5 unsigned nb_filters;
6 char *scale_sws_opts; ///< sws options to use for the auto-inser
ted scale filters
7 #if FF_API_LAVR_OPTS
8 attribute_deprecated char *resample_lavr_opts; ///< libavresam
ple options to use for the auto-inserted resample filters
9 #endif
10 /**
11 * Type of multithreading allowed for filters in this graph. A c
ombination
12 * of AVFILTER_THREAD_* flags.
13 *
14 * May be set by the caller at any point, the setting will apply
to all
15 * filters initialized after that. The default is allowing every
thing.
16 *
17 * When a filter in this graph is initialized, this field is com
bined using
18 * bit AND with AVFilterContext.thread_type to get the final mas
k used for
19 * determining allowed threading types. I.e. a threading type ne
eds to be
20 * set in both to be allowed.
21 */
22 int thread_type;
23 /**
24 * Maximum number of threads used by filters in this graph. May
be set by
25 * the caller before adding any filters to the filtergraph. Zero
(the
26 * default) means that the number of threads is determined autom
atically.
27 */
28 int nb_threads;
29 /**
3
30 * Opaque object for libavfilter internal use.
31 */
32 AVFilterGraphInternal *internal;
33 /**
34 * Opaque user data. May be set by the caller to an arbitrary va
lue, e.g. to
35 * be used from callbacks like @ref AVFilterGraph.execute.
36 * Libavfilter will not touch this field in any way.
37 */
38 void *opaque;
39 /**
40 * This callback may be set by the caller immediately after allo
cating the
41 * graph and before adding any filters to it, to provide a custo
m
42 * multithreading implementation.
43 *
44 * If set, filters with slice threading capability will call thi
s callback
45 * to execute multiple jobs in parallel.
46 *
47 * If this field is left unset, libavfilter will use its interna
l
48 * implementation, which may or may not be multithreaded dependi
ng on the
49 * platform and build options.
50 */
51 avfilter_execute_func *execute;
52 char *aresample_swr_opts; ///< swr options to use for the auto-i
nserted aresample filters, Access ONLY through AVOptions
53 /**
54 * Private fields
55 *
56 * The following fields are for internal use only.
57 * Their type, offset, number and semantic can change without no
tice.
58 */
59 AVFilterLink **sink_links;
60 int sink_links_count;
61 unsigned disable_auto_convert;
4
62 } AVFilterGraph;
重
点
const char *name; // overlay
const AVFilterPad *inputs;
const AVFilterPad *outputs;
⽐
如
:
1 AVFilter ff_vf_overlay = {
2 .name = "overlay",
3 .description = NULL_IF_CONFIG_SMALL("Overlay a video source on
top of the input."),
4 .preinit = overlay_framesync_preinit,
5 .init = init,
6 .uninit = uninit,
7 .priv_size = sizeof(OverlayContext),
8 .priv_class = &overlay_class,
9 .query_formats = query_formats,
10 .activate = activate,
11 .process_command = process_command,
12 .inputs = avfilter_vf_overlay_inputs,
13 .outputs = avfilter_vf_overlay_outputs,
14 .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL |
15 AVFILTER_FLAG_SLICE_THREADS,
16 };
//
定
义
filter
本
身
的
能
⼒
,
拥
有
的
pads
,
回
调
函
数接
⼝
定
义
1 /**
2 * Filter definition. This defines the pads a filter contains, and
all the
3 * callback functions used to interact with the filter.
AVFilter-
定
义
filter
本
身
的
能
⼒
5
4 */
5 typedef struct AVFilter {
6 /**
7 * Filter name. Must be non-NULL and unique among filters.
8 */
9 const char *name;
10
11 /**
12 * A description of the filter. May be NULL.
13 *
14 * You should use the NULL_IF_CONFIG_SMALL() macro to define i
t.
15 */
16 const char *description;
17
18 /**
19 * List of inputs, terminated by a zeroed element.
20 *
21 * NULL if there are no (static) inputs. Instances of filters w
ith
22 * AVFILTER_FLAG_DYNAMIC_INPUTS set may have more inputs than p
resent in
23 * this list.
24 */
25 const AVFilterPad *inputs;
26 /**
27 * List of outputs, terminated by a zeroed element.
28 *
29 * NULL if there are no (static) outputs. Instances of filters
with
30 * AVFILTER_FLAG_DYNAMIC_OUTPUTS set may have more outputs than
present in
31 * this list.
32 */
33 const AVFilterPad *outputs;
34
35 /**
36 * A class for the private data, used to declare filter private
AVOptions.
37 * This field is NULL for filters that do not declare any optio
剩余26页未读,继续阅读
BJWcn
- 粉丝: 28
- 资源: 294
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于matlab的考虑设备动作损耗的配电网分布式电压无功优化源码.zip
- 互联网网络科技类网站模板整站打包下载.zip
- 电脑操作系统软件下载网站模板打包整站下载.zip
- 创维e910 mt8685刷机包
- 网站整站模板竞技游戏类网站模板打包下载.zip
- 14 Day of the Dragon King - Mary Pope Osborne.png
- 【Redis开发】资源Redis-v6.0.20.zip
- 《STM32单片机+DHT11温湿度++光敏电阻+蜂鸣器+OLED屏幕》源代码
- (完整版)银行计算机储蓄系统需求分析.doc
- 图像超分辨率FSRCNN的最优SSIM和PSNR的模型权重文件(x2、x3、x4)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0