summaryrefslogtreecommitdiff
path: root/camera
diff options
context:
space:
mode:
authorMilen Mitkov <mmitkov@mm-sol.com>2011-11-30 17:01:58 +0200
committerIliyan Malchev <malchev@google.com>2011-11-30 12:08:59 -0800
commitb92d77425f939a35c0404a5317c3dcd6c2008ecb (patch)
tree13a3dce509d92055cb6447cde5659e0d0b6d41c0 /camera
parentd9520b9de06f01b9411307040cf245e6fc7fe361 (diff)
downloadomap4xxx-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.cpp11
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,