diff mbox series

[FFmpeg-devel,v4] avformat/movenc: fix duration in mdhd box

Message ID tencent_C134573E6B56A39D92E0345A0634B9814E09@qq.com
State Accepted
Commit f37e66b3937a914e16d89a9050f042ad89567245
Headers show
Series [FFmpeg-devel,v4] avformat/movenc: fix duration in mdhd box | expand

Checks

Context Check Description
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished
andriy/make_ppc success Make finished
andriy/make_fate_ppc success Make fate finished
andriy/make_armv7_RPi4 success Make finished
andriy/make_fate_armv7_RPi4 success Make fate finished

Commit Message

zhilizhao(赵志立) Jan. 10, 2022, 10:18 a.m. UTC
mvhd and tkhd present the post-editlist duration, while mdhd should
have the pre-editlist duration. Regression since c2424b1f3.
---
v4: fix more fate

 libavformat/movenc.c                            | 2 +-
 tests/ref/fate/copy-trac3074                    | 2 +-
 tests/ref/fate/mov-cover-image                  | 2 +-
 tests/ref/fate/mov-mp4-disposition-mpegts-remux | 2 +-
 tests/ref/fate/movenc                           | 2 +-
 5 files changed, 5 insertions(+), 5 deletions(-)

Comments

Martin Storsjö Jan. 10, 2022, 10:52 a.m. UTC | #1
On Mon, 10 Jan 2022, Zhao Zhili wrote:

> mvhd and tkhd present the post-editlist duration, while mdhd should
> have the pre-editlist duration. Regression since c2424b1f3.
> ---
> v4: fix more fate

Pushed this now, and backported it to 5.0 - sorry for the delay.

// Martin
diff mbox series

Patch

diff --git a/libavformat/movenc.c b/libavformat/movenc.c
index ab33371296..4c868919ae 100644
--- a/libavformat/movenc.c
+++ b/libavformat/movenc.c
@@ -2960,7 +2960,7 @@  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);
+    int64_t duration = calc_samples_pts_duration(mov, track);
     int version = duration < INT32_MAX ? 0 : 1;
 
     if (track->mode == MODE_ISM)
diff --git a/tests/ref/fate/copy-trac3074 b/tests/ref/fate/copy-trac3074
index 4748296c2a..2ef7e702cd 100644
--- a/tests/ref/fate/copy-trac3074
+++ b/tests/ref/fate/copy-trac3074
@@ -1,4 +1,4 @@ 
-452d91e7c6889b787717fef25b6fce43 *tests/data/fate/copy-trac3074.mp4
+36fcc0a62695bcf93068fcfe68283ee9 *tests/data/fate/copy-trac3074.mp4
 334016 tests/data/fate/copy-trac3074.mp4
 #tb 0: 1/48000
 #media_type 0: audio
diff --git a/tests/ref/fate/mov-cover-image b/tests/ref/fate/mov-cover-image
index 680d84e061..6141646afa 100644
--- a/tests/ref/fate/mov-cover-image
+++ b/tests/ref/fate/mov-cover-image
@@ -1,4 +1,4 @@ 
-4e92f776010bd7a727c11bf8c34cde1e *tests/data/fate/mov-cover-image.mp4
+54a8870d5d1e6cc4da28ae422aa70898 *tests/data/fate/mov-cover-image.mp4
 1011919 tests/data/fate/mov-cover-image.mp4
 #extradata 0:        2, 0x00340022
 #tb 0: 1/44100
diff --git a/tests/ref/fate/mov-mp4-disposition-mpegts-remux b/tests/ref/fate/mov-mp4-disposition-mpegts-remux
index 78f1668f65..184b952e04 100644
--- a/tests/ref/fate/mov-mp4-disposition-mpegts-remux
+++ b/tests/ref/fate/mov-mp4-disposition-mpegts-remux
@@ -1,4 +1,4 @@ 
-3c4432fe59ffd9f2ed6ba4b122cea935 *tests/data/fate/mov-mp4-disposition-mpegts-remux.mp4
+adb3b95c07a5f3e0c86641dd62f01dae *tests/data/fate/mov-mp4-disposition-mpegts-remux.mp4
 5709 tests/data/fate/mov-mp4-disposition-mpegts-remux.mp4
 #tb 0: 1/48000
 #media_type 0: audio
diff --git a/tests/ref/fate/movenc b/tests/ref/fate/movenc
index 81ea75f372..19e4e291b8 100644
--- a/tests/ref/fate/movenc
+++ b/tests/ref/fate/movenc
@@ -7,7 +7,7 @@  write_data len 36, time nopts, type header atom ftyp
 write_data len 2761, time nopts, type header atom -
 write_data len 908, time 966667, type sync atom moof
 write_data len 110, time nopts, type trailer atom -
-caf0876986b5f033efc0958c338289cc 3815 non-empty-moov-elst
+9d260d424e9de4626163fd25ccce5bab 3815 non-empty-moov-elst
 write_data len 36, time nopts, type header atom ftyp
 write_data len 2669, time nopts, type header atom -
 write_data len 908, time 1000000, type sync atom moof