summaryrefslogtreecommitdiff
path: root/camera/OMXCameraAdapter/OMX3A.cpp
diff options
context:
space:
mode:
authorSundar Raman <sunds@ti.com>2011-09-21 13:21:12 -0700
committerIliyan Malchev <malchev@google.com>2011-09-21 16:49:41 -0700
commit2f15c6a9f1d24904705ddab6a6c005126e8846dd (patch)
tree5cb25791ebfdc18d318e63fe35e9f1a13e25ae0d /camera/OMXCameraAdapter/OMX3A.cpp
parent3f94f2f7a3999272d52653cd82714b7a7d3ae9b9 (diff)
downloadomap4xxx-2f15c6a9f1d24904705ddab6a6c005126e8846dd.tar.gz
CameraHAL: CTS fixes related to #testMeteringAreas
- The status of "parseAreas()" should always be checked in order to return proper error code in case of invalid input arguments. - If the input metering areas are more than the supported ones, then always return an error. - 'parseAreas()' expects the buffer size, not the string length. - Refactors "parseFocusAreas()' to the more general 'parseAreas()'. Change-Id: I4c70bcaa3c676f525b721916cc39c66db5e0fc17 Signed-off-by: Emilian Peev <epeev@mm-sol.com> Signed-off-by: Sundar Raman <sunds@ti.com>
Diffstat (limited to 'camera/OMXCameraAdapter/OMX3A.cpp')
-rw-r--r--camera/OMXCameraAdapter/OMX3A.cpp25
1 files changed, 12 insertions, 13 deletions
diff --git a/camera/OMXCameraAdapter/OMX3A.cpp b/camera/OMXCameraAdapter/OMX3A.cpp
index ad82398..213bfcd 100644
--- a/camera/OMXCameraAdapter/OMX3A.cpp
+++ b/camera/OMXCameraAdapter/OMX3A.cpp
@@ -269,28 +269,27 @@ status_t OMXCameraAdapter::setParameters3A(const CameraParameters &params,
}
str = params.get(CameraParameters::KEY_METERING_AREAS);
- if ( (str != NULL) )
- {
+ if ( (str != NULL) ) {
size_t MAX_METERING_AREAS;
MAX_METERING_AREAS = atoi(params.get(CameraParameters::KEY_MAX_NUM_METERING_AREAS));
mMeteringAreas.clear();
- CameraArea::parseFocusArea(str, strlen(str), mMeteringAreas);
+ ret = CameraArea::parseAreas(str, ( strlen(str) + 1 ), mMeteringAreas);
- if ( MAX_METERING_AREAS > mMeteringAreas.size() )
- {
- CAMHAL_LOGDB("Setting Metering Areas %s",
- params.get(CameraParameters::KEY_METERING_AREAS));
+ if ( NO_ERROR == ret ) {
+ if ( MAX_METERING_AREAS >= mMeteringAreas.size() ) {
+ CAMHAL_LOGDB("Setting Metering Areas %s",
+ params.get(CameraParameters::KEY_METERING_AREAS));
- mPending3Asettings |= SetMeteringAreas;
- }
- else
- {
- CAMHAL_LOGEB("Metering areas supported %d, metering areas set %d",
- MAX_METERING_AREAS, mMeteringAreas.size());
+ mPending3Asettings |= SetMeteringAreas;
+ } else {
+ CAMHAL_LOGEB("Metering areas supported %d, metering areas set %d",
+ MAX_METERING_AREAS, mMeteringAreas.size());
+ ret = -EINVAL;
}
}
+ }
LOG_FUNCTION_NAME_EXIT;