Browse Source

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>
tags/n2.5
Martin Storsjö 10 years ago
parent
commit
9cbf70fa0e
2 changed files with 12 additions and 1 deletions
  1. +11
    -0
      libavformat/movenc.c
  2. +1
    -1
      libavformat/version.h

+ 11
- 0
libavformat/movenc.c View File

@@ -3018,6 +3018,17 @@ static int mov_flush_fragment(AVFormatContext *s)
info = &track->frag_info[track->nb_frag_info - 1];
info->offset = avio_tell(s->pb);
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;
mov_write_tfrf_tags(s->pb, mov, track);



+ 1
- 1
libavformat/version.h View File

@@ -31,7 +31,7 @@

#define LIBAVFORMAT_VERSION_MAJOR 56
#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, \
LIBAVFORMAT_VERSION_MINOR, \


Loading…
Cancel
Save