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:
committed by
Diego Biurrun
parent
9c0edaaf13
commit
60a9966e4d
@ -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:
|
|||||||
po->u.func_arg(arg);
|
po->u.func_arg(arg);
|
||||||
}
|
}
|
||||||
} else {
|
} 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;
|
} 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 */
|
||||||
|
7
ffmpeg.c
7
ffmpeg.c
@ -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)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* 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) {
|
||||||
|
2
ffplay.c
2
ffplay.c
@ -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();
|
||||||
|
Reference in New Issue
Block a user