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 */