aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2012-10-17 02:48:30 +0200
committerCarl Eugen Hoyos <cehoyos@ag.or.at>2012-12-20 12:00:38 +0100
commit97ec20a20aded201f1ef6b78559f58b984bdee39 (patch)
treeae122902a09d047ffcbf87e8781bb1292dac215c
parent553c9c77ccd71a57732fc08c84b185f8e0d82cc7 (diff)
downloadffmpeg-97ec20a20aded201f1ef6b78559f58b984bdee39.tar.gz
mov: fix time types related to mov_metadata_creation_time
Fixes Ticket1817 Based on patch by: Przemyslaw Wesolek <przemyslaw.wesolek@go.art.pl> Signed-off-by: Michael Niedermayer <michaelni@gmx.at> (cherry picked from commit adbb75dbd8eabdaa7439633d26a79eb5b7387ef9)
-rw-r--r--libavformat/mov.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/libavformat/mov.c b/libavformat/mov.c
index 84565c8696..ad851579f4 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -778,14 +778,16 @@ static int mov_read_moof(MOVContext *c, AVIOContext *pb, MOVAtom atom)
return mov_read_default(c, pb, atom);
}
-static void mov_metadata_creation_time(AVDictionary **metadata, time_t time)
+static void mov_metadata_creation_time(AVDictionary **metadata, int64_t time)
{
char buffer[32];
if (time) {
struct tm *ptm;
+ time_t timet;
if(time >= 2082844800)
time -= 2082844800; /* seconds between 1904-01-01 and Epoch */
- ptm = gmtime(&time);
+ timet = time;
+ ptm = gmtime(&timet);
if (!ptm) return;
strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", ptm);
av_dict_set(metadata, "creation_time", buffer, 0);
@@ -799,7 +801,7 @@ static int mov_read_mdhd(MOVContext *c, AVIOContext *pb, MOVAtom atom)
int version;
char language[4] = {0};
unsigned lang;
- time_t creation_time;
+ int64_t creation_time;
if (c->fc->nb_streams < 1)
return 0;
@@ -834,7 +836,7 @@ static int mov_read_mdhd(MOVContext *c, AVIOContext *pb, MOVAtom atom)
static int mov_read_mvhd(MOVContext *c, AVIOContext *pb, MOVAtom atom)
{
- time_t creation_time;
+ int64_t creation_time;
int version = avio_r8(pb); /* version */
avio_rb24(pb); /* flags */