From patchwork Tue Jun 23 09:14:04 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Plowman X-Patchwork-Id: 4143 Return-Path: Received: from mail-wm1-x341.google.com (mail-wm1-x341.google.com [IPv6:2a00:1450:4864:20::341]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 2C8F8603BA for ; Tue, 23 Jun 2020 11:14:14 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=raspberrypi.com header.i=@raspberrypi.com header.b="PQK1AD7h"; dkim-atps=neutral Received: by mail-wm1-x341.google.com with SMTP id j18so2261542wmi.3 for ; Tue, 23 Jun 2020 02:14:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raspberrypi.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=szZXl6QaV/4cRk25Zk5zyFZjAjLl0G9Vvu2sYyyNpS8=; b=PQK1AD7hL/a5xwomvk8/WvnAHXYRFTtU/iz73r5pnFlwWvXbcUJo13hDxACn0JWvZa Fc0bDQYYfg4XtiMwgCnNLnujNmY3yst7ha/N8EAvtzjTaDNjJkX2kqWb9tGftOT3Jtn3 oeAUwU7qlznkd5LZWTVd8BI3u8BgxeE94v9y+5ve4YrZyCNKmNj0uyeXA7OFrwIL5T2M GcEfWLz9HhxqsIn84dLEv0SWGFveA7lTv08ZNvt3rLtNzwPCkEXjWqdaqaNPHuhEGAJU 313C27DmC9kHCnlHo+3wzwhdr83UkZQMNYTsFyNhG8/LD50oqFl6QPfgO9i1g+CGMVpv oAsw== 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:mime-version:content-transfer-encoding; bh=szZXl6QaV/4cRk25Zk5zyFZjAjLl0G9Vvu2sYyyNpS8=; b=X2StBMjASNr86sxYw8YWVhfUupdXRyOJOK093KDwUpXE5SzIcCjcCK5opbAtEAQspL QxKx1itC1SNhN5yoJPruvDX8LTf7eu3PIMd0y6rOdW/bzD+K6gElCq9bJ1p0kazV+zp9 63drCmcDrFU/R0UBKVhjg5mz6BizFbdQMqVxk0fM78HTKZYPIcoSB7vBZ3LsWncWfseP kVwFEtX705RWrhdEIFBIp2WclX5WZvj1z9LChQGBJoLhSdVg3zvgTsNMbT8QCGyxwInO HypDUPcf/gyau0eN6ui63LvZYxmjj0HdKMxsdvZZ7+03/uGP+Pp/4rvr+NaqEDs+dKcb 6n9Q== X-Gm-Message-State: AOAM5305WwE02u+hm9c35lGC6IeTk65awlMnY53zU0NEOf2dO0KKRb1v 4i2tNVtmML5uh/p987G/QC/godrFQ5o= X-Google-Smtp-Source: ABdhPJxaXcGiDODwbcAaWs+EHYGtwgBt5GYEbE+9dE1HsOHv+Eof1u452eiNQOoswOuaGeCnCWxEHw== X-Received: by 2002:a1c:308:: with SMTP id 8mr21819050wmd.125.1592903653663; Tue, 23 Jun 2020 02:14:13 -0700 (PDT) Received: from pi4-davidp.lan (plowpeople3.plus.com. [80.229.223.72]) by smtp.gmail.com with ESMTPSA id t125sm2931616wmf.10.2020.06.23.02.14.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2020 02:14:13 -0700 (PDT) From: David Plowman To: libcamera-devel@lists.libcamera.org Date: Tue, 23 Jun 2020 10:14:04 +0100 Message-Id: <20200623091404.15155-5-david.plowman@raspberrypi.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200623091404.15155-1-david.plowman@raspberrypi.com> References: <20200623091404.15155-1-david.plowman@raspberrypi.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v3 4/4] libcamera: ipa: raspberrypi: plumb in the libcamera sharpness control X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Jun 2020 09:14:14 -0000 This simply wires up the libcamera sharpness control in the Raspberry Pi IPAs so that it controls the strength of the Raspberry Pi sharpness control algorithm. Signed-off-by: David Plowman --- include/libcamera/ipa/raspberrypi.h | 1 + src/ipa/raspberrypi/raspberrypi.cpp | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/include/libcamera/ipa/raspberrypi.h b/include/libcamera/ipa/raspberrypi.h index c109469..a18ce9a 100644 --- a/include/libcamera/ipa/raspberrypi.h +++ b/include/libcamera/ipa/raspberrypi.h @@ -51,6 +51,7 @@ static const ControlInfoMap RPiControls = { { &controls::Brightness, ControlInfo(-1.0f, 1.0f) }, { &controls::Contrast, ControlInfo(0.0f, 32.0f) }, { &controls::Saturation, ControlInfo(0.0f, 32.0f) }, + { &controls::Sharpness, ControlInfo(0.0f, 16.0f, 1.0f) }, }; } /* namespace libcamera */ diff --git a/src/ipa/raspberrypi/raspberrypi.cpp b/src/ipa/raspberrypi/raspberrypi.cpp index 42c84b1..bc89ab5 100644 --- a/src/ipa/raspberrypi/raspberrypi.cpp +++ b/src/ipa/raspberrypi/raspberrypi.cpp @@ -47,6 +47,7 @@ #include "metadata.hpp" #include "noise_status.h" #include "sdn_status.h" +#include "sharpen_algorithm.hpp" #include "sharpen_status.h" namespace libcamera { @@ -633,6 +634,17 @@ void IPARPi::queueRequest(const ControlList &controls) break; } + case controls::SHARPNESS: { + RPi::SharpenAlgorithm *sharpen = dynamic_cast( + controller_.GetAlgorithm("sharpen")); + ASSERT(sharpen); + + sharpen->SetStrength(ctrl.second.get()); + libcameraMetadata_.set(controls::Sharpness, + ctrl.second.get()); + break; + } + default: LOG(IPARPI, Warning) << "Ctrl " << controls::controls.at(ctrl.first)->name()