mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
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
This commit is contained in:
parent
9c0edaaf13
commit
60a9966e4d
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
14
cmdutils.h
14
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 */
|
||||
|
7
ffmpeg.c
7
ffmpeg.c
@ -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) {
|
||||
|
Loading…
Reference in New Issue
Block a user