ffmpeg | branch: master | Martin Storsjö <mar...@martin.st> | Sun Oct 12 00:24:31 2014 +0300| [9cbf70fa0e44613590b019cef1fe99aa3f3c5d9d] | committer: Martin Storsjö
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ö <mar...@martin.st> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9cbf70fa0e44613590b019cef1fe99aa3f3c5d9d --- libavformat/movenc.c | 11 +++++++++++ libavformat/version.h | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/libavformat/movenc.c b/libavformat/movenc.c index 96bb885..3b7f5ae 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -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); diff --git a/libavformat/version.h b/libavformat/version.h index c477d5d..f8c5edb 100644 --- a/libavformat/version.h +++ b/libavformat/version.h @@ -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, \ _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog