Qcamera2: add 3A debug tags to support DevCamDebug

Adding more 3A debug tags to support DevCamDebug
3 AF tags
8 AEC tags
5 AWB tags

Bug: 28669791
Change-Id: I115a046338d5c9e1b0450de736e63e0d22b5dcc7
diff --git a/QCamera2/HAL3/QCamera3HWI.cpp b/QCamera2/HAL3/QCamera3HWI.cpp
index b813ade..9f75ebe 100644
--- a/QCamera2/HAL3/QCamera3HWI.cpp
+++ b/QCamera2/HAL3/QCamera3HWI.cpp
@@ -4735,14 +4735,92 @@
     camMetadata.update(ANDROID_REQUEST_PIPELINE_DEPTH, &pipeline_depth, 1);
     camMetadata.update(ANDROID_CONTROL_CAPTURE_INTENT, &capture_intent, 1);
     camMetadata.update(NEXUS_EXPERIMENTAL_2016_HYBRID_AE_ENABLE, &hybrid_ae_enable, 1);
-    /* DevCamDebug metadata translateFromHalMetadata */
+    // DevCamDebug metadata translateFromHalMetadata
     camMetadata.update(DEVCAMDEBUG_META_ENABLE, &DevCamDebug_meta_enable, 1);
+    // DevCamDebug metadata translateFromHalMetadata AF
     IF_META_AVAILABLE(int32_t, DevCamDebug_af_lens_position,
             CAM_INTF_META_DEV_CAM_AF_LENS_POSITION, metadata) {
         int32_t fwk_DevCamDebug_af_lens_position = *DevCamDebug_af_lens_position;
         camMetadata.update(DEVCAMDEBUG_AF_LENS_POSITION, &fwk_DevCamDebug_af_lens_position, 1);
     }
-    /* DevCamDebug metadata end */
+    IF_META_AVAILABLE(int32_t, DevCamDebug_af_tof_confidence,
+            CAM_INTF_META_DEV_CAM_AF_TOF_CONFIDENCE, metadata) {
+        int32_t fwk_DevCamDebug_af_tof_confidence = *DevCamDebug_af_tof_confidence;
+        camMetadata.update(DEVCAMDEBUG_AF_TOF_CONFIDENCE, &fwk_DevCamDebug_af_tof_confidence, 1);
+    }
+    IF_META_AVAILABLE(int32_t, DevCamDebug_af_tof_distance,
+            CAM_INTF_META_DEV_CAM_AF_TOF_DISTANCE, metadata) {
+        int32_t fwk_DevCamDebug_af_tof_distance = *DevCamDebug_af_tof_distance;
+        camMetadata.update(DEVCAMDEBUG_AF_TOF_DISTANCE, &fwk_DevCamDebug_af_tof_distance, 1);
+    }
+    // DevCamDebug metadata translateFromHalMetadata AEC
+    IF_META_AVAILABLE(int32_t, DevCamDebug_aec_target_luma,
+            CAM_INTF_META_DEV_CAM_AEC_TARGET_LUMA, metadata) {
+        int32_t fwk_DevCamDebug_aec_target_luma = *DevCamDebug_aec_target_luma;
+        camMetadata.update(DEVCAMDEBUG_AEC_TARGET_LUMA, &fwk_DevCamDebug_aec_target_luma, 1);
+    }
+    IF_META_AVAILABLE(int32_t, DevCamDebug_aec_comp_luma,
+            CAM_INTF_META_DEV_CAM_AEC_COMP_LUMA, metadata) {
+        int32_t fwk_DevCamDebug_aec_comp_luma = *DevCamDebug_aec_comp_luma;
+        camMetadata.update(DEVCAMDEBUG_AEC_COMP_LUMA, &fwk_DevCamDebug_aec_comp_luma, 1);
+    }
+    IF_META_AVAILABLE(int32_t, DevCamDebug_aec_avg_luma,
+            CAM_INTF_META_DEV_CAM_AEC_AVG_LUMA, metadata) {
+        int32_t fwk_DevCamDebug_aec_avg_luma = *DevCamDebug_aec_avg_luma;
+        camMetadata.update(DEVCAMDEBUG_AEC_AVG_LUMA, &fwk_DevCamDebug_aec_avg_luma, 1);
+    }
+    IF_META_AVAILABLE(int32_t, DevCamDebug_aec_cur_luma,
+            CAM_INTF_META_DEV_CAM_AEC_CUR_LUMA, metadata) {
+        int32_t fwk_DevCamDebug_aec_cur_luma = *DevCamDebug_aec_cur_luma;
+        camMetadata.update(DEVCAMDEBUG_AEC_CUR_LUMA, &fwk_DevCamDebug_aec_cur_luma, 1);
+    }
+    IF_META_AVAILABLE(int32_t, DevCamDebug_aec_linecount,
+            CAM_INTF_META_DEV_CAM_AEC_LINECOUNT, metadata) {
+        int32_t fwk_DevCamDebug_aec_linecount = *DevCamDebug_aec_linecount;
+        camMetadata.update(DEVCAMDEBUG_AEC_LINECOUNT, &fwk_DevCamDebug_aec_linecount, 1);
+    }
+    IF_META_AVAILABLE(float, DevCamDebug_aec_real_gain,
+            CAM_INTF_META_DEV_CAM_AEC_REAL_GAIN, metadata) {
+        float fwk_DevCamDebug_aec_real_gain = *DevCamDebug_aec_real_gain;
+        camMetadata.update(DEVCAMDEBUG_AEC_REAL_GAIN, &fwk_DevCamDebug_aec_real_gain, 1);
+    }
+    IF_META_AVAILABLE(int32_t, DevCamDebug_aec_exp_index,
+            CAM_INTF_META_DEV_CAM_AEC_EXP_INDEX, metadata) {
+        int32_t fwk_DevCamDebug_aec_exp_index = *DevCamDebug_aec_exp_index;
+        camMetadata.update(DEVCAMDEBUG_AEC_EXP_INDEX, &fwk_DevCamDebug_aec_exp_index, 1);
+    }
+    IF_META_AVAILABLE(float, DevCamDebug_aec_lux_idx,
+            CAM_INTF_META_DEV_CAM_AEC_LUX_IDX, metadata) {
+        float fwk_DevCamDebug_aec_lux_idx = *DevCamDebug_aec_lux_idx;
+        camMetadata.update(DEVCAMDEBUG_AEC_LUX_IDX, &fwk_DevCamDebug_aec_lux_idx, 1);
+    }
+    // DevCamDebug metadata translateFromHalMetadata AWB
+    IF_META_AVAILABLE(float, DevCamDebug_awb_r_gain,
+            CAM_INTF_META_DEV_CAM_AWB_R_GAIN, metadata) {
+        float fwk_DevCamDebug_awb_r_gain = *DevCamDebug_awb_r_gain;
+        camMetadata.update(DEVCAMDEBUG_AWB_R_GAIN, &fwk_DevCamDebug_awb_r_gain, 1);
+    }
+    IF_META_AVAILABLE(float, DevCamDebug_awb_g_gain,
+            CAM_INTF_META_DEV_CAM_AWB_G_GAIN, metadata) {
+        float fwk_DevCamDebug_awb_g_gain = *DevCamDebug_awb_g_gain;
+        camMetadata.update(DEVCAMDEBUG_AWB_G_GAIN, &fwk_DevCamDebug_awb_g_gain, 1);
+    }
+    IF_META_AVAILABLE(float, DevCamDebug_awb_b_gain,
+            CAM_INTF_META_DEV_CAM_AWB_B_GAIN, metadata) {
+        float fwk_DevCamDebug_awb_b_gain = *DevCamDebug_awb_b_gain;
+        camMetadata.update(DEVCAMDEBUG_AWB_B_GAIN, &fwk_DevCamDebug_awb_b_gain, 1);
+    }
+    IF_META_AVAILABLE(int32_t, DevCamDebug_awb_cct,
+            CAM_INTF_META_DEV_CAM_AWB_CCT, metadata) {
+        int32_t fwk_DevCamDebug_awb_cct = *DevCamDebug_awb_cct;
+        camMetadata.update(DEVCAMDEBUG_AWB_CCT, &fwk_DevCamDebug_awb_cct, 1);
+    }
+    IF_META_AVAILABLE(int32_t, DevCamDebug_awb_decision,
+            CAM_INTF_META_DEV_CAM_AWB_DECISION, metadata) {
+        int32_t fwk_DevCamDebug_awb_decision = *DevCamDebug_awb_decision;
+        camMetadata.update(DEVCAMDEBUG_AWB_DECISION, &fwk_DevCamDebug_awb_decision, 1);
+    }
+    // DevCamDebug metadata end
 
 
     IF_META_AVAILABLE(uint32_t, frame_number, CAM_INTF_META_FRAME_NUMBER, metadata) {
@@ -7316,9 +7394,27 @@
        ANDROID_STATISTICS_SCENE_FLICKER, ANDROID_STATISTICS_FACE_RECTANGLES,
        ANDROID_STATISTICS_FACE_SCORES,
        NEXUS_EXPERIMENTAL_2016_HYBRID_AE_ENABLE,
-       /* DevCamDebug metadata result_keys_basic */
+       // DevCamDebug metadata result_keys_basic
        DEVCAMDEBUG_META_ENABLE,
+       // DevCamDebug metadata result_keys AF
        DEVCAMDEBUG_AF_LENS_POSITION,
+       DEVCAMDEBUG_AF_TOF_CONFIDENCE,
+       DEVCAMDEBUG_AF_TOF_DISTANCE,
+       // DevCamDebug metadata result_keys AEC
+       DEVCAMDEBUG_AEC_TARGET_LUMA,
+       DEVCAMDEBUG_AEC_COMP_LUMA,
+       DEVCAMDEBUG_AEC_AVG_LUMA,
+       DEVCAMDEBUG_AEC_CUR_LUMA,
+       DEVCAMDEBUG_AEC_LINECOUNT,
+       DEVCAMDEBUG_AEC_REAL_GAIN,
+       DEVCAMDEBUG_AEC_EXP_INDEX,
+       DEVCAMDEBUG_AEC_LUX_IDX,
+       // DevCamDebug metadata result_keys AWB
+       DEVCAMDEBUG_AWB_R_GAIN,
+       DEVCAMDEBUG_AWB_G_GAIN,
+       DEVCAMDEBUG_AWB_B_GAIN,
+       DEVCAMDEBUG_AWB_CCT,
+       DEVCAMDEBUG_AWB_DECISION,
        /* DevCamDebug metadata end */
        };
     size_t result_keys_cnt =
diff --git a/QCamera2/HAL3/QCamera3VendorTags.cpp b/QCamera2/HAL3/QCamera3VendorTags.cpp
index f0823ac..79bd3c2 100644
--- a/QCamera2/HAL3/QCamera3VendorTags.cpp
+++ b/QCamera2/HAL3/QCamera3VendorTags.cpp
@@ -121,9 +121,28 @@
 
 vendor_tag_info_t nexus_experimental_2016[NEXUS_EXPERIMENTAL_2016_END -
         NEXUS_EXPERIMENTAL_2016_START] = {
-   {"3a.hybrid_ae_enable", TYPE_BYTE },
-   { "devcamdebug_meta_enable", TYPE_BYTE },
-   { "devcamdebug_af_lens_position", TYPE_INT32 }
+   {"3a.hybrid_ae_enable",           TYPE_BYTE  },
+   // DevCamDebug vendor tag
+   { "devcamdebug_meta_enable",      TYPE_BYTE  },
+   // DevCamDebug vendor tag AF
+   { "devcamdebug_af_lens_position", TYPE_INT32 },
+   { "devcamdebug_af_tof_confidence",TYPE_INT32 },
+   { "devcamdebug_af_tof_distance",  TYPE_INT32 },
+   // DevCamDebug vendor tag AEC
+   { "devcamdebug_aec_target_luma",  TYPE_INT32 },
+   { "devcamdebug_aec_comp_luma",    TYPE_INT32 },
+   { "devcamdebug_aec_avg_luma",     TYPE_INT32 },
+   { "devcamdebug_aec_cur_luma",     TYPE_INT32 },
+   { "devcamdebug_aec_linecount",    TYPE_INT32 },
+   { "devcamdebug_aec_real_gain",    TYPE_FLOAT },
+   { "devcamdebug_aec_exp_index",    TYPE_INT32 },
+   { "devcamdebug_aec_lux_idx",      TYPE_FLOAT },
+   // DevCamDebug vendor tag AWB
+   { "devcamdebug_awb_r_gain",       TYPE_FLOAT },
+   { "devcamdebug_awb_g_gain",       TYPE_FLOAT },
+   { "devcamdebug_awb_b_gain",       TYPE_FLOAT },
+   { "devcamdebug_awb_cct",          TYPE_INT32 },
+   { "devcamdebug_awb_decision",     TYPE_INT32 },
 };
 
 vendor_tag_info_t
@@ -187,8 +206,28 @@
 
     //NEXUS_EXPERIMENTAL_2016
     (uint32_t)NEXUS_EXPERIMENTAL_2016_HYBRID_AE_ENABLE,
+    // DEVCAMDEBUG
     (uint32_t)DEVCAMDEBUG_META_ENABLE,
+    // DEVCAMDEBUG AF
     (uint32_t)DEVCAMDEBUG_AF_LENS_POSITION,
+    (uint32_t)DEVCAMDEBUG_AF_TOF_CONFIDENCE,
+    (uint32_t)DEVCAMDEBUG_AF_TOF_DISTANCE,
+    // DEVCAMDEBUG AEC
+    (uint32_t)DEVCAMDEBUG_AEC_TARGET_LUMA,
+    (uint32_t)DEVCAMDEBUG_AEC_COMP_LUMA,
+    (uint32_t)DEVCAMDEBUG_AEC_AVG_LUMA,
+    (uint32_t)DEVCAMDEBUG_AEC_CUR_LUMA,
+    (uint32_t)DEVCAMDEBUG_AEC_LINECOUNT,
+    (uint32_t)DEVCAMDEBUG_AEC_REAL_GAIN,
+    (uint32_t)DEVCAMDEBUG_AEC_EXP_INDEX,
+    (uint32_t)DEVCAMDEBUG_AEC_LUX_IDX,
+    // DEVCAMDEBUG AWB
+    (uint32_t)DEVCAMDEBUG_AWB_R_GAIN,
+    (uint32_t)DEVCAMDEBUG_AWB_G_GAIN,
+    (uint32_t)DEVCAMDEBUG_AWB_B_GAIN,
+    (uint32_t)DEVCAMDEBUG_AWB_CCT,
+    (uint32_t)DEVCAMDEBUG_AWB_DECISION,
+    // DEVCAMDEBUG END
 
     // QCAMERA3_DUALCAM_LINK_META_DATA
     (uint32_t)QCAMERA3_DUALCAM_LINK_ENABLE,
diff --git a/QCamera2/HAL3/QCamera3VendorTags.h b/QCamera2/HAL3/QCamera3VendorTags.h
index 56723b2..6a78921 100644
--- a/QCamera2/HAL3/QCamera3VendorTags.h
+++ b/QCamera2/HAL3/QCamera3VendorTags.h
@@ -143,8 +143,28 @@
     QCAMERA3_SENSOR_META_DATA_END,
 
     NEXUS_EXPERIMENTAL_2016_HYBRID_AE_ENABLE = NEXUS_EXPERIMENTAL_2016_START,
+    // DEVCAMDEBUG
     DEVCAMDEBUG_META_ENABLE,
+    // DEVCAMDEBUG AF
     DEVCAMDEBUG_AF_LENS_POSITION,
+    DEVCAMDEBUG_AF_TOF_CONFIDENCE,
+    DEVCAMDEBUG_AF_TOF_DISTANCE,
+    // DEVCAMDEBUG AEC
+    DEVCAMDEBUG_AEC_TARGET_LUMA,
+    DEVCAMDEBUG_AEC_COMP_LUMA,
+    DEVCAMDEBUG_AEC_AVG_LUMA,
+    DEVCAMDEBUG_AEC_CUR_LUMA,
+    DEVCAMDEBUG_AEC_LINECOUNT,
+    DEVCAMDEBUG_AEC_REAL_GAIN,
+    DEVCAMDEBUG_AEC_EXP_INDEX,
+    DEVCAMDEBUG_AEC_LUX_IDX,
+    // DEVCAMDEBUG AWB
+    DEVCAMDEBUG_AWB_R_GAIN,
+    DEVCAMDEBUG_AWB_G_GAIN,
+    DEVCAMDEBUG_AWB_B_GAIN,
+    DEVCAMDEBUG_AWB_CCT,
+    DEVCAMDEBUG_AWB_DECISION,
+    // DEVCAMDEBUG END
     NEXUS_EXPERIMENTAL_2016_END,
 
     QCAMERA3_DUALCAM_LINK_ENABLE = QCAMERA3_DUALCAM_LINK_META_DATA_START,
diff --git a/QCamera2/stack/common/cam_intf.h b/QCamera2/stack/common/cam_intf.h
index e550e01..dce1ee0 100644
--- a/QCamera2/stack/common/cam_intf.h
+++ b/QCamera2/stack/common/cam_intf.h
@@ -960,7 +960,25 @@
     INCLUDE(CAM_INTF_META_HYBRID_AE,                    uint8_t,                     1);
     /* DevCamDebug metadata CAM_INTF.H */
     INCLUDE(CAM_INTF_META_DEV_CAM_ENABLE,               uint8_t,                     1);
+    /* DevCamDebug metadata CAM_INTF.H AF */
     INCLUDE(CAM_INTF_META_DEV_CAM_AF_LENS_POSITION,     int32_t,                     1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AF_TOF_CONFIDENCE,    int32_t,                     1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AF_TOF_DISTANCE,      int32_t,                     1);
+    /* DevCamDebug metadata CAM_INTF.H AEC */
+    INCLUDE(CAM_INTF_META_DEV_CAM_AEC_TARGET_LUMA,      int32_t,                     1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AEC_COMP_LUMA,        int32_t,                     1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AEC_AVG_LUMA,         int32_t,                     1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AEC_CUR_LUMA,         int32_t,                     1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AEC_LINECOUNT,        int32_t,                     1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AEC_REAL_GAIN,        float,                       1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AEC_EXP_INDEX,        int32_t,                     1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AEC_LUX_IDX,          float,                       1);
+    /* DevCamDebug metadata CAM_INTF.H AWB */
+    INCLUDE(CAM_INTF_META_DEV_CAM_AWB_R_GAIN,           float,                       1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AWB_G_GAIN,           float,                       1);
+    INCLUDE(CAM_INTF_META_DEV_CAM_AWB_B_GAIN,           float,                       1);
+    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 */
 } metadata_data_t;
 
diff --git a/QCamera2/stack/common/cam_types.h b/QCamera2/stack/common/cam_types.h
index 1e62be7..5cc1d99 100644
--- a/QCamera2/stack/common/cam_types.h
+++ b/QCamera2/stack/common/cam_types.h
@@ -2160,7 +2160,25 @@
     CAM_INTF_META_HYBRID_AE,
     /* DevCamDebug metadata CAM_TYPES.h */
     CAM_INTF_META_DEV_CAM_ENABLE,
+    /* DevCamDebug metadata CAM_TYPES.h AF */
     CAM_INTF_META_DEV_CAM_AF_LENS_POSITION,
+    CAM_INTF_META_DEV_CAM_AF_TOF_CONFIDENCE,
+    CAM_INTF_META_DEV_CAM_AF_TOF_DISTANCE,
+    /* DevCamDebug metadata CAM_TYPES.h AEC */
+    CAM_INTF_META_DEV_CAM_AEC_TARGET_LUMA,
+    CAM_INTF_META_DEV_CAM_AEC_COMP_LUMA,
+    CAM_INTF_META_DEV_CAM_AEC_AVG_LUMA,
+    CAM_INTF_META_DEV_CAM_AEC_CUR_LUMA,
+    CAM_INTF_META_DEV_CAM_AEC_LINECOUNT,
+    CAM_INTF_META_DEV_CAM_AEC_REAL_GAIN,
+    CAM_INTF_META_DEV_CAM_AEC_EXP_INDEX,
+    CAM_INTF_META_DEV_CAM_AEC_LUX_IDX,
+    /* DevCamDebug metadata CAM_TYPES.h AWB */
+    CAM_INTF_META_DEV_CAM_AWB_R_GAIN,
+    CAM_INTF_META_DEV_CAM_AWB_G_GAIN,
+    CAM_INTF_META_DEV_CAM_AWB_B_GAIN,
+    CAM_INTF_META_DEV_CAM_AWB_CCT,
+    CAM_INTF_META_DEV_CAM_AWB_DECISION,
     /* DevCamDebug metadata end */
     CAM_INTF_PARM_MAX
 } cam_intf_parm_type_t;