summaryrefslogtreecommitdiffstats
path: root/camera/OMXCameraAdapter/OMXFocus.cpp
diff options
context:
space:
mode:
authorAkwasi Boateng <akwasi.boateng@ti.com>2011-09-08 20:35:42 -0500
committerIliyan Malchev <malchev@google.com>2011-09-09 13:31:08 -0700
commit9b981b1785b6758b2dc8b147587188e5cf0d893d (patch)
tree684a015d6d074eec3121a35a7f6e7db4f488628b /camera/OMXCameraAdapter/OMXFocus.cpp
parent9a30da5a109bd88aaddfe0ff850189c8a078be89 (diff)
downloadhardware_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.cpp14
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);
}