From patchwork Sat Jul 25 16:42:39 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 9008 X-Patchwork-Delegate: jacopo@jmondi.org 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 F2121BD86F for ; Sat, 25 Jul 2020 16:39:12 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id CE9BB61366; Sat, 25 Jul 2020 18:39:12 +0200 (CEST) Received: from relay4-d.mail.gandi.net (relay4-d.mail.gandi.net [217.70.183.196]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id F30A761212 for ; Sat, 25 Jul 2020 18:39:10 +0200 (CEST) X-Originating-IP: 2.224.242.101 Received: from uno.lan (2-224-242-101.ip172.fastwebnet.it [2.224.242.101]) (Authenticated sender: jacopo@jmondi.org) by relay4-d.mail.gandi.net (Postfix) with ESMTPSA id 70A3FE0004; Sat, 25 Jul 2020 16:39:10 +0000 (UTC) From: Jacopo Mondi To: libcamera-devel@lists.libcamera.org Date: Sat, 25 Jul 2020 18:42:39 +0200 Message-Id: <20200725164243.168297-2-jacopo@jmondi.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200725164243.168297-1-jacopo@jmondi.org> References: <20200725164243.168297-1-jacopo@jmondi.org> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH 1/5] android: camera_device: Report more control modes 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: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" In order to prepare to construct the request template for the manual mode use case, which requires all automatic controls of the pipeline to be disabled, advertise support for the AE, AWB and AF algorithms on/off modes to the static camera characteristics metadata pack, While at it, change the type of the supported control modes from char to uint8_t, as it's the type used for all other 'byte' controls. Signed-off-by: Jacopo Mondi --- src/android/camera_device.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp index d667c4f126f3..fa4570fabdd7 100644 --- a/src/android/camera_device.cpp +++ b/src/android/camera_device.cpp @@ -377,7 +377,7 @@ std::tuple CameraDevice::calculateStaticMetadataSize() * Currently: 50 entries, 647 bytes of static metadata */ uint32_t numEntries = 50; - uint32_t byteSize = 667; + uint32_t byteSize = 671; /* * Calculate space occupation in bytes for dynamically built metadata @@ -438,6 +438,7 @@ const camera_metadata_t *CameraDevice::getStaticMetadata() std::vector aeAvailableModes = { ANDROID_CONTROL_AE_MODE_ON, + ANDROID_CONTROL_AE_MODE_OFF, }; staticMetadata_->addEntry(ANDROID_CONTROL_AE_AVAILABLE_MODES, aeAvailableModes.data(), @@ -464,6 +465,7 @@ const camera_metadata_t *CameraDevice::getStaticMetadata() aeCompensationStep, 1); std::vector availableAfModes = { + ANDROID_CONTROL_AF_MODE_AUTO, ANDROID_CONTROL_AF_MODE_OFF, }; staticMetadata_->addEntry(ANDROID_CONTROL_AF_AVAILABLE_MODES, @@ -492,6 +494,7 @@ const camera_metadata_t *CameraDevice::getStaticMetadata() availableStabilizationModes.size()); std::vector availableAwbModes = { + ANDROID_CONTROL_AWB_MODE_AUTO, ANDROID_CONTROL_AWB_MODE_OFF, }; staticMetadata_->addEntry(ANDROID_CONTROL_AWB_AVAILABLE_MODES, @@ -522,9 +525,13 @@ const camera_metadata_t *CameraDevice::getStaticMetadata() staticMetadata_->addEntry(ANDROID_CONTROL_AWB_LOCK_AVAILABLE, &awbLockAvailable, 1); - char availableControlModes = ANDROID_CONTROL_MODE_AUTO; + std::vector availableControlModes = { + ANDROID_CONTROL_MODE_AUTO, + ANDROID_CONTROL_MODE_OFF, + }; staticMetadata_->addEntry(ANDROID_CONTROL_AVAILABLE_MODES, - &availableControlModes, 1); + availableControlModes.data(), + availableControlModes.size()); /* JPEG static metadata. */ std::vector availableThumbnailSizes = {