Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
F
ffmpeg
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
ffmpeg
Commits
4138cd29
Commit
4138cd29
authored
Mar 04, 2012
by
Anton Khirnov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
avconv: add -cpuflags option for setting supported cpuflags.
Useful for testing.
parent
4d851f8d
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
76 additions
and
5 deletions
+76
-5
avconv.c
avconv.c
+64
-0
cmdutils.c
cmdutils.c
+2
-5
cmdutils.h
cmdutils.h
+6
-0
avconv.texi
doc/avconv.texi
+4
-0
No files found.
avconv.c
View file @
4138cd29
...
...
@@ -4397,6 +4397,67 @@ static int opt_deinterlace(const char *opt, const char *arg)
return
0
;
}
static
int
opt_cpuflags
(
const
char
*
opt
,
const
char
*
arg
)
{
#define CPUFLAG_MMX2 (AV_CPU_FLAG_MMX | AV_CPU_FLAG_MMX2)
#define CPUFLAG_3DNOW (AV_CPU_FLAG_3DNOW | AV_CPU_FLAG_MMX)
#define CPUFLAG_3DNOWEXT (AV_CPU_FLAG_3DNOWEXT | CPUFLAG_3DNOW)
#define CPUFLAG_SSE (AV_CPU_FLAG_SSE | CPUFLAG_MMX2)
#define CPUFLAG_SSE2 (AV_CPU_FLAG_SSE2 | CPUFLAG_SSE)
#define CPUFLAG_SSE2SLOW (AV_CPU_FLAG_SSE2SLOW | CPUFLAG_SSE2)
#define CPUFLAG_SSE3 (AV_CPU_FLAG_SSE3 | CPUFLAG_SSE2)
#define CPUFLAG_SSE3SLOW (AV_CPU_FLAG_SSE3SLOW | CPUFLAG_SSE3)
#define CPUFLAG_SSSE3 (AV_CPU_FLAG_SSSE3 | CPUFLAG_SSE3)
#define CPUFLAG_SSE4 (AV_CPU_FLAG_SSE4 | CPUFLAG_SSSE3)
#define CPUFLAG_SSE42 (AV_CPU_FLAG_SSE42 | CPUFLAG_SSE4)
#define CPUFLAG_AVX (AV_CPU_FLAG_AVX | CPUFLAG_SSE42)
#define CPUFLAG_XOP (AV_CPU_FLAG_XOP | CPUFLAG_AVX)
#define CPUFLAG_FMA4 (AV_CPU_FLAG_FMA4 | CPUFLAG_AVX)
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
,
{
CPUFLAG_MMX2
},
.
unit
=
"flags"
},
{
"sse"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
CPUFLAG_SSE
},
.
unit
=
"flags"
},
{
"sse2"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
CPUFLAG_SSE2
},
.
unit
=
"flags"
},
{
"sse2slow"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
CPUFLAG_SSE2SLOW
},
.
unit
=
"flags"
},
{
"sse3"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
CPUFLAG_SSE3
},
.
unit
=
"flags"
},
{
"sse3slow"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
CPUFLAG_SSE3SLOW
},
.
unit
=
"flags"
},
{
"ssse3"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
CPUFLAG_SSSE3
},
.
unit
=
"flags"
},
{
"atom"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
AV_CPU_FLAG_ATOM
},
.
unit
=
"flags"
},
{
"sse4.1"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
CPUFLAG_SSE4
},
.
unit
=
"flags"
},
{
"sse4.2"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
CPUFLAG_SSE42
},
.
unit
=
"flags"
},
{
"avx"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
CPUFLAG_AVX
},
.
unit
=
"flags"
},
{
"xop"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
CPUFLAG_XOP
},
.
unit
=
"flags"
},
{
"fma4"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
CPUFLAG_FMA4
},
.
unit
=
"flags"
},
{
"3dnow"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
CPUFLAG_3DNOW
},
.
unit
=
"flags"
},
{
"3dnowext"
,
NULL
,
0
,
AV_OPT_TYPE_CONST
,
{
CPUFLAG_3DNOWEXT
},
.
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
=
0
,
ret
;
const
AVClass
*
pclass
=
&
class
;
if
((
ret
=
av_opt_eval_flags
(
&
pclass
,
&
cpuflags_opts
[
0
],
arg
,
&
flags
))
<
0
)
return
ret
;
av_set_cpu_flags_mask
(
flags
);
return
0
;
}
static
void
parse_cpuflags
(
int
argc
,
char
**
argv
,
const
OptionDef
*
options
)
{
int
idx
=
locate_option
(
argc
,
argv
,
options
,
"cpuflags"
);
if
(
idx
&&
argv
[
idx
+
1
])
opt_cpuflags
(
"cpuflags"
,
argv
[
idx
+
1
]);
}
#define OFFSET(x) offsetof(OptionsContext, x)
static
const
OptionDef
options
[]
=
{
/* main options */
...
...
@@ -4446,6 +4507,7 @@ static const OptionDef options[] = {
{
"stats"
,
OPT_BOOL
,
{
&
print_stats
},
"print progress report during encoding"
,
},
{
"attach"
,
HAS_ARG
|
OPT_FUNC2
,
{(
void
*
)
opt_attach
},
"add an attachment to the output file"
,
"filename"
},
{
"dump_attachment"
,
HAS_ARG
|
OPT_STRING
|
OPT_SPEC
,
{.
off
=
OFFSET
(
dump_attachment
)},
"extract an attachment into a file"
,
"filename"
},
{
"cpuflags"
,
HAS_ARG
|
OPT_EXPERT
,
{(
void
*
)
opt_cpuflags
},
"set CPU flags mask"
,
"mask"
},
/* video options */
{
"vframes"
,
HAS_ARG
|
OPT_VIDEO
|
OPT_FUNC2
,
{(
void
*
)
opt_video_frames
},
"set the number of video frames to record"
,
"number"
},
...
...
@@ -4532,6 +4594,8 @@ int main(int argc, char **argv)
show_banner
();
parse_cpuflags
(
argc
,
argv
,
options
);
/* parse options */
parse_options
(
&
o
,
argc
,
argv
,
options
,
opt_output_file
);
...
...
cmdutils.c
View file @
4138cd29
...
...
@@ -320,11 +320,8 @@ void parse_options(void *optctx, int argc, char **argv, const OptionDef *options
}
}
/*
* Return index of option opt in argv or 0 if not found.
*/
static
int
locate_option
(
int
argc
,
char
**
argv
,
const
OptionDef
*
options
,
const
char
*
optname
)
int
locate_option
(
int
argc
,
char
**
argv
,
const
OptionDef
*
options
,
const
char
*
optname
)
{
const
OptionDef
*
po
;
int
i
;
...
...
cmdutils.h
View file @
4138cd29
...
...
@@ -189,6 +189,12 @@ int parse_option(void *optctx, const char *opt, const char *arg,
*/
void
parse_loglevel
(
int
argc
,
char
**
argv
,
const
OptionDef
*
options
);
/**
* Return index of option opt in argv or 0 if not found.
*/
int
locate_option
(
int
argc
,
char
**
argv
,
const
OptionDef
*
options
,
const
char
*
optname
);
/**
* Check if the given stream matches a stream specifier.
*
...
...
doc/avconv.texi
View file @
4138cd29
...
...
@@ -808,6 +808,10 @@ avconv -i file.mov -an -vn -bsf:s mov2textsub -c:s copy -f rawvideo sub.txt
@item -tag[:@var
{
stream
_
specifier
}
] @var
{
codec
_
tag
}
(@emph
{
output,per-stream
}
)
Force a tag/fourcc for matching streams.
@item -cpuflags mask (@emph
{
global
}
)
Set a mask that's applied to autodetected CPU flags. This option is intended
for testing. Do not use it unless you know what you're doing.
@end table
@c man end OPTIONS
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment