camera: update AU_LINUX_ANDROID_LA.BF64.1.2.9.05.01.00.089.170
ef0c115 Camera3: Add support for dynamic black level reporting
5f25369 QCamera2/HAL3: Dynamic Black level feature
ed517be QCamera2/HAL3: Disable 120 fps mode in HFR
Change-Id: I7c827a8140cbdc19df9246a6f0afd8cfafb0764c
diff --git a/QCamera2/HAL3/QCamera3HWI.cpp b/QCamera2/HAL3/QCamera3HWI.cpp
old mode 100644
new mode 100755
index f47655e..cd6ed04
--- a/QCamera2/HAL3/QCamera3HWI.cpp
+++ b/QCamera2/HAL3/QCamera3HWI.cpp
@@ -3762,6 +3762,21 @@
camMetadata.update(ANDROID_REPROCESS_EFFECTIVE_EXPOSURE_FACTOR, effectiveExposureFactor, 1);
}
+ IF_META_AVAILABLE(cam_black_level_metadata_t, blackLevelInd, CAM_INTF_META_BLACK_LEVEL_IND, metadata) {
+ int32_t fwk_blackLevelInd[4];
+ fwk_blackLevelInd[0] = blackLevelInd->cam_black_level[0];
+ fwk_blackLevelInd[1] = blackLevelInd->cam_black_level[1];
+ fwk_blackLevelInd[2] = blackLevelInd->cam_black_level[2];
+ fwk_blackLevelInd[3] = blackLevelInd->cam_black_level[3];
+
+ ALOGE("%s: dynamicblackLevel = %d %d %d %d", __func__,
+ blackLevelInd->cam_black_level[0],
+ blackLevelInd->cam_black_level[1],
+ blackLevelInd->cam_black_level[2],
+ blackLevelInd->cam_black_level[3]);
+ camMetadata.update(QCAMERA3_SENSOR_DYNAMIC_BLACK_LEVEL_PATTERN, fwk_blackLevelInd, 4);
+ }
+
IF_META_AVAILABLE(cam_crop_region_t, hScalerCropRegion,
CAM_INTF_META_SCALER_CROP_REGION, metadata) {
int32_t scalerCropRegion[4];
diff --git a/QCamera2/HAL3/QCamera3VendorTags.cpp b/QCamera2/HAL3/QCamera3VendorTags.cpp
index e50b968..1ae0ddb 100644
--- a/QCamera2/HAL3/QCamera3VendorTags.cpp
+++ b/QCamera2/HAL3/QCamera3VendorTags.cpp
@@ -49,7 +49,8 @@
QCAMERA3_OPAQUE_RAW_END,
QCAMERA3_CROP_END,
QCAMERA3_TUNING_META_DATA_END,
- QCAMERA3_AV_TIMER_END
+ QCAMERA3_AV_TIMER_END,
+ QCAMERA3_SENSOR_META_DATA_END
} ;
typedef struct vendor_tag_info {
@@ -64,7 +65,8 @@
"org.codeaurora.qcamera3.opaque_raw",
"org.codeaurora.qcamera3.crop",
"org.codeaurora.qcamera3.tuning_meta_data",
- "org.codeaurora.qcamera3.av_timer"
+ "org.codeaurora.qcamera3.av_timer",
+ "org.codeaurora.qcamera3.sensor_meta_data"
};
vendor_tag_info_t qcamera3_privatedata[QCAMERA3_PRIVATEDATA_END - QCAMERA3_PRIVATEDATA_START] = {
@@ -98,6 +100,11 @@
{"use_av_timer", TYPE_BYTE }
};
+vendor_tag_info qcamera3_sensor_meta_data[QCAMERA3_SENSOR_META_DATA_END -
+ QCAMERA3_SENSOR_META_DATA_START] = {
+ {"dynamic_black_level_pattern", TYPE_INT32 }
+};
+
vendor_tag_info_t *qcamera3_tag_info[QCAMERA3_SECTIONS_END -
VENDOR_SECTION] = {
qcamera3_privatedata,
@@ -105,7 +112,8 @@
qcamera3_opaque_raw,
qcamera3_crop,
qcamera3_tuning_meta_data,
- qcamera3_av_timer
+ qcamera3_av_timer,
+ qcamera3_sensor_meta_data,
};
uint32_t qcamera3_all_tags[] = {
@@ -126,7 +134,10 @@
(uint32_t)QCAMERA3_TUNING_META_DATA_BLOB,
//QCAMERA3_AVTIMER
- (uint32_t)QCAMERA3_USE_AV_TIMER
+ (uint32_t)QCAMERA3_USE_AV_TIMER,
+
+ //QCAMERA3_SENSOR_META_DATA
+ (uint32_t)QCAMERA3_SENSOR_DYNAMIC_BLACK_LEVEL_PATTERN
};
const vendor_tag_ops_t* QCamera3VendorTags::Ops = NULL;
diff --git a/QCamera2/HAL3/QCamera3VendorTags.h b/QCamera2/HAL3/QCamera3VendorTags.h
index 5abcc99..57ffc53 100644
--- a/QCamera2/HAL3/QCamera3VendorTags.h
+++ b/QCamera2/HAL3/QCamera3VendorTags.h
@@ -39,6 +39,7 @@
QCAMERA3_CROP,
QCAMERA3_TUNING_META_DATA,
QCAMERA3_AV_TIMER,
+ QCAMERA3_SENSOR_META_DATA,
QCAMERA3_SECTIONS_END
};
@@ -48,7 +49,8 @@
QCAMERA3_OPAQUE_RAW_START = QCAMERA3_OPAQUE_RAW << 16,
QCAMERA3_CROP_START = QCAMERA3_CROP << 16,
QCAMERA3_TUNING_META_DATA_START = QCAMERA3_TUNING_META_DATA << 16,
- QCAMERA3_AV_TIMER_START = QCAMERA3_AV_TIMER << 16
+ QCAMERA3_AV_TIMER_START = QCAMERA3_AV_TIMER << 16,
+ QCAMERA3_SENSOR_META_DATA_START = QCAMERA3_SENSOR_META_DATA << 16
};
enum qcamera3_ext_tags {
@@ -119,7 +121,10 @@
QCAMERA3_TUNING_META_DATA_END,
QCAMERA3_USE_AV_TIMER = QCAMERA3_AV_TIMER_START,
- QCAMERA3_AV_TIMER_END
+ QCAMERA3_AV_TIMER_END,
+
+ QCAMERA3_SENSOR_DYNAMIC_BLACK_LEVEL_PATTERN = QCAMERA3_SENSOR_META_DATA_START,
+ QCAMERA3_SENSOR_META_DATA_END
};
// QCAMERA3_OPAQUE_RAW_FORMAT
diff --git a/QCamera2/stack/common/cam_intf.h b/QCamera2/stack/common/cam_intf.h
index 1091e2e..2ec451d 100644
--- a/QCamera2/stack/common/cam_intf.h
+++ b/QCamera2/stack/common/cam_intf.h
@@ -764,6 +764,7 @@
INCLUDE(CAM_INTF_PARM_FLIP, int32_t, 1);
INCLUDE(CAM_INTF_META_USE_AV_TIMER, uint8_t, 1);
INCLUDE(CAM_INTF_META_EFFECTIVE_EXPOSURE_FACTOR, float, 1);
+ INCLUDE(CAM_INTF_META_BLACK_LEVEL_IND, cam_black_level_metadata_t, 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 9bc5520..8bb0e9a 100644
--- a/QCamera2/stack/common/cam_types.h
+++ b/QCamera2/stack/common/cam_types.h
@@ -1722,6 +1722,9 @@
CAM_INTF_META_USE_AV_TIMER,
CAM_INTF_META_EFFECTIVE_EXPOSURE_FACTOR,
+
+ /*Black level parameters*/
+ CAM_INTF_META_BLACK_LEVEL_IND,
CAM_INTF_PARM_MAX
} cam_intf_parm_type_t;
@@ -1737,6 +1740,10 @@
} u;
} cam_ez_force_params_t;
+typedef struct {
+ uint32_t cam_black_level[4];
+} cam_black_level_metadata_t;
+
typedef enum {
CAM_EZTUNE_CMD_STATUS,
CAM_EZTUNE_CMD_AEC_ENABLE,