summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaji Reddy Kandi <rajireddy.k@samsung.com>2011-10-20 00:20:28 +0530
committerIliyan Malchev <malchev@google.com>2011-10-19 12:25:18 -0700
commit2facbeb345500d62f74eac01ebb49a069fe034c1 (patch)
treec3cf9c97c825e2abed34346b1e0405f808606dbc
parent533be266db006d2c4e371a87be4d15fbf92abc17 (diff)
downloadhardware_ti_omap4xxx-2facbeb345500d62f74eac01ebb49a069fe034c1.zip
hardware_ti_omap4xxx-2facbeb345500d62f74eac01ebb49a069fe034c1.tar.gz
hardware_ti_omap4xxx-2facbeb345500d62f74eac01ebb49a069fe034c1.tar.bz2
CameraHAL: protect mParameters3A from simultaneous read/write.
Fix for Issue: Idle -> remove from the latest launched apps -> Launch Camera -> Settings -> Restore defaults -> ok -> Flash mode On -> White balance Cloudy -> Exposure -3 -> Scene mode Party -> Shooting -> Camcoder mode -> Settings -> Restore defaults -> ok ==> video preview is red even after we restored the settings. Change-Id: If4b3672693a092f1956708742a6cc5f2c2c284fb Signed-off-by: Raji Reddy Kandi <rajireddy.k@samsung.com>
-rw-r--r--camera/OMXCameraAdapter/OMX3A.cpp9
-rw-r--r--camera/inc/OMXCameraAdapter/OMXCameraAdapter.h1
2 files changed, 10 insertions, 0 deletions
diff --git a/camera/OMXCameraAdapter/OMX3A.cpp b/camera/OMXCameraAdapter/OMX3A.cpp
index 5078fd7..6c8d85f 100644
--- a/camera/OMXCameraAdapter/OMX3A.cpp
+++ b/camera/OMXCameraAdapter/OMX3A.cpp
@@ -49,6 +49,8 @@ status_t OMXCameraAdapter::setParameters3A(const CameraParameters &params,
LOG_FUNCTION_NAME;
+ Mutex::Autolock lock(m3ASettingsUpdateLock);
+
str = params.get(CameraParameters::KEY_SCENE_MODE);
mode = getLUTvalue_HALtoOMX( str, SceneLUT);
if ( mFirstTimeInit || ((str != NULL) && ( mParameters3A.SceneMode != mode )) ) {
@@ -1512,6 +1514,10 @@ status_t OMXCameraAdapter::apply3Asettings( Gen3A_settings& Gen3A )
unsigned int currSett; // 32 bit
int portIndex;
+ LOG_FUNCTION_NAME;
+
+ Mutex::Autolock lock(m3ASettingsUpdateLock);
+
/*
* Scenes have a priority during the process
* of applying 3A related parameters.
@@ -1637,6 +1643,9 @@ status_t OMXCameraAdapter::apply3Asettings( Gen3A_settings& Gen3A )
mPending3Asettings &= ~currSett;
}
}
+
+ LOG_FUNCTION_NAME_EXIT;
+
return ret;
}
diff --git a/camera/inc/OMXCameraAdapter/OMXCameraAdapter.h b/camera/inc/OMXCameraAdapter/OMXCameraAdapter.h
index 8418ff4..04bc64c 100644
--- a/camera/inc/OMXCameraAdapter/OMXCameraAdapter.h
+++ b/camera/inc/OMXCameraAdapter/OMXCameraAdapter.h
@@ -834,6 +834,7 @@ private:
OMX_VERSIONTYPE mLocalVersionParam;
unsigned int mPending3Asettings;
+ Mutex m3ASettingsUpdateLock;
Gen3A_settings mParameters3A;
OMX_TI_CONFIG_3A_FACE_PRIORITY mFacePriority;