author | pengfei.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) |
commit | 8ec73f90f7bb0738cd448ae3b74536a956d12293 (patch) | |
tree | 51f9d2473ebc6652df41ee312d1a07496ba2d746 | |
parent | dc002f933939e2008f09f01bb82fb67fc83df1d6 (diff) | |
download | camera-8ec73f90f7bb0738cd448ae3b74536a956d12293.zip camera-8ec73f90f7bb0738cd448ae3b74536a956d12293.tar.gz camera-8ec73f90f7bb0738cd448ae3b74536a956d12293.tar.bz2 |
Pd#82049:cts android.hardware.cts.CameraTest#testFocusAreas fail
-rwxr-xr-x | CameraHal.cpp | 19 |
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 ) |