wtv: Check the return value from gmtime

On MSVC, gmtime returns NULL for values outside of their supported
range (and these show up in our fate test). This doesn't seem
to affect the actual fate test result.

Signed-off-by: Martin Storsjö <martin@martin.st>
This commit is contained in:
Martin Storsjö 2012-06-23 21:46:26 +03:00
parent 8299260470
commit dc53858063
1 changed files with 15 additions and 3 deletions

View File

@ -443,7 +443,11 @@ static int read_probe(AVProbeData *p)
static void filetime_to_iso8601(char *buf, int buf_size, int64_t value)
{
time_t t = (value / 10000000LL) - 11644473600LL;
strftime(buf, buf_size, "%Y-%m-%d %H:%M:%S", gmtime(&t));
struct tm *tm = gmtime(&t);
if (tm)
strftime(buf, buf_size, "%Y-%m-%d %H:%M:%S", gmtime(&t));
else
buf[0] = '\0';
}
/**
@ -452,7 +456,11 @@ static void filetime_to_iso8601(char *buf, int buf_size, int64_t value)
static void crazytime_to_iso8601(char *buf, int buf_size, int64_t value)
{
time_t t = (value / 10000000LL) - 719162LL*86400LL;
strftime(buf, buf_size, "%Y-%m-%d %H:%M:%S", gmtime(&t));
struct tm *tm = gmtime(&t);
if (tm)
strftime(buf, buf_size, "%Y-%m-%d %H:%M:%S", gmtime(&t));
else
buf[0] = '\0';
}
/**
@ -461,7 +469,11 @@ static void crazytime_to_iso8601(char *buf, int buf_size, int64_t value)
static void oledate_to_iso8601(char *buf, int buf_size, int64_t value)
{
time_t t = 631112400LL + 86400*av_int2double(value);
strftime(buf, buf_size, "%Y-%m-%d %H:%M:%S", gmtime(&t));
struct tm *tm = gmtime(&t);
if (tm)
strftime(buf, buf_size, "%Y-%m-%d %H:%M:%S", gmtime(&t));
else
buf[0] = '\0';
}
static void get_attachment(AVFormatContext *s, AVIOContext *pb, int length)