From patchwork Wed May 25 16:10:12 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leo Izen X-Patchwork-Id: 35926 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:6914:b0:82:6b11:2509 with SMTP id q20csp1150166pzj; Wed, 25 May 2022 09:10:26 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzKYpEhW5DUFUj1U1NvAEVk7ome56XNyHp/pVf76UJf9rJP21DQVeE6vBDt6AvGlaqbUqzh X-Received: by 2002:a17:907:7d86:b0:6ff:1598:b049 with SMTP id oz6-20020a1709077d8600b006ff1598b049mr2790794ejc.637.1653495026286; Wed, 25 May 2022 09:10:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1653495026; cv=none; d=google.com; s=arc-20160816; b=bHUo++5htp/QBgfBq+ZNiRaVQ9L9sy1/EZ3UQfDlossyOF+xfaJJuxIc058kEM6O72 TFIUzvJ3WX9Pd46uA1P5V515MtmnFHRnTx+ijq/hiVznwY0FFFzX6aeXjTRmxZJ1eJuD AzUc/1Sp8qHdrsqZdi88Y9gMZ6CQuVld4CEpTgmuj6nMbAyvGmnq3kXK+wruMTRFoNtg pGJ/tfEsyhUVimM6EYsxbDFdwKx/GeTCAm/RziK+A76CDjIPBsoc8HxKJxrzxO9Bzrhv VYFxvi3MuLofsYo1ch795JWOD0upxlF9tRrXW8uEnXXOGhTGGkC2Ony7zomzKdxyYSvX mHSA== 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:message-id:date:to:from :dkim-signature:delivered-to; bh=sFEDthJXOeVxgbTOddGblJUy/0aNODVpof9FRU73DkM=; b=l+j0LTkSsVBE4IroMg39gdie9Cv7BAUp7FO9XZZkZ+eWQTN/rnKEgFSoHdPXZI/D5Z q0aVldDHATYc8KCs26J1+DgZmr2ZOVi7+KRWqal+dGUDQ0MHM2op/+bja6POeoEPqrpa fqPBVvVPFSS+p5CzyatMfTC2X9UaomRTQAO8ggo0/OPxH0nwLA2MWeKlEq3w0CD99eKq zB4ftNAVp1xA1z4kQvOCGGkADvRL9cKVmQyqr/eAVjdVLOtCRTow5hSnqf5J9FkPYmYx or9jql58qRu3EGBXzoJpy+XRvWeLPGdkFHcfnndYkufhUhaRe8/1cq+0i/+VW76rAA/F ggWA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=cCEPoHwq; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id qa10-20020a170907868a00b006f3cf7617f5si22857076ejc.345.2022.05.25.09.10.25; Wed, 25 May 2022 09:10:26 -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=20210112 header.b=cCEPoHwq; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 50E5068B553; Wed, 25 May 2022 19:10:23 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f44.google.com (mail-qv1-f44.google.com [209.85.219.44]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1B96568AA68 for ; Wed, 25 May 2022 19:10:17 +0300 (EEST) Received: by mail-qv1-f44.google.com with SMTP id b11so8111784qvv.4 for ; Wed, 25 May 2022 09:10:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=yKvRYzwBMGsArHWyaw3N9BX8Ol6PeH8oXysXZxJxk28=; b=cCEPoHwqDjXPg38Hjwzgx7CnKc5x+WOg1LyzIOo7WSodd4BY3WxtBHGurc6CaoWjpG YsUiah6dWpCjMeLVYl4k9Qpd0rKPb1ugnNk0e9i84w3MurTirOro3F91cRmWpvl4Hnyf gxSWZS6v4wzmPivsfqNvYvnEzuZWPpVHJ55VdxPOIr0hFzHCgyUmoQOaOltrYorepsWk 7kl60GOi/I6CIXMaSjaYlOgGM1c1o4fFLguyjcaWIBBs6h5Ng5SuaTVGAcZe2HN6XNCg rHPFQnuQ1LlFWfKv7XrlwGivehb8yYq72gmnN+GEi8nV0mv6LeZZVj+cavrWJgoEg4uZ yJxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=yKvRYzwBMGsArHWyaw3N9BX8Ol6PeH8oXysXZxJxk28=; b=uLwMIVEiLt9fB1hAjU0CWv/bU2ASArrqQ1weoFVpAjU/OijaUmZOoQ+ZpGT+xCddJ0 alyqDC4XTeDChEOOulNrT8Mu4YsvFFvvygRS17s6/+nPsU+zqY1dz8+kwjCS9EFYwYjE H5FCwCbZQbG+jpp9v76mTX9ARGB9cmSwbZGpJ80OSn2+l2FV1//NALA8VE7DTPZOIOUy NsjVU9oMwrRRauJy2LwpsLoOkCscicH8h8dJYwE+fNcnrLhbtMpcV4GheioWSfLc+wH6 ATRvttEWOvkwDPF9+EGkU1fcFGlAVQlnoa3nnXr/9sLVdoFkdj3HXdU+BotNoiaD213E J82Q== X-Gm-Message-State: AOAM530MJtNmEdqzujHFVnBv0Lk/gYaH8/KK8uzuadW00zCi1F3HMkYV Ry3ZcwH5igWLlt+ptp5Z89iTt/58Nb4z2Q== X-Received: by 2002:a05:6214:29e4:b0:45b:f666:d3d3 with SMTP id jv4-20020a05621429e400b0045bf666d3d3mr27230809qvb.120.1653495015424; Wed, 25 May 2022 09:10:15 -0700 (PDT) Received: from gauss.local (c-68-41-54-207.hsd1.mi.comcast.net. [68.41.54.207]) by smtp.gmail.com with ESMTPSA id p6-20020a05620a22e600b0069fc13ce250sm1369138qki.129.2022.05.25.09.10.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 May 2022 09:10:15 -0700 (PDT) From: Leo Izen To: ffmpeg-devel@ffmpeg.org Date: Wed, 25 May 2022 12:10:12 -0400 Message-Id: <20220525161012.1077373-1-leo.izen@gmail.com> X-Mailer: git-send-email 2.36.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2] avformat/jpegxl_probe: fix incorrect cw_mask and extensions probing 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: Leo Izen Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: MwhyIYXA72A0 - Fix incorrectly skipping over the upX_weights if the cw_mask is present and it is not a multiple of 4. - Fix not skipping over the extensions payload if an extension is present. --- libavformat/jpegxl_probe.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/libavformat/jpegxl_probe.c b/libavformat/jpegxl_probe.c index 9cd00da194..b5aac4869b 100644 --- a/libavformat/jpegxl_probe.c +++ b/libavformat/jpegxl_probe.c @@ -359,24 +359,31 @@ int ff_jpegxl_verify_codestream_header(const uint8_t *buf, int buflen) extensions = jxl_u64(); if (extensions) { + uint64_t extensions_len = 0; for (int i = 0; i < 64; i++) { if (extensions & (UINT64_C(1) << i)) - jxl_u64(); + extensions_len += jxl_u64(); } + if (extensions_len) + jxl_bits_skip(extensions_len); } } /* default transform */ if (!jxl_bits(1)) { + uint32_t cw_mask; + /* opsin inverse matrix */ if (xyb_encoded && !jxl_bits(1)) jxl_bits_skip(16 * 16); + /* cw_mask and default weights */ - if (jxl_bits(1)) + cw_mask = jxl_bits(3); + if (cw_mask & 1) jxl_bits_skip(16 * 15); - if (jxl_bits(1)) + if (cw_mask & 2) jxl_bits_skip(16 * 55); - if (jxl_bits(1)) + if (cw_mask & 4) jxl_bits_skip(16 * 210); }