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;