From patchwork Wed Jan 24 03:04:23 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jun Zhao X-Patchwork-Id: 7404 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.156.27 with SMTP id q27csp230331jak; Tue, 23 Jan 2018 19:04:38 -0800 (PST) X-Google-Smtp-Source: AH8x226Kr8IjUAKJ13unRsrMvDL8f0KyFu7W8/m4Ql+S42MVt7Xf2CxCnpXH2ioYy1ucfMKkfPos X-Received: by 10.28.70.196 with SMTP id t187mr3172914wma.129.1516763078055; Tue, 23 Jan 2018 19:04:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1516763078; cv=none; d=google.com; s=arc-20160816; b=FFUHCDz/JIgebwpnPVDe5/qE/N4ByQryNBEFzkezD333Y2ULQTlfZd6uAoKvF+25MR xP6KWy2B1uheXiqdSwtMmNC9nPF59XCpGnQrObfcjY0qk7KmCL6b9S0BHr1wlSUqJdYI u/0fEKHETntSlySW7ryXbplkr1Yn6BZhBTEJIdsnqlxQ4NoDuxiWDopw3lAcmoTzNk6w 7w/XVLnKlNqFAanLjCX6Pj8f+TCxN71Nv5ABWiSSucDrjxzOy55Ndmnw4Pt4ddnuHFZ+ zOjKUANA9UjVJrbvSTChXP5uzvri0xw3t4lp18uAsVMiiAK/FsDt/Luq3Q+eNbGqgO+z 8moQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:subject :content-language:mime-version:user-agent:date:message-id:from:to :dkim-signature:delivered-to:arc-authentication-results; bh=dQyx//OwpN9PvLtO38FpIw38PUJFa8mzTmnytovi3ug=; b=gs4MeE2oolBZepwy8MB0RyfzLwnsG2Dts541orkDpDUriSMPswdCCuBBShB4cYxXMz sruSVDy49pZaB9tWk1sxlJGjwa5rE/seTzBmHYONTz92cw8+3R2rsbTuXy3YDEpu7kId Rwo7EAa13RhEpxCN2NWOCSmo66RelMVUUAsAlMiKaPKGgQvyzCTsGJOXLvwdR+DqaYi6 aomxaBhkhg84oM28m29IJZUscS1VBhbrRQvCSwcN+8lgSzDO0/UQD5NTmS4NU46icIN6 vTZYv8rBDoQUmykZ5zBV/vanMiA0mPrePfHpthynQ/aQLukXoCC3jLl/088QD/O6rYUu r9yg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=j/hLrA+G; 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 m189si187919wmd.148.2018.01.23.19.04.37; Tue, 23 Jan 2018 19:04:38 -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=j/hLrA+G; 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 C320C689DDA; Wed, 24 Jan 2018 05:04:32 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pg0-f49.google.com (mail-pg0-f49.google.com [74.125.83.49]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5EE4C689AA8 for ; Wed, 24 Jan 2018 05:04:26 +0200 (EET) Received: by mail-pg0-f49.google.com with SMTP id y27so1728251pgc.5 for ; Tue, 23 Jan 2018 19:04:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=to:from:subject:message-id:date:user-agent:mime-version :content-language; bh=qMC65YhCDUPQtgGlab72rX5XZ+cmvzUZCAMZapbYbLo=; b=j/hLrA+GrEw008lO9TANjT+nT6TJ85KzNB2vePQiH3mZXVQHsHOy3dTF+I1veuap2B E8d3CF2F1yRdnqxAL02mzvpIL2jzciOVwBk0sGsIEn4vuBThk1sA3JFFqHjOX1+BZ2il g581TczlqyC2r7Vs2o4L/dsDt1IudgcsxLKE9lpW4ipebEPFXH+liwDl4SUHtizu3po7 pGJR0WOZsPqD2eiQjNkv8UlqH8OIqITIBeMCDvhuDOz5vHsgsMieWH9W7Bwl4x5YeUv8 y3+ppHIiCK3Lqqd8xVmBJ0sHrk9HCVT6PV8WLMDnCK8ejLuUHZy3ISz/5AMNkfrY04gr UH0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:to:from:subject:message-id:date:user-agent :mime-version:content-language; bh=qMC65YhCDUPQtgGlab72rX5XZ+cmvzUZCAMZapbYbLo=; b=Luv/HK96KvARVuIKC6bVPLNSrOgkS9KVC+nXRrclfW+E/NUlsmoefbZUUWywwo4KzZ iMIAQPxLybJpg4irZj0uZ4h/dop49FiGvb1P4fQPlpsCaKiw2JoogN0pMbJmpSqG+nK7 /4d6rzlMDYIsTMgQd5gASHQDGif1EBAUgL73b88gbi3uRVc+QLveLRM2Kx8faX2QjjqN E6DBh2OTLI/Xly30AsYxc/f5RhC81A96st8FbtNU1kluL8jvDad2/WHmWsixDzNO1PtW gTWr5WQcjBM4AGkEzrvXM/CDNZSHcMz3PUUhdyfKfXqf/eZlffCPZtH+3ORyAeFFOYNf BW9A== X-Gm-Message-State: AKwxytfGdp+UgmIPrTN1B0b3y11Pe5e0LRd7XfAuWl5YGmc7NrO98uSd 0okjPFLpws9B1XkpNokAWOc= X-Received: by 2002:a17:902:8607:: with SMTP id f7-v6mr6919048plo.273.1516763067110; Tue, 23 Jan 2018 19:04:27 -0800 (PST) Received: from [10.67.68.20] ([192.55.54.41]) by smtp.gmail.com with ESMTPSA id e20sm7276185pgn.19.2018.01.23.19.04.25 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 23 Jan 2018 19:04:26 -0800 (PST) To: FFmpeg development discussions and patches , Mark Thompson From: Jun Zhao Message-ID: Date: Wed, 24 Jan 2018 11:04:23 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 MIME-Version: 1.0 Content-Language: en-US Subject: [FFmpeg-devel] [PATCH V2 2/3] lavfi/procamp_vaapi: fix the green video issue if without arguments. 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From 1d3b388c313881e931928dc4049896265919725d Mon Sep 17 00:00:00 2001 From: Jun Zhao Date: Wed, 24 Jan 2018 09:28:24 +0800 Subject: [PATCH V2 2/3] lavfi/procamp_vaapi: fix the green video issue if without arguments. Fix the green output issue when use procamp_vaapi without any arguments, now if use procamp_vaapi without any arguments, will use the default value to setting procamp_vaapi. Signed-off-by: Jun Zhao --- libavfilter/vf_procamp_vaapi.c | 73 ++++++++++++++++++------------------------ 1 file changed, 31 insertions(+), 42 deletions(-) diff --git a/libavfilter/vf_procamp_vaapi.c b/libavfilter/vf_procamp_vaapi.c index aad76aa371..45a3120b23 100644 --- a/libavfilter/vf_procamp_vaapi.c +++ b/libavfilter/vf_procamp_vaapi.c @@ -44,8 +44,6 @@ #define SATURATION_MAX 10.0F #define SATURATION_DEFAULT 1.0F -#define EPSILON 0.00001F - typedef struct ProcampVAAPIContext { VAAPIVPPContext vpp_ctx; // must be the first field @@ -65,11 +63,6 @@ static float map(float x, float in_min, float in_max, float out_min, float out_m return (float)output; } -static int fequal(float a, float b) -{ - return fabs(a-b) < EPSILON; -} - static int procamp_vaapi_build_filter_params(AVFilterContext *avctx) { VAAPIVPPContext *vpp_ctx = avctx->priv; @@ -93,41 +86,37 @@ static int procamp_vaapi_build_filter_params(AVFilterContext *avctx) return AVERROR(EIO); } - if (!fequal(ctx->bright, BRIGHTNESS_DEFAULT)) { - procamp_params[i].type = VAProcFilterColorBalance; - procamp_params[i].attrib = VAProcColorBalanceBrightness; - procamp_params[i].value = map(ctx->bright, BRIGHTNESS_MIN, BRIGHTNESS_MAX, - procamp_caps[VAProcColorBalanceBrightness-1].range.min_value, - procamp_caps[VAProcColorBalanceBrightness-1].range.max_value); - i++; - } - - if (!fequal(ctx->contrast, CONTRAST_DEFAULT)) { - procamp_params[i].type = VAProcFilterColorBalance; - procamp_params[i].attrib = VAProcColorBalanceContrast; - procamp_params[i].value = map(ctx->contrast, CONTRAST_MIN, CONTRAST_MAX, - procamp_caps[VAProcColorBalanceContrast-1].range.min_value, - procamp_caps[VAProcColorBalanceContrast-1].range.max_value); - i++; - } - - if (!fequal(ctx->hue, HUE_DEFAULT)) { - procamp_params[i].type = VAProcFilterColorBalance; - procamp_params[i].attrib = VAProcColorBalanceHue; - procamp_params[i].value = map(ctx->hue, HUE_MIN, HUE_MAX, - procamp_caps[VAProcColorBalanceHue-1].range.min_value, - procamp_caps[VAProcColorBalanceHue-1].range.max_value); - i++; - } - - if (!fequal(ctx->saturation, SATURATION_DEFAULT)) { - procamp_params[i].type = VAProcFilterColorBalance; - procamp_params[i].attrib = VAProcColorBalanceSaturation; - procamp_params[i].value = map(ctx->saturation, SATURATION_MIN, SATURATION_MAX, - procamp_caps[VAProcColorBalanceSaturation-1].range.min_value, - procamp_caps[VAProcColorBalanceSaturation-1].range.max_value); - i++; - } + /* brightness */ + procamp_params[i].type = VAProcFilterColorBalance; + procamp_params[i].attrib = VAProcColorBalanceBrightness; + procamp_params[i].value = map(ctx->bright, BRIGHTNESS_MIN, BRIGHTNESS_MAX, + procamp_caps[VAProcColorBalanceBrightness-1].range.min_value, + procamp_caps[VAProcColorBalanceBrightness-1].range.max_value); + i++; + + /* contrast */ + procamp_params[i].type = VAProcFilterColorBalance; + procamp_params[i].attrib = VAProcColorBalanceContrast; + procamp_params[i].value = map(ctx->contrast, CONTRAST_MIN, CONTRAST_MAX, + procamp_caps[VAProcColorBalanceContrast-1].range.min_value, + procamp_caps[VAProcColorBalanceContrast-1].range.max_value); + i++; + + /* hue */ + procamp_params[i].type = VAProcFilterColorBalance; + procamp_params[i].attrib = VAProcColorBalanceHue; + procamp_params[i].value = map(ctx->hue, HUE_MIN, HUE_MAX, + procamp_caps[VAProcColorBalanceHue-1].range.min_value, + procamp_caps[VAProcColorBalanceHue-1].range.max_value); + i++; + + /* saturation */ + procamp_params[i].type = VAProcFilterColorBalance; + procamp_params[i].attrib = VAProcColorBalanceSaturation; + procamp_params[i].value = map(ctx->saturation, SATURATION_MIN, SATURATION_MAX, + procamp_caps[VAProcColorBalanceSaturation-1].range.min_value, + procamp_caps[VAProcColorBalanceSaturation-1].range.max_value); + i++; return ff_vaapi_vpp_make_param_buffers(avctx, VAProcFilterParameterBufferType,