diff options
author | Milen Mitkov <mmitkov@mm-sol.com> | 2011-11-30 17:01:58 +0200 |
---|---|---|
committer | Iliyan Malchev <malchev@google.com> | 2011-11-30 12:08:59 -0800 |
commit | b92d77425f939a35c0404a5317c3dcd6c2008ecb (patch) | |
tree | 13a3dce509d92055cb6447cde5659e0d0b6d41c0 /camera | |
parent | d9520b9de06f01b9411307040cf245e6fc7fe361 (diff) | |
download | omap4xxx-omapzoom-b92d77425f939a35c0404a5317c3dcd6c2008ecb.tar.gz |
CameraHAL: Perform focus even if CAF has failed
Fixes b/5534973
Used to force focus if CAF has failed (before capture). CAF's state is
'failed' even if a scene change is detected only.
Change-Id: I0878a9f862b7800b566e578efdfa62baec7e5889
Signed-off-by: Milen Mitkov <mmitkov@mm-sol.com>
Diffstat (limited to 'camera')
-rw-r--r-- | camera/OMXCameraAdapter/OMXFocus.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/camera/OMXCameraAdapter/OMXFocus.cpp b/camera/OMXCameraAdapter/OMXFocus.cpp index 30ce3c1d..b48cfecd 100644 --- a/camera/OMXCameraAdapter/OMXFocus.cpp +++ b/camera/OMXCameraAdapter/OMXFocus.cpp @@ -153,7 +153,8 @@ status_t OMXCameraAdapter::doAutoFocus() } if ( (focusControl.eFocusControl == OMX_IMAGE_FocusControlAuto - && focusStatus.eFocusStatus == OMX_FocusStatusRequest) || + && (focusStatus.eFocusStatus == OMX_FocusStatusRequest + || focusStatus.eFocusStatus == OMX_FocusStatusUnableToReach) ) || (mParameters3A.Focus != (OMX_IMAGE_FOCUSCONTROLTYPE)OMX_IMAGE_FocusControlAuto) ) { OMX_INIT_STRUCT_PTR (&bOMX, OMX_CONFIG_BOOLEANTYPE); @@ -170,6 +171,14 @@ status_t OMXCameraAdapter::doAutoFocus() OMX_IndexConfigCommonFocusStatus, mDoAFSem); + // force AF, Ducati will take care of whether CAF + // or AF will be performed, depending on light conditions + if ( focusControl.eFocusControl == OMX_IMAGE_FocusControlAuto + && focusStatus.eFocusStatus == OMX_FocusStatusUnableToReach ) + { + focusControl.eFocusControl = OMX_IMAGE_FocusControlAutoLock; + } + if ( focusControl.eFocusControl != OMX_IMAGE_FocusControlAuto ) { eError = OMX_SetConfig(mCameraAdapterParameters.mHandleComp, |