aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2012-08-15 10:31:46 +0200
committerAnton Khirnov <anton@khirnov.net>2012-08-19 19:23:43 +0200
commitf9fada2704df7994e8e4451ac78d8d5569faa8a2 (patch)
treeeaa4086e74cffcde48ee94a04b165755de9bb836
parent6e3857fa8cd620d528fb73fe5f7f692db780c4df (diff)
downloadffmpeg-f9fada2704df7994e8e4451ac78d8d5569faa8a2.tar.gz
avconv: split printing "main options" into global and per-file.
-rw-r--r--avconv_opt.c32
-rw-r--r--avplay.c4
-rw-r--r--avprobe.c2
-rw-r--r--avserver.c2
-rw-r--r--cmdutils.c3
-rw-r--r--cmdutils.h3
6 files changed, 29 insertions, 17 deletions
diff --git a/avconv_opt.c b/avconv_opt.c
index 7d4922c375..2c6af6a94b 100644
--- a/avconv_opt.c
+++ b/avconv_opt.c
@@ -1791,6 +1791,8 @@ static int opt_filter_complex(const char *opt, const char *arg)
void show_help_default(const char *opt, const char *arg)
{
+ /* per-file options have at least one of those set */
+ const int per_file = OPT_SPEC | OPT_OFFSET | OPT_FUNC2;
int show_advanced = 0, show_avoptions = 0;
if (opt) {
@@ -1812,27 +1814,35 @@ void show_help_default(const char *opt, const char *arg)
"\n", program_name);
show_help_options(options, "Print help / information / capabilities:",
- OPT_EXIT, 0);
- show_help_options(options, "Main options:",
- 0, OPT_EXPERT | OPT_AUDIO | OPT_VIDEO | OPT_SUBTITLE |
- OPT_EXIT);
+ OPT_EXIT, 0, 0);
+
+ show_help_options(options, "Global options (affect whole program "
+ "instead of just one file:",
+ 0, per_file | OPT_EXIT | OPT_EXPERT, 0);
+ if (show_advanced)
+ show_help_options(options, "Advanced global options:", OPT_EXPERT,
+ per_file | OPT_EXIT, 0);
+
+ show_help_options(options, "Per-file main options:", 0,
+ OPT_EXPERT | OPT_AUDIO | OPT_VIDEO | OPT_SUBTITLE |
+ OPT_EXIT, per_file);
if (show_advanced)
- show_help_options(options, "Advanced options:",
- OPT_EXPERT, OPT_AUDIO | OPT_VIDEO | OPT_SUBTITLE);
+ show_help_options(options, "Advanced per-file options:",
+ OPT_EXPERT, OPT_AUDIO | OPT_VIDEO | OPT_SUBTITLE, per_file);
show_help_options(options, "Video options:",
- OPT_VIDEO, OPT_EXPERT | OPT_AUDIO);
+ OPT_VIDEO, OPT_EXPERT | OPT_AUDIO, 0);
if (show_advanced)
show_help_options(options, "Advanced Video options:",
- OPT_EXPERT | OPT_VIDEO, OPT_AUDIO);
+ OPT_EXPERT | OPT_VIDEO, OPT_AUDIO, 0);
show_help_options(options, "Audio options:",
- OPT_AUDIO, OPT_EXPERT | OPT_VIDEO);
+ OPT_AUDIO, OPT_EXPERT | OPT_VIDEO, 0);
if (show_advanced)
show_help_options(options, "Advanced Audio options:",
- OPT_EXPERT | OPT_AUDIO, OPT_VIDEO);
+ OPT_EXPERT | OPT_AUDIO, OPT_VIDEO, 0);
show_help_options(options, "Subtitle options:",
- OPT_SUBTITLE, 0);
+ OPT_SUBTITLE, 0, 0);
printf("\n");
if (show_avoptions) {
diff --git a/avplay.c b/avplay.c
index 4322802e2c..0c642e07b0 100644
--- a/avplay.c
+++ b/avplay.c
@@ -2924,8 +2924,8 @@ void show_help_default(const char *opt, const char *arg)
{
av_log_set_callback(log_callback_help);
show_usage();
- show_help_options(options, "Main options:", 0, OPT_EXPERT);
- show_help_options(options, "Advanced options:", OPT_EXPERT, 0);
+ show_help_options(options, "Main options:", 0, OPT_EXPERT, 0);
+ show_help_options(options, "Advanced options:", OPT_EXPERT, 0, 0);
printf("\n");
show_help_children(avcodec_get_class(), AV_OPT_FLAG_DECODING_PARAM);
show_help_children(avformat_get_class(), AV_OPT_FLAG_DECODING_PARAM);
diff --git a/avprobe.c b/avprobe.c
index b708cb6683..00e0ad09e0 100644
--- a/avprobe.c
+++ b/avprobe.c
@@ -872,7 +872,7 @@ void show_help_default(const char *opt, const char *arg)
{
av_log_set_callback(log_callback_help);
show_usage();
- show_help_options(options, "Main options:", 0, 0);
+ show_help_options(options, "Main options:", 0, 0, 0);
printf("\n");
show_help_children(avformat_get_class(), AV_OPT_FLAG_DECODING_PARAM);
}
diff --git a/avserver.c b/avserver.c
index c97b4ca213..9e6289914a 100644
--- a/avserver.c
+++ b/avserver.c
@@ -4634,7 +4634,7 @@ void show_help_default(const char *opt, const char *arg)
printf("usage: avserver [options]\n"
"Hyper fast multi format Audio/Video streaming server\n");
printf("\n");
- show_help_options(options, "Main options:", 0, 0);
+ show_help_options(options, "Main options:", 0, 0, 0);
}
static const OptionDef options[] = {
diff --git a/cmdutils.c b/cmdutils.c
index 50076c231d..6576eba95c 100644
--- a/cmdutils.c
+++ b/cmdutils.c
@@ -114,7 +114,7 @@ int64_t parse_time_or_die(const char *context, const char *timestr,
}
void show_help_options(const OptionDef *options, const char *msg, int req_flags,
- int rej_flags)
+ int rej_flags, int alt_flags)
{
const OptionDef *po;
int first;
@@ -124,6 +124,7 @@ void show_help_options(const OptionDef *options, const char *msg, int req_flags,
char buf[64];
if (((po->flags & req_flags) != req_flags) ||
+ (alt_flags && !(po->flags & alt_flags)) ||
(po->flags & rej_flags))
continue;
diff --git a/cmdutils.h b/cmdutils.h
index 39125ce4ba..212aa71fc6 100644
--- a/cmdutils.h
+++ b/cmdutils.h
@@ -160,9 +160,10 @@ typedef struct {
* @param msg title of this group. Only printed if at least one option matches.
* @param req_flags print only options which have all those flags set.
* @param rej_flags don't print options which have any of those flags set.
+ * @param alt_flags print only options that have at least one of those flags set
*/
void show_help_options(const OptionDef *options, const char *msg, int req_flags,
- int rej_flags);
+ int rej_flags, int alt_flags);
/**
* Show help for all options with given flags in class and all its