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;