|
|
@ -4803,7 +4803,7 @@ static int mov_read_trun(MOVContext *c, AVIOContext *pb, MOVAtom atom) |
|
|
|
dts = frag_stream_info->first_tfra_pts; |
|
|
|
dts = frag_stream_info->first_tfra_pts; |
|
|
|
av_log(c->fc, AV_LOG_DEBUG, "found mfra time %"PRId64 |
|
|
|
av_log(c->fc, AV_LOG_DEBUG, "found mfra time %"PRId64 |
|
|
|
", using it for dts\n", pts); |
|
|
|
", using it for dts\n", pts); |
|
|
|
} else if (frag_stream_info->sidx_pts != AV_NOPTS_VALUE) { |
|
|
|
} else if (frag_stream_info->sidx_pts != AV_NOPTS_VALUE && !c->use_tfdt) { |
|
|
|
// FIXME: sidx earliest_presentation_time is *PTS*, s.b.
|
|
|
|
// FIXME: sidx earliest_presentation_time is *PTS*, s.b.
|
|
|
|
// pts = frag_stream_info->sidx_pts;
|
|
|
|
// pts = frag_stream_info->sidx_pts;
|
|
|
|
dts = frag_stream_info->sidx_pts - sc->time_offset; |
|
|
|
dts = frag_stream_info->sidx_pts - sc->time_offset; |
|
|
@ -8169,6 +8169,8 @@ static const AVOption mov_options[] = { |
|
|
|
FLAGS, "use_mfra_for" }, |
|
|
|
FLAGS, "use_mfra_for" }, |
|
|
|
{"pts", "pts", 0, AV_OPT_TYPE_CONST, {.i64 = FF_MOV_FLAG_MFRA_PTS}, 0, 0, |
|
|
|
{"pts", "pts", 0, AV_OPT_TYPE_CONST, {.i64 = FF_MOV_FLAG_MFRA_PTS}, 0, 0, |
|
|
|
FLAGS, "use_mfra_for" }, |
|
|
|
FLAGS, "use_mfra_for" }, |
|
|
|
|
|
|
|
{"use_tfdt", "use tfdt for fragment timestamps", OFFSET(use_tfdt), AV_OPT_TYPE_BOOL, {.i64 = 0}, |
|
|
|
|
|
|
|
0, 1, FLAGS}, |
|
|
|
{ "export_all", "Export unrecognized metadata entries", OFFSET(export_all), |
|
|
|
{ "export_all", "Export unrecognized metadata entries", OFFSET(export_all), |
|
|
|
AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, .flags = FLAGS }, |
|
|
|
AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, .flags = FLAGS }, |
|
|
|
{ "export_xmp", "Export full XMP metadata", OFFSET(export_xmp), |
|
|
|
{ "export_xmp", "Export full XMP metadata", OFFSET(export_xmp), |
|
|
|