diff options
Diffstat (limited to 'libavformat/utils.c')
-rw-r--r-- | libavformat/utils.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/libavformat/utils.c b/libavformat/utils.c index ab063fa796..1906b27536 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -33,6 +33,7 @@ #include "id3v2.h" #include "libavutil/avstring.h" #include "libavutil/mathematics.h" +#include "libavutil/parseutils.h" #include "riff.h" #include "audiointerleave.h" #include "url.h" @@ -4161,9 +4162,14 @@ void ff_make_absolute_url(char *buf, int size, const char *base, int64_t ff_iso8601_to_unix_time(const char *datestr) { #if HAVE_STRPTIME - struct tm time = {0}; - strptime(datestr, "%Y - %m - %dT%T", &time); - return mktime(&time); + struct tm time1 = {0}, time2 = {0}; + char *ret1, *ret2; + ret1 = strptime(datestr, "%Y - %m - %d %T", &time1); + ret2 = strptime(datestr, "%Y - %m - %dT%T", &time2); + if (ret2 && !ret1) + return av_timegm(&time2); + else + return av_timegm(&time1); #else av_log(NULL, AV_LOG_WARNING, "strptime() unavailable on this system, cannot convert " "the date string.\n"); |