diff options
author | Sundar Raman <sunds@ti.com> | 2011-09-21 13:21:12 -0700 |
---|---|---|
committer | Iliyan Malchev <malchev@google.com> | 2011-09-21 16:49:41 -0700 |
commit | 2f15c6a9f1d24904705ddab6a6c005126e8846dd (patch) | |
tree | 5cb25791ebfdc18d318e63fe35e9f1a13e25ae0d /camera/OMXCameraAdapter | |
parent | 3f94f2f7a3999272d52653cd82714b7a7d3ae9b9 (diff) | |
download | omap4xxx-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')
-rw-r--r-- | camera/OMXCameraAdapter/OMX3A.cpp | 25 | ||||
-rw-r--r-- | camera/OMXCameraAdapter/OMXFocus.cpp | 2 |
2 files changed, 13 insertions, 14 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 ¶ms, } 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; diff --git a/camera/OMXCameraAdapter/OMXFocus.cpp b/camera/OMXCameraAdapter/OMXFocus.cpp index 5600a4a..8899e25 100644 --- a/camera/OMXCameraAdapter/OMXFocus.cpp +++ b/camera/OMXCameraAdapter/OMXFocus.cpp @@ -52,7 +52,7 @@ status_t OMXCameraAdapter::setParametersFocus(const CameraParameters ¶ms, mFocusAreas.clear(); if ( NULL != str ) { - ret = CameraArea::parseFocusArea(str, ( strlen(str) + 1 ), mFocusAreas); + ret = CameraArea::parseAreas(str, ( strlen(str) + 1 ), mFocusAreas); } if ( NO_ERROR == ret ) { |