Camera: Fix up torch strength keys.
Fix up new camera characteristics keys for torch strength control API
and update default value 1 for ANDROID_FLASH_INFO_STRENGTH_DEFAULT_LEVEL
and ANDROID_FLASH_INFO_STRENGTH_MAXIMUM_LEVEL.
These keys will only be updated if the camera device has flash unit.
Bug: 189470637
Test: Tested on Pixel 4XL and verified that the keys were added with
default value 1.
Change-Id: I060717b793b4598fea9688453f44a85e8b2b1c2b
diff --git a/services/camera/libcameraservice/common/CameraProviderManager.cpp b/services/camera/libcameraservice/common/CameraProviderManager.cpp
index d545484..6edf1ac 100644
--- a/services/camera/libcameraservice/common/CameraProviderManager.cpp
+++ b/services/camera/libcameraservice/common/CameraProviderManager.cpp
@@ -1243,6 +1243,34 @@
return OK;
}
+status_t CameraProviderManager::ProviderInfo::DeviceInfo3::fixupTorchStrengthTags() {
+ status_t res = OK;
+ auto& c = mCameraCharacteristics;
+ auto flashInfoStrengthDefaultLevelEntry = c.find(ANDROID_FLASH_INFO_STRENGTH_DEFAULT_LEVEL);
+ if (flashInfoStrengthDefaultLevelEntry.count == 0) {
+ int32_t flashInfoStrengthDefaultLevel = 1;
+ res = c.update(ANDROID_FLASH_INFO_STRENGTH_DEFAULT_LEVEL,
+ &flashInfoStrengthDefaultLevel, 1);
+ if (res != OK) {
+ ALOGE("%s: Failed to update ANDROID_FLASH_INFO_STRENGTH_DEFAULT_LEVEL: %s (%d)",
+ __FUNCTION__,strerror(-res), res);
+ return res;
+ }
+ }
+ auto flashInfoStrengthMaximumLevelEntry = c.find(ANDROID_FLASH_INFO_STRENGTH_MAXIMUM_LEVEL);
+ if (flashInfoStrengthMaximumLevelEntry.count == 0) {
+ int32_t flashInfoStrengthMaximumLevel = 1;
+ res = c.update(ANDROID_FLASH_INFO_STRENGTH_MAXIMUM_LEVEL,
+ &flashInfoStrengthMaximumLevel, 1);
+ if (res != OK) {
+ ALOGE("%s: Failed to update ANDROID_FLASH_INFO_STRENGTH_MAXIMUM_LEVEL: %s (%d)",
+ __FUNCTION__,strerror(-res), res);
+ return res;
+ }
+ }
+ return res;
+}
+
status_t CameraProviderManager::ProviderInfo::DeviceInfo3::fixupMonochromeTags() {
status_t res = OK;
auto& c = mCameraCharacteristics;