camera: update fast af
- enhancing af sensitivity
- retriggering on dynamic change from darkness to brightness
- detecting af conner case
- locking af when press long capture button
Bug: 7354082
Change-Id: I5895372c322732a48a7fcb9f0b6fb12d7c559657
Signed-off-by: Iliyan Malchev <malchev@google.com>
diff --git a/camera/QCameraHWI.cpp b/camera/QCameraHWI.cpp
index 8e8ac3b..ab8b187 100644
--- a/camera/QCameraHWI.cpp
+++ b/camera/QCameraHWI.cpp
@@ -1160,6 +1160,11 @@
ALOGV("%s: setPreviewWindow", __func__);
mStreamDisplay->setPreviewWindow(mPreviewWindow);
+ ret = cam_config_set_parm(mCameraId, MM_CAMERA_PARM_INFORM_STARTPRVIEW, NULL);
+ if(ret<0)
+ {
+ ALOGE("%s: Failed to Check MM_CAMERA_PARM_INFORM_STARTPRVIEW, rc %d", __func__, ret);
+ }
if(isZSLMode()) {
/* Start preview streaming */
@@ -1630,7 +1635,7 @@
int mNuberOfVFEOutputs = 0;
Mutex::Autolock lock(mLock);
bool hdr;
- int frm_num = 1;
+ int frm_num = 1, rc = 0;
int exp[MAX_HDR_EXP_FRAME_NUM];
if(QCAMERA_HAL_RECORDING_STARTED != mPreviewState){
@@ -1643,6 +1648,11 @@
mFlashCond = false;
}
+ rc = cam_config_set_parm(mCameraId, MM_CAMERA_PARM_LG_CAF_LOCK, NULL);
+ if(rc<0)
+ {
+ ALOGE("%s: Failed to Check MM_CAMERA_PARM_LG_CAF_LOCK, rc %d", __func__, rc);
+ }
hdr = getHdrInfoAndSetExp(MAX_HDR_EXP_FRAME_NUM, &frm_num, exp);
mStreamSnap->resetSnapshotCounters();
mStreamSnap->InitHdrInfoForSnapshot(hdr, frm_num, exp);
diff --git a/camera/QCameraHWI_Parm.cpp b/camera/QCameraHWI_Parm.cpp
index 103aa92..23e5cdb 100755
--- a/camera/QCameraHWI_Parm.cpp
+++ b/camera/QCameraHWI_Parm.cpp
@@ -1429,7 +1429,6 @@
if ((rc = setZSLBurstLookBack(params))) final_rc = rc;
if ((rc = setZSLBurstInterval(params))) final_rc = rc;
if ((rc = setNoDisplayMode(params))) final_rc = rc;
- if ((rc = setCAFLockCancel())) final_rc = rc;
//Update Exiftag values.
setExifTags();
diff --git a/camera/QCamera_Intf.h b/camera/QCamera_Intf.h
index 19df6dd..aa84940 100644
--- a/camera/QCamera_Intf.h
+++ b/camera/QCamera_Intf.h
@@ -473,6 +473,8 @@
MM_CAMERA_PARM_LUX_IDX,
MM_CAMERA_PARM_GET_AF_STATUS,
MM_CAMERA_PARM_CHECK_AF_RETRY,
+ MM_CAMERA_PARM_LG_CAF_LOCK,
+ MM_CAMERA_PARM_INFORM_STARTPRVIEW,
MM_CAMERA_PARM_MAX
} mm_camera_parm_type_t;
@@ -625,6 +627,8 @@
CAMERA_GET_PARM_LOW_LIGHT_FOR_ZSL,
CAMERA_GET_PARM_AF_STATUS,
CAMERA_CHECK_AF_RETRY,
+ CAMERA_SET_LG_CAF_LOCK,
+ CAMERA_SET_INFORM_STARTPREVIEW,
CAMERA_CTRL_PARM_MAX
} cam_ctrl_type;
diff --git a/camera/mm-camera-interface/mm_camera.c b/camera/mm-camera-interface/mm_camera.c
index 64292bc..cd0571f 100644
--- a/camera/mm-camera-interface/mm_camera.c
+++ b/camera/mm-camera-interface/mm_camera.c
@@ -497,6 +497,12 @@
case MM_CAMERA_PARM_CHECK_AF_RETRY:
return mm_camera_send_native_ctrl_cmd(my_obj, CAMERA_CHECK_AF_RETRY,
0, (void *)NULL);
+ case MM_CAMERA_PARM_LG_CAF_LOCK:
+ return mm_camera_send_native_ctrl_cmd(my_obj, CAMERA_SET_LG_CAF_LOCK,
+ 0, (void *)NULL);
+ case MM_CAMERA_PARM_INFORM_STARTPRVIEW:
+ return mm_camera_send_native_ctrl_cmd(my_obj, CAMERA_SET_INFORM_STARTPREVIEW,
+ 0, (void *)NULL);
default:
rc = mm_camera_set_general_parm(my_obj, parm);
break;