From patchwork Sat Jul 3 16:25:28 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andriy Gelman X-Patchwork-Id: 28747 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a5d:965a:0:0:0:0:0 with SMTP id d26csp2690364ios; Sat, 3 Jul 2021 10:33:27 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy4iIA/l92hyP+24Za5U2/sRNK3xvtVp1OIGSXXJ7SstVj1SFDWglOhggpQJStHW48vsFfl X-Received: by 2002:a17:907:c08:: with SMTP id ga8mr5403197ejc.314.1625333606863; Sat, 03 Jul 2021 10:33:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1625333606; cv=none; d=google.com; s=arc-20160816; b=lhWUg7+IxdH8tZeVJTqMIhGzl24jGRjRM1j4NyNeYRJBYwAKGOmwFqFXX9DnSkr4Cb y7B8fC92KQtLjEgI+oi/xC1vCkJjaTMSZvKNQEfXWLTdDnKI/PMa5GSOo8L/kx6saIfG SQMaQtlQGY5RoeRZKrCqu8MuPQ/XaLaSR6kLKghz6zs0YaXYw8ub0z/XH5LS+dl5UVGe shH8D1mUNncFwJ6bVa5jImO11O1U3K033i4Rd6bNuSOxXKKVMoYnKM9+64OteMdGjqmD RlPwC43BPPXxtNEvBB0nrjHUxGhL8IRGSd0BVgILTE0aUJR10v5y8B3j6/nD3sX6m2Ju 40kQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=i3OGdsMbb5tLhFnkYm5edCt6hY5dNwxRQXqrDlHFFbU=; b=xlqmeRg2R71MSrB75OBy0ToRMp0D3sa3Wc/REHI3o2FAsDvd/egmeVQW0WbAuCe9va noExf97vQb0AcjoM77wLJESvOnQwIH9+lXRUl+WwlgC4vBuQboVsoS99HkncG1zxL4Uj nVinDyZGzafwYLbWqREwvmjTNDfOp7pT6M5vLgJCTNVAxMqK8FHeeWpI52/iAcdL6WTH LUKSLFGLiki7kVYCPdBITafy1m6SIr+rWqsbsAFKymlVogqzf6La36lfEiLe5tQ7Knnj 0OcmhAm8qya9JKcO7IvZ8E5/v1eZQQERHWd1ZMZ3UxWL2Tv2kLnjPH06sudiYTXQF7yN Ro0Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=DlITJNNc; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id l19si5695151edj.186.2021.07.03.10.33.26; Sat, 03 Jul 2021 10:33:26 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=DlITJNNc; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E7F7768A10A; Sat, 3 Jul 2021 20:33:23 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f175.google.com (mail-qk1-f175.google.com [209.85.222.175]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DE145689F02 for ; Sat, 3 Jul 2021 20:33:16 +0300 (EEST) Received: by mail-qk1-f175.google.com with SMTP id j184so12802255qkd.6 for ; Sat, 03 Jul 2021 10:33: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:mime-version :content-transfer-encoding; bh=7cdKWlXAb/A5CIa/qyOURYyoFdXyf2Me6jtIIpmA6XQ=; b=DlITJNNcjeipEiWDJNE5gQXM1jd8k6OoLX7k6UOtvanp3HPyYpZiP+NcqcWDPdhvlt yQlEwzMWPv1vdWJkgSZo/4P5/FvntNgwiH/tidYn1ple+I/OaR6QJOwvkNKgfOy2NuLB 2zXKfZNu+h5I4ngL/8U/WU+v0ayju/g0dcQdhY2RxtlO0ZWcFlG4JFX20YF/lCl8s5Ja N9KnD2LhbL5yG4OH63qgldo2U95ixmU0+olfwSIuNAgcjqG/MSZCnvYckxnSArsGKJct foBCIua9k7+rkhltN4zABoQbjHareFChoBA/ZJrcRqz9DhROcr8nBWNcstG/Adk9jrEA q7Kw== 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:mime-version :content-transfer-encoding; bh=7cdKWlXAb/A5CIa/qyOURYyoFdXyf2Me6jtIIpmA6XQ=; b=sc2vq+QoRXmnISs2ppWvJeejdDkbHNGUWclJJuKTPyczd1HcHc7ShgD/n0GcIkGND8 5a91eGgf/1iX5GHLodrsl4ISdEjBFHdd8jNCj0pCDXWaCfd918dG2J8lxzLLtharNH7Y YWqeBXVMoJoWwjGan+Z/vg0pTMDJ05/JeeVnhM3e7EtTx60rLLn7BZ8gzUnhbgTi4FUX iHpKC2zV97Vawhd2rwKVmFi9UcNRdxnZ2J8QMIDzxSmk49hHqerkrxO7Woi4NX+cwIBN 72lFp+OHSDYtxmfOa/T/C2JAST2rAkC1RpGnWbU9Yw8hxDQ5gT4qKlHHoHKbROGMtp+Q qKRg== X-Gm-Message-State: AOAM531PwGhe2NmupMY3j2+2CQ4wPbZJkURsmK5Bny2/QHB2ATR+fqdx U/zO+e0DAXQPzD82+iwauXv8yx/Nif4= X-Received: by 2002:ac8:4798:: with SMTP id k24mr5087040qtq.258.1625329538966; Sat, 03 Jul 2021 09:25:38 -0700 (PDT) Received: from localhost.localdomain (c-73-149-98-40.hsd1.ma.comcast.net. [73.149.98.40]) by smtp.gmail.com with ESMTPSA id x16sm2476949qtw.80.2021.07.03.09.25.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 03 Jul 2021 09:25:38 -0700 (PDT) From: Andriy Gelman X-Google-Original-From: Andriy Gelman To: ffmpeg-devel@ffmpeg.org Date: Sat, 3 Jul 2021 12:25:28 -0400 Message-Id: <20210703162528.177176-1-andriy.gelman@gmail.com> X-Mailer: git-send-email 2.32.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] avcodec/mjpegdec: Try to continue decoding on zero quant matrix value X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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: Andriy Gelman Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: bKLnQ9JF8krJ From: Andriy Gelman A zero value in the quantization matrix is invalid but in practice will just set the transform coefficient to zero after inverse quantization. Try to continue decoding if the AV_EF_EXPLODE flag is not set. Fixes ticket #9287. Signed-off-by: Andriy Gelman --- The last frame in the sample of the ticket does not decode because the input file appears truncated. Something like the following patch would still be needed to output the final frame: https://patchwork.ffmpeg.org/project/ffmpeg/patch/20210627135307.14008-1-michael@niedermayer.cc/ libavcodec/mjpegdec.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c index 02a987fd0c..8172dca513 100644 --- a/libavcodec/mjpegdec.c +++ b/libavcodec/mjpegdec.c @@ -217,8 +217,10 @@ int ff_mjpeg_decode_dqt(MJpegDecodeContext *s) for (i = 0; i < 64; i++) { s->quant_matrixes[index][i] = get_bits(&s->gb, pr ? 16 : 8); if (s->quant_matrixes[index][i] == 0) { - av_log(s->avctx, AV_LOG_ERROR, "dqt: 0 quant value\n"); - return AVERROR_INVALIDDATA; + int log_level = s->avctx->err_recognition & AV_EF_EXPLODE ? AV_LOG_ERROR : AV_LOG_WARNING; + av_log(s->avctx, log_level, "dqt: 0 quant value\n"); + if (s->avctx->err_recognition & AV_EF_EXPLODE) + return AVERROR_INVALIDDATA; } }