[FFmpeg-soc] [soc]: r530 - matroska/matroskaenc.c
conrad
subversion at mplayerhq.hu
Thu Jul 26 02:05:30 CEST 2007
Author: conrad
Date: Thu Jul 26 02:05:30 2007
New Revision: 530
Log:
Write the creation time
Modified:
matroska/matroskaenc.c
Modified: matroska/matroskaenc.c
==============================================================================
--- matroska/matroskaenc.c (original)
+++ matroska/matroskaenc.c Thu Jul 26 02:05:30 2007
@@ -127,6 +127,18 @@ static void put_ebml_string(ByteIOContex
put_ebml_binary(pb, elementid, str, strlen(str));
}
+// avtime is POSIX time, microseconds
+static void put_ebml_date(ByteIOContext *pb, unsigned int elementid, int64_t avtime)
+{
+ // midnight Jan 1, 1970 in UNIX epoch, microseconds
+ const int64_t ebmlDateStart = 978307200ULL * 1000000;
+ int64_t ebmlTime = (avtime - ebmlDateStart) * 1000;
+
+ put_ebml_id(pb, elementid);
+ put_ebml_size(pb, 8, 0);
+ put_be64(pb, ebmlTime);
+}
+
// this reserves exactly the amount of space specified by size, which must be at least 2
static void put_ebml_void(ByteIOContext *pb, uint64_t size)
{
@@ -526,6 +538,7 @@ static int mkv_write_header(AVFormatCont
if (!(s->streams[0]->codec->flags & CODEC_FLAG_BITEXACT)) {
put_ebml_string(pb, MATROSKA_ID_MUXINGAPP , LIBAVFORMAT_IDENT);
put_ebml_string(pb, MATROSKA_ID_WRITINGAPP, LIBAVFORMAT_IDENT);
+ put_ebml_date (pb, MATROSKA_ID_DATEUTC , av_gettime() );
}
// XXX: segment UID
// reserve space for the duration
More information about the FFmpeg-soc
mailing list