From patchwork Fri Dec 24 09:58:22 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 32903 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp8014571iog; Fri, 24 Dec 2021 01:58:59 -0800 (PST) X-Google-Smtp-Source: ABdhPJwvQwkl9i6jtvL+UH0z42xrp/3KvzYkkz2tU/MFrC+iU/US8V0311QLbD+8rMZ3Yf8ZvlKc X-Received: by 2002:a17:906:608:: with SMTP id s8mr5126210ejb.754.1640339939380; Fri, 24 Dec 2021 01:58:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640339939; cv=none; d=google.com; s=arc-20160816; b=UfGZIquS8w9bv7D9wNmbiUY3IVvX9UDKBgjnVikt4QnWqrzJbCQKGtjMIj9sx/qh1i 004zDULJ6jpDtqREy3GHFb+6gsCwTAdbY0zgLFPgviwpyRfSf6STF/wUK+Rd3642hJkm KQaZb85plpaZ22wnwmJUINNP4SeszjjfVplkqKR7fx4MSDCXRZO4If7j8piQKEbUmrIs Zve2JtlplFsjgY+zI1Lqt+6y70cGD0qONIOoZLkVhq+H9HAj87oMvoaiJMZfAY61b5uy 5O7QKVoRhv3iWBmyATSFazpwrQ4tTANg//3QMNbbo7sw/JwC5ZsDm+VigTsAsg33FVRl W2qg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to:date :to:from:message-id:dkim-signature:delivered-to; bh=tdJGStOgC+Ldvc88WHzhYukSA8N22Vrh5JBW1IdEKS4=; b=rrUwNnna0DjbjmxeTX/7cLx2XxxT4MkyROhvrmbGDmJjf1ET/slkHsgS5Nx1cHJbhz zTBFOM/xIwsW0qD42YqkokXqm+tWWiVWMXcA7untWzTfn5BRj8puqaceNp8+FSPbfmYf YG4icPG2xn44F7DqDvN7USgTKQOS3CjEwj86mzxRjEVyYlwl54TZKrTrEF617FKwHQR/ 2xiaP5yb8r9kE8fgjpWq/G9Q5S4l4nY9JMdIzgd+id2Ldn1CF1R91hhdzQTuQFM39Hwv AhE6Jhe+PmVb+ngK0Wpn/BW37E1aF7SrXpWu8EYuhgRRzQIz8PN3X6EYuENaOxIYN66P DS4Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=nXNFYARa; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=foxmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id o13si3600119ejy.678.2021.12.24.01.58.59; Fri, 24 Dec 2021 01:58:59 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=nXNFYARa; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=foxmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 36B2268B2CC; Fri, 24 Dec 2021 11:58:39 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out203-205-221-209.mail.qq.com (out203-205-221-209.mail.qq.com [203.205.221.209]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7FEE568B15F for ; Fri, 24 Dec 2021 11:58:31 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1640339908; bh=dpNBRa0OnDQOyTBwZE7e7bOpcw+6MIn98KAymo3ddwc=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=nXNFYARa12dO+8iQ5mJIuR1BahRMhgyVFViWd51FCsGGQBNv6RjGYbyWrtlYLvN4t qO/2lvESEp3HL63bGNrEpdeuR3UU0dc2BHQDIdVFJT2O/OWGtJqdeQPzM9KfwkxXeF NIWuI1pO6YfxILu7QU0UFis0/Flz/LbkdrB60TeE= Received: from ZHILIZHAO-MB2.tencent.com ([113.108.77.59]) by newxmesmtplogicsvrszc7.qq.com (NewEsmtp) with SMTP id E99B5057; Fri, 24 Dec 2021 17:58:25 +0800 X-QQ-mid: xmsmtpt1640339907tu9jnf2ga Message-ID: X-QQ-XMAILINFO: M5aCtjAndv5O5pSk+YyKvki7h+YelDQ+QSPIZRKT40yMLFNDhDxrKxsTGnaW33 T77x8+ScXKi30BYUSAxk61NlnkXvTmbsFdvy/F4cAKnM6kGIpuiXjVxFg8a7vtxJYx9nT2fIC6Xr MsTBwg8IQh82QsjVW0e/Iq6gm3sXs7aEnk4QKaTRy58E7YIBhrxsWoJthBBVxhN/YbvXVi+sUM1j 0uOVhTzc3Ncmo3gKOzIMlm2RulceU3MOcEd7QKIFvCLd5sLnfkYROHiOxCWXfO8MCwqjm9BuZwKw 8lEHjOv30ewXmEthY38IrAEbT3Q4mUT8Ph8o7DJee0xuXzpztjjupaC4hDhdjMiF3lO5owJ1QiQk Nqh4fY0ZbOEM2JCXYZ4A7YJ8ixsoqh7NM4hqi/4MpXvVZfiXX4kJTvTDJQxfxgAkufGEwkSoCcIf cQjverHlGcYwM25dyRy7TGK/B/KeWXTLqXc9C4KKLwKqv6ql4UAW+BMfccwsawBBZ99V9+UfD/Rq K6jDNoYCAIYbiAllCijrF78vxqWednhmfMwfjZ3xUkU/7HTVoanGQgsLP6qhTNK/U8FF1DzUOFl1 oGlVI2CXHSjOPNk5KO2g5uyyvyZaJOEBgvmByz9dWtrUg+rN6JzNxuWCgGMq1//K0lbYnTM1fG3M qEKxl/fwyaferBf5GNAs9pxEPtKVqtjCCw5JXuErjS/yH8dUYrG9gj83UVkVa3+/I1mSgUobqg7a I25ebVtInuotW7V8XeMU7wpltvCK0wCbOrBmn+7bcw+dH0QYq0mNPu9R2CF0EZf1esVt7wmWbeNV o93fWB0uagDtFeCywyl9NGCdVLzzzTAgepN2U/TdmdYvkSqxHD7IJEYWGJynKk2Js1ewMucpN6KQ == From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Fri, 24 Dec 2021 17:58:22 +0800 X-OQ-MSGID: <20211224095823.58415-2-quinkblack@foxmail.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211224095823.58415-1-quinkblack@foxmail.com> References: <20211224095823.58415-1-quinkblack@foxmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/3] avformat/mov: skip hoov box if strict >= normal X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Zhao Zhili Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 7Pi/EWXcXFjW The samples I have got have hoov and moov both. Unknown boxes should be skipped according to the spec. So don't treat hoov as moov in normal mode. For backward compatible, a log message has been added to notice the user to relax the striction if moov doesn't exist. Fix #8883. --- libavformat/mov.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/libavformat/mov.c b/libavformat/mov.c index ea2f010aa0..63483740a0 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -7324,10 +7324,11 @@ static int mov_read_default(MOVContext *c, AVIOContext *pb, MOVAtom atom) if (atom.size >= 8) { a.size = avio_rb32(pb); a.type = avio_rl32(pb); - if (((a.type == MKTAG('f','r','e','e') && c->moov_retry) || - a.type == MKTAG('h','o','o','v')) && - a.size >= 8 && - c->fc->strict_std_compliance < FF_COMPLIANCE_STRICT) { + if (((a.type == MKTAG('f','r','e','e') && c->moov_retry && + c->fc->strict_std_compliance < FF_COMPLIANCE_STRICT) || + (a.type == MKTAG('h','o','o','v') && + c->fc->strict_std_compliance < FF_COMPLIANCE_NORMAL)) && + a.size >= 8) { uint32_t type; avio_skip(pb, 4); type = avio_rl32(pb); @@ -7340,6 +7341,10 @@ static int mov_read_default(MOVContext *c, AVIOContext *pb, MOVAtom atom) a.type = MKTAG('m','o','o','v'); } } + if (a.type == MKTAG('h','o','o','v') && + c->fc->strict_std_compliance >= FF_COMPLIANCE_NORMAL) + av_log(c->fc, AV_LOG_INFO, + "Skip hoov atom, try decrease -strict if moov doesn't exist.\n"); if (atom.type != MKTAG('r','o','o','t') && atom.type != MKTAG('m','o','o','v')) { if (a.type == MKTAG('t','r','a','k') ||