OSDN Git Service

Camera2: Change face detect/scene mode priority.
authorEino-Ville Talvala <etalvala@google.com>
Mon, 17 Sep 2012 23:43:14 +0000 (16:43 -0700)
committerEino-Ville Talvala <etalvala@google.com>
Mon, 17 Sep 2012 23:46:25 +0000 (16:46 -0700)
Explicit scene modes should override the implicit face priority scene
mode from enabling face detection, to match application/API
expectations.

Change-Id: I6f0f44fadeacfdc0594dd2fdc280e294d2d87df6

services/camera/libcameraservice/camera2/Parameters.cpp

index c07a6ac..c6d7747 100644 (file)
@@ -1380,8 +1380,11 @@ status_t Parameters::updateRequest(CameraMetadata *request) const {
             &reqControlMode, 1);
     if (res != OK) return res;
 
-    uint8_t reqSceneMode = enableFaceDetect ?
-            (uint8_t)ANDROID_CONTROL_SCENE_MODE_FACE_PRIORITY : sceneMode;
+    uint8_t reqSceneMode =
+            (sceneMode !=
+                    (uint8_t)ANDROID_CONTROL_SCENE_MODE_UNSUPPORTED) ? sceneMode :
+            enableFaceDetect ? (uint8_t)ANDROID_CONTROL_SCENE_MODE_FACE_PRIORITY :
+            (uint8_t)ANDROID_CONTROL_SCENE_MODE_UNSUPPORTED;
     res = request->update(ANDROID_CONTROL_SCENE_MODE,
             &reqSceneMode, 1);
     if (res != OK) return res;