diff options
author | Tyler Luu <tluu@ti.com> | 2011-09-15 23:17:59 -0500 |
---|---|---|
committer | Iliyan Malchev <malchev@google.com> | 2011-09-16 11:25:54 -0700 |
commit | 8a2076796e301670c8d14da7c089fb00fd59f2e0 (patch) | |
tree | d8e9e81fc4b52ac294cbe0e630f9ad180b1d3010 /camera/OMXCameraAdapter | |
parent | 6a2f302dd2c66688e13088d01d349e3efaa2894b (diff) | |
download | hardware_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.cpp | 86 |
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) |