From patchwork Fri Dec 24 09:58:21 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 32901 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp8014442iog; Fri, 24 Dec 2021 01:58:41 -0800 (PST) X-Google-Smtp-Source: ABdhPJwiGJo+h0j95zI4XlUCdd9xKiQELXp4uNE4eAcaMtAstTts8IpDgDtrWI0SSBnven+BpRz6 X-Received: by 2002:a17:906:48d:: with SMTP id f13mr4612867eja.178.1640339921314; Fri, 24 Dec 2021 01:58:41 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640339921; cv=none; d=google.com; s=arc-20160816; b=SUMjZ1sJHuKamHckG7N36eKsv6UVeSHawvwY4iV2Vw3qdAZDf4U+EiJBWxMQdgi26Y muokumXy5jdaL/OsnP3HMTDzf+g3WxEdZJNlgsTFO42FRa79VIhV/BS8SqapKZwxPYe5 Tj+/Egnt9srop0+T5DZWigXXoWu0ySCbz9lTngkH9PKtrQ4JDN4C7Lei+YVw7LQG/fzg od9Yjatglb9HWFdUDpe9U+i7Bd8gtJgGAXfb9lxV0jsxKCBRIIVtbCSgwa+8mhXURPHE vgjuS84nderj5j2pJZUej+ynTvcNyVxYQ7Cf8zpBZn0bgBqRIgM2ZCnPhEH3e+hVO3FR 7u6A== 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:date:to:from:message-id :dkim-signature:delivered-to; bh=J9DOFeEfEYOubYGRhihyKIxOHhhG4pS+Or4vHGjCXsg=; b=vetqXu07zLlPlRz1/QOJd8pBouFfe2ecKMHeEKUxGSh7iSF7GYzjLw3ln6MepR83zq JrRfnGZadSgKBARRjAIOlRCHakqXLIHFLLfQFG/5S0peBqBO2C+LKKBLYe2ioS4dDUEf C9A72+GJYAivjSQj15hHVJDidE5do30yoVBHIkS8jH2KdPUFyp01hjsToUq27a51bO0r zQZQnR20ZzNgAGVMRGCXBToQcr4on4WuMa6doRAkKqQKMKxTY7CkBXjh32IzNs1kMNPz 3Z26Ez3lnRRxCH4hwC6nil70HSRdph+ujDw+DR22nFon74KrMhBvTTsxBLNxTYDmzfX7 5TNw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=c80Xnw0Y; 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 hd13si1742513ejc.164.2021.12.24.01.58.40; Fri, 24 Dec 2021 01:58:41 -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=c80Xnw0Y; 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 669D968B2BD; Fri, 24 Dec 2021 11:58:37 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out203-205-221-239.mail.qq.com (out203-205-221-239.mail.qq.com [203.205.221.239]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5DA8068B15F for ; Fri, 24 Dec 2021 11:58:30 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1640339907; bh=8yfplFgGxw/xcKvb4uYIyrZpDEkql5W4Uhqy2DhnEWQ=; h=From:To:Cc:Subject:Date; b=c80Xnw0YbmdiG80CZ1ty+c6TUngvfktVqiu3RDgKomSiKvrNPav+mSaJtZFi2M2IT F13ENwU6nkEGrcLGu7Be2+O1S+TSgYq6a4Srle2Vdjv4L8gFF1sLJL7ynhlPQvr7cc ZoxT2AHaGKJiLj8PWSaDxG7ppjtnjSY/TyvC46bI= 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: xmsmtpt1640339905ty5vywoz3 Message-ID: X-QQ-XMAILINFO: NuUrzLQkNC6XIornOfkJJ2jJqEJWbp+7/ynSdADZ2e+RW7dsZq/qV6h/xUWsSR OOsUxScQMlCGLTPgqZ5tpezXhJGrnr2w5kqC1yxN4bvc0/Lf+AphDpQek9whneaihAoOs1Z+zkwA yZWDQb3aZmk9UveEygVsPx+IeIWcuEq5qCbU42F+W7ohoAzud8O5kKOvQrXXORG141OvlUDve5qa px+qH8XV+8wErJhfkAhI4pNwSlgb2FnKFKFrJ/cgs5boF7+YdB0b/hvWvbVaFCCjRgUnuu+/PaXA +Hdhr3RmPGz+ROvuOQWZje4SbLgZ154BMPvj5pugonF+OxIo+yUUezqw9RbWgyMoumWdVtM8/+6l yoEWhQuctNLBBDT+O9paQOBB9bQvl4t5q+n4id+U6ZIq9WIBSqg2UCCMiXWVyToGZtKe3fCfnhe3 2wWwwUJirzwMfy12s4TV8fVzbXsOWn7YBmXKBghA5kuHgO4uQLhkLgkvGwWDTwFfFNlFCd+qOsgU dRssldH7rBKER/BnmRIxAfIOiKBqgp9L0A52i/XHwyde0vxQWEmLeJzOGmPbN6hqp7mYcZfcZkLG 19w3H67OBPRUEDtqENbZsSVHnNbj5dhWdzyBaL6KRVOvXGb58zeUEeVRjGk3fH2hmc3A0x52tJxd 8NYlHySb+aUjOR3uKkBikZKmHeUzKazoR7PzU5MUv9aNwLeqJEkS41Y1yJ1vPFHf4tkafhsPj5Ml /IS2SddmoT+iQj7NeXAEau4HGCHp1FBYtCq3RS9zghYxkl5ItfXG+1XISlntnGCtdCHeUTIw8r05 ZXu7SkC7ss2yUNa4o30jH/86aQ3zXzz72PfqrSScjuVJdNuSrX8OuA/PEu3b85VRo= From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Fri, 24 Dec 2021 17:58:21 +0800 X-OQ-MSGID: <20211224095823.58415-1-quinkblack@foxmail.com> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/3] avformat/mov: skip moof and sidx before found moov 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: 9GpRcBWM4T8p --- libavformat/mov.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/libavformat/mov.c b/libavformat/mov.c index 2aed6e80ef..ea2f010aa0 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -7366,6 +7366,21 @@ static int mov_read_default(MOVContext *c, AVIOContext *pb, MOVAtom atom) break; a.size = FFMIN(a.size, atom.size - total_size); + if (!c->found_moov) { + static uint32_t skip_before_moov[] = { + MKTAG('m', 'o', 'o', 'f'), + MKTAG('s', 'i', 'd', 'x'), + }; + for (size_t i = 0; i < FF_ARRAY_ELEMS(skip_before_moov); i++) { + if (a.type == skip_before_moov[i]) { + av_log(c->fc, AV_LOG_WARNING, "Skip %s atom before moov.\n", + av_fourcc2str(a.type)); + parse = NULL; + goto skip; + } + } + } + for (i = 0; mov_default_parse_table[i].type; i++) if (mov_default_parse_table[i].type == a.type) { parse = mov_default_parse_table[i].parse; @@ -7386,6 +7401,7 @@ static int mov_read_default(MOVContext *c, AVIOContext *pb, MOVAtom atom) parse = mov_read_keys; } +skip: if (!parse) { /* skip leaf atoms data */ avio_skip(pb, a.size); } else {