From patchwork Fri Oct 25 00:23:17 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pierre-Anthony Lemieux X-Patchwork-Id: 52482 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a59:be6b:0:b0:48e:c0f8:d0de with SMTP id bd11csp5343vqb; Thu, 24 Oct 2024 17:23:36 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVTzBBG+4+i4UA8wEJf/rtesDyR2u+KXC3er/VLN788o6aK0qeeAzrlqivHB77oSDJIrnyzBJRENKvQBqSdJNmx@gmail.com X-Google-Smtp-Source: AGHT+IFIEY8hxiB9rS49O5ZoHq1hz5Fy+p/jnyluRsyNB+bmqHc0Ltx2qCjPYrYCq7bj13O3Os58 X-Received: by 2002:a17:907:72d3:b0:a9a:4b95:d4 with SMTP id a640c23a62f3a-a9ad285ee86mr298693966b.59.1729815816061; Thu, 24 Oct 2024 17:23:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1729815816; cv=none; d=google.com; s=arc-20240605; b=AfZzBShcs3zpRZLE6fyIuhUj7Fj5wKQ11jN0dyRUAMz6Mkmfcv71w62gCX+x0uiYOi Cny1xkcjOtyqEkuqshlc76fBXK6Xt7E223lWxRbvY/GOPJDjGIyGnE5BCGTU3L6GmUy1 UwJaHsXiF2mb/0dRzVxTk4J3MA6GMHNswWpbfCNjxaeyuP2m3T6MWwAtKrPqfEvSp++5 GnsrDeHZ2fCmQBeXPZ5MHCKL56wDtEyhKTABum77XvTiZ1NOHUZQnpUEL20iCmOYhuAp YWAbWtWIIVQQYmkrTHEgV/IWZgMI4Mm3n+ZaJ/KIN/CTPCJM6wAHQ1sGmcS3XObYk+Mj 4LfQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; 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 :delivered-to; bh=VGU34LVwaPKL4F8m3PPMWdT/OTSBv8CJsLO1bICXrqU=; fh=2EABgpUJ70RMyXDUnO7oLBrdLPN2QN1b/48ZYHv3EFQ=; b=QlyW65Vev4Wqo08hf+ZGjZ+ibmGwlfW40rJYp4DCKQw9ttXfo6FR9tbfcY1ogzpOsZ sDdRfWiceYH2M+CLQpn53285kuJq9HMGarv3nnStuhM4GZp8y0nkWflvxVxsyVwqGUML aUxj6qc/jt0vvQFadAW9TduLPHGVgmH6RU90SPXZGNyn3CS7utLgRyNz49MrCrMxCET4 wb6HBfaQdSPdtmRWS3/xTLosfD2Zl12H/c2/5TLklwl/oH+uzTJ2INMWZDEJR+Ip4Urg fRw0s1gnoJdcxMHFN2PU7oXcMasnbABSxfpdiNq3SZwoDmhPpZ4iuupHhX9kDz4tNNQr SNqg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id a640c23a62f3a-a9b1f292b27si7051166b.421.2024.10.24.17.23.34; Thu, 24 Oct 2024 17:23:36 -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; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 64B5868DC83; Fri, 25 Oct 2024 03:23:32 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-io1-f42.google.com (mail-io1-f42.google.com [209.85.166.42]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1968D68CDEC for ; Fri, 25 Oct 2024 03:23:24 +0300 (EEST) Received: by mail-io1-f42.google.com with SMTP id ca18e2360f4ac-83aff992087so64815339f.3 for ; Thu, 24 Oct 2024 17:23:24 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1729815802; x=1730420602; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=XYe8GOcMk+vAmPc6yIAS1DH78rRxtrqzOdC/tsCQbe8=; b=MVxBqwr4ICjYBNrf+o5Q3o4xVhbuy6KqHyCaKZaCKuPOeO81mp2Dq4G3CPfqXNiFo+ SsDcJg1pB9031p5+lcDdx9uBaJg9Q1v5uThZ1I7UIXg88l6wYZjX4JFT3PC9cIPa27WM 1JMNeFpPXMiM5iKfOBU4vfgyDGnVZAE2ne36hRtgQDaNNkrsvuAIUyIikEqY5VQIGlSs i689Iarv/wH7zkyel/axZ2It0Fhacg38SE3ZZackn3ciF9qFsFg/rKnCgv//MBU2ntBZ BEJUKK2qj3EY12uGOnyPT2C7peH+PJRdXjG4EoR1YdKgVf9S/iB+VSEYjgQNY31m8Ilb DUEg== X-Gm-Message-State: AOJu0YxXuFSvFjeYlfgKrZF5oKEzZroTF/YCvFuo8d2ik5fkAt7bPsBk dNeTOGT6CfQDwGju1vH/hliAsmDbb5rvO/5rvKbXsw+6JkI1FJX3qb++Hg== X-Received: by 2002:a05:6e02:1b04:b0:3a0:bc39:2d72 with SMTP id e9e14a558f8ab-3a4de7ac782mr44361155ab.12.1729815802057; Thu, 24 Oct 2024 17:23:22 -0700 (PDT) Received: from localhost (76-14-89-2.sf-cable.astound.net. [76.14.89.2]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-7edc8664f4csm19997a12.7.2024.10.24.17.23.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Oct 2024 17:23:21 -0700 (PDT) Received: by localhost (sSMTP sendmail emulation); Thu, 24 Oct 2024 17:23:19 -0700 From: pal@sandflow.com To: ffmpeg-devel@ffmpeg.org Date: Thu, 24 Oct 2024 17:23:17 -0700 Message-Id: <20241025002317.25786-1-pal@sandflow.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] jpeg200dec: reset in_tile_headers flag between frames 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: Pierre-Anthony Lemieux Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: h3EYajPLXOMi From: Pierre-Anthony Lemieux --- libavcodec/jpeg2000dec.c | 19 ++++++++++--------- libavcodec/jpeg2000dec.h | 1 - 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/libavcodec/jpeg2000dec.c b/libavcodec/jpeg2000dec.c index 2e09b279dc..5b05ff2455 100644 --- a/libavcodec/jpeg2000dec.c +++ b/libavcodec/jpeg2000dec.c @@ -2402,6 +2402,7 @@ static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s) Jpeg2000QuantStyle *qntsty = s->qntsty; Jpeg2000POC *poc = &s->poc; uint8_t *properties = s->properties; + uint8_t in_tile_headers = 0; for (;;) { int len, ret = 0; @@ -2484,7 +2485,7 @@ static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s) ret = get_cap(s, codsty); break; case JPEG2000_COC: - if (s->in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) { + if (in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) { av_log(s->avctx, AV_LOG_ERROR, "COC marker found in a tile header but the codestream belongs to the HOMOGENEOUS set\n"); return AVERROR_INVALIDDATA; @@ -2492,7 +2493,7 @@ static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s) ret = get_coc(s, codsty, properties); break; case JPEG2000_COD: - if (s->in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) { + if (in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) { av_log(s->avctx, AV_LOG_ERROR, "COD marker found in a tile header but the codestream belongs to the HOMOGENEOUS set\n"); return AVERROR_INVALIDDATA; @@ -2500,7 +2501,7 @@ static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s) ret = get_cod(s, codsty, properties); break; case JPEG2000_RGN: - if (s->in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) { + if (in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) { av_log(s->avctx, AV_LOG_ERROR, "RGN marker found in a tile header but the codestream belongs to the HOMOGENEOUS set\n"); return AVERROR_INVALIDDATA; @@ -2512,7 +2513,7 @@ static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s) } break; case JPEG2000_QCC: - if (s->in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) { + if (in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) { av_log(s->avctx, AV_LOG_ERROR, "QCC marker found in a tile header but the codestream belongs to the HOMOGENEOUS set\n"); return AVERROR_INVALIDDATA; @@ -2520,7 +2521,7 @@ static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s) ret = get_qcc(s, len, qntsty, properties); break; case JPEG2000_QCD: - if (s->in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) { + if (in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) { av_log(s->avctx, AV_LOG_ERROR, "QCD marker found in a tile header but the codestream belongs to the HOMOGENEOUS set\n"); return AVERROR_INVALIDDATA; @@ -2528,7 +2529,7 @@ static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s) ret = get_qcd(s, len, qntsty, properties); break; case JPEG2000_POC: - if (s->in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) { + if (in_tile_headers == 1 && s->isHT && (!s->Ccap15_b11)) { av_log(s->avctx, AV_LOG_ERROR, "POC marker found in a tile header but the codestream belongs to the HOMOGENEOUS set\n"); return AVERROR_INVALIDDATA; @@ -2536,8 +2537,8 @@ static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s) ret = get_poc(s, len, poc); break; case JPEG2000_SOT: - if (!s->in_tile_headers) { - s->in_tile_headers = 1; + if (!in_tile_headers) { + in_tile_headers = 1; if (s->has_ppm) { bytestream2_init(&s->packed_headers_stream, s->packed_headers, s->packed_headers_size); } @@ -2569,7 +2570,7 @@ static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s) break; case JPEG2000_PPM: // Packed headers, main header - if (s->in_tile_headers) { + if (in_tile_headers) { av_log(s->avctx, AV_LOG_ERROR, "PPM Marker can only be in Main header\n"); return AVERROR_INVALIDDATA; } diff --git a/libavcodec/jpeg2000dec.h b/libavcodec/jpeg2000dec.h index 78eba27ed9..fce3823164 100644 --- a/libavcodec/jpeg2000dec.h +++ b/libavcodec/jpeg2000dec.h @@ -86,7 +86,6 @@ typedef struct Jpeg2000DecoderContext { uint8_t *packed_headers; // contains packed headers. Used only along with PPM marker int packed_headers_size; GetByteContext packed_headers_stream; - uint8_t in_tile_headers; int cdx[4], cdy[4]; int precision;