From patchwork Wed Apr 13 09:53:41 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kieran Bingham X-Patchwork-Id: 15666 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id CA5EFC3260 for ; Wed, 13 Apr 2022 09:53:28 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 4FBFC6563F; Wed, 13 Apr 2022 11:53:27 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org; s=mail; t=1649843607; bh=e07PUHPKxK3iB0J5Sy48tMn2fLcWIU2b9tRdks87DzM=; h=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=xPOdFW3B4SSv05br8JTOQze1EY+QnO592ApXVSY9td5uza08o8AMCakMgjRffkKUk AMCnZ5Z6FaHaZmVWCIyGiyvC1M8AlNX32Hl+Oq6S1fxtk+2+nE/Cj4HaXe2/Ldk9O6 oJrPbvNqbh+ZuMheCSnhlMOvzo9u7aoqEp81u3kndJVCEWUhpGBnJ/a1fd9/7dwD4M krKol4TPCxnPVM2Gl8L0+YLSX7/MwLCK1uxh1Sdc6WZXjlD4e9XXbAxrp5kWMsOinO mV6K5drd2mraD3ka8pHgnHMOaKcrdwFo2Mazu1eHdsIS0oLlg2pH/dECu/g6RK0I3c viDDXzcoM8Krg== Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id BB59C6563E for ; Wed, 13 Apr 2022 11:53:24 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="NHe/i/8x"; dkim-atps=neutral Received: from Q.ksquared.org.uk.beta.tailscale.net (unknown [178.237.134.231]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 362D4482; Wed, 13 Apr 2022 11:53:24 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1649843604; bh=e07PUHPKxK3iB0J5Sy48tMn2fLcWIU2b9tRdks87DzM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NHe/i/8xsxvSVtWXSRmjJlw73yb3UkQzGPyCcIBG+VLKBQulDtWSFxZhnY2hkcNmv wBiqXPUC6g0vwH3eRVDIU44kFyGB0byTqJVC5qx1am96xPVZdAFh61d3hcY/cdkA0x doBev+uwBnzcYFp5jApdBRXT73RjJF6MQ/tm8h7o= To: libcamera devel , Naushir Patuck , David Plowman Date: Wed, 13 Apr 2022 11:53:41 +0200 Message-Id: <20220413095342.389460-2-kieran.bingham@ideasonboard.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220413095342.389460-1-kieran.bingham@ideasonboard.com> References: <20220413095342.389460-1-kieran.bingham@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v3 1/2] libcamera: camera: Add a mode sensitivity field 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-Patchwork-Original-From: Kieran Bingham via libcamera-devel From: Kieran Bingham Reply-To: Kieran Bingham Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" From: David Plowman The modeSensitivity field is a number that describes how sensitive the selected sensor mode is compared to other readout modes of the same sensor. For example, a binned mode might have twice the sensitivity of the full resolution mode, meaning you would get double the signal level for the same exposure and gains. Signed-off-by: David Plowman Reviewed-by: Kieran Bingham Reviewed-by: Naushir Patuck Signed-off-by: Kieran Bingham --- v3: [Kieran] : Spelling correction include/libcamera/camera.h | 2 ++ src/libcamera/camera.cpp | 16 +++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/include/libcamera/camera.h b/include/libcamera/camera.h index 5bb065847e04..826181cabc92 100644 --- a/include/libcamera/camera.h +++ b/include/libcamera/camera.h @@ -67,6 +67,8 @@ public: Transform transform; + float modeSensitivity; + protected: CameraConfiguration(); diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp index 713543fd1bdf..c2e64a0ba5e4 100644 --- a/src/libcamera/camera.cpp +++ b/src/libcamera/camera.cpp @@ -160,7 +160,7 @@ LOG_DECLARE_CATEGORY(Camera) * \brief Create an empty camera configuration */ CameraConfiguration::CameraConfiguration() - : transform(Transform::Identity), config_({}) + : transform(Transform::Identity), modeSensitivity(1.0), config_({}) { } @@ -412,6 +412,20 @@ CameraConfiguration::Status CameraConfiguration::validateColorSpaces(ColorSpaceF * may adjust this field at its discretion if the selection is not supported. */ +/** + * \var CameraConfiguration::modeSensitivity + * \brief The relative sensitivity of the chosen sensor mode + * + * Some sensors have readout modes with different sensitivities. For example, + * a binned camera mode might, with the same exposure and gains, produce + * twice the signal level of the full resolution readout. This would be + * signalled by the binned mode, when it is chosen, indicating a value here + * that is twice that of the full resolution mode. + * + * This value should only be read, and not set, by the user. It will be + * valid after the configure method has returned successfully. + */ + /** * \var CameraConfiguration::config_ * \brief The vector of stream configurations