summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTyler Luu <tluu@ti.com>2011-10-18 20:13:34 -0500
committerIliyan Malchev <malchev@google.com>2011-10-18 18:25:42 -0700
commit11be32ce333557c09434611f69830e19aca55e72 (patch)
tree1ca2588754db8fc86f11d0f8354b80c38c2fff16
parent39ab34daa6770e0995b7184ae7fd9c9213136f52 (diff)
downloadomap4xxx-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-xcamera/OMXCameraAdapter/OMXCameraAdapter.cpp14
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