From patchwork Tue May 1 19:39:55 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul B Mahol X-Patchwork-Id: 8715 Delivered-To: ffmpegpatchwork@gmail.com Received: by 2002:a02:155:0:0:0:0:0 with SMTP id c82-v6csp4903464jad; Tue, 1 May 2018 12:41:16 -0700 (PDT) X-Google-Smtp-Source: AB8JxZrvbdylkaq9JYQXAPA91WauiNCEGWrTjL5vueo8XfyLWXOR/8Xbo5q2+QcyKeo0rXueQmEg X-Received: by 10.28.71.1 with SMTP id u1mr8561212wma.42.1525203675923; Tue, 01 May 2018 12:41:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525203675; cv=none; d=google.com; s=arc-20160816; b=KnFocPLdRsnF9H7jBCWuXi+gaw46t4xZd3gQrGj5G2Jxzljd8qlMNLVhKNQZvrA31M rQOzf90ZoUPMBjp5MW1mD2Yx9+JVc5j39ofwCIdLITZB+9wdE3Az/Y2/AUK75nicWDB9 +FbdNB4eLsffDOJQMt3PqTZy9J7X2i123wOu+Rbxc2KtJRBRESTWckNg7vYqmT2yq79y N/mmkkoHC+4YY2CFv3DcC5YjXULvRMBdhRAO+cHj2dGYDP2QwlAPm5gOif8Eg5VdFz3e zPu2aPeLelBLp9dBaDbbN6hOGDTyeMRvKHv6bUb1ITRG8WygWpGW49Ik9mcHrK4aEWk/ 7SlQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:dkim-signature:delivered-to:arc-authentication-results; bh=RgDD7TDTzdsX0P2QSboW74xl5hvZ539mEMaeTln8dLc=; b=1Bbu7a0d8RzEhZxod/JhCHmWtU8Vr6gjtDEgu8V3edW0XKAygf4Rx9Xg7a9UvxuG2i 8XHDKIckxxKEWhrBtNH6xBhL7L5AOp3cXd58R9AztN6mKZ6LBNB+mrYODwou/GU06/DP YYpSbUVdK2jWJ+/PvZCnldhI/6ay6QsRUweyxGLhWvXnXR6m3JhaRuEG2H2OufrGjQOY f55hdOdCwf67dind1OWUnFNlu7aVgGzI1Y7VrICmBBgWpQJe9+gz6UWbmsJl8RVy38x0 Zq7qCneYa/g4NWj3TCVAucWo05tpnLkgH7SkF5ZvjKh1cX7GTIkxYDhpl7PQ/koCBrxn q7fw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=up/5cjpI; 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 1-v6si8495202wrl.258.2018.05.01.12.41.15; Tue, 01 May 2018 12:41:15 -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=up/5cjpI; 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 915B368A3A9; Tue, 1 May 2018 22:40:32 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr0-f195.google.com (mail-wr0-f195.google.com [209.85.128.195]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 08D3768A1A3 for ; Tue, 1 May 2018 22:40:29 +0300 (EEST) Received: by mail-wr0-f195.google.com with SMTP id u18-v6so11697349wrg.3 for ; Tue, 01 May 2018 12:41:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references; bh=0vnv7Y1gn0OnUv3UcQy2qlmbk7OsO/tU+a86IPuelpQ=; b=up/5cjpI1MU489gw/qc8NZQp0pOolfWacXOzfTbb+REkkhyr5i8/zcZ3bQPMeIcBjZ 7KvGpznhrkbAw2YS6fZuDoNwRgHSIKLcKuNtbw4COo8/mNFsI8dFFYOBMm3C3dKX8R32 K+f5tKr2JzqtAymuKpE8yt46KsXoFzAACcOlMYpIE0DOvKc3cdpO2vQB/YHpEb7B63qU et347O+Z1oZXpJEG3JorjKKWvfyAOKW9/n4BGA2Pu8qA+mM4yd/9TujNTA1Oz/y4JF4M eSs5Z8zWwhog5YTU/3mYCLQFrwILmYfJWC6FmF1w1GoMJQDYAeJFJbbqNIS0SfQ/hVxM 6+0w== 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:in-reply-to :references; bh=0vnv7Y1gn0OnUv3UcQy2qlmbk7OsO/tU+a86IPuelpQ=; b=g+OqKS9O5l0FRuxsornbNc/Y5hHyr/15zgWEr4URlGjPRyTykx/eHkE8iV6SQLPV3m cGr6CMJOK+vdb8uAvt+ttB9DzlM1IyRIC9Yg3NrD/jxxGxKaL/QdSiWczsJS5lKXUimO bN/rOW6SPDKPbDLE2QFeePJV03ss19fJbxzgFa7aZGi5JC78UFJifzgL1suNOVlGi7Vl QT3VU3vaxexr0WIx7rBvXkYsXa9XMzOzsPUQCxopL88ZPSqMgW2vrKgiklWglQrMbyHG dDWYoS1blEGQWrv6QddZKanQqCU47S3xRVF3GnBTwWTwMHoT9rjRIK/IyBofms5kNVnv GWUw== X-Gm-Message-State: ALQs6tB51LE2IjCMLtuHaHqiagaojhOW3L/Erw/uDOimK3ix9Ht6vfFh ZHb/MJvaDuVTDrpMEMHuwZGYDQ== X-Received: by 2002:adf:9ae5:: with SMTP id a92-v6mr12078045wrc.180.1525203662054; Tue, 01 May 2018 12:41:02 -0700 (PDT) Received: from localhost.localdomain ([94.250.174.60]) by smtp.gmail.com with ESMTPSA id h12sm11839115wmc.7.2018.05.01.12.41.01 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 01 May 2018 12:41:01 -0700 (PDT) From: Paul B Mahol To: ffmpeg-devel@ffmpeg.org Date: Tue, 1 May 2018 21:39:55 +0200 Message-Id: <20180501194013.9552-6-onemda@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180501194013.9552-1-onemda@gmail.com> References: <20180501194013.9552-1-onemda@gmail.com> Subject: [FFmpeg-devel] [PATCH 06/24] avcodec/pngdec: set full color range only for gray formats 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" Signed-off-by: Paul B Mahol --- libavcodec/pngdec.c | 8 ++++++-- tests/ref/fate/api-png-codec-param | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/libavcodec/pngdec.c b/libavcodec/pngdec.c index f93f200bb1..dbf986de50 100644 --- a/libavcodec/pngdec.c +++ b/libavcodec/pngdec.c @@ -641,9 +641,11 @@ static int decode_idat_chunk(AVCodecContext *avctx, PNGDecContext *s, } else if ((s->bit_depth == 2 || s->bit_depth == 4 || s->bit_depth == 8) && s->color_type == PNG_COLOR_TYPE_GRAY) { avctx->pix_fmt = AV_PIX_FMT_GRAY8; + avctx->color_range = AVCOL_RANGE_JPEG; } else if (s->bit_depth == 16 && s->color_type == PNG_COLOR_TYPE_GRAY) { avctx->pix_fmt = AV_PIX_FMT_GRAY16BE; + avctx->color_range = AVCOL_RANGE_JPEG; } else if (s->bit_depth == 16 && s->color_type == PNG_COLOR_TYPE_RGB) { avctx->pix_fmt = AV_PIX_FMT_RGB48BE; @@ -658,9 +660,11 @@ static int decode_idat_chunk(AVCodecContext *avctx, PNGDecContext *s, } else if (s->bit_depth == 8 && s->color_type == PNG_COLOR_TYPE_GRAY_ALPHA) { avctx->pix_fmt = AV_PIX_FMT_YA8; + avctx->color_range = AVCOL_RANGE_JPEG; } else if (s->bit_depth == 16 && s->color_type == PNG_COLOR_TYPE_GRAY_ALPHA) { avctx->pix_fmt = AV_PIX_FMT_YA16BE; + avctx->color_range = AVCOL_RANGE_JPEG; } else { avpriv_report_missing_feature(avctx, "Bit depth %d color type %d", @@ -680,10 +684,12 @@ static int decode_idat_chunk(AVCodecContext *avctx, PNGDecContext *s, case AV_PIX_FMT_GRAY8: avctx->pix_fmt = AV_PIX_FMT_YA8; + avctx->color_range = AVCOL_RANGE_JPEG; break; case AV_PIX_FMT_GRAY16BE: avctx->pix_fmt = AV_PIX_FMT_YA16BE; + avctx->color_range = AVCOL_RANGE_JPEG; break; default: @@ -1575,8 +1581,6 @@ static av_cold int png_dec_init(AVCodecContext *avctx) { PNGDecContext *s = avctx->priv_data; - avctx->color_range = AVCOL_RANGE_JPEG; - s->avctx = avctx; s->previous_picture.f = av_frame_alloc(); s->last_picture.f = av_frame_alloc(); diff --git a/tests/ref/fate/api-png-codec-param b/tests/ref/fate/api-png-codec-param index f04ffa757d..a8c991270f 100644 --- a/tests/ref/fate/api-png-codec-param +++ b/tests/ref/fate/api-png-codec-param @@ -115,7 +115,7 @@ stream=0, decode=0 color_primaries=2 color_trc=2 colorspace=2 - color_range=2 + color_range=0 chroma_sample_location=0 log_level_offset=0 slices=0 @@ -255,7 +255,7 @@ stream=0, decode=1 color_primaries=2 color_trc=2 colorspace=2 - color_range=2 + color_range=0 chroma_sample_location=0 log_level_offset=0 slices=0