From patchwork Thu Apr 1 10:13:39 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Elder X-Patchwork-Id: 11813 X-Patchwork-Delegate: paul.elder@ideasonboard.com 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 0B0D7C0DA4 for ; Thu, 1 Apr 2021 10:14:09 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id BAC1D68792; Thu, 1 Apr 2021 12:14:08 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="cshTrOU8"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 5B9A66878F for ; Thu, 1 Apr 2021 12:14:07 +0200 (CEST) Received: from pyrite.rasen.tech (unknown [IPv6:2400:4051:61:600:2c71:1b79:d06d:5032]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 8C26CF7; Thu, 1 Apr 2021 12:14:05 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1617272047; bh=x1KBS6uP/ftCL+BBxMAc2Y54i5C3CPyJHe130MLy8Yk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cshTrOU8quj62h85cFB555pS+IbRDYFLf9JyeGPo7jw7PtV9owXFGaFPgnzrc9xvM NXvJjP0hj5vpHT1W9X+BBGNyLbE//T7KTkSC08VMq6gvxDj6nT+nAVrLukE9xf7o3t noH70MzRZbphEurRoSy7oNQuQ9kPf3gzOyHF/6WY= From: Paul Elder To: libcamera-devel@lists.libcamera.org Date: Thu, 1 Apr 2021 19:13:39 +0900 Message-Id: <20210401101340.160590-8-paul.elder@ideasonboard.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210401101340.160590-1-paul.elder@ideasonboard.com> References: <20210401101340.160590-1-paul.elder@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [RFC PATCH 7/8] android: camera_device: Add AWB mode off to available AWB 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" Hardware level FULL requires AWB mode off to be an available AWB mode. Add it. Hardware level FULL additionally requires the AWB mode of the result metadata to be what was provided in the request metadata. Do this. This allows the following CTS test to pass: - android.hardware.camera2.cts.CaptureRequestTest#testAwbModeAndLock Signed-off-by: Paul Elder --- src/android/camera_device.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp index 584c3c4a..a187beff 100644 --- a/src/android/camera_device.cpp +++ b/src/android/camera_device.cpp @@ -859,9 +859,11 @@ const camera_metadata_t *CameraDevice::getStaticMetadata() /* * \todo Inspect the Camera capabilities to report the available - * AWB modes. Default to AUTO as CTS tests require it. + * AWB modes. Default to AUTO as CTS tests require it. FULL requires + * OFF. */ std::vector availableAwbModes = { + ANDROID_CONTROL_AWB_MODE_OFF, ANDROID_CONTROL_AWB_MODE_AUTO, }; staticMetadata_->addEntry(ANDROID_CONTROL_AWB_AVAILABLE_MODES, @@ -2141,7 +2143,9 @@ CameraDevice::getResultMetadata(const Camera3RequestDescriptor &descriptor, resultMetadata->addEntry(ANDROID_CONTROL_AF_TRIGGER, &value, 1); value = ANDROID_CONTROL_AWB_MODE_AUTO; - resultMetadata->addEntry(ANDROID_CONTROL_AWB_MODE, &value, 1); + found = settings.getEntry(ANDROID_CONTROL_AWB_MODE, &entry); + resultMetadata->addEntry(ANDROID_CONTROL_AWB_MODE, + found ? entry.data.u8 : &value, 1); value = ANDROID_CONTROL_AWB_LOCK_OFF; resultMetadata->addEntry(ANDROID_CONTROL_AWB_LOCK, &value, 1);