From patchwork Sat Dec 16 10:12:26 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul B Mahol X-Patchwork-Id: 6816 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.161.94 with SMTP id m30csp471214jah; Sat, 16 Dec 2017 02:19:27 -0800 (PST) X-Google-Smtp-Source: ACJfBovWyQvO8t8tgb9KMit8+XewzpNhpyg2JwkISUnQ1w7Ez5eUH4i3ZxCBCb/77YCS3bIedZOL X-Received: by 10.223.136.13 with SMTP id d13mr4077685wrd.76.1513419567465; Sat, 16 Dec 2017 02:19:27 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1513419567; cv=none; d=google.com; s=arc-20160816; b=grWxMm+l7C4iW04UbVFwxIr9AMJVVJf2bAkLDRr54Kc+0Uv3a/VY5Gjyh2LKUltfVG r8YakSH7g1Lb21dSUr3HhYd2WzVbcoegtBXCZmrRom8f8HljmjxM4L0tS+y4xhFUdNnl om/PkgijD9uMJdVjwChpEstVPlyNd74wqNeWZsXpb3AlJgzlh3Wr+s2SMGFnXcTSq9od EMffXI0WF8f4UwzS38994OJ5rH609is0TzJ+92VEGQTQ6GryFCpvBlzC6LfFkpzg5m+n XjHhUt07QMJz9RUvDhHX849H3DrEx5VDkGuvKiYglWSsKwieolfRTxarxpj3wlLdINnL bqSQ== 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=dKDwgq3BSOr1V7OGKkNwa4cSOOvaAILoRpA8oDnNfO0=; b=co39BPf+/oh0gmR4e2wYKGWgztnQG9hOPBiQ0YIAgz83pft6TkljBH5qDw68loHfXy bb2sWDVtP79dnuJpmJ2Sc065SwD9KB9V4uVaO7jnU+M3NZiFs3sBSygraH+FV4uYUWa8 A4hKDTrX1EUxHnA6fhQxYTfnW0Ebt5gPG0KNPvZFWZxHkpyLJuoXgsWq7XfM4qMGXwTk N/va8k3ojgFTNUO8A+i/1wWv25CM6lqwtUg2fB6j4wsMleCUPMV8nj4/dox8KfmeDJWz QIRmStSipbFTlpC44xX4/BBIn+to7Qh17ow60JbDT9hdwrh0ToTDMg9MqEW4i9yMRDR9 Db+g== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=a8FRcEZ5; 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=NONE 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 v63si6847282wrb.481.2017.12.16.02.19.27; Sat, 16 Dec 2017 02:19:27 -0800 (PST) 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=a8FRcEZ5; 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=NONE 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 B5BB0689C4F; Sat, 16 Dec 2017 12:19:04 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm0-f66.google.com (mail-wm0-f66.google.com [74.125.82.66]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6E832689C3C for ; Sat, 16 Dec 2017 12:19:03 +0200 (EET) Received: by mail-wm0-f66.google.com with SMTP id g75so21630435wme.0 for ; Sat, 16 Dec 2017 02:19:12 -0800 (PST) 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=L4PovPO2QbQfL86OvG74iN4j1u2VIgvy1T+XQMbfCfw=; b=a8FRcEZ5JIzHyXdvhTImdHNv5hSuYfwb13vsF8Pc3az+bjBWSOqcWj1n8j6Eqj+t0v WPFK9GWmHsyR63Td8ROpjX4fLlQyPuYJdGK4bMWWTZm+nR5AIa2I6PvGNSKjbnfyPyY9 2H4o8FMiBDKUoCGYMvfbQWSgfMreJQ24tMe4MJgv75ObTnFHUQ+UqHWmTNU4dKtOmKNV RzDHFxmhbkEYAQ03jJcAOwmNb1om80lCGkdwp6IxOKbI/H3yYgSzM3eGsvhD0aTWhdlO G8jWaPv0U/cXenGCE6z3tLCPXC50dtjoJVPtZUuy9PIvT3I426bez3u/s7nwNqjRlAvq Zikg== 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=L4PovPO2QbQfL86OvG74iN4j1u2VIgvy1T+XQMbfCfw=; b=rQP9wsX2neDy99k+k37YUS7mtsTlLkgsorxvhZaves02o+rhKzCb5FND0UzSJehDWx x+9aFgnNp3AutZND+RNqW7IVDAouv5lf0T2HOLaQUJHSexQf+KKadHUr5TsXsk7AWdiQ JeRZYV8aJSQfVroDLpMhyCotRJYdEpZQEIMN/aFryasoNOl5FpSgTAFCnmJlnYn3wlDX tOZr5Y9U9GsPJwJw5wjTY57Ju3i4kotuuDmbRO/9bh3bpYZByX67b1BQsMCgiCO/5iTV czeli0MBpwrcH2vcfQMOQSnejMDsNMoRnVsJN57jmESGSuuBUeQkR6XQMlOX/VnyDjtu /mEA== X-Gm-Message-State: AKGB3mKzJeV9urYT+wS4hxcby38DSoJyns2cXCAKDH0hH1maO0jvC7T1 r0yur71ppZySd0SK4+ip3g6jdA== X-Received: by 10.80.164.241 with SMTP id x46mr20944644edb.247.1513419215545; Sat, 16 Dec 2017 02:13:35 -0800 (PST) Received: from localhost.localdomain ([94.250.174.60]) by smtp.gmail.com with ESMTPSA id i6sm7100034eda.6.2017.12.16.02.13.34 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 16 Dec 2017 02:13:35 -0800 (PST) From: Paul B Mahol To: ffmpeg-devel@ffmpeg.org Date: Sat, 16 Dec 2017 11:12:26 +0100 Message-Id: <20171216101245.26977-6-onemda@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20171216101245.26977-1-onemda@gmail.com> References: <20171216101245.26977-1-onemda@gmail.com> Subject: [FFmpeg-devel] [PATCH 06/25] 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 c6ea7c6296..a04b77fa43 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 @@ -254,7 +254,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