From patchwork Tue Dec 1 15:00:56 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 10527 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 ABB28BE177 for ; Tue, 1 Dec 2020 15:01:02 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 4518A63457; Tue, 1 Dec 2020 16:01:02 +0100 (CET) Received: from relay11.mail.gandi.net (relay11.mail.gandi.net [217.70.178.231]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 1D9486032D for ; Tue, 1 Dec 2020 16:01:01 +0100 (CET) Received: from uno.lan (93-34-118-233.ip49.fastwebnet.it [93.34.118.233]) (Authenticated sender: jacopo@jmondi.org) by relay11.mail.gandi.net (Postfix) with ESMTPSA id 2E89F100002; Tue, 1 Dec 2020 15:00:59 +0000 (UTC) From: Jacopo Mondi To: hanlinchen@chromium.org, libcamera-devel@lists.libcamera.org Date: Tue, 1 Dec 2020 16:00:56 +0100 Message-Id: <20201201150056.52378-1-jacopo@jmondi.org> X-Mailer: git-send-email 2.29.1 MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH] android: camera_mode: Resize 'data' vectors 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" The CameraDevice::getStaticMetadata() function populates the entries for Android's static metadata by walking the ControlInfo supported values reported by the libcamera pipeline. For each entry a vector of the size of the maximum number of possible entries is reserved, populated and then stored in the Android's metadata pack. The number of actual entries to be passed to Android is computed using the vector's size which, for this reason, shall be resized to the actual number of entries it stores. Signed-off-by: Jacopo Mondi --- This patch fixes cros_camera_test: Camera3DeviceTest/Camera3DeviceDefaultSettings.ConstructDefaultSettings/1 --- src/android/camera_device.cpp | 6 ++++++ 1 file changed, 6 insertions(+) -- 2.29.1 diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp index d43db3600b20..d559f0fc4b81 100644 --- a/src/android/camera_device.cpp +++ b/src/android/camera_device.cpp @@ -602,8 +602,10 @@ const camera_metadata_t *CameraDevice::getStaticMetadata() if (infoMap != controlsInfo.end()) { for (const auto &value : infoMap->second.values()) data.push_back(value.get()); + data.resize(infoMap->second.values().size()); } else { data.push_back(ANDROID_COLOR_CORRECTION_ABERRATION_MODE_OFF); + data.resize(1); } staticMetadata_->addEntry(ANDROID_COLOR_CORRECTION_AVAILABLE_ABERRATION_MODES, data.data(), data.size()); @@ -803,8 +805,10 @@ const camera_metadata_t *CameraDevice::getStaticMetadata() if (infoMap != controlsInfo.end()) { for (const auto &value : infoMap->second.values()) data.push_back(value.get()); + data.resize(infoMap->second.values().size()); } else { data.push_back(ANDROID_STATISTICS_LENS_SHADING_MAP_MODE_OFF); + data.resize(1); } staticMetadata_->addEntry(ANDROID_STATISTICS_INFO_AVAILABLE_LENS_SHADING_MAP_MODES, data.data(), data.size()); @@ -871,8 +875,10 @@ const camera_metadata_t *CameraDevice::getStaticMetadata() if (infoMap != controlsInfo.end()) { for (const auto &value : infoMap->second.values()) data.push_back(value.get()); + data.resize(infoMap->second.values().size()); } else { data.push_back(ANDROID_NOISE_REDUCTION_MODE_OFF); + data.resize(1); } staticMetadata_->addEntry(ANDROID_NOISE_REDUCTION_AVAILABLE_NOISE_REDUCTION_MODES, data.data(), data.size());