aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2008-05-21 23:27:50 +0000
committerMichael Niedermayer <michaelni@gmx.at>2008-05-21 23:27:50 +0000
commita0b3bcd9fe8503c8e842972f7ea7f83770911b73 (patch)
tree808ef946ba74704408b8d1cf06005a57c2e8fed2
parent217e2f46797ccbd90e00da83da8aeb49c5dd4eb9 (diff)
downloadffmpeg-a0b3bcd9fe8503c8e842972f7ea7f83770911b73.tar.gz
OPT_EXIT
Originally committed as revision 13231 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r--cmdutils.c2
-rw-r--r--cmdutils.h1
-rw-r--r--ffmpeg.c19
3 files changed, 6 insertions, 16 deletions
diff --git a/cmdutils.c b/cmdutils.c
index 54085fb7ec..c1edeb907f 100644
--- a/cmdutils.c
+++ b/cmdutils.c
@@ -149,6 +149,8 @@ unknown_opt:
} else {
po->u.func_arg(arg);
}
+ if(po->flags & OPT_EXIT)
+ exit(0);
} else {
if (parse_arg_function)
parse_arg_function(opt);
diff --git a/cmdutils.h b/cmdutils.h
index 27d295fe81..585f9a127e 100644
--- a/cmdutils.h
+++ b/cmdutils.h
@@ -70,6 +70,7 @@ typedef struct {
#define OPT_SUBTITLE 0x0200
#define OPT_FUNC2 0x0400
#define OPT_INT64 0x0800
+#define OPT_EXIT 0x1000
union {
void (*func_arg)(const char *); //FIXME passing error code as int return would be nicer then exit() in the func
int *int_arg;
diff --git a/ffmpeg.c b/ffmpeg.c
index 4944dd6267..ae9a780265 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -3499,7 +3499,6 @@ static void opt_show_formats(void)
"even though both encoding and decoding are supported. For example, the h263\n"
"decoder corresponds to the h263 and h263p encoders, for file formats it is even\n"
"worse.\n");
- av_exit(0);
}
static void parse_matrix_coeffs(uint16_t *dest, const char *str)
@@ -3574,12 +3573,6 @@ static void show_help(void)
av_opt_show(sws_opts, NULL);
}
-static void opt_show_help(void)
-{
- show_help();
- av_exit(0);
-}
-
static void opt_target(const char *arg)
{
int norm = -1;
@@ -3763,12 +3756,6 @@ static int opt_bsf(const char *opt, const char *arg)
return 0;
}
-static void opt_show_license(void)
-{
- show_license();
- av_exit(0);
-}
-
static void opt_show_version(void)
{
show_version(program_name);
@@ -3777,10 +3764,10 @@ static void opt_show_version(void)
static const OptionDef options[] = {
/* main options */
- { "L", 0, {(void*)opt_show_license}, "show license" },
- { "h", 0, {(void*)opt_show_help}, "show help" },
+ { "L", OPT_EXIT, {(void*)show_license}, "show license" },
+ { "h", OPT_EXIT, {(void*)show_help}, "show help" },
{ "version", 0, {(void*)opt_show_version}, "show version" },
- { "formats", 0, {(void*)opt_show_formats}, "show available formats, codecs, protocols, ..." },
+ { "formats", OPT_EXIT, {(void*)opt_show_formats}, "show available formats, codecs, protocols, ..." },
{ "f", HAS_ARG, {(void*)opt_format}, "force format", "fmt" },
{ "i", HAS_ARG, {(void*)opt_input_file}, "input file name", "filename" },
{ "y", OPT_BOOL, {(void*)&file_overwrite}, "overwrite output files" },