[FFmpeg-devel] [PATCH] avformat/movenc: do not delay writing of a combined moof

Xiaolei Yu dreifachstein at gmail.com
Sun Dec 1 08:49:56 EET 2024


This is not needed after 2d9d6afb8d2f284f5e620ecc19f643d5cd3facb8.

Fix broken file when muxing with frag_interleave and an empty first track.

Signed-off-by: Xiaolei Yu <dreifachstein at gmail.com>
---
 libavformat/movenc.c |  2 +-
 tests/fate/mov.mak   | 17 +++++++++++++++++
 2 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/libavformat/movenc.c b/libavformat/movenc.c
index 010d2afa13..0aff12ebb8 100644
--- a/libavformat/movenc.c
+++ b/libavformat/movenc.c
@@ -6428,7 +6428,7 @@ static int mov_flush_fragment(AVFormatContext *s, int force)
             mdat_size = avio_tell(track->mdat_buf);
             moof_tracks = i;
         } else {
-            write_moof = i == first_track;
+            write_moof = i == 0;
         }
 
         if (write_moof) {
diff --git a/tests/fate/mov.mak b/tests/fate/mov.mak
index ca13ebfd44..aab85bdd31 100644
--- a/tests/fate/mov.mak
+++ b/tests/fate/mov.mak
@@ -284,6 +284,23 @@ fate-mov-mp4-iamf-ambisonic_1: CMD = transcode wav $(SRC) mp4 "-auto_conversion_
   -streamid 0:0 -streamid 1:1 -streamid 2:2 -streamid 3:3 -map [MONO0] -map [MONO1] -map [MONO2] -map [MONO3] -c:a flac -t 1" "-c:a copy -map 0" \
   "-show_entries stream_group=index,id,nb_streams,type:stream_group_components:stream_group_disposition:stream_group_tags:stream_group_stream=index,id:stream_group_stream_disposition"
 
+tests/data/fmp4-h264-init.mp4: TAG = GEN
+tests/data/fmp4-h264-init.mp4: ffmpeg$(PROGSSUF)$(EXESUF) | tests/data
+	$(M)$(TARGET_EXEC) $(TARGET_PATH)/$< -nostdin \
+        -i $(TARGET_SAMPLES)/mov/test_iibbibb.mp4 \
+        -c copy -flags +bitexact -movflags empty_moov -frames:v 0 $(TARGET_PATH)/$@ -y 2>/dev/null
+
+FATE_MOV-$(call REMUX, MOV) += fate-mov-frag-interleave-empty-first
+
+# muxing with frag_interleave and an empty first track
+fate-mov-frag-interleave-empty-first: tests/data/fmp4-h264-init.mp4
+fate-mov-frag-interleave-empty-first: SRC = $(TARGET_PATH)/tests/data/fmp4-h264-init.mp4
+fate-mov-frag-interleave-empty-first: SRC2 = $(TARGET_SAMPLES)/mov/test_iibbibb.mp4
+fate-mov-frag-interleave-empty-first: CMD = md5 -i $(SRC) -i $(SRC2) \
+        -c copy -map 0 -map 1 -fflags +bitexact -movflags +empty_moov+skip_trailer -frag_interleave 1 -f mp4
+fate-mov-frag-interleave-empty-first: CMP = oneline
+fate-mov-frag-interleave-empty-first: REF = c83b313f05620e47fe48108bcc30c655
+
 FATE_FFMPEG += $(FATE_MOV_FFMPEG-yes)
 FATE_FFMPEG_FFPROBE += $(FATE_MOV_FFMPEG_FFPROBE-yes)
 
-- 
2.45.2

-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 236 bytes
Desc: OpenPGP digital signature
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20241201/c3827ff5/attachment.sig>


More information about the ffmpeg-devel mailing list