From f825d42bccdb9f89669a586951de7f66a81e80a5 Mon Sep 17 00:00:00 2001 From: Luca Barbato Date: Mon, 14 Oct 2013 05:41:45 +0200 Subject: [PATCH] avplay: Accept cpuflags option Quite useful for debugging. Signed-off-by: Luca Barbato --- avconv.h | 2 -- avconv_opt.c | 13 ------------- cmdutils.c | 12 ++++++++++++ cmdutils.h | 5 +++++ cmdutils_common_opts.h | 1 + doc/avconv.texi | 4 ---- doc/avtools-common-opts.texi | 4 ++++ 7 files changed, 22 insertions(+), 19 deletions(-) diff --git a/avconv.h b/avconv.h index 56876ec066..eb7e37f875 100644 --- a/avconv.h +++ b/avconv.h @@ -356,8 +356,6 @@ extern const OptionDef options[]; void reset_options(OptionsContext *o); void show_usage(void); -int opt_cpuflags(void *optctx, const char *opt, const char *arg); - void opt_output_file(void *optctx, const char *filename); void assert_avoptions(AVDictionary *m); diff --git a/avconv_opt.c b/avconv_opt.c index bd8e7e5a79..70cbd719cd 100644 --- a/avconv_opt.c +++ b/avconv_opt.c @@ -1876,17 +1876,6 @@ static int opt_vsync(void *optctx, const char *opt, const char *arg) return 0; } -int opt_cpuflags(void *optctx, const char *opt, const char *arg) -{ - int flags = av_parse_cpu_flags(arg); - - if (flags < 0) - return flags; - - av_set_cpu_flags_mask(flags); - return 0; -} - static int opt_channel_layout(void *optctx, const char *opt, const char *arg) { OptionsContext *o = optctx; @@ -2231,8 +2220,6 @@ const OptionDef options[] = { { "dump_attachment", HAS_ARG | OPT_STRING | OPT_SPEC | OPT_EXPERT | OPT_INPUT, { .off = OFFSET(dump_attachment) }, "extract an attachment into a file", "filename" }, - { "cpuflags", HAS_ARG | OPT_EXPERT, { .func_arg = opt_cpuflags }, - "set CPU flags mask", "mask" }, /* video options */ { "vframes", OPT_VIDEO | HAS_ARG | OPT_PERFILE | OPT_OUTPUT, { .func_arg = opt_video_frames }, diff --git a/cmdutils.c b/cmdutils.c index 062d7ec2f8..d6eb981205 100644 --- a/cmdutils.c +++ b/cmdutils.c @@ -43,6 +43,7 @@ #include "libavutil/eval.h" #include "libavutil/dict.h" #include "libavutil/opt.h" +#include "libavutil/cpu.h" #include "cmdutils.h" #include "version.h" #if CONFIG_NETWORK @@ -694,6 +695,17 @@ do { \ return 0; } +int opt_cpuflags(void *optctx, const char *opt, const char *arg) +{ + int flags = av_parse_cpu_flags(arg); + + if (flags < 0) + return flags; + + av_set_cpu_flags_mask(flags); + return 0; +} + int opt_loglevel(void *optctx, const char *opt, const char *arg) { const struct { const char *name; int level; } log_levels[] = { diff --git a/cmdutils.h b/cmdutils.h index 997ba1c750..f1b69f95b7 100644 --- a/cmdutils.h +++ b/cmdutils.h @@ -71,6 +71,11 @@ void uninit_opts(void); */ void log_callback_help(void* ptr, int level, const char* fmt, va_list vl); +/** + * Override the cpuflags mask. + */ +int opt_cpuflags(void *optctx, const char *opt, const char *arg); + /** * Fallback for options that are not explicitly handled, these will be * parsed through AVOptions. diff --git a/cmdutils_common_opts.h b/cmdutils_common_opts.h index 619cd896ce..8693f59c56 100644 --- a/cmdutils_common_opts.h +++ b/cmdutils_common_opts.h @@ -15,3 +15,4 @@ { "sample_fmts", OPT_EXIT, {.func_arg = show_sample_fmts }, "show available audio sample formats" }, { "loglevel" , HAS_ARG, {.func_arg = opt_loglevel}, "set libav* logging level", "loglevel" }, { "v", HAS_ARG, {.func_arg = opt_loglevel}, "set libav* logging level", "loglevel" }, + { "cpuflags", HAS_ARG | OPT_EXPERT, { .func_arg = opt_cpuflags }, "set CPU flags mask", "mask" }, diff --git a/doc/avconv.texi b/doc/avconv.texi index d137fe2738..714b0e7ab3 100644 --- a/doc/avconv.texi +++ b/doc/avconv.texi @@ -788,10 +788,6 @@ 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. - @item -filter_complex @var{filtergraph} (@emph{global}) Define a complex filter graph, i.e. one with arbitrary number of inputs and/or outputs. For simple graphs -- those with one input and one output of the same diff --git a/doc/avtools-common-opts.texi b/doc/avtools-common-opts.texi index 4be54125de..156319ec4a 100644 --- a/doc/avtools-common-opts.texi +++ b/doc/avtools-common-opts.texi @@ -143,6 +143,10 @@ the environment variable @env{AV_LOG_FORCE_COLOR}. The use of the environment variable @env{NO_COLOR} is deprecated and will be dropped in a following Libav version. +@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 @section AVOptions