Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
小白菜888
Ffmpeg
提交
eadac34c
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,发现更多精彩内容 >>
提交
eadac34c
编写于
4月 26, 2012
作者:
M
Michael Niedermayer
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
cmdutils/avutil: Move cpu caps parse code into av_parse_cpu_caps()
Signed-off-by:
N
Michael Niedermayer
<
michaelni@gmx.at
>
上级
e738811c
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
53 addition
and
39 deletion
+53
-39
cmdutils.c
cmdutils.c
+2
-38
libavutil/avutil.h
libavutil/avutil.h
+1
-1
libavutil/cpu.c
libavutil/cpu.c
+43
-0
libavutil/cpu.h
libavutil/cpu.h
+7
-0
未找到文件。
cmdutils.c
浏览文件 @
eadac34c
...
@@ -547,46 +547,10 @@ int opt_max_alloc(const char *opt, const char *arg)
...
@@ -547,46 +547,10 @@ int opt_max_alloc(const char *opt, const char *arg)
int
opt_cpuflags
(
const
char
*
opt
,
const
char
*
arg
)
int
opt_cpuflags
(
const
char
*
opt
,
const
char
*
arg
)
{
{
static
const
AVOption
cpuflags_opts
[]
=
{
{
"flags"
,
NULL
,
0
,
AV_OPT_TYPE_FLAGS
,
{
0
},
INT64_MIN
,
INT64_MAX
,
.
unit
=
"flags"
},
{
"altivec"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_ALTIVEC
},
.
unit
=
"flags"
},
{
"mmx"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_MMX
},
.
unit
=
"flags"
},
{
"mmx2"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_MMX2
},
.
unit
=
"flags"
},
{
"sse"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_SSE
},
.
unit
=
"flags"
},
{
"sse2"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_SSE2
},
.
unit
=
"flags"
},
{
"sse2slow"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_SSE2SLOW
},
.
unit
=
"flags"
},
{
"sse3"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_SSE3
},
.
unit
=
"flags"
},
{
"sse3slow"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_SSE3SLOW
},
.
unit
=
"flags"
},
{
"ssse3"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_SSSE3
},
.
unit
=
"flags"
},
{
"atom"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_ATOM
},
.
unit
=
"flags"
},
{
"sse4.1"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_SSE4
},
.
unit
=
"flags"
},
{
"sse4.2"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_SSE42
},
.
unit
=
"flags"
},
{
"avx"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_AVX
},
.
unit
=
"flags"
},
{
"xop"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_XOP
},
.
unit
=
"flags"
},
{
"fma4"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_FMA4
},
.
unit
=
"flags"
},
{
"3dnow"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_3DNOW
},
.
unit
=
"flags"
},
{
"3dnowext"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_3DNOWEXT
},
.
unit
=
"flags"
},
{
"armv5te"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_ARMV5TE
},
.
unit
=
"flags"
},
{
"armv6"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_ARMV6
},
.
unit
=
"flags"
},
{
"armv6t2"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_ARMV6T2
},
.
unit
=
"flags"
},
{
"vfp"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_VFP
},
.
unit
=
"flags"
},
{
"vfpv3"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_VFPV3
},
.
unit
=
"flags"
},
{
"neon"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_NEON
},
.
unit
=
"flags"
},
{
NULL
},
};
static
const
AVClass
class
=
{
.
class_name
=
"cpuflags"
,
.
item_name
=
av_default_item_name
,
.
option
=
cpuflags_opts
,
.
version
=
LIBAVUTIL_VERSION_INT
,
};
int
flags
=
av_get_cpu_flags
();
int
ret
;
int
ret
;
const
AVClass
*
pclass
=
&
class
;
unsigned
flags
=
av_get_cpu_flags
()
;
if
((
ret
=
av_
opt_eval_flags
(
&
pclass
,
&
cpuflags_opts
[
0
],
arg
,
&
flags
))
<
0
)
if
((
ret
=
av_
parse_cpu_caps
(
&
flags
,
arg
))
<
0
)
return
ret
;
return
ret
;
av_force_cpu_flags
(
flags
);
av_force_cpu_flags
(
flags
);
...
...
libavutil/avutil.h
浏览文件 @
eadac34c
...
@@ -153,7 +153,7 @@
...
@@ -153,7 +153,7 @@
*/
*/
#define LIBAVUTIL_VERSION_MAJOR 51
#define LIBAVUTIL_VERSION_MAJOR 51
#define LIBAVUTIL_VERSION_MINOR 4
8
#define LIBAVUTIL_VERSION_MINOR 4
9
#define LIBAVUTIL_VERSION_MICRO 100
#define LIBAVUTIL_VERSION_MICRO 100
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
...
...
libavutil/cpu.c
浏览文件 @
eadac34c
...
@@ -110,6 +110,49 @@ int av_parse_cpu_flags(const char *s)
...
@@ -110,6 +110,49 @@ int av_parse_cpu_flags(const char *s)
return
flags
&
INT_MAX
;
return
flags
&
INT_MAX
;
}
}
int
av_parse_cpu_caps
(
unsigned
*
flags
,
const
char
*
s
)
{
static
const
AVOption
cpuflags_opts
[]
=
{
{
"flags"
,
NULL
,
0
,
AV_OPT_TYPE_FLAGS
,
{
0
},
INT64_MIN
,
INT64_MAX
,
.
unit
=
"flags"
},
#if ARCH_PPC
{
"altivec"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_ALTIVEC
},
.
unit
=
"flags"
},
#elif ARCH_X86
{
"mmx"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_MMX
},
.
unit
=
"flags"
},
{
"mmx2"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_MMX2
},
.
unit
=
"flags"
},
{
"sse"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_SSE
},
.
unit
=
"flags"
},
{
"sse2"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_SSE2
},
.
unit
=
"flags"
},
{
"sse2slow"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_SSE2SLOW
},
.
unit
=
"flags"
},
{
"sse3"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_SSE3
},
.
unit
=
"flags"
},
{
"sse3slow"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_SSE3SLOW
},
.
unit
=
"flags"
},
{
"ssse3"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_SSSE3
},
.
unit
=
"flags"
},
{
"atom"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_ATOM
},
.
unit
=
"flags"
},
{
"sse4.1"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_SSE4
},
.
unit
=
"flags"
},
{
"sse4.2"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_SSE42
},
.
unit
=
"flags"
},
{
"avx"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_AVX
},
.
unit
=
"flags"
},
{
"xop"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_XOP
},
.
unit
=
"flags"
},
{
"fma4"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_FMA4
},
.
unit
=
"flags"
},
{
"3dnow"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_3DNOW
},
.
unit
=
"flags"
},
{
"3dnowext"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_3DNOWEXT
},
.
unit
=
"flags"
},
#elif ARCH_ARM
{
"armv5te"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_ARMV5TE
},
.
unit
=
"flags"
},
{
"armv6"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_ARMV6
},
.
unit
=
"flags"
},
{
"armv6t2"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_ARMV6T2
},
.
unit
=
"flags"
},
{
"vfp"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_VFP
},
.
unit
=
"flags"
},
{
"vfpv3"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_VFPV3
},
.
unit
=
"flags"
},
{
"neon"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_NEON
},
.
unit
=
"flags"
},
#endif
{
NULL
},
};
static
const
AVClass
class
=
{
.
class_name
=
"cpuflags"
,
.
item_name
=
av_default_item_name
,
.
option
=
cpuflags_opts
,
.
version
=
LIBAVUTIL_VERSION_INT
,
};
const
AVClass
*
pclass
=
&
class
;
return
av_opt_eval_flags
(
&
pclass
,
&
cpuflags_opts
[
0
],
s
,
flags
);
}
#ifdef TEST
#ifdef TEST
#undef printf
#undef printf
...
...
libavutil/cpu.h
浏览文件 @
eadac34c
...
@@ -79,6 +79,13 @@ attribute_deprecated void av_set_cpu_flags_mask(int mask);
...
@@ -79,6 +79,13 @@ attribute_deprecated void av_set_cpu_flags_mask(int mask);
*/
*/
int
av_parse_cpu_flags
(
const
char
*
s
);
int
av_parse_cpu_flags
(
const
char
*
s
);
/**
* Parse CPU caps from a string and update the given AV_CPU_* flags based on that.
*
* @return negative on error.
*/
int
av_parse_cpu_caps
(
unsigned
*
flags
,
const
char
*
s
);
/* The following CPU-specific functions shall not be called directly. */
/* The following CPU-specific functions shall not be called directly. */
int
ff_get_cpu_flags_arm
(
void
);
int
ff_get_cpu_flags_arm
(
void
);
int
ff_get_cpu_flags_ppc
(
void
);
int
ff_get_cpu_flags_ppc
(
void
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录