QCamera2: HAL3: Tolerate missing focus distance
In case of missing focus distance in the result metadata, use last known
focus distance instead.
Test: Camera CTS
Bug: 75928646
Change-Id: I00d3788da3d14ee17c6c824d94240e0b8c1df90d
diff --git a/msm8998/QCamera2/HAL3/QCamera3HWI.cpp b/msm8998/QCamera2/HAL3/QCamera3HWI.cpp
index 1d43dda..9d72278 100644
--- a/msm8998/QCamera2/HAL3/QCamera3HWI.cpp
+++ b/msm8998/QCamera2/HAL3/QCamera3HWI.cpp
@@ -533,7 +533,8 @@
mFirstPreviewIntentSeen(false),
m_bSensorHDREnabled(false),
mAfTrigger(),
- mSceneDistance(-1)
+ mSceneDistance(-1),
+ mLastFocusDistance(0.0)
{
getLogLevel();
mCommon.init(gCamCapability[cameraId]);
@@ -7961,6 +7962,11 @@
IF_META_AVAILABLE(float, focusDistance, CAM_INTF_META_LENS_FOCUS_DISTANCE, metadata) {
camMetadata.update(ANDROID_LENS_FOCUS_DISTANCE , focusDistance, 1);
+ mLastFocusDistance = *focusDistance;
+ } else {
+ LOGE("Missing LENS_FOCUS_DISTANCE metadata. Use last known distance of %f",
+ mLastFocusDistance);
+ camMetadata.update(ANDROID_LENS_FOCUS_DISTANCE , &mLastFocusDistance, 1);
}
IF_META_AVAILABLE(float, focusRange, CAM_INTF_META_LENS_FOCUS_RANGE, metadata) {