From patchwork Wed Aug 7 15:27:15 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: 14293 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 DF7A2448560 for ; Wed, 7 Aug 2019 18:44:20 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id CA4A968AB40; Wed, 7 Aug 2019 18:44:20 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com [209.85.128.47]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 562ED68AAA2 for ; Wed, 7 Aug 2019 18:44:14 +0300 (EEST) Received: by mail-wm1-f47.google.com with SMTP id p74so510822wme.4 for ; Wed, 07 Aug 2019 08:44:14 -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=rqCVFivrv1feRqkTiPW2pd5eSpjmFKbMbyPAIQHMjYNts1Q5xP1ZCRSd/BYf/LwyVS zxWR3RsqBDsDF2WYrWF+UHJwXjNT1xEsc+g63hXrH/VkuXzQqQpS5dWNtaseTQGJh6nL 641pDs6IshPFahw0hG7kXtFJJfZFS6ifR+MEzvwEOnaPXYtHabgPcRLdMjiexITa8xKl QCrJLzZnqk24bj63LLtv4LZH/0RBCM2iTcwEM3pgQXEijI3vkdZGtXqnXt2EK7hezSMd MY67c7HRAqzJpxixmeDAKSVxgBQ2yKsRoYysMyFBLGcHXH56//vcJiGBhwgFuKjOxmXI XHyg== 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=NHPH37iYfqAXTSw37t6hccG/CSuPJlektbpZR8S9yrULFX2DUSzJiuj5e/odHF+AlN ObkOeCRhdcpW1NOj8p+JXvOoo0XQMD/BAbFBGh2s4CbcyUK+omuhDQ2XyDAMehOXsmYG z+5+fiXJejuZDQaUW63OaBs3wIPX00nP9P0p9O/L/1LshU4Y+WB/dbyBuwSC2Ece8Dh2 MIPjYiDllmHrs2SMakNhCp0h1dlVsSbEMG4x3G95p+puuRSQFUVXk1qmmCMtqYtau7Fm IVyaoqqQtr/ZZtDcJtQN0RAcAVQfUQP8raxjmSuW0Hf4j13Nl2ONHTsGmM6RPwdgD8Gh tD2A== X-Gm-Message-State: APjAAAUqooBGyg15W8LMFg4xxxxLiMppyy6bSr40lqArk7+5rxbvAPA8 nfG5nKmxS+oM9TfcHSsgsfBfdGd8 X-Google-Smtp-Source: APXvYqzjAvhYS0UiuUfnHLq+Q+el4sjwiFBdibRBZcOyXUXaOpB/5YPvUWGNTOknUA44pNdbS2otcQ== X-Received: by 2002:a7b:c149:: with SMTP id z9mr616855wmi.0.1565192310207; Wed, 07 Aug 2019 08:38:30 -0700 (PDT) Received: from localhost.localdomain ([2a02:587:2409:5200:b577:c48f:5aea:bab0]) by smtp.gmail.com with ESMTPSA id 4sm212050375wro.78.2019.08.07.08.38.28 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 07 Aug 2019 08:38:29 -0700 (PDT) From: velocityra@gmail.com X-Google-Original-From: velocityra@gmail To: ffmpeg-devel@ffmpeg.org Date: Wed, 7 Aug 2019 18:27:15 +0300 Message-Id: <20190807152723.18892-5-velocityra@gmail.com> X-Mailer: git-send-email 2.21.0.windows.1 In-Reply-To: <20190807152723.18892-1-velocityra@gmail.com> References: <20190807152723.18892-1-velocityra@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v10 05/13] 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