From patchwork Sat Oct 3 12:38:14 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul B Mahol X-Patchwork-Id: 22722 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 9E5BF44631A for ; Sat, 3 Oct 2020 15:38:28 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7B18A68A3EE; Sat, 3 Oct 2020 15:38:28 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ej1-f43.google.com (mail-ej1-f43.google.com [209.85.218.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id AC3856880B1 for ; Sat, 3 Oct 2020 15:38:22 +0300 (EEST) Received: by mail-ej1-f43.google.com with SMTP id qp15so5402301ejb.3 for ; Sat, 03 Oct 2020 05:38:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id; bh=cCRS3V7QhJCgsuK4RBBaZb7quhHbVQc7DfZgLSEphTM=; b=mqNTlPzNl1fjynjbASRqACuYhME5SYHMi0tkTvHAOv3BCkCCSYztGD5wQBMMTGLy8T itYNyWIwGpK0+SulTlOnXHpnhbpbHqr4zB3hIiSdg4pjZHPPC7GqlzxCVCsLxuzFMH3z TNemRIff07r/alZagKY8v1wzKy2KQpg6JiLq3HAIrDqa6hEZnSAf10K907Nb1BVbIL0O zKXbmNWetMEA0goTx0TKsbiM6ZnFFQc/oWkaI+Vg70gXKwR6aCEkp4wNwMiNlc6ZoEc3 8VbzFw46cUxXExCVmU9vw1puln5jtATyGdXh6FPb6jwuflKll/4NEGBg4t/izGhotuiu zquQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=cCRS3V7QhJCgsuK4RBBaZb7quhHbVQc7DfZgLSEphTM=; b=pZ2YB0lYewXFHVBYJa5J8ge7QdS5/Tixpvcl0ubA6a3Cf43KCrGiCvRr/UuoslBaS3 0CycKS8qVZ7zj3QxV6Klho9ndat8Ah/3oiCuzhI3JwSLay7b+pnXmGVTqbLjOwym5Vh0 fLsxJiUu9Nz1sgKAS7uwzvHHDy3Bzi9kRlOFp/oifOUCekg5R1di9jTm+FXPPrRpXt9v zKXMzk3o/TmVZN4GrMJ+6f6JODA8a3/aebEpFNbglWTthwT2NTR4VKyrTjbvMhN7Drr+ 8MGkqud5lLj5oqkSNChEUSJl/7rjRQa3eN5DInd4ofLweQryWjw5su+HDV3PquyjieSL 0v/g== X-Gm-Message-State: AOAM5315ZTZWNw2urqPyfRZvIftJYIrBOJ8qKrVCp3n9gQ7RNmfQsua+ PQOiZ9DXxGQ2ZXGdSbXEAUgOeP0iohsjSQ== X-Google-Smtp-Source: ABdhPJwj+Vjrx2YnUKy9p+Xx+IEpw8blpklt0C3ferQqZ3IkFcTO1UTdkGn3ZaGTeeSTSdwckjGF6g== X-Received: by 2002:a17:906:940c:: with SMTP id q12mr6588158ejx.195.1601728701819; Sat, 03 Oct 2020 05:38:21 -0700 (PDT) Received: from localhost.localdomain ([109.227.50.123]) by smtp.gmail.com with ESMTPSA id b8sm4184826edv.20.2020.10.03.05.38.20 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 03 Oct 2020 05:38:21 -0700 (PDT) From: Paul B Mahol To: ffmpeg-devel@ffmpeg.org Date: Sat, 3 Oct 2020 14:38:14 +0200 Message-Id: <20201003123814.25402-1-onemda@gmail.com> X-Mailer: git-send-email 2.17.1 Subject: [FFmpeg-devel] [PATCH] avcodec/mjpegdec: improve decoding of DNG files 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" That have unused symbols coded in DHT. Signed-off-by: Paul B Mahol --- libavcodec/jpegtables.c | 15 ++------------- libavcodec/mjpegdec.c | 41 +++++++++++++++++++++++++++++------------ 2 files changed, 31 insertions(+), 25 deletions(-) diff --git a/libavcodec/jpegtables.c b/libavcodec/jpegtables.c index fa5c6f9fc5..e44bc7a22a 100644 --- a/libavcodec/jpegtables.c +++ b/libavcodec/jpegtables.c @@ -130,25 +130,14 @@ void ff_mjpeg_build_huffman_codes(uint8_t *huff_size, uint16_t *huff_code, { int i, j, k,nb, code, sym; - /* Some badly encoded files [1] map 2 different codes to symbol 0. - Only the first one is valid, so we zero-initialize this here and - make sure we only set it once (the first time) in the loop below. - - [1]: Embedded JPEGs in "X7 RAW" and "X7 CinemaDNG" samples here: - https://www.dji.com/gr/zenmuse-x7/info#downloads - */ - huff_size[0] = 0; - k = 0; code = 0; for(i=1;i<=16;i++) { nb = bits_table[i]; for(j=0;j 256) return AVERROR_INVALIDDATA; - code_max = 0; for (i = 0; i < n; i++) { v = get_bits(&s->gb, 8); - if (v > code_max) - code_max = v; val_table[i] = v; } len -= n; @@ -282,15 +299,15 @@ int ff_mjpeg_decode_dht(MJpegDecodeContext *s) /* build VLC and flush previous vlc if present */ ff_free_vlc(&s->vlcs[class][index]); av_log(s->avctx, AV_LOG_DEBUG, "class=%d index=%d nb_codes=%d\n", - class, index, code_max + 1); + class, index, n + 1); if ((ret = build_vlc(&s->vlcs[class][index], bits_table, val_table, - code_max + 1, 0, class > 0)) < 0) + n + 1, 0, class > 0)) < 0) return ret; if (class > 0) { ff_free_vlc(&s->vlcs[2][index]); if ((ret = build_vlc(&s->vlcs[2][index], bits_table, val_table, - code_max + 1, 0, 0)) < 0) + n + 1, 0, 0)) < 0) return ret; }