mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02:00
avformat/mxfenc: support writing subsecond precision timestamps
Signed-off-by: Marton Balint <cus@passwd.hu>
This commit is contained in:
parent
02935c2c93
commit
70c86deb8e
@ -2332,8 +2332,9 @@ static int mxf_parse_mpeg2_frame(AVFormatContext *s, AVStream *st,
|
||||
return !!sc->codec_ul;
|
||||
}
|
||||
|
||||
static uint64_t mxf_parse_timestamp(time_t timestamp)
|
||||
static uint64_t mxf_parse_timestamp(int64_t timestamp64)
|
||||
{
|
||||
time_t timestamp = timestamp64 / 1000000;
|
||||
struct tm tmbuf;
|
||||
struct tm *time = gmtime_r(×tamp, &tmbuf);
|
||||
if (!time)
|
||||
@ -2343,7 +2344,8 @@ static uint64_t mxf_parse_timestamp(time_t timestamp)
|
||||
(uint64_t) time->tm_mday << 32 |
|
||||
time->tm_hour << 24 |
|
||||
time->tm_min << 16 |
|
||||
time->tm_sec << 8;
|
||||
time->tm_sec << 8 |
|
||||
(timestamp64 % 1000000) / 4000;
|
||||
}
|
||||
|
||||
static void mxf_gen_umid(AVFormatContext *s)
|
||||
@ -2580,7 +2582,7 @@ static int mxf_write_header(AVFormatContext *s)
|
||||
sc->order = AV_RB32(sc->track_essence_element_key+12);
|
||||
}
|
||||
|
||||
if (ff_parse_creation_time_metadata(s, ×tamp, 1) > 0)
|
||||
if (ff_parse_creation_time_metadata(s, ×tamp, 0) > 0)
|
||||
mxf->timestamp = mxf_parse_timestamp(timestamp);
|
||||
mxf->duration = -1;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user