Commit 60a9966e authored by Stefano Sabatini's avatar Stefano Sabatini Committed by Diego Biurrun

Make cmdutils.c:parse_options accept as argument a function to parse

bare command line parameters.
patch by Stefano Sabatini, stefano.sabatini-lala poste it

Originally committed as revision 10112 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 9c0edaaf
...@@ -61,7 +61,8 @@ static const OptionDef* find_option(const OptionDef *po, const char *name){ ...@@ -61,7 +61,8 @@ static const OptionDef* find_option(const OptionDef *po, const char *name){
return po; return po;
} }
void parse_options(int argc, char **argv, const OptionDef *options) void parse_options(int argc, char **argv, const OptionDef *options,
void (* parse_arg_function)(const char*))
{ {
const char *opt, *arg; const char *opt, *arg;
int optindex, handleoptions=1; int optindex, handleoptions=1;
...@@ -112,7 +113,8 @@ unknown_opt: ...@@ -112,7 +113,8 @@ unknown_opt:
po->u.func_arg(arg); po->u.func_arg(arg);
} }
} else { } else {
parse_arg_file(opt); if (parse_arg_function)
parse_arg_function(opt);
} }
} }
} }
......
...@@ -50,8 +50,18 @@ typedef struct { ...@@ -50,8 +50,18 @@ typedef struct {
} OptionDef; } OptionDef;
void show_help_options(const OptionDef *options, const char *msg, int mask, int value); void show_help_options(const OptionDef *options, const char *msg, int mask, int value);
void parse_options(int argc, char **argv, const OptionDef *options);
void parse_arg_file(const char *filename); /**
* Parses the command line arguments.
* @param options Array with the definitions required to interpret every
* option of the form: -<option_name> [<argument>]
* @param parse_arg_function Name of the function called to process every
* argument without a leading option name flag. NULL if such arguments do
* not have to be processed.
*/
void parse_options(int argc, char **argv, const OptionDef *options,
void (* parse_arg_function)(const char*));
void print_error(const char *filename, int err); void print_error(const char *filename, int err);
#endif /* _CMD_UTILS_H */ #endif /* _CMD_UTILS_H */
...@@ -3806,11 +3806,6 @@ static void show_help(void) ...@@ -3806,11 +3806,6 @@ static void show_help(void)
av_opt_show(sws_opts, NULL); av_opt_show(sws_opts, NULL);
} }
void parse_arg_file(const char *filename)
{
opt_output_file(filename);
}
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
int i; int i;
...@@ -3831,7 +3826,7 @@ int main(int argc, char **argv) ...@@ -3831,7 +3826,7 @@ int main(int argc, char **argv)
} }
/* parse options */ /* parse options */
parse_options(argc, argv, options); parse_options(argc, argv, options, opt_output_file);
/* file converter / grab */ /* file converter / grab */
if (nb_output_files <= 0) { if (nb_output_files <= 0) {
......
...@@ -2530,7 +2530,7 @@ int main(int argc, char **argv) ...@@ -2530,7 +2530,7 @@ int main(int argc, char **argv)
/* register all codecs, demux and protocols */ /* register all codecs, demux and protocols */
av_register_all(); av_register_all();
parse_options(argc, argv, options); parse_options(argc, argv, options, parse_arg_file);
if (!input_filename) { if (!input_filename) {
show_help(); show_help();
......
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