|
|
|
@@ -1368,7 +1368,7 @@ static int mxf_parse_mpeg2_frame(AVFormatContext *s, AVStream *st, AVPacket *pkt |
|
|
|
|
|
|
|
static uint64_t mxf_parse_timestamp(time_t timestamp) |
|
|
|
{ |
|
|
|
struct tm *time = localtime(×tamp); |
|
|
|
struct tm *time = gmtime(×tamp); |
|
|
|
return (uint64_t)(time->tm_year+1900) << 48 | |
|
|
|
(uint64_t)(time->tm_mon+1) << 40 | |
|
|
|
(uint64_t) time->tm_mday << 32 | |
|
|
|
@@ -1490,10 +1490,8 @@ static int mxf_write_header(AVFormatContext *s) |
|
|
|
mxf->essence_container_count = 1; |
|
|
|
} |
|
|
|
|
|
|
|
if (!(s->streams[0]->codec->flags & CODEC_FLAG_BITEXACT)) { |
|
|
|
if (!(s->streams[0]->codec->flags & CODEC_FLAG_BITEXACT)) |
|
|
|
mxf_gen_umid(s); |
|
|
|
mxf->timestamp = mxf_parse_timestamp(s->timestamp); |
|
|
|
} |
|
|
|
|
|
|
|
for (i = 0; i < s->nb_streams; i++) { |
|
|
|
MXFStreamContext *sc = s->streams[i]->priv_data; |
|
|
|
@@ -1502,6 +1500,8 @@ static int mxf_write_header(AVFormatContext *s) |
|
|
|
sc->order = AV_RB32(sc->track_essence_element_key+12); |
|
|
|
} |
|
|
|
|
|
|
|
if (s->timestamp) |
|
|
|
mxf->timestamp = mxf_parse_timestamp(s->timestamp); |
|
|
|
mxf->duration = -1; |
|
|
|
|
|
|
|
mxf->timecode_track = av_mallocz(sizeof(*mxf->timecode_track)); |
|
|
|
|