diff --git a/libavutil/parseutils.c b/libavutil/parseutils.c index a335978cc1..f188e815fa 100644 --- a/libavutil/parseutils.c +++ b/libavutil/parseutils.c @@ -454,7 +454,8 @@ char *av_small_strptime(const char *p, const char *fmt, struct tm *dt) c = *fmt++; switch(c) { case 'H': - val = date_get_num(&p, 0, 23, 2); + case 'J': + val = date_get_num(&p, 0, c == 'H' ? 23 : INT_MAX, 2); if (val == -1) return NULL; dt->tm_hour = val; @@ -581,7 +582,7 @@ int av_parse_time(int64_t *timeval, const char *timestr, int duration) ++p; } /* parse timestr as HH:MM:SS */ - q = av_small_strptime(p, time_fmt[0], &dt); + q = av_small_strptime(p, "%J:%M:%S", &dt); if (!q) { /* parse timestr as S+ */ dt.tm_sec = strtol(p, (void *)&q, 10); diff --git a/libavutil/parseutils.h b/libavutil/parseutils.h index da7d345b54..1f56a7a7cc 100644 --- a/libavutil/parseutils.h +++ b/libavutil/parseutils.h @@ -141,6 +141,7 @@ int av_parse_time(int64_t *timeval, const char *timestr, int duration); * In particular it actually supports the parameters: * - %H: the hour as a decimal number, using a 24-hour clock, in the * range '00' through '23' + * - %J: hours as a decimal number, in the range '0' through INT_MAX * - %M: the minute as a decimal number, using a 24-hour clock, in the * range '00' through '59' * - %S: the second as a decimal number, using a 24-hour clock, in the diff --git a/libavutil/version.h b/libavutil/version.h index b46c3f2925..a44feda847 100644 --- a/libavutil/version.h +++ b/libavutil/version.h @@ -76,7 +76,7 @@ #define LIBAVUTIL_VERSION_MAJOR 52 #define LIBAVUTIL_VERSION_MINOR 11 -#define LIBAVUTIL_VERSION_MICRO 100 +#define LIBAVUTIL_VERSION_MICRO 101 #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ LIBAVUTIL_VERSION_MINOR, \