diff --git a/cmdutils.c b/cmdutils.c index 36508d25b4..3eb9c18ecd 100644 --- a/cmdutils.c +++ b/cmdutils.c @@ -52,6 +52,17 @@ double parse_number_or_die(const char *context, const char *numstr, int type, do exit(1); } +int64_t parse_time_or_die(const char *context, const char *timestr, int is_duration) +{ + int64_t us = parse_date(timestr, is_duration); + if (us == INT64_MIN) { + fprintf(stderr, "Invalid %s specification for %s: %s\n", + is_duration ? "duration" : "date", context, timestr); + exit(1); + } + return us; +} + void show_help_options(const OptionDef *options, const char *msg, int mask, int value) { const OptionDef *po; diff --git a/cmdutils.h b/cmdutils.h index d06a1f8e83..1e27d8fcc2 100644 --- a/cmdutils.h +++ b/cmdutils.h @@ -39,6 +39,22 @@ */ double parse_number_or_die(const char *context, const char *numstr, int type, double min, double max); +/** + * Parses a string specifying a time and returns its corresponding + * value as a number of microseconds. Exits from the application if + * the string cannot be correctly parsed. + * + * @param context the context of the value to be set (e.g. the + * corresponding commandline option name) + * @param timestr the string to be parsed + * @param is_duration a flag which tells how to interpret \p timestr, if + * not zero \p timestr is interpreted as a duration, otherwise as a + * date + * + * @see av_parse_date() + */ +int64_t parse_time_or_die(const char *context, const char *timestr, int is_duration); + typedef struct { const char *name; int flags; diff --git a/ffmpeg.c b/ffmpeg.c index 7c8ff4910e..753cd20cb0 100644 --- a/ffmpeg.c +++ b/ffmpeg.c @@ -2580,17 +2580,6 @@ static void opt_map_meta_data(const char *arg) m->in_file = strtol(p, &p, 0); } -static int64_t parse_time_or_die(const char *context, const char *timestr, int is_duration) -{ - int64_t us = parse_date(timestr, is_duration); - if (us == INT64_MIN) { - fprintf(stderr, "Invalid %s specification for %s: %s\n", - is_duration ? "duration" : "date", context, timestr); - exit(1); - } - return us; -} - static int opt_recording_time(const char *opt, const char *arg) { recording_time = parse_time_or_die(opt, arg, 1);