From patchwork Fri Aug 9 16:29:50 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: velocityra@gmail.com X-Patchwork-Id: 14354 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 01BAF44A01D for ; Fri, 9 Aug 2019 19:31:37 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id DE8FA68A89E; Fri, 9 Aug 2019 19:31:36 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f43.google.com (mail-wr1-f43.google.com [209.85.221.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0D72168A35D for ; Fri, 9 Aug 2019 19:31:30 +0300 (EEST) Received: by mail-wr1-f43.google.com with SMTP id p17so98786483wrf.11 for ; Fri, 09 Aug 2019 09:31:30 -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 :mime-version:content-transfer-encoding; bh=k6m0UI50ceTCz0wcZyuuBTWmNE7q7dyvJM7UDSlc8yw=; b=V3b5Ir5ZA/qFPvwLnrOzurnKQGcH5OpdHaDdrc3SSl2XF6oxuMgrRpBhzl0WR7KKBU 2XvepHS6yq+85SIIRhuzjykwdEwhPMsMaWUurDVe7fgvTAGmanhUx0+PbRtd0q6UOf1h ZhVt/hDT6g3W7Dg2Quh25EfQAJCdJPa/+DQIZYfMzODFnGNGXir1usF1PqjjDUPPYy09 91jUJ58WoMTpEOHD6fkwSajcuYY3GEFsIXza9Z0NNFOSHB6LPTv3/pIg513zVW5Qp3CR VkDRuP+Odt1N2U4VCpQEE/wBrsAx+a8RK6swd3+WmISK539Xlycvw9YILhVdpXlvK9VZ uZ9g== 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:mime-version:content-transfer-encoding; bh=k6m0UI50ceTCz0wcZyuuBTWmNE7q7dyvJM7UDSlc8yw=; b=IBaK5ZB5dHT/3QHoW7BUy1RN7w7MDmkmWI+egJnvZsdZn9v0ur44K9zBHm1c8I+TXX fOHYufmmRMVcg+L9LLKXchhqafGCCZijvouOwR60WJ4bQ7Fj278B7WB7DfjRm8hTkVm3 2T4QBJJ+ZvEQ66jf1BnuLcJ4oykMdIsqTVlhWZTwP6g3B+1fCLcvcOOFZPt3C6Lyr0ai 3znkkwV/PloSl6918obgs3zH7uSK92S97ZdlJSzxnv682VGPuNusrGspKdsTPamB6Zhy vBYCOzCMdaSTAdm3E24HnLEvzL95IrK1b1N1wc8GJhTm5gMV2y9yQH7f+7fXLQgQ8X3j kiBg== X-Gm-Message-State: APjAAAVthhSiQUuNavkikr+fqkZPEsndpUW15JGbxSADvtVi6eSbroqx 5mH0sSrKnSG5Wo/ksn2TrG2X0nmtyuY= X-Google-Smtp-Source: APXvYqxJI3difqbrqei67XA+r8rek2mc1bs75tYQyLIEruuFwO724cTeddPPBlYfKQV+N8gqIixqKA== X-Received: by 2002:a5d:52c5:: with SMTP id r5mr24486603wrv.146.1565368289326; Fri, 09 Aug 2019 09:31:29 -0700 (PDT) Received: from localhost.localdomain ([2a02:587:2409:5200:e9b3:b00d:2017:357c]) by smtp.gmail.com with ESMTPSA id u6sm6721745wml.9.2019.08.09.09.31.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Aug 2019 09:31:28 -0700 (PDT) From: Nick Renieris X-Google-Original-From: Nick Renieris To: ffmpeg-devel@ffmpeg.org Date: Fri, 9 Aug 2019 19:29:50 +0300 Message-Id: <20190809162959.17924-5-velocityra@gmail.com> X-Mailer: git-send-email 2.21.0.windows.1 In-Reply-To: <20190809162959.17924-1-velocityra@gmail.com> References: <20190808205233.16368-14-velocityra@gmail.com> <20190809162959.17924-1-velocityra@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v12 05/14] lavc/jpegtables: Handle multiple mappings to the same value 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: Nick Renieris Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Nick Renieris Some JPEGs [1] have incorrect DHT entries that map 2 codes to the same value. The second (last) mapping does not ever actually appear in the code stream, therefore ignoring any mappings after the first one fixes this. Without this, an "mjpeg_decode_dc: bad vlc: 0:0" error is thrown. --- [1]: Embedded JPEGs in "X7 RAW" and "X7 CinemaDNG" samples here: https://www.dji.com/gr/zenmuse-x7/info#downloads Signed-off-by: Nick Renieris --- libavcodec/jpegtables.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/libavcodec/jpegtables.c b/libavcodec/jpegtables.c index cbe5523cb4..6f596cfc92 100644 --- a/libavcodec/jpegtables.c +++ b/libavcodec/jpegtables.c @@ -130,14 +130,27 @@ void ff_mjpeg_build_huffman_codes(uint8_t *huff_size, uint16_t *huff_code, { int i, j, k,nb, code, sym; - code = 0; + /* Zero-initialize huff_size (needed for multiple mappings check below) */ + k = 0; + for(i=1;i<=16;i++) { + nb = bits_table[i]; + for(j=0;j