On Fri, 17 Dec 2021, Zhao Zhili wrote:
It's the duration of this media, should not take account of
editlist.
---
libavformat/movenc.c | 9 +++++++--
tests/ref/fate/movenc | 2 +-
2 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/libavformat/movenc.c b/libavformat/movenc.c
index 0f912dd012..643beac6f2 100644
--- a/libavformat/movenc.c
+++ b/libavformat/movenc.c
@@ -2970,8 +2970,13 @@ static int64_t calc_pts_duration(MOVMuxContext *mov,
MOVTrack *track)
static int mov_write_mdhd_tag(AVIOContext *pb, MOVMuxContext *mov,
MOVTrack *track)
{
- int64_t duration = calc_pts_duration(mov, track);
- int version = duration < INT32_MAX ? 0 : 1;
+ int64_t start, end;
+ int64_t duration;
+ int version;
+
+ get_pts_range(mov, track, &start, &end);
+ duration = end - start;
+ version = duration < INT32_MAX ? 0 : 1;
Isn't this equal to what calc_samples_pts_duration() returns?
It'd be good to point out in the commit message, that
c2424b1f35a1c6c06f1f9fe5f77a7157ed84e1cd was incorrect in this
aspect. It'd also be good to really spell it out clearly, that (if I
understand it correctly), mvhd and tkhd should present the post-editlist
duration, while mdhd should have the pre-editlist duration?
// Martin
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".