movenc: Write correct presentation timestamps in tfra
Previously we wrote decoding timestamps here, while the specs say it should be presentation timestamps. Signed-off-by: Martin Storsjö <martin@martin.st>
This commit is contained in:
parent
e7d20f12c5
commit
9cbf70fa0e
@ -3018,6 +3018,17 @@ static int mov_flush_fragment(AVFormatContext *s)
|
|||||||
info = &track->frag_info[track->nb_frag_info - 1];
|
info = &track->frag_info[track->nb_frag_info - 1];
|
||||||
info->offset = avio_tell(s->pb);
|
info->offset = avio_tell(s->pb);
|
||||||
info->time = track->frag_start;
|
info->time = track->frag_start;
|
||||||
|
if (track->entry) {
|
||||||
|
// Try to recreate the original pts for the first packet
|
||||||
|
// from the fields we have stored
|
||||||
|
info->time = track->start_dts + track->frag_start +
|
||||||
|
track->cluster[0].cts;
|
||||||
|
// If the pts is less than zero, we will have trimmed
|
||||||
|
// away parts of the media track using an edit list,
|
||||||
|
// and the corresponding start presentation time is zero.
|
||||||
|
if (info->time < 0)
|
||||||
|
info->time = 0;
|
||||||
|
}
|
||||||
info->duration = duration;
|
info->duration = duration;
|
||||||
mov_write_tfrf_tags(s->pb, mov, track);
|
mov_write_tfrf_tags(s->pb, mov, track);
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
|
|
||||||
#define LIBAVFORMAT_VERSION_MAJOR 56
|
#define LIBAVFORMAT_VERSION_MAJOR 56
|
||||||
#define LIBAVFORMAT_VERSION_MINOR 6
|
#define LIBAVFORMAT_VERSION_MINOR 6
|
||||||
#define LIBAVFORMAT_VERSION_MICRO 3
|
#define LIBAVFORMAT_VERSION_MICRO 4
|
||||||
|
|
||||||
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
|
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
|
||||||
LIBAVFORMAT_VERSION_MINOR, \
|
LIBAVFORMAT_VERSION_MINOR, \
|
||||||
|
Loading…
Reference in New Issue
Block a user