summaryrefslogtreecommitdiff
authorpengfei.hao <pengfei.hao@amlogic.com>2013-11-13 13:19:18 (GMT)
committer brian.zhu <brian.zhu@amlogic.com>2013-11-14 08:49:18 (GMT)
commit8ec73f90f7bb0738cd448ae3b74536a956d12293 (patch)
tree51f9d2473ebc6652df41ee312d1a07496ba2d746
parentdc002f933939e2008f09f01bb82fb67fc83df1d6 (diff)
downloadcamera-8ec73f90f7bb0738cd448ae3b74536a956d12293.zip
camera-8ec73f90f7bb0738cd448ae3b74536a956d12293.tar.gz
camera-8ec73f90f7bb0738cd448ae3b74536a956d12293.tar.bz2
Pd#82049:cts android.hardware.cts.CameraTest#testFocusAreas fail
Diffstat
-rwxr-xr-xCameraHal.cpp19
1 files changed, 17 insertions, 2 deletions
diff --git a/CameraHal.cpp b/CameraHal.cpp
index c8364ea..2c87ccc 100755
--- a/CameraHal.cpp
+++ b/CameraHal.cpp
@@ -786,8 +786,23 @@ int CameraHal::setParameters(const CameraParameters& params)
if( (valstr = params.get(CameraParameters::KEY_FOCUS_AREAS)) != NULL )
{
- CAMHAL_LOGEB("Focus areas position set %s", params.get(CameraParameters::KEY_FOCUS_AREAS));
- mParameters.set(CameraParameters::KEY_FOCUS_AREAS, valstr);
+ int x0 = 0;
+ int y0 = 0;
+ int x1 = 0;
+ int y1 = 0;
+ int weight = 0;
+ CAMHAL_LOGEB("Focus areas position set %s", params.get(CameraParameters::KEY_FOCUS_AREAS));
+ sscanf(params.get(CameraParameters::KEY_FOCUS_AREAS),"(%d,%d,%d,%d,%d)",&x0,&y0,&x1,&y1,&weight);
+ if(x0<-1000||y0<-1000||y1>1000||x1>1000||weight<1||weight>1000||x0>=x1||y0>=y1){
+ if(x1==0&&y1==0&&x0==0&&y0==0){
+ mParameters.set(CameraParameters::KEY_FOCUS_AREAS, valstr);
+ }else{
+ CAMHAL_LOGEB("ERROR: Invalid focus area = %s", valstr);
+ ret = -EINVAL;
+ }
+ }else{
+ mParameters.set(CameraParameters::KEY_FOCUS_AREAS, valstr);
+ }
}
if( (valstr = params.get(ExCameraParameters::KEY_MEASUREMENT_ENABLE)) != NULL )