From patchwork Wed Sep 25 22:52:19 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 51858 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a59:b66f:0:b0:48e:c0f8:d0de with SMTP id o15csp346584vqw; Thu, 26 Sep 2024 05:59:22 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWgbxGnUURNWMBLwJO+lS09Z3/vZ5eMrr70g+7Iw5C5MkiN/giu2+d106ZBCgwV6kbTHFRnJgXT4re+l5CkPeHJ@gmail.com X-Google-Smtp-Source: AGHT+IEQ7qRp54Eo99qveXCGT+RNFkHB4KOjZgKKNIt94YpITDF85kvHUZKADrGb+I9wZiL4tPom X-Received: by 2002:a05:6512:3b92:b0:535:6a83:86f9 with SMTP id 2adb3069b0e04-538804c7028mr3547540e87.60.1727355562371; Thu, 26 Sep 2024 05:59:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1727355562; cv=none; d=google.com; s=arc-20240605; b=UCQVeGz0gLeRH8+AocBEqzr/yEqFpOcw8E25VI3mz/1nz0OfUKOInM67iHKaRdfR9z qQsmTqvnP5IXjydEggBjV4/K3Bdkoy7E9+79rwdrGeKZIIY2xU/YrhJxlkenz0xOGSr4 eQD+5oUjVZtGWKNCrw97REPWKt4xG/++oqcaEF7Q+e9aXHgEaA6qLuWTdSHlvFx1ZxRp rLhkNVQgTpPzFrZ4Dx27W/dR4gwqP8MQykUVUAfM9QUzAuN5GPJSeMM96txTIdbsPPsB WWXk2BHN3lI6eqD8l1+yltu6ivDHWZQ/rtO/DS3jOUBhQ0MsKauXhw26m/Oi343S61JU 017A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=6Gob0wLgd6AwmfMMYgqjS5dAutWrrLFDKZRTimNBv3I=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=JDST+5iixmVX4FTnCW4LHjKSb5qiC+7a9O7MFVhdox3BE0eacqgMdjOrCVQsWzddnr PmeTvAU5MhtzwnzAmceTHwVw2JKRi75xTi1lAGWS6XI2VZcWYMbl38KHsGbqWm/7yekF z3FfUvu+yTS5G7QlRWTYbRKGTkfbpqst26MlcvdbX+Sd+LC4/f47hk/G+MLwVrYoJKc3 Ejovv2uT4Nw1Bv2tqZJNy4pS0jQ+ypnpr5mSIKpk+7p2F3Hrteoen5rt9xE2xb38Gd9w epJOLbPt9M4gfKYieOyJsuvByNJ+TSTaVd6oL1GYEYQAsc9S0IYjtqpjz/Dn/REvbJZZ xIpg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=NWU+kJzB; 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=QUARANTINE dis=NONE) header.from=gmail.com; dara=fail header.i=@gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id a640c23a62f3a-a93930be2b5si392652166b.405.2024.09.26.05.59.21; Thu, 26 Sep 2024 05:59:22 -0700 (PDT) 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=@gmail.com header.s=20230601 header.b=NWU+kJzB; 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=QUARANTINE dis=NONE) header.from=gmail.com; dara=fail header.i=@gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8B62E68DBC7; Thu, 26 Sep 2024 01:52:28 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ua1-f47.google.com (mail-ua1-f47.google.com [209.85.222.47]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 36D0968DB97 for ; Thu, 26 Sep 2024 01:52:21 +0300 (EEST) Received: by mail-ua1-f47.google.com with SMTP id a1e0cc1a2514c-846bc787856so105225241.0 for ; Wed, 25 Sep 2024 15:52:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1727304739; x=1727909539; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=XNORT+6w/dmNu/lfVpJ+L63fu6iS+y6Cj6vn/5fAUcA=; b=NWU+kJzBav0mXa/mryfa6eF/SzweIxO2sOlAvcXQae0KetvlXYMRkJwahaFumICK+U 6yp+yNUcgPCvdiW3D0Xuri2sKnoyOTE/S0stKDBSpbp2ampqyYGrC7xU55SjcvP3X1rk rUxBKsllJny5tYb4yMiSl2Zor6NIUyedyUZ1cpzXufM0mu6a+5iGijiAmQtMdUtOzUiw 3uPfBH7vLrxYmWMzBB3LtsRgpmTKRQNM1zJuNzDkGSv7I8y4QFAhv2bqNP7nb1jZV1Gn 6dhGtLhrJLCNNoJ1ErnOkX4bSCLhfjc6qMYaos9GuTWcv7QVGrT7JBStgGQRuWFNeJpp w5hg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1727304739; x=1727909539; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=XNORT+6w/dmNu/lfVpJ+L63fu6iS+y6Cj6vn/5fAUcA=; b=n4lW2T/L1XVj5c0hG9bcyuiFhwBjgXtD6GYTOgTw8mJgS7NwCUFJgCQIouhm3/u2aT 8Vaj/q+sliXSiiCYC4GY0OJFzieJQ3ezmPmW7XxDd6amHJvfJ2wIMpd0lSQkOTLJhTl0 cxfdC9+0KKUL6HLBK3Nb6iSZj4/j/HWCKRoj8nHqLVQ7GxkUKUpV4/JKz6+RXOVCU4Lp 8sHaHY/WkT63hGKqy5Af323Tv42LWV/8EWVKkCkvDUVDyx6ecSxj1vqI+ciaRRR1jiIF jpJitTqpDI5fuAjNdNY3f6Qnotn3nY7plDAnbqisTqWxjzoB3aE6qAH8wijNFQQ2I9Qm A+yQ== X-Gm-Message-State: AOJu0YwgUPAiaBaAaixeFzmAQYjwxxKB0g839e2wSHUI13jHZL6JIZkf JNGKN4wFQ89vYrHGJnBOw8kJy9e1h/Ku43c/3i0BnVsjEEvUjiSrB1xB7g== X-Received: by 2002:a05:6102:4188:b0:498:cdb0:1d03 with SMTP id ada2fe7eead31-4a15dd245dcmr4772021137.23.1727304739019; Wed, 25 Sep 2024 15:52:19 -0700 (PDT) Received: from localhost.localdomain ([181.92.233.116]) by smtp.gmail.com with ESMTPSA id ada2fe7eead31-4a1517c0e44sm2848945137.16.2024.09.25.15.52.16 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Sep 2024 15:52:17 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 25 Sep 2024 19:52:19 -0300 Message-ID: <20240925225219.3060-4-jamrial@gmail.com> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20240925225219.3060-1-jamrial@gmail.com> References: <20240925225219.3060-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 4/4] avformat/mov: support parsing auxl iref type 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: K9qOV0x+k8+o Signed-off-by: James Almer --- libavformat/mov.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/libavformat/mov.c b/libavformat/mov.c index 8a257ba535..f1274392f3 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -8844,8 +8844,8 @@ static int mov_read_iref_dimg(MOVContext *c, AVIOContext *pb, int version) return 0; } -static int mov_add_ref_to_item(MOVContext *c, AVIOContext *pb, int version, - HEIFItem *from_item) +static int mov_add_ref_to_item(MOVContext *c, AVIOContext *pb, uint32_t type, + int version, HEIFItem *from_item) { HEIFItem **ref_item_list, *to_item = NULL; int to_item_id = version ? avio_rb32(pb) : avio_rb16(pb); @@ -8856,7 +8856,8 @@ static int mov_add_ref_to_item(MOVContext *c, AVIOContext *pb, int version, to_item = &c->heif_item[j]; } if (!to_item) { - av_log(c->fc, AV_LOG_ERROR, "thmb in iref references a non-existent item\n"); + av_log(c->fc, AV_LOG_ERROR, "%s in iref references a non-existent item\n", + av_fourcc2str(type)); return AVERROR_INVALIDDATA; } @@ -8870,7 +8871,8 @@ static int mov_add_ref_to_item(MOVContext *c, AVIOContext *pb, int version, return 0; } -static int mov_read_iref_thmb(MOVContext *c, AVIOContext *pb, int version) +static int mov_read_iref_generic(MOVContext *c, AVIOContext *pb, uint32_t type, + int version) { HEIFItem *from_item = NULL; int entries; @@ -8882,20 +8884,21 @@ static int mov_read_iref_thmb(MOVContext *c, AVIOContext *pb, int version) from_item = &c->heif_item[i]; } if (!from_item) { - av_log(c->fc, AV_LOG_ERROR, "thmb in iref references a non-existent item\n"); + av_log(c->fc, AV_LOG_ERROR, "%s in iref references a non-existent item\n", + av_fourcc2str(type)); return AVERROR_INVALIDDATA; } entries = avio_rb16(pb); /* 'to' item ids */ for (int i = 0; i < entries; i++) { - int ret = mov_add_ref_to_item(c, pb, version, from_item); + int ret = mov_add_ref_to_item(c, pb, type, version, from_item); if (ret < 0) return ret; } - av_log(c->fc, AV_LOG_TRACE, "thmb: from_item_id %d, entries %d\n", - from_item_id, entries); + av_log(c->fc, AV_LOG_TRACE, "%s: from_item_id %d, entries %d\n", + av_fourcc2str(type), from_item_id, entries); return 0; } @@ -8924,8 +8927,9 @@ static int mov_read_iref(MOVContext *c, AVIOContext *pb, MOVAtom atom) case MKTAG('d','i','m','g'): mov_read_iref_dimg(c, pb, version); break; + case MKTAG('a','u','x','l'): case MKTAG('t','h','m','b'): - mov_read_iref_thmb(c, pb, version); + mov_read_iref_generic(c, pb, type, version); break; default: av_log(c->fc, AV_LOG_DEBUG, "Unknown iref type %s size %"PRIu32"\n",