msmcobalt: Update to 07.00.00.253.032
Change-Id: Id896e0b69c3be33768eaf7fc8d4069f2a0ce4ea2
diff --git a/msmcobalt/QCamera2/HAL3/QCamera3HWI.cpp b/msmcobalt/QCamera2/HAL3/QCamera3HWI.cpp
old mode 100755
new mode 100644
index ff08c92..13c265d
--- a/msmcobalt/QCamera2/HAL3/QCamera3HWI.cpp
+++ b/msmcobalt/QCamera2/HAL3/QCamera3HWI.cpp
@@ -1225,8 +1225,15 @@
int property_len;
/* Get feature mask from property */
+#ifdef _LE_CAMERA_
+ char swtnr_feature_mask_value[PROPERTY_VALUE_MAX];
+ snprintf(swtnr_feature_mask_value, PROPERTY_VALUE_MAX, "%lld", CAM_QTI_FEATURE_SW_TNR);
+ property_len = property_get("persist.camera.hal3.feature",
+ feature_mask_value, swtnr_feature_mask_value);
+#else
property_len = property_get("persist.camera.hal3.feature",
feature_mask_value, "0");
+#endif
if ((property_len > 2) && (feature_mask_value[0] == '0') &&
(feature_mask_value[1] == 'x')) {
args_converted = sscanf(feature_mask_value, "0x%llx", &feature_mask);
@@ -3813,11 +3820,13 @@
if (mIsMainCamera == 1) {
m_pRelCamSyncBuf->mode = CAM_MODE_PRIMARY;
m_pRelCamSyncBuf->type = CAM_TYPE_MAIN;
+ m_pRelCamSyncBuf->sync_3a_mode = CAM_3A_SYNC_FOLLOW;
// related session id should be session id of linked session
m_pRelCamSyncBuf->related_sensor_session_id = sessionId[mLinkedCameraId];
} else {
m_pRelCamSyncBuf->mode = CAM_MODE_SECONDARY;
m_pRelCamSyncBuf->type = CAM_TYPE_AUX;
+ m_pRelCamSyncBuf->sync_3a_mode = CAM_3A_SYNC_FOLLOW;
m_pRelCamSyncBuf->related_sensor_session_id = sessionId[mLinkedCameraId];
}
pthread_mutex_unlock(&gCamLock);
@@ -4394,11 +4403,13 @@
if (mIsMainCamera == 1) {
m_pRelCamSyncBuf->mode = CAM_MODE_PRIMARY;
m_pRelCamSyncBuf->type = CAM_TYPE_MAIN;
+ m_pRelCamSyncBuf->sync_3a_mode = CAM_3A_SYNC_FOLLOW;
// related session id should be session id of linked session
m_pRelCamSyncBuf->related_sensor_session_id = sessionId[mLinkedCameraId];
} else {
m_pRelCamSyncBuf->mode = CAM_MODE_SECONDARY;
m_pRelCamSyncBuf->type = CAM_TYPE_AUX;
+ m_pRelCamSyncBuf->sync_3a_mode = CAM_3A_SYNC_FOLLOW;
m_pRelCamSyncBuf->related_sensor_session_id = sessionId[mLinkedCameraId];
}
pthread_mutex_unlock(&gCamLock);
@@ -5573,6 +5584,16 @@
camMetadata.update(QCAMERA3_IR_MODE,(int32_t *) &ir, 1);
}
+ // AEC SPEED
+ IF_META_AVAILABLE(float, aec, CAM_INTF_META_AEC_CONVERGENCE_SPEED, metadata) {
+ camMetadata.update(QCAMERA3_AEC_CONVERGENCE_SPEED, aec, 1);
+ }
+
+ // AWB SPEED
+ IF_META_AVAILABLE(float, awb, CAM_INTF_META_AWB_CONVERGENCE_SPEED, metadata) {
+ camMetadata.update(QCAMERA3_AWB_CONVERGENCE_SPEED, awb, 1);
+ }
+
// TNR
IF_META_AVAILABLE(cam_denoise_param_t, tnr, CAM_INTF_PARM_TEMPORAL_DENOISE, metadata) {
uint8_t tnr_enable = tnr->denoise_enable;
@@ -8563,6 +8584,14 @@
int32_t ir_mode = (int32_t)QCAMERA3_IR_MODE_OFF;
settings.update(QCAMERA3_IR_MODE, &ir_mode, 1);
+ /* Manual Convergence AEC Speed is disabled by default*/
+ float default_aec_speed = 0;
+ settings.update(QCAMERA3_AEC_CONVERGENCE_SPEED, &default_aec_speed, 1);
+
+ /* Manual Convergence AWB Speed is disabled by default*/
+ float default_awb_speed = 0;
+ settings.update(QCAMERA3_AWB_CONVERGENCE_SPEED, &default_awb_speed, 1);
+
mDefaultMetadata[type] = settings.release();
return mDefaultMetadata[type];
@@ -9683,6 +9712,34 @@
}
}
+ if (frame_settings.exists(QCAMERA3_AEC_CONVERGENCE_SPEED)) {
+ float aec_speed;
+ aec_speed = frame_settings.find(QCAMERA3_AEC_CONVERGENCE_SPEED).data.f[0];
+ LOGD("AEC Speed :%f", aec_speed);
+ if ( aec_speed < 0 ) {
+ LOGE("Invalid AEC mode %f!", aec_speed);
+ } else {
+ if (ADD_SET_PARAM_ENTRY_TO_BATCH(hal_metadata, CAM_INTF_META_AEC_CONVERGENCE_SPEED,
+ aec_speed)) {
+ rc = BAD_VALUE;
+ }
+ }
+ }
+
+ if (frame_settings.exists(QCAMERA3_AWB_CONVERGENCE_SPEED)) {
+ float awb_speed;
+ awb_speed = frame_settings.find(QCAMERA3_AWB_CONVERGENCE_SPEED).data.f[0];
+ LOGD("AWB Speed :%f", awb_speed);
+ if ( awb_speed < 0 ) {
+ LOGE("Invalid AWB mode %f!", awb_speed);
+ } else {
+ if (ADD_SET_PARAM_ENTRY_TO_BATCH(hal_metadata, CAM_INTF_META_AWB_CONVERGENCE_SPEED,
+ awb_speed)) {
+ rc = BAD_VALUE;
+ }
+ }
+ }
+
// TNR
if (frame_settings.exists(QCAMERA3_TEMPORAL_DENOISE_ENABLE) &&
frame_settings.exists(QCAMERA3_TEMPORAL_DENOISE_PROCESS_TYPE)) {