diff options
author | Stefano Sabatini <stefano.sabatini-lala@poste.it> | 2007-08-13 23:03:36 +0000 |
---|---|---|
committer | Diego Biurrun <diego@biurrun.de> | 2007-08-13 23:03:36 +0000 |
commit | 60a9966e4d96ca26ceabdaf99eacfb0872c4e931 (patch) | |
tree | 8f8337270ddeeb6f17b527ad9e1cbc8301f76b4a | |
parent | 9c0edaaf1359b4eeb26870c74c3a00dfd026de67 (diff) | |
download | ffmpeg-60a9966e4d96ca26ceabdaf99eacfb0872c4e931.tar.gz |
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
-rw-r--r-- | cmdutils.c | 6 | ||||
-rw-r--r-- | cmdutils.h | 14 | ||||
-rw-r--r-- | ffmpeg.c | 7 | ||||
-rw-r--r-- | ffplay.c | 2 |
4 files changed, 18 insertions, 11 deletions
diff --git a/cmdutils.c b/cmdutils.c index 1c2f44ef3c..a436031d3f 100644 --- a/cmdutils.c +++ b/cmdutils.c @@ -61,7 +61,8 @@ static const OptionDef* find_option(const OptionDef *po, const char *name){ 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; int optindex, handleoptions=1; @@ -112,7 +113,8 @@ unknown_opt: po->u.func_arg(arg); } } else { - parse_arg_file(opt); + if (parse_arg_function) + parse_arg_function(opt); } } } diff --git a/cmdutils.h b/cmdutils.h index 13a61c09df..eb94058888 100644 --- a/cmdutils.h +++ b/cmdutils.h @@ -50,8 +50,18 @@ typedef struct { } OptionDef; 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); #endif /* _CMD_UTILS_H */ @@ -3806,11 +3806,6 @@ static void show_help(void) av_opt_show(sws_opts, NULL); } -void parse_arg_file(const char *filename) -{ - opt_output_file(filename); -} - int main(int argc, char **argv) { int i; @@ -3831,7 +3826,7 @@ int main(int argc, char **argv) } /* parse options */ - parse_options(argc, argv, options); + parse_options(argc, argv, options, opt_output_file); /* file converter / grab */ if (nb_output_files <= 0) { @@ -2530,7 +2530,7 @@ int main(int argc, char **argv) /* register all codecs, demux and protocols */ av_register_all(); - parse_options(argc, argv, options); + parse_options(argc, argv, options, parse_arg_file); if (!input_filename) { show_help(); |