diff options
author | Tyler Luu <tluu@ti.com> | 2011-10-18 20:13:34 -0500 |
---|---|---|
committer | Iliyan Malchev <malchev@google.com> | 2011-10-18 18:25:42 -0700 |
commit | 11be32ce333557c09434611f69830e19aca55e72 (patch) | |
tree | 1ca2588754db8fc86f11d0f8354b80c38c2fff16 | |
parent | 39ab34daa6770e0995b7184ae7fd9c9213136f52 (diff) | |
download | omap4xxx-omapzoom-11be32ce333557c09434611f69830e19aca55e72.tar.gz |
CameraHal: Only feedback supported params
Check to see if the updated param from scene mode selection
is supported before reporting it back to application in
getParameters. Work-around for Ducati not always reporting
supported 3A parameters for a particular scene mode.
Change-Id: Idc05f150df081b1a2b6c841730da08713b64fd47
Signed-off-by: Tyler Luu <tluu@ti.com>
-rwxr-xr-x | camera/OMXCameraAdapter/OMXCameraAdapter.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/camera/OMXCameraAdapter/OMXCameraAdapter.cpp b/camera/OMXCameraAdapter/OMXCameraAdapter.cpp index d9ae5a86..7bf6b61b 100755 --- a/camera/OMXCameraAdapter/OMXCameraAdapter.cpp +++ b/camera/OMXCameraAdapter/OMXCameraAdapter.cpp @@ -622,14 +622,22 @@ void OMXCameraAdapter::getParameters(CameraParameters& params) LOG_FUNCTION_NAME; if( mParameters3A.SceneMode != OMX_Manual ) { + const char *valstr_supported = NULL; + valstr = getLUTvalue_OMXtoHAL(mParameters3A.WhiteBallance, WBalLUT); - if (valstr) params.set(CameraParameters::KEY_WHITE_BALANCE , valstr); + valstr_supported = mParams.get(CameraParameters::KEY_SUPPORTED_WHITE_BALANCE); + if (valstr && valstr_supported && strstr(valstr_supported, valstr)) + params.set(CameraParameters::KEY_WHITE_BALANCE , valstr); valstr = getLUTvalue_OMXtoHAL(mParameters3A.FlashMode, FlashLUT); - if (valstr) params.set(CameraParameters::KEY_FLASH_MODE, valstr); + valstr_supported = mParams.get(CameraParameters::KEY_SUPPORTED_FLASH_MODES); + if (valstr && valstr_supported && strstr(valstr_supported, valstr)) + params.set(CameraParameters::KEY_FLASH_MODE, valstr); valstr = getLUTvalue_OMXtoHAL(mParameters3A.Focus, FocusLUT); - if (valstr) params.set(CameraParameters::KEY_FOCUS_MODE, valstr); + valstr_supported = mParams.get(CameraParameters::KEY_SUPPORTED_FOCUS_MODES); + if (valstr && valstr_supported && strstr(valstr_supported, valstr)) + params.set(CameraParameters::KEY_FOCUS_MODE, valstr); } //Query focus distances only during CAF, Infinity |