Camera3: Report the value of AE precapture trigger
Report the AE precapture trigger status control
ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER to metadata.
Bug: 14059883
Change-Id: Ib653ccffea0e47d4f13e7be562e49a283582e48f
diff --git a/camera/QCamera2/HAL3/QCamera3HWI.cpp b/camera/QCamera2/HAL3/QCamera3HWI.cpp
index be38802..0064b09 100644
--- a/camera/QCamera2/HAL3/QCamera3HWI.cpp
+++ b/camera/QCamera2/HAL3/QCamera3HWI.cpp
@@ -2017,6 +2017,7 @@
case CAM_INTF_META_AWB_REGIONS:
case CAM_INTF_META_AWB_STATE:
case CAM_INTF_PARM_AWB_LOCK:
+ case CAM_INTF_META_PRECAPTURE_TRIGGER:
case CAM_INTF_META_MODE: {
ALOGV("%s: 3A metadata: %d, do not process", __func__, curr_entry);
break;
@@ -2547,6 +2548,15 @@
ALOGV("%s: urgent Metadata : ANDROID_CONTROL_SCENE_MODE", __func__);
break;
}
+ case CAM_INTF_META_PRECAPTURE_TRIGGER: {
+ uint8_t *precaptureTrigger =
+ (uint8_t *)POINTER_OF(CAM_INTF_META_PRECAPTURE_TRIGGER, metadata);
+ camMetadata.update(ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER,
+ precaptureTrigger, 1);
+ ALOGV("%s: urgent Metadata : ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER",
+ __func__);
+ break;
+ }
default:
ALOGV("%s: Normal Metadata %d, do not process",
__func__, curr_entry);
diff --git a/camera/QCamera2/stack/common/cam_intf.h b/camera/QCamera2/stack/common/cam_intf.h
index 283ad89..78728d8 100644
--- a/camera/QCamera2/stack/common/cam_intf.h
+++ b/camera/QCamera2/stack/common/cam_intf.h
@@ -457,6 +457,7 @@
/* HAL3 external control */
INCLUDE(CAM_INTF_PARM_BESTSHOT_MODE, uint8_t, 1);
+ INCLUDE(CAM_INTF_META_PRECAPTURE_TRIGGER, uint8_t, 1);
INCLUDE(CAM_INTF_PARM_REDEYE_REDUCTION, int32_t, 1);
INCLUDE(CAM_INTF_PARM_EV, int32_t, 1);
INCLUDE(CAM_INTF_PARM_EV_STEP, cam_rational_type_t, 1);
diff --git a/camera/QCamera2/stack/common/cam_types.h b/camera/QCamera2/stack/common/cam_types.h
index e7d5834..84bccde 100644
--- a/camera/QCamera2/stack/common/cam_types.h
+++ b/camera/QCamera2/stack/common/cam_types.h
@@ -953,8 +953,12 @@
CAM_INTF_META_STREAM_INFO,
/* List of areas to use for metering */
CAM_INTF_META_AEC_ROI,
- /* Whether the HAL must trigger precapture metering.*/
+ /* Whether the HAL must trigger precapture metering. Used to sync trigger
+ * value and precapture ID */
CAM_INTF_META_AEC_PRECAPTURE_TRIGGER,
+ /* Use to report back to the trigger value, triger is requested using
+ * CAM_INTF_META_AEC_PRECAPTURE_TRIGGER */
+ CAM_INTF_META_PRECAPTURE_TRIGGER,
/* The ID sent with the latest CAMERA2_TRIGGER_PRECAPTURE_METERING call */
CAM_INTF_META_AEC_PRECAPTURE_ID,
/* Current state of AE algorithm */