summaryrefslogtreecommitdiffstats
path: root/camera/OMXCameraAdapter
diff options
context:
space:
mode:
authorTyler Luu <tluu@ti.com>2011-09-15 23:17:59 -0500
committerIliyan Malchev <malchev@google.com>2011-09-16 11:25:54 -0700
commit8a2076796e301670c8d14da7c089fb00fd59f2e0 (patch)
treed8e9e81fc4b52ac294cbe0e630f9ad180b1d3010 /camera/OMXCameraAdapter
parent6a2f302dd2c66688e13088d01d349e3efaa2894b (diff)
downloadhardware_ti_omap4xxx-8a2076796e301670c8d14da7c089fb00fd59f2e0.zip
hardware_ti_omap4xxx-8a2076796e301670c8d14da7c089fb00fd59f2e0.tar.gz
hardware_ti_omap4xxx-8a2076796e301670c8d14da7c089fb00fd59f2e0.tar.bz2
CameraHal: Return error and exit upon failure in set3ALock
Fixes b/5316293 Change-Id: Ib48ce6d9ceee3e1eed2e4af958d36682da9b6a5c Signed-off-by: Tyler Luu <tluu@ti.com>
Diffstat (limited to 'camera/OMXCameraAdapter')
-rw-r--r--camera/OMXCameraAdapter/OMX3A.cpp86
1 files changed, 45 insertions, 41 deletions
diff --git a/camera/OMXCameraAdapter/OMX3A.cpp b/camera/OMXCameraAdapter/OMX3A.cpp
index 8f458ac..eb87645 100644
--- a/camera/OMXCameraAdapter/OMX3A.cpp
+++ b/camera/OMXCameraAdapter/OMX3A.cpp
@@ -1058,67 +1058,71 @@ status_t OMXCameraAdapter::setExposureLock(Gen3A_settings& Gen3A)
status_t OMXCameraAdapter::set3ALock(OMX_BOOL toggleExp, OMX_BOOL toggleWb)
{
- OMX_ERRORTYPE eError = OMX_ErrorNone;
- OMX_IMAGE_CONFIG_LOCKTYPE lock;
- char* index = FALSE;
+ OMX_ERRORTYPE eError = OMX_ErrorNone;
+ OMX_IMAGE_CONFIG_LOCKTYPE lock;
+ char* index = FALSE;
- LOG_FUNCTION_NAME
+ LOG_FUNCTION_NAME
- if ( OMX_StateInvalid == mComponentState )
+ if ( OMX_StateInvalid == mComponentState )
{
CAMHAL_LOGEA("OMX component is in invalid state");
return NO_INIT;
}
- OMX_INIT_STRUCT_PTR (&lock, OMX_IMAGE_CONFIG_LOCKTYPE);
- lock.nPortIndex = mCameraAdapterParameters.mPrevPortIndex;
+ OMX_INIT_STRUCT_PTR (&lock, OMX_IMAGE_CONFIG_LOCKTYPE);
+ lock.nPortIndex = mCameraAdapterParameters.mPrevPortIndex;
- mParameters3A.ExposureLock = toggleExp;
- mParameters3A.WhiteBalanceLock = toggleWb;
+ mParameters3A.ExposureLock = toggleExp;
+ mParameters3A.WhiteBalanceLock = toggleWb;
- eError = OMX_GetConfig( mCameraAdapterParameters.mHandleComp,
- (OMX_INDEXTYPE)OMX_IndexConfigImageExposureLock,
- &lock);
- if ( OMX_ErrorNone != eError )
+ eError = OMX_GetConfig( mCameraAdapterParameters.mHandleComp,
+ (OMX_INDEXTYPE)OMX_IndexConfigImageExposureLock,
+ &lock);
+
+ if ( OMX_ErrorNone != eError )
{
- CAMHAL_LOGEB("Error GetConfig Exposure Lock error = 0x%x", eError);
+ CAMHAL_LOGEB("Error GetConfig Exposure Lock error = 0x%x", eError);
+ goto EXIT;
}
- else
+ else
{
- CAMHAL_LOGDA("Exposure Lock GetConfig successfull");
- }
+ const char *lock_state_exp = toggleExp ? TRUE : FALSE;
+ CAMHAL_LOGDA("Exposure Lock GetConfig successfull");
- /* Apply locks only when not applied already */
- if ( lock.bLock != toggleExp )
- {
- setExposureLock(mParameters3A);
- }
+ /* Apply locks only when not applied already */
+ if ( lock.bLock != toggleExp )
+ {
+ setExposureLock(mParameters3A);
+ }
- eError = OMX_GetConfig( mCameraAdapterParameters.mHandleComp,
- (OMX_INDEXTYPE)OMX_IndexConfigImageWhiteBalanceLock,
- &lock);
- if ( OMX_ErrorNone != eError )
- {
- CAMHAL_LOGEB("Error GetConfig WhiteBalance Lock error = 0x%x", eError);
- }
- else
- {
- CAMHAL_LOGDA("WhiteBalance Lock GetConfig successfull");
+ mParams.set(CameraParameters::KEY_AUTO_EXPOSURE_LOCK, lock_state_exp);
}
- /* Apply locks only when not applied already */
- if ( lock.bLock != toggleWb )
+ eError = OMX_GetConfig( mCameraAdapterParameters.mHandleComp,
+ (OMX_INDEXTYPE)OMX_IndexConfigImageWhiteBalanceLock,
+ &lock);
+
+ if ( OMX_ErrorNone != eError )
{
- setWhiteBalanceLock(mParameters3A);
+ CAMHAL_LOGEB("Error GetConfig WhiteBalance Lock error = 0x%x", eError);
+ goto EXIT;
}
+ else
+ {
+ const char *lock_state_wb = toggleWb ? TRUE : FALSE;
+ CAMHAL_LOGDA("WhiteBalance Lock GetConfig successfull");
- const char *lock_state_exp = toggleExp ? TRUE : FALSE;
- const char *lock_state_wb = toggleWb ? TRUE : FALSE;
- mParams.set(CameraParameters::KEY_AUTO_EXPOSURE_LOCK, lock_state_exp);
- mParams.set(CameraParameters::KEY_AUTO_WHITEBALANCE_LOCK, lock_state_wb);
-
- return ErrorUtils::omxToAndroidError(eError);
+ /* Apply locks only when not applied already */
+ if ( lock.bLock != toggleWb )
+ {
+ setWhiteBalanceLock(mParameters3A);
+ }
+ mParams.set(CameraParameters::KEY_AUTO_WHITEBALANCE_LOCK, lock_state_wb);
+ }
+ EXIT:
+ return ErrorUtils::omxToAndroidError(eError);
}
status_t OMXCameraAdapter::setMeteringAreas(Gen3A_settings& Gen3A)