diff options
author | Akwasi Boateng <akwasi.boateng@ti.com> | 2011-09-08 20:35:42 -0500 |
---|---|---|
committer | Iliyan Malchev <malchev@google.com> | 2011-09-09 13:31:08 -0700 |
commit | 9b981b1785b6758b2dc8b147587188e5cf0d893d (patch) | |
tree | 684a015d6d074eec3121a35a7f6e7db4f488628b /camera/OMXCameraAdapter/OMXFocus.cpp | |
parent | 9a30da5a109bd88aaddfe0ff850189c8a078be89 (diff) | |
download | hardware_ti_omap4xxx-9b981b1785b6758b2dc8b147587188e5cf0d893d.zip hardware_ti_omap4xxx-9b981b1785b6758b2dc8b147587188e5cf0d893d.tar.gz hardware_ti_omap4xxx-9b981b1785b6758b2dc8b147587188e5cf0d893d.tar.bz2 |
Destroy and recreate semaphore in case of timeout
Destroy and recreate semaphor during timeout
and remove event from event queue.
Change-Id: Id9428ff58a55f90a6807776327bfba1961d9089d
Signed-off-by: Akwasi Boateng <akwasi.boateng@ti.com>
Diffstat (limited to 'camera/OMXCameraAdapter/OMXFocus.cpp')
-rw-r--r-- | camera/OMXCameraAdapter/OMXFocus.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/camera/OMXCameraAdapter/OMXFocus.cpp b/camera/OMXCameraAdapter/OMXFocus.cpp index 17527af..f57e6ba 100644 --- a/camera/OMXCameraAdapter/OMXFocus.cpp +++ b/camera/OMXCameraAdapter/OMXFocus.cpp @@ -31,7 +31,7 @@ #include "ErrorUtils.h" #define TOUCH_FOCUS_RANGE 0xFF -#define AF_CALLBACK_TIMEOUT 10000000 //10 seconds timeout +#define AF_CALLBACK_TIMEOUT 5000000 //5 seconds timeout namespace android { @@ -146,15 +146,17 @@ status_t OMXCameraAdapter::doAutoFocus() if ( ( focusControl.eFocusControl != OMX_IMAGE_FocusControlAuto ) && ( focusControl.eFocusControl != ( OMX_IMAGE_FOCUSCONTROLTYPE ) OMX_IMAGE_FocusControlAutoInfinity ) ) { - ret = mDoAFSem.WaitTimeout(AF_CALLBACK_TIMEOUT); + //ret = mDoAFSem.WaitTimeout(AF_CALLBACK_TIMEOUT); //Disable auto focus callback from Ducati - setFocusCallback(false); + //setFocusCallback(false); //Signal a dummy AF event so that in case the callback from ducati //does come then it doesnt crash after //exiting this function since eventSem will go out of scope. - if(ret != NO_ERROR) { + if(mDoAFSem.WaitTimeout(AF_CALLBACK_TIMEOUT) != NO_ERROR) { + //Disable auto focus callback from Ducati + setFocusCallback(false); CAMHAL_LOGEA("Autofocus callback timeout expired"); - SignalEvent(mCameraAdapterParameters.mHandleComp, + RemoveEvent(mCameraAdapterParameters.mHandleComp, (OMX_EVENTTYPE) OMX_EventIndexSettingChanged, OMX_ALL, OMX_IndexConfigCommonFocusStatus, @@ -162,6 +164,8 @@ status_t OMXCameraAdapter::doAutoFocus() returnFocusStatus(true); } else { CAMHAL_LOGDA("Autofocus callback received"); + //Disable auto focus callback from Ducati + setFocusCallback(false); ret = returnFocusStatus(false); } |