From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id C6E724BFCD for ; Mon, 1 Sep 2025 08:13:34 +0000 (UTC) Authentication-Results: ffbox; dkim=fail (body hash mismatch (got b'iDr8BGtRDSA22gWC8g15T56KmIAy6SdbxEJbhTQtOHM=', expected b'/Hz4f8dfpOk8xR5HYVNaLl3IOFCEY++nEbyfkHjTM6U=')) header.d=ffmpeg.org header.i=@ffmpeg.org header.a=rsa-sha256 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1756714397; h=mime-version : to : message-id : reply-to : subject : list-id : list-archive : list-archive : list-help : list-owner : list-post : list-subscribe : list-unsubscribe : from : cc : content-type : content-transfer-encoding : from; bh=iDr8BGtRDSA22gWC8g15T56KmIAy6SdbxEJbhTQtOHM=; b=VOr28EWy1exhViXlhcfOPnHa2I51y7zKoW/ghQWep4/O9VEEPgQovUS1breq4dR/SLU4a JkPxRRBmS/+s/0W2UjaEfFMm/DTTerxtzVX6eN72vH3AaqzGwkMd+LZlgaqC0G5tvSFIH/s TyB8WC/IB6luBAq/Fg6jIzYPUHkGbDrzzoe49M544aA3h3BJme66Lv5ARXapfGvZNfgpoYO F70eHCUDyPIXPAa9l1P1cCjjumBpBMmg8rQ5KB01jmu6L31XdMcxBNeEAxsQR7PqVYRP7vb UtKxrd0i4DEAbAK73GAE259op70WjOFbbvJ0jHC1Vl3hGXWK4/YOuzhmpEfg== Received: from [172.19.0.4] (unknown [172.19.0.4]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 51DB968E76A; Mon, 1 Sep 2025 11:13:17 +0300 (EEST) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=ffmpeg.org; s=arc; t=1756714385; b=QUrG54VEkbMGmOyvzHDtcrtFcjART4ABUAAtuftSZqxs+DM1PPmfzkNA1VJiA2I4tNEU2 khPaVw0z+og0o68ay0ae08XDb2uHwxCpItT7S+q0AVumOyed/KzFtnVDMvlSqmWZpw6EBn2 rLudfFNOn8RwqyGbDMNeUjR9VnWl3g12P4Vyu1ZDzg/1rKEk056IeVQfmH7nt9bFgfZKMfE 9m1K620YF3hpKmk71rKV4uUjtbrA8XdJuTxe1ZnP2iPUrTnDfQfe+lmOht4k/gPze8J56Fy 7jBmFe85biQYZcHHdrRcDuFkGa61p4yAjaAkDz7QQcoHy1WuadAnDSN53ObQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=ffmpeg.org; s=arc; t=1756714385; h=from : sender : reply-to : subject : date : message-id : to : cc : mime-version : content-type : content-transfer-encoding : content-id : content-description : resent-date : resent-from : resent-sender : resent-to : resent-cc : resent-message-id : in-reply-to : references : list-id : list-help : list-unsubscribe : list-subscribe : list-post : list-owner : list-archive; bh=1HDgTB3nOH3aWGLh/9OHNBrnf5RZaLKeAyvWRr/NFcg=; b=oscuuDdVbuFXKJslTiKQjJQxv+5YBQs9YGBSU6c1DbKy5NuHX1C7fO7gv8hqcLQEW3Pcm S232uWdLYCg8AwPH1omLbjIf1VVWEsrpQh0k+jpnQ+gLBJ3ifSW5yiaBRFwxtNMAfTvPN8U X/PefpI/878Fc6rsPy08AIIadtX/FXpdOUa5Mw2hiI0+bsPBeruRSOVUZZEdcq2ITUmAJuV 33/HsdAVGcsymjyGFD6uWvgPoZSjtLCGPZkwlqxGELWOM0m8CGqJbKTfrxyXcHYNTkIOEne 6HqgRf/DpROAq9yTVMGpXMCbK5kVpY9V4blqD6SicSMWd8f4GTqBEjwucmvQ== ARC-Authentication-Results: i=1; ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none; dmarc=none Authentication-Results: ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none (Message is not ARC signed); dmarc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1756714376; h=content-type : mime-version : content-transfer-encoding : from : to : reply-to : subject : from; bh=/Hz4f8dfpOk8xR5HYVNaLl3IOFCEY++nEbyfkHjTM6U=; b=0CIuaRl8KfDZoN39BrsQf4LpffS+WBNLZi4mv8mt5t6LeH8dePYEJpwAU3OSp8PLadzId iP2cXicOl8tQrHQayWUmvsJ2rGm2Hjbi2lLFv+3mPA/VUI9JiSCCzoP6jsoSrhQ2xT7q4pa aNmVcjJRL4NRPsBpv7ebxDRTevhjf9RoulgrthlLmTRGeNWI/peYoXnNJyC3hrFjlwQ77K/ EPqIn7MAy1GHir9Mia7q2i7PLquVLpMNB3OQGV5bRN9PJTV/8CzYXiGg+fNOnLm2tvOyM/J KGLmDsM8N/KftjeYytksVUX8Y4hB/edjkE+vVnnoWlJkLVOLrZH4hNmJfK8A== Received: from 5d8f51c41678 (code.ffmpeg.org [188.245.149.3]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 1228768E6C3 for ; Mon, 1 Sep 2025 11:12:56 +0300 (EEST) MIME-Version: 1.0 To: ffmpeg-devel@ffmpeg.org Message-ID: <175671437617.25.12737501388288791516@463a07221176> Message-ID-Hash: SQNHOBAAR3YE3DS2ERJSND6XZXLAE6Z6 X-Message-ID-Hash: SQNHOBAAR3YE3DS2ERJSND6XZXLAE6Z6 X-MailFrom: code@ffmpeg.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-ffmpeg-devel.ffmpeg.org-0; header-match-ffmpeg-devel.ffmpeg.org-1; header-match-ffmpeg-devel.ffmpeg.org-2; header-match-ffmpeg-devel.ffmpeg.org-3; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list Reply-To: FFmpeg development discussions and patches Subject: [FFmpeg-devel] [PATCH] avformat/movenc: remove mvex from final mp4 in hybrid_fragmented mode (PR #20385) List-Id: FFmpeg development discussions and patches Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Zhao Zhili via ffmpeg-devel Cc: Zhao Zhili Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Archived-At: List-Archive: List-Post: PR #20385 opened by Zhao Zhili (quink) URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20385 Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20385.patch In hybrid_fragmented mode, the first moov at start should contain mvex tag, since it's fmp4. When writing the moov at the second time, it's not fmp4 any more, so mvex should be skipped. >>From 701399cecfe5e3d80406745ae466fc654dfc22a4 Mon Sep 17 00:00:00 2001 From: Zhao Zhili Date: Mon, 1 Sep 2025 14:55:44 +0800 Subject: [PATCH] avformat/movenc: remove mvex from final mp4 in hybrid_fragmented mode In hybrid_fragmented mode, the first moov at start should contain mvex tag, since it's fmp4. When writing the moov at the second time, it's not fmp4 any more, so mvex should be skipped. --- libavformat/movenc.c | 6 +++++- tests/fate/mov.mak | 2 +- tests/ref/lavf/mov_hybrid_frag | 4 ++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/libavformat/movenc.c b/libavformat/movenc.c index efd6329d70..e67a14a7d6 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -5183,7 +5183,11 @@ static int mov_write_moov_tag(AVIOContext *pb, MOVMuxContext *mov, return ret; } } - if (mov->flags & FF_MOV_FLAG_FRAGMENT) + /* Don't write mvex for hybrid_fragmented during mov_write_trailer + * (mov->moov_written != 0) + */ + if (mov->flags & FF_MOV_FLAG_FRAGMENT && + !(mov->flags & FF_MOV_FLAG_HYBRID_FRAGMENTED && mov->moov_written)) mov_write_mvex_tag(pb, mov); /* QuickTime requires trak to precede this */ if (mov->mode == MODE_PSP) diff --git a/tests/fate/mov.mak b/tests/fate/mov.mak index 421845969b..8e0988000d 100644 --- a/tests/fate/mov.mak +++ b/tests/fate/mov.mak @@ -92,7 +92,7 @@ fate-mov-frag-overlap: CMD = framemd5 -i $(TARGET_SAMPLES)/mov/frag_overlap.mp4 fate-mov-mp4-frag-flush: CMD = md5 -f lavfi -i color=blue,format=rgb24,trim=duration=0.04 -f lavfi -i anullsrc,aformat=s16,atrim=duration=2 -c:v png -c:a pcm_s16le -movflags +empty_moov+hybrid_fragmented -frag_duration 1000000 -frag_interleave 1 -bitexact -f mp4 fate-mov-mp4-frag-flush: CMP = oneline -fate-mov-mp4-frag-flush: REF = c9d0236bde4a0b24a01f6a032fd72e04 +fate-mov-mp4-frag-flush: REF = a1ac687d15552505f3c01a43285f32d0 FATE_MOV_FFMPEG-$(call ALLYES, LAVFI_INDEV COLOR_FILTER FORMAT_FILTER TRIM_FILTER \ ANULLSRC_FILTER AFORMAT_FILTER ATRIM_FILTER \ WRAPPED_AVFRAME_DECODER PCM_S16LE_DECODER PCM_S16BE_DECODER \ diff --git a/tests/ref/lavf/mov_hybrid_frag b/tests/ref/lavf/mov_hybrid_frag index cd449712b9..64f4e9085e 100644 --- a/tests/ref/lavf/mov_hybrid_frag +++ b/tests/ref/lavf/mov_hybrid_frag @@ -1,3 +1,3 @@ -4871796f41234350f1b050317d0288a3 *tests/data/lavf/lavf.mov_hybrid_frag -358508 tests/data/lavf/lavf.mov_hybrid_frag +7f79311fa73287c093aa029f58b71476 *tests/data/lavf/lavf.mov_hybrid_frag +358436 tests/data/lavf/lavf.mov_hybrid_frag tests/data/lavf/lavf.mov_hybrid_frag CRC=0xbb2b949b -- 2.49.1 _______________________________________________ ffmpeg-devel mailing list -- ffmpeg-devel@ffmpeg.org To unsubscribe send an email to ffmpeg-devel-leave@ffmpeg.org