From patchwork Wed Dec 2 13:53:54 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 10551 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 02AA4BE178 for ; Wed, 2 Dec 2020 13:54:02 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id AFE51635A3; Wed, 2 Dec 2020 14:54:01 +0100 (CET) Received: from relay7-d.mail.gandi.net (relay7-d.mail.gandi.net [217.70.183.200]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id CDF44635AB for ; Wed, 2 Dec 2020 14:53:58 +0100 (CET) X-Originating-IP: 93.34.118.233 Received: from uno.lan (93-34-118-233.ip49.fastwebnet.it [93.34.118.233]) (Authenticated sender: jacopo@jmondi.org) by relay7-d.mail.gandi.net (Postfix) with ESMTPSA id 8610C2000E for ; Wed, 2 Dec 2020 13:53:58 +0000 (UTC) From: Jacopo Mondi To: libcamera-devel@lists.libcamera.org Date: Wed, 2 Dec 2020 14:53:54 +0100 Message-Id: <20201202135354.264212-5-jacopo@jmondi.org> X-Mailer: git-send-email 2.29.1 In-Reply-To: <20201202135354.264212-1-jacopo@jmondi.org> References: <20201202135354.264212-1-jacopo@jmondi.org> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v2 4/4] android: camera_device: Initialize pixel array properties 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" Initialize pixel array properties in the Android camera HAL inspecting the camera properties. If the camera does not provide any suitable property, not static metadata is registered to the Android framework. Reviewed-by: Laurent Pinchart Signed-off-by: Jacopo Mondi --- src/android/camera_device.cpp | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp index 675af5705055..017a15cac284 100644 --- a/src/android/camera_device.cpp +++ b/src/android/camera_device.cpp @@ -593,6 +593,7 @@ const camera_metadata_t *CameraDevice::getStaticMetadata() } const ControlInfoMap &controlsInfo = camera_->controls(); + const ControlList &properties = camera_->properties(); /* Color correction static metadata. */ { @@ -725,17 +726,29 @@ const camera_metadata_t *CameraDevice::getStaticMetadata() staticMetadata_->addEntry(ANDROID_JPEG_MAX_SIZE, &maxJpegBufferSize_, 1); /* Sensor static metadata. */ - int32_t pixelArraySize[] = { - 2592, 1944, - }; - staticMetadata_->addEntry(ANDROID_SENSOR_INFO_PIXEL_ARRAY_SIZE, - &pixelArraySize, 2); + if (properties.contains(properties::PixelArraySize)) { + const Size &size = + properties.get(properties::PixelArraySize); + std::vector data{ + static_cast(size.width), + static_cast(size.height), + }; + staticMetadata_->addEntry(ANDROID_SENSOR_INFO_PIXEL_ARRAY_SIZE, + data.data(), data.size()); + } - int32_t sensorSizes[] = { - 0, 0, 2560, 1920, - }; - staticMetadata_->addEntry(ANDROID_SENSOR_INFO_ACTIVE_ARRAY_SIZE, - &sensorSizes, 4); + if (properties.contains(properties::PixelArrayActiveAreas)) { + const Span &rects = + properties.get>(properties::PixelArrayActiveAreas); + std::vector data{ + static_cast(rects[0].x), + static_cast(rects[0].y), + static_cast(rects[0].width), + static_cast(rects[0].height), + }; + staticMetadata_->addEntry(ANDROID_SENSOR_INFO_ACTIVE_ARRAY_SIZE, + data.data(), data.size()); + } int32_t sensitivityRange[] = { 32, 2400,