Commit f9fada27 authored by Anton Khirnov's avatar Anton Khirnov

avconv: split printing "main options" into global and per-file.

parent 6e3857fa
...@@ -1791,6 +1791,8 @@ static int opt_filter_complex(const char *opt, const char *arg) ...@@ -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) 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; int show_advanced = 0, show_avoptions = 0;
if (opt) { if (opt) {
...@@ -1812,27 +1814,35 @@ void show_help_default(const char *opt, const char *arg) ...@@ -1812,27 +1814,35 @@ void show_help_default(const char *opt, const char *arg)
"\n", program_name); "\n", program_name);
show_help_options(options, "Print help / information / capabilities:", show_help_options(options, "Print help / information / capabilities:",
OPT_EXIT, 0); OPT_EXIT, 0, 0);
show_help_options(options, "Main options:",
0, OPT_EXPERT | OPT_AUDIO | OPT_VIDEO | OPT_SUBTITLE | show_help_options(options, "Global options (affect whole program "
OPT_EXIT); "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) if (show_advanced)
show_help_options(options, "Advanced options:", show_help_options(options, "Advanced per-file options:",
OPT_EXPERT, OPT_AUDIO | OPT_VIDEO | OPT_SUBTITLE); OPT_EXPERT, OPT_AUDIO | OPT_VIDEO | OPT_SUBTITLE, per_file);
show_help_options(options, "Video options:", show_help_options(options, "Video options:",
OPT_VIDEO, OPT_EXPERT | OPT_AUDIO); OPT_VIDEO, OPT_EXPERT | OPT_AUDIO, 0);
if (show_advanced) if (show_advanced)
show_help_options(options, "Advanced Video options:", 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:", show_help_options(options, "Audio options:",
OPT_AUDIO, OPT_EXPERT | OPT_VIDEO); OPT_AUDIO, OPT_EXPERT | OPT_VIDEO, 0);
if (show_advanced) if (show_advanced)
show_help_options(options, "Advanced Audio options:", 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:", show_help_options(options, "Subtitle options:",
OPT_SUBTITLE, 0); OPT_SUBTITLE, 0, 0);
printf("\n"); printf("\n");
if (show_avoptions) { if (show_avoptions) {
......
...@@ -2924,8 +2924,8 @@ void show_help_default(const char *opt, const char *arg) ...@@ -2924,8 +2924,8 @@ void show_help_default(const char *opt, const char *arg)
{ {
av_log_set_callback(log_callback_help); av_log_set_callback(log_callback_help);
show_usage(); show_usage();
show_help_options(options, "Main options:", 0, OPT_EXPERT); show_help_options(options, "Main options:", 0, OPT_EXPERT, 0);
show_help_options(options, "Advanced options:", OPT_EXPERT, 0); show_help_options(options, "Advanced options:", OPT_EXPERT, 0, 0);
printf("\n"); printf("\n");
show_help_children(avcodec_get_class(), AV_OPT_FLAG_DECODING_PARAM); show_help_children(avcodec_get_class(), AV_OPT_FLAG_DECODING_PARAM);
show_help_children(avformat_get_class(), AV_OPT_FLAG_DECODING_PARAM); show_help_children(avformat_get_class(), AV_OPT_FLAG_DECODING_PARAM);
......
...@@ -872,7 +872,7 @@ void show_help_default(const char *opt, const char *arg) ...@@ -872,7 +872,7 @@ void show_help_default(const char *opt, const char *arg)
{ {
av_log_set_callback(log_callback_help); av_log_set_callback(log_callback_help);
show_usage(); show_usage();
show_help_options(options, "Main options:", 0, 0); show_help_options(options, "Main options:", 0, 0, 0);
printf("\n"); printf("\n");
show_help_children(avformat_get_class(), AV_OPT_FLAG_DECODING_PARAM); show_help_children(avformat_get_class(), AV_OPT_FLAG_DECODING_PARAM);
} }
......
...@@ -4634,7 +4634,7 @@ void show_help_default(const char *opt, const char *arg) ...@@ -4634,7 +4634,7 @@ void show_help_default(const char *opt, const char *arg)
printf("usage: avserver [options]\n" printf("usage: avserver [options]\n"
"Hyper fast multi format Audio/Video streaming server\n"); "Hyper fast multi format Audio/Video streaming server\n");
printf("\n"); printf("\n");
show_help_options(options, "Main options:", 0, 0); show_help_options(options, "Main options:", 0, 0, 0);
} }
static const OptionDef options[] = { static const OptionDef options[] = {
......
...@@ -114,7 +114,7 @@ int64_t parse_time_or_die(const char *context, const char *timestr, ...@@ -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, 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; const OptionDef *po;
int first; int first;
...@@ -124,6 +124,7 @@ void show_help_options(const OptionDef *options, const char *msg, int req_flags, ...@@ -124,6 +124,7 @@ void show_help_options(const OptionDef *options, const char *msg, int req_flags,
char buf[64]; char buf[64];
if (((po->flags & req_flags) != req_flags) || if (((po->flags & req_flags) != req_flags) ||
(alt_flags && !(po->flags & alt_flags)) ||
(po->flags & rej_flags)) (po->flags & rej_flags))
continue; continue;
......
...@@ -160,9 +160,10 @@ typedef struct { ...@@ -160,9 +160,10 @@ typedef struct {
* @param msg title of this group. Only printed if at least one option matches. * @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 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 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, 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 * Show help for all options with given flags in class and all its
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment