QCamera2: HAL3: Add post stats digital gain metadata
In ISP, there are multiple modules that can apply digital gain. Add a
separate POST_STATS_SENSITIVITY to report the digital gain applied after
stats collection.
Bug: 29103344
Change-Id: I793098ead0d31e3e8986f7341e39158a033da747
diff --git a/QCamera2/HAL3/QCamera3HWI.cpp b/QCamera2/HAL3/QCamera3HWI.cpp
index db6fb29..a3f1300 100644
--- a/QCamera2/HAL3/QCamera3HWI.cpp
+++ b/QCamera2/HAL3/QCamera3HWI.cpp
@@ -5063,10 +5063,14 @@
(size_t) (2 * gCamCapability[mCameraId]->num_color_channels));
}
+ int32_t fwk_ispSensitivity = 100;
IF_META_AVAILABLE(int32_t, ispSensitivity, CAM_INTF_META_ISP_SENSITIVITY, metadata) {
- int32_t fwk_ispSensitivity = (int32_t) *ispSensitivity;
- camMetadata.update(ANDROID_CONTROL_POST_RAW_SENSITIVITY_BOOST, &fwk_ispSensitivity, 1);
+ fwk_ispSensitivity = (int32_t) *ispSensitivity;
}
+ IF_META_AVAILABLE(float, postStatsSensitivity, CAM_INTF_META_ISP_POST_STATS_SENSITIVITY, metadata) {
+ fwk_ispSensitivity = (int32_t) (*postStatsSensitivity * fwk_ispSensitivity);
+ }
+ camMetadata.update(ANDROID_CONTROL_POST_RAW_SENSITIVITY_BOOST, &fwk_ispSensitivity, 1);
IF_META_AVAILABLE(uint32_t, shadingMode, CAM_INTF_META_SHADING_MODE, metadata) {
uint8_t fwk_shadingMode = (uint8_t) *shadingMode;
diff --git a/QCamera2/stack/common/cam_intf.h b/QCamera2/stack/common/cam_intf.h
index 6430b2b..c26ac7e 100644
--- a/QCamera2/stack/common/cam_intf.h
+++ b/QCamera2/stack/common/cam_intf.h
@@ -981,6 +981,7 @@
INCLUDE(CAM_INTF_META_DEV_CAM_AWB_CCT, int32_t, 1);
INCLUDE(CAM_INTF_META_DEV_CAM_AWB_DECISION, int32_t, 1);
/* DevCamDebug metadata end */
+ INCLUDE(CAM_INTF_META_ISP_POST_STATS_SENSITIVITY, float, 1);
} metadata_data_t;
/* Update clear_metadata_buffer() function when a new is_xxx_valid is added to
diff --git a/QCamera2/stack/common/cam_types.h b/QCamera2/stack/common/cam_types.h
index e391496..390b220 100644
--- a/QCamera2/stack/common/cam_types.h
+++ b/QCamera2/stack/common/cam_types.h
@@ -2154,7 +2154,7 @@
CAM_INTF_META_TOUCH_AE_RESULT,
/* Param for updating initial exposure index value*/
CAM_INTF_PARM_INITIAL_EXPOSURE_INDEX,
- /* Gain applied post raw captrue.
+ /* Gain applied post raw captrue prior to stats collection.
ISP digital gain */
CAM_INTF_META_ISP_SENSITIVITY,
/* Param for enabling instant aec*/
@@ -2185,6 +2185,8 @@
/* DevCamDebug metadata end */
/* AF scene change */
CAM_INTF_META_AF_SCENE_CHANGE,
+ /* Gain applied post stats collection in ISP */
+ CAM_INTF_META_ISP_POST_STATS_SENSITIVITY,
CAM_INTF_PARM_MAX
} cam_intf_parm_type_t;