From patchwork Sat Mar 28 13:24:59 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gautam Ramakrishnan X-Patchwork-Id: 18458 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 34C3444BE23 for ; Sat, 28 Mar 2020 15:25:19 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1F99168B5F0; Sat, 28 Mar 2020 15:25:19 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pg1-f194.google.com (mail-pg1-f194.google.com [209.85.215.194]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 759A668B5BE for ; Sat, 28 Mar 2020 15:25:10 +0200 (EET) Received: by mail-pg1-f194.google.com with SMTP id 142so6055934pgf.11 for ; Sat, 28 Mar 2020 06:25:10 -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=TmePGoXV1vkg3uKcrRsQoKmpmsMh72eQWl1qfzI1G7c=; b=W9pt4Guu2IhgON37m6Q6jY56LhnuwQnz0kZcyJl+vO38u9kFNST+Oo6uXkY5voXeY8 +OoZYrV1fOk5vduGjZgngqLVAD1B+m5VGgDsdl9zB/QDGoAEjmfCJaXb4efuXsNM4VXB RquH0vc6Uxv8yOTuZ5JxGWrBiIRaYphqRuGmK0t9T0Y3hRT1X9OF6PlaRBufZjQnTjcg ayfsYgdVSrb6tV06tHnFgGlOKlr78dAWYtlklF5MH7b2NCDKT0FkGkzSi0H2Zs4+kGfj BwBbK7aMrGphWB3seCQ+LJ+KRYD8SmtGV0kLlQPpbd74zX74ntZLz7DTfWkQE8pF+i7Y uo7w== 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=TmePGoXV1vkg3uKcrRsQoKmpmsMh72eQWl1qfzI1G7c=; b=R58yNVuCfM+n7fFcNZav/tR12aieZIEAxa8in4ZjkdyAL/wd3Iv0F7Z/SWfgS6IYEa UlJZCTzm+mmQbg+yfKcPuaKU/2Tl5rFEI0nPs1uKYShxfKggIoJE99X4avqVkIMvqTht OZq0Ez0F8CLdl/MwBhmr19UduNGIooJVr8v/zMCkTga1Lf2b/JOXut8fgyUkRmxitLOV 3YHXi5bu5tHBAKLUoWBgYmJihDTQi3Wje7XF6JiYd/KLtFwC0moyD2OMIyHkXFOnA+xM I4K+YVlhUwjkB+9LVsBnlRNmWQzpJdhUyelklIIFzOsBVLiIbIQPbFpKJvsIoAlO8ynh CO6Q== X-Gm-Message-State: ANhLgQ0qLTA+yamj3+1FapTGdKyKlVEM44sY2Q+CIbTqjkgMwur7R6XH lsTJJSz0QKGrx37BLndiLAVi+c5mTfk= X-Google-Smtp-Source: ADFU+vsibShYnjGGhVl4gDrgOllTb1p+TP00QhE5dvDztCy6JGlaZMhpzjEDWCflCNaDqZI7f3PPyA== X-Received: by 2002:a63:ff53:: with SMTP id s19mr4369354pgk.247.1585401908526; Sat, 28 Mar 2020 06:25:08 -0700 (PDT) Received: from localhost.localdomain ([223.235.255.212]) by smtp.gmail.com with ESMTPSA id 5sm6251734pfw.98.2020.03.28.06.25.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 28 Mar 2020 06:25:07 -0700 (PDT) From: gautamramk@gmail.com To: ffmpeg-devel@ffmpeg.org Date: Sat, 28 Mar 2020 18:54:59 +0530 Message-Id: <20200328132459.27671-2-gautamramk@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200328132459.27671-1-gautamramk@gmail.com> References: <20200328132459.27671-1-gautamramk@gmail.com> Subject: [FFmpeg-devel] [PATCH v5 2/2] libavcodec/jpeg2000dec.c: Handle non EOC streams 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 This patch allows decoding of j2k streams which do not have an EOC marker. OpenJPEG implements a similar check. --- libavcodec/jpeg2000dec.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/libavcodec/jpeg2000dec.c b/libavcodec/jpeg2000dec.c index 44b3e7e41b..235078e26d 100644 --- a/libavcodec/jpeg2000dec.c +++ b/libavcodec/jpeg2000dec.c @@ -2076,8 +2076,12 @@ static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s) len = bytestream2_get_be16(&s->g); if (len < 2 || bytestream2_get_bytes_left(&s->g) < len - 2) { - av_log(s->avctx, AV_LOG_ERROR, "Invalid len %d left=%d\n", len, bytestream2_get_bytes_left(&s->g)); - return AVERROR_INVALIDDATA; + if (s->avctx->strict_std_compliance >= FF_COMPLIANCE_STRICT) { + av_log(s->avctx, AV_LOG_ERROR, "Invalid len %d left=%d\n", len, bytestream2_get_bytes_left(&s->g)); + return AVERROR_INVALIDDATA; + } + av_log(s->avctx, AV_LOG_WARNING, "Mising EOC Marker.\n"); + return 0; } switch (marker) {