Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
小白菜888
Ffmpeg
提交
fbedce6b
F
Ffmpeg
项目概览
小白菜888
/
Ffmpeg
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
Ffmpeg
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
fbedce6b
编写于
10月 09, 2012
作者:
C
Clément Bœsch
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
lavfi/silencedetect: export silence info to metadata.
上级
de23953d
变更
4
展开全部
隐藏空白更改
内联
并排
Showing
4 changed file
with
536 addition
and
6 deletion
+536
-6
libavfilter/af_silencedetect.c
libavfilter/af_silencedetect.c
+19
-5
libavfilter/version.h
libavfilter/version.h
+1
-1
tests/fate/filter.mak
tests/fate/filter.mak
+4
-0
tests/ref/fate/filter-metadata-silencedetect
tests/ref/fate/filter-metadata-silencedetect
+512
-0
未找到文件。
libavfilter/af_silencedetect.c
浏览文件 @
fbedce6b
...
...
@@ -78,6 +78,12 @@ static av_cold int init(AVFilterContext *ctx, const char *args)
return
0
;
}
static
char
*
get_metadata_val
(
AVFilterBufferRef
*
insamples
,
const
char
*
key
)
{
AVDictionaryEntry
*
e
=
av_dict_get
(
insamples
->
metadata
,
key
,
NULL
,
0
);
return
e
&&
e
->
value
?
e
->
value
:
NULL
;
}
static
int
filter_samples
(
AVFilterLink
*
inlink
,
AVFilterBufferRef
*
insamples
)
{
int
i
;
...
...
@@ -94,6 +100,7 @@ static int filter_samples(AVFilterLink *inlink, AVFilterBufferRef *insamples)
silence
->
last_sample_rate
=
srate
;
// TODO: support more sample formats
// TODO: document metadata
if
(
insamples
->
format
==
AV_SAMPLE_FMT_DBL
)
{
double
*
p
=
(
double
*
)
insamples
->
data
[
0
];
...
...
@@ -103,16 +110,23 @@ static int filter_samples(AVFilterLink *inlink, AVFilterBufferRef *insamples)
silence
->
nb_null_samples
++
;
if
(
silence
->
nb_null_samples
>=
nb_samples_notify
)
{
silence
->
start
=
insamples
->
pts
-
(
int64_t
)(
silence
->
duration
/
av_q2d
(
inlink
->
time_base
)
+
.
5
);
av_log
(
silence
,
AV_LOG_INFO
,
"silence_start: %s
\n
"
,
av_ts2timestr
(
silence
->
start
,
&
inlink
->
time_base
));
av_dict_set
(
&
insamples
->
metadata
,
"lavfi.silence_start"
,
av_ts2timestr
(
silence
->
start
,
&
inlink
->
time_base
),
0
);
av_log
(
silence
,
AV_LOG_INFO
,
"silence_start: %s
\n
"
,
get_metadata_val
(
insamples
,
"lavfi.silence_start"
));
}
}
}
else
{
if
(
silence
->
start
)
if
(
silence
->
start
)
{
av_dict_set
(
&
insamples
->
metadata
,
"lavfi.silence_end"
,
av_ts2timestr
(
insamples
->
pts
,
&
inlink
->
time_base
),
0
);
av_dict_set
(
&
insamples
->
metadata
,
"lavfi.silence_duration"
,
av_ts2timestr
(
insamples
->
pts
-
silence
->
start
,
&
inlink
->
time_base
),
0
);
av_log
(
silence
,
AV_LOG_INFO
,
"silence_end: %s | silence_duration: %s
\n
"
,
av_ts2timestr
(
insamples
->
pts
,
&
inlink
->
time_base
),
av_ts2timestr
(
insamples
->
pts
-
silence
->
start
,
&
inlink
->
time_base
));
get_metadata_val
(
insamples
,
"lavfi.silence_end"
),
get_metadata_val
(
insamples
,
"lavfi.silence_duration"
));
}
silence
->
nb_null_samples
=
silence
->
start
=
0
;
}
}
...
...
libavfilter/version.h
浏览文件 @
fbedce6b
...
...
@@ -30,7 +30,7 @@
#define LIBAVFILTER_VERSION_MAJOR 3
#define LIBAVFILTER_VERSION_MINOR 20
#define LIBAVFILTER_VERSION_MICRO 10
1
#define LIBAVFILTER_VERSION_MICRO 10
2
#define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
LIBAVFILTER_VERSION_MINOR, \
...
...
tests/fate/filter.mak
浏览文件 @
fbedce6b
...
...
@@ -53,6 +53,10 @@ FATE_FILTER-$(call ALLYES, FFPROBE LAVFI_INDEV MOVIE_FILTER SELECT_FILTER AVCODE
fate-filter-metadata-scenedetect
:
SRC = $(SAMPLES)/svq3/Vertical400kbit.sorenson3.mov
fate-filter-metadata-scenedetect
:
CMD = run $(FILTER_METADATA_COMMAND) "movie=$(SRC)
,
select=gt(scene
\,
.4)"
FATE_FILTER-$(call
ALLYES,
FFPROBE
LAVFI_INDEV
AMOVIE_FILTER
AMR_DEMUXER
AMRWB_DECODER)
+=
fate-filter-metadata-silencedetect
fate-filter-metadata-silencedetect
:
SRC = $(SAMPLES)/amrwb/seed-12k65.awb
fate-filter-metadata-silencedetect
:
CMD = run $(FILTER_METADATA_COMMAND) "amovie=$(SRC)
,
silencedetect=d=.1"
FATE_SAMPLES_AVCONV
+=
$
(
FATE_FILTER-yes
)
fate-filter
:
$(FATE_FILTER-yes)
tests/ref/fate/filter-metadata-silencedetect
0 → 100644
浏览文件 @
fbedce6b
此差异已折叠。
点击以展开。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录