From patchwork Sat Apr 11 06:40:07 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gautam Ramakrishnan X-Patchwork-Id: 18832 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 08D4844BB90 for ; Sat, 11 Apr 2020 09:40:24 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D946668B683; Sat, 11 Apr 2020 09:40:23 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pj1-f65.google.com (mail-pj1-f65.google.com [209.85.216.65]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E2D8268B58C for ; Sat, 11 Apr 2020 09:40:16 +0300 (EEST) Received: by mail-pj1-f65.google.com with SMTP id z9so1546466pjd.2 for ; Fri, 10 Apr 2020 23:40:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=iEugRLzpVo0V9wPwoPK06RL2+qEbRm2NF9FUwQxAtwY=; b=hBiMJFp87/6J2CIBq5Q5W/+kA3XK3ewdx5av0c43BeD4l1tJXcy8djHDRETraM0orY TksWfUX+RfMTp0w+BQC2Djb45Yzt5olMly+cxVl9GL6URmPXgIiUh/NlliRbWM/77awn d8avDKzqrLDCbdZGuawxym+2cLBfHQgVpW7Lvf6xpWiNNCl5FzPavQve5RFA1evu38Jc y7S5ctH0EdfkVnKlR5h+SomH6AP2QHbhVJtNvgbAwnGzT6tyqWF49QLasoAAoaqOqUH/ pMfym5sn9gvQSqzTfZNM7/oSfcZl/dO8jPgbN/54KQhjDBrJw5SZ/zForxqv9hlyyQ6u eC8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=iEugRLzpVo0V9wPwoPK06RL2+qEbRm2NF9FUwQxAtwY=; b=VR9dz4T875HfV929RXErFOywBlriWkIVo8sTruc4I8mSu5T4u3Og4237RHNQEkyQ7C SRuRhmttFu4TC95FbvSh3v7xqPsAqdNZ5dgtUMobPQrlF2+KiCu3AVe09ycpwwFuEpCm 8KSo4yHIj0eF1lp2P5EF8+ztbbwYs5yKVgAQXS7d31AU3Vyv0G0QVE5cdHMAcsCdig3m OrLv4APCdliyUJ9DXOIuuI6uXajkmU2Rumlq1T2a+6XGkt+gRCuxdJc99jbDa2NuJTOs D4uKNLKJoLuMQh+0b0H3VD2CSGjcXlHpfL32iJRFY8lQGbLpEo6Cpg9kYYKi1C4GSTZ7 j/hA== X-Gm-Message-State: AGi0PuYm8ekCe3ZmTYjGAog0e5OGNXSk3G8/Cf8vuMXxCq574vE1dlkn VMSkfYlB6oM650bm6iYbLfpPjy2PFgI= X-Google-Smtp-Source: APiQypKvCFXz8+GgrEZlSU3oeyKpNvGfvkI1mEiGG5QcCqNcz/FJSrdOqHM+whGqfE3xtS/SaX+yWw== X-Received: by 2002:a17:90a:25c3:: with SMTP id k61mr3742334pje.28.1586587214856; Fri, 10 Apr 2020 23:40:14 -0700 (PDT) Received: from localhost.localdomain ([223.235.255.212]) by smtp.gmail.com with ESMTPSA id 13sm3382019pfn.131.2020.04.10.23.40.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 10 Apr 2020 23:40:14 -0700 (PDT) From: gautamramk@gmail.com To: ffmpeg-devel@ffmpeg.org Date: Sat, 11 Apr 2020 12:10:07 +0530 Message-Id: <20200411064009.5321-1-gautamramk@gmail.com> X-Mailer: git-send-email 2.17.1 Subject: [FFmpeg-devel] [PATCH 1/3] libavcodec/jpeg2000: fix cblk decode error check X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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: Gautam Ramakrishnan MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Gautam Ramakrishnan bpno becoming negative is not an error. This check has been verified with openjpeg, where the loop ends safely when bpno becomes negative, instead of returning an error. This patch must resolve ticket #5630. --- libavcodec/jpeg2000dec.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/libavcodec/jpeg2000dec.c b/libavcodec/jpeg2000dec.c index 9684e57b34..2f6bdeb6e0 100644 --- a/libavcodec/jpeg2000dec.c +++ b/libavcodec/jpeg2000dec.c @@ -1622,11 +1622,7 @@ static int decode_cblk(Jpeg2000DecoderContext *s, Jpeg2000CodingStyle *codsty, cblk->data[cblk->length+1] = 0xff; ff_mqc_initdec(&t1->mqc, cblk->data, 0, 1); - while (passno--) { - if (bpno < 0) { - av_log(s->avctx, AV_LOG_ERROR, "bpno became negative\n"); - return AVERROR_INVALIDDATA; - } + while (passno-- && bpno >= 0) { switch(pass_t) { case 0: decode_sigpass(t1, width, height, bpno + 1, bandpos, From patchwork Sat Apr 11 06:40:08 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gautam Ramakrishnan X-Patchwork-Id: 18833 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 20C7744BB90 for ; Sat, 11 Apr 2020 09:40:25 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0A45D68B66E; Sat, 11 Apr 2020 09:40:25 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pj1-f44.google.com (mail-pj1-f44.google.com [209.85.216.44]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 97DB068B1BD for ; Sat, 11 Apr 2020 09:40:18 +0300 (EEST) Received: by mail-pj1-f44.google.com with SMTP id z9so1546479pjd.2 for ; Fri, 10 Apr 2020 23:40:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=kGRNiMK33x5N5sPCT2/P0+qasCk6xI+wWPXIdQuBmlU=; b=erAPILLr2tx8JdXkD82N0SwF7w/fm5YkiO7rHMsujgmwD0zT2RhxdNV/GvBp5QB4Cd iWog4BrHzHp8IhpTZFnSZoz2Y58bT1QtF/7l51YuXgjyOp5gqZeIz9YqjpxJBIwjzc4R UtoKymIIBwbPTyjK2SEjzqrG5c3DBa8kFiv/2euOW+akXdFz5iFLvp6tM5KyBfdxSRQJ wm8rgh0IP9UU+Rhfimd9J6zVrjpAX1vmZgBKu0TrMKrbZSCtKQO8HmTZaL2spBv8DhzP beRWuN6riAnk7f1z+5/WSoOztif42eL5pJVnvo8bOyTMbndjZ49rdZ4aLP6OuCFLaRym HprQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=kGRNiMK33x5N5sPCT2/P0+qasCk6xI+wWPXIdQuBmlU=; b=EVRbfAiTmX84eNlW9wD2KwWLIL4nVxL1I8mS8HWD5KiqSLHy66zs1D0NezfweYt0uR dohNPpH1kinvQ7xfRo+hlHpUDd8uXV+CVtb9J9m5RtdkpugvS8/87hcyU2D3/fxjEwA1 AULrCNq3Shxwj3BqmyZu7jetQPvxxFWEuHWfPhgvxQ0m5XqhfK7g4addp9J32PgA3cbd 1dG5iD2fEO+GUW/fkqvJZ7bCBqjh+mKjvrZd9jRzbmYKW5q+Zxc+2RHCP0On9KepX/dP 1JY/DNIMyby37uWm6BI+P72+CggaeYrNnWMjFIbaUdPp9asUwOCB/r/Y8MUTeiI+nufT Bhqw== X-Gm-Message-State: AGi0PubsaKvX4vmYe2gQ8JwFm5HlOHUhoipF8CbAQ3fKOfX4NmiOx9+b 4oehDD4kibhUjJEMhjCv2Yag1seSg1U= X-Google-Smtp-Source: APiQypI99i7p6vXKLOdg2fFVNkkF7rmJgOr5PTIGa62ctsKmgFsGMJOEzDM0ZEZvsBRnKufgrKHyfA== X-Received: by 2002:a17:90a:1954:: with SMTP id 20mr9938381pjh.106.1586587216652; Fri, 10 Apr 2020 23:40:16 -0700 (PDT) Received: from localhost.localdomain ([223.235.255.212]) by smtp.gmail.com with ESMTPSA id 13sm3382019pfn.131.2020.04.10.23.40.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 10 Apr 2020 23:40:16 -0700 (PDT) From: gautamramk@gmail.com To: ffmpeg-devel@ffmpeg.org Date: Sat, 11 Apr 2020 12:10:08 +0530 Message-Id: <20200411064009.5321-2-gautamramk@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200411064009.5321-1-gautamramk@gmail.com> References: <20200411064009.5321-1-gautamramk@gmail.com> Subject: [FFmpeg-devel] [PATCH 2/3] libavcodec/jpeg2000dec.c: fix error in cod marker X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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: Gautam Ramakrishnan MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Gautam Ramakrishnan This patch fixes an error where the COC marker overrides all data of the SPcod field of the COD marker. It must override only one bit of SPcod field. This now allows p0_08.j2k to be decoded correctly (mentioned in #4679). --- libavcodec/jpeg2000dec.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libavcodec/jpeg2000dec.c b/libavcodec/jpeg2000dec.c index 2f6bdeb6e0..e7841a65b1 100644 --- a/libavcodec/jpeg2000dec.c +++ b/libavcodec/jpeg2000dec.c @@ -566,6 +566,7 @@ static int get_coc(Jpeg2000DecoderContext *s, Jpeg2000CodingStyle *c, uint8_t *properties) { int compno, ret; + uint8_t has_eph; if (bytestream2_get_bytes_left(&s->g) < 2) { av_log(s->avctx, AV_LOG_ERROR, "Insufficient space for COC\n"); @@ -582,7 +583,9 @@ static int get_coc(Jpeg2000DecoderContext *s, Jpeg2000CodingStyle *c, } c += compno; + has_eph = c->csty & JPEG2000_CSTY_EPH; c->csty = bytestream2_get_byteu(&s->g); + c->csty |= has_eph; //do not override eph present bits from COD if ((ret = get_cox(s, c)) < 0) return ret; From patchwork Sat Apr 11 06:40:09 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gautam Ramakrishnan X-Patchwork-Id: 18834 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 0926E44BB90 for ; Sat, 11 Apr 2020 09:40:27 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E14CA68B6A0; Sat, 11 Apr 2020 09:40:26 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pj1-f68.google.com (mail-pj1-f68.google.com [209.85.216.68]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3F31168B6A4 for ; Sat, 11 Apr 2020 09:40:20 +0300 (EEST) Received: by mail-pj1-f68.google.com with SMTP id b7so1592267pju.0 for ; Fri, 10 Apr 2020 23:40:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=gMh4j6FTA5UcEpLO91K42fGNAS8CwkfwvfVjW7RTJ34=; b=ihJaH4e24AuVDSkFZvDBuAanSG6Ho2hQ4XDuqdM34ZTx57ABshROvXnrv2++cOkgWm HXM7p9gmrEyr3wD17lZapmsiwEbGTxsQw+cI8gneuiltxdVPISkryF6y+xWKviSiel2U Pxdc/xxYQHe/OrhgSNX9RllWqk4iWwoDwspukitSK+HENyi+HJlw/uxbENszoQvSO1g8 Jc5zKHGnTrdar3VT8iftZoMmzEr0UaXDrWZoH+eAc6nRSZeZE5jsEf26ohE5IsZKhgmC ezOQv5t1DXhFdizp3vhVPXILfyleQ1RFgU8Rm9b2mpgrJlciiv5qYX9nxp5t+4dlIWgb 2W5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=gMh4j6FTA5UcEpLO91K42fGNAS8CwkfwvfVjW7RTJ34=; b=cR3zAiTaIqZwQZXB+ErnXkC8DR6S4qOonghDz13PFT590WFLEtrB8eoHLgWpuXOs/v u0vwMA4w/N9XRTJSduf9cqWvj6Q6ZkdgkFPinKpdFv4Sn+ldEEAYp4xDVC8ozuNIH7xp +E9qnjftP3XITIlYog657qLf2OmFgal6xGs7//t3p0bSKUoHa1vJzE3t33v8lRNoQjOR zwIjosmscH4+/f5ppBm2bzu0rCcy61N0fe2/8ri6KSsJ3PPwC/9C1jJqMUn5Q3s7WmAX 7PMA59apyAxLBtG6Vs5XFbtVVVq+R/mMapMvCSSuDMoeDoYlGwUNJ14mDdHB+aOEVOsy /5ng== X-Gm-Message-State: AGi0PuYtTZxC0/yS/dVv9fu5hnrzQ10pvATyAM00lGVNEQjwo5M+TeDs LXI0u1v0o0zlG1SFgwHklGI9WYYbkKc= X-Google-Smtp-Source: APiQypLsEtKTX+dbFQEVqQRDx4sf66k71MgfMjU0SI+VUanUsBF9g0mypu7HMgk9BjnXeDTderAIfA== X-Received: by 2002:a17:90a:3268:: with SMTP id k95mr9044088pjb.185.1586587218363; Fri, 10 Apr 2020 23:40:18 -0700 (PDT) Received: from localhost.localdomain ([223.235.255.212]) by smtp.gmail.com with ESMTPSA id 13sm3382019pfn.131.2020.04.10.23.40.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 10 Apr 2020 23:40:17 -0700 (PDT) From: gautamramk@gmail.com To: ffmpeg-devel@ffmpeg.org Date: Sat, 11 Apr 2020 12:10:09 +0530 Message-Id: <20200411064009.5321-3-gautamramk@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200411064009.5321-1-gautamramk@gmail.com> References: <20200411064009.5321-1-gautamramk@gmail.com> Subject: [FFmpeg-devel] [PATCH 3/3] libavcodec/jpeg2000: fix precinct coordinate calculation X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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: Gautam Ramakrishnan MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Gautam Ramakrishnan The calculation of precinct boundaries has been fixed. The precinct boundaries were calculated as an offset to the band boundary, but must instead be calculated as an offset from the reslevel. This patch fixes #4669 and #4679. --- libavcodec/jpeg2000.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/jpeg2000.c b/libavcodec/jpeg2000.c index 3f50bf9fb3..73206d17f3 100644 --- a/libavcodec/jpeg2000.c +++ b/libavcodec/jpeg2000.c @@ -276,11 +276,11 @@ static int init_prec(Jpeg2000Band *band, /* TODO: Verify with previous count of codeblocks per band */ /* Compute P_x0 */ - prec->coord[0][0] = ((band->coord[0][0] >> log2_band_prec_width) + precno % reslevel->num_precincts_x) * + prec->coord[0][0] = ((reslevel->coord[0][0] >> reslevel->log2_prec_width) + precno % reslevel->num_precincts_x) * (1 << log2_band_prec_width); /* Compute P_y0 */ - prec->coord[1][0] = ((band->coord[1][0] >> log2_band_prec_height) + precno / reslevel->num_precincts_x) * + prec->coord[1][0] = ((reslevel->coord[1][0] >> reslevel->log2_prec_height) + precno / reslevel->num_precincts_x) * (1 << log2_band_prec_height); /* Compute P_x1 */