summaryrefslogtreecommitdiffstats
path: root/camera2
diff options
context:
space:
mode:
authorRuben Brunk <rubenbrunk@google.com>2014-08-30 00:27:58 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-08-30 00:27:58 +0000
commit9fb7e16061ae2f3d3b059952706a1e1a1b439d6b (patch)
tree230c33f3c1d963f1164a051d88446824a76a5fc1 /camera2
parent58774cf3543e06c4b51a54bccd603a2cbcd7a816 (diff)
parent54c8f898815a233ba6478630940432ddafdb4314 (diff)
downloadandroid_frameworks_ex-9fb7e16061ae2f3d3b059952706a1e1a1b439d6b.tar.gz
android_frameworks_ex-9fb7e16061ae2f3d3b059952706a1e1a1b439d6b.tar.bz2
android_frameworks_ex-9fb7e16061ae2f3d3b059952706a1e1a1b439d6b.zip
Merge "camera2: Add HDR vendor tag for legacy mode." into lmp-dev
Diffstat (limited to 'camera2')
-rw-r--r--camera2/portability/src/com/android/ex/camera2/portability/AndroidCamera2Capabilities.java6
-rw-r--r--camera2/portability/src/com/android/ex/camera2/portability/AndroidCamera2Settings.java5
-rw-r--r--camera2/portability/src/com/android/ex/camera2/portability/CameraCapabilities.java2
-rw-r--r--camera2/portability/src/com/android/ex/camera2/portability/LegacyVendorTags.java49
4 files changed, 59 insertions, 3 deletions
diff --git a/camera2/portability/src/com/android/ex/camera2/portability/AndroidCamera2Capabilities.java b/camera2/portability/src/com/android/ex/camera2/portability/AndroidCamera2Capabilities.java
index bd610cc..8001a37 100644
--- a/camera2/portability/src/com/android/ex/camera2/portability/AndroidCamera2Capabilities.java
+++ b/camera2/portability/src/com/android/ex/camera2/portability/AndroidCamera2Capabilities.java
@@ -204,7 +204,6 @@ public class AndroidCamera2Capabilities extends CameraCapabilities {
return SceneMode.CANDLELIGHT;
case CONTROL_SCENE_MODE_FIREWORKS:
return SceneMode.FIREWORKS;
- // TODO: We cannot support HDR
case CONTROL_SCENE_MODE_LANDSCAPE:
return SceneMode.LANDSCAPE;
case CONTROL_SCENE_MODE_NIGHT:
@@ -226,6 +225,11 @@ public class AndroidCamera2Capabilities extends CameraCapabilities {
return SceneMode.THEATRE;
// TODO: We cannot expose FACE_PRIORITY, or HIGH_SPEED_VIDEO
}
+
+ if (sm == LegacyVendorTags.CONTROL_SCENE_MODE_HDR) {
+ return SceneMode.HDR;
+ }
+
Log.w(TAG, "Unable to convert from API 2 scene mode: " + sm);
return null;
}
diff --git a/camera2/portability/src/com/android/ex/camera2/portability/AndroidCamera2Settings.java b/camera2/portability/src/com/android/ex/camera2/portability/AndroidCamera2Settings.java
index 0d3ef26..d668f85 100644
--- a/camera2/portability/src/com/android/ex/camera2/portability/AndroidCamera2Settings.java
+++ b/camera2/portability/src/com/android/ex/camera2/portability/AndroidCamera2Settings.java
@@ -419,7 +419,10 @@ public class AndroidCamera2Settings extends CameraSettings {
mode = CONTROL_SCENE_MODE_FIREWORKS;
break;
}
- // TODO: We cannot support HDR
+ case HDR: {
+ mode = LegacyVendorTags.CONTROL_SCENE_MODE_HDR;
+ break;
+ }
case LANDSCAPE: {
mode = CONTROL_SCENE_MODE_LANDSCAPE;
break;
diff --git a/camera2/portability/src/com/android/ex/camera2/portability/CameraCapabilities.java b/camera2/portability/src/com/android/ex/camera2/portability/CameraCapabilities.java
index 0d7c302..60c8cb2 100644
--- a/camera2/portability/src/com/android/ex/camera2/portability/CameraCapabilities.java
+++ b/camera2/portability/src/com/android/ex/camera2/portability/CameraCapabilities.java
@@ -184,7 +184,7 @@ public class CameraCapabilities {
* Capture a scene using high dynamic range imaging techniques.
* @see {@link android.hardware.Camera.Parameters#SCENE_MODE_HDR}.
*/
- // TODO: Unsupported on API 2
+ // Note: Supported as a vendor tag on the Camera2 API for some LEGACY devices.
HDR,
/**
* Take pictures on distant objects.
diff --git a/camera2/portability/src/com/android/ex/camera2/portability/LegacyVendorTags.java b/camera2/portability/src/com/android/ex/camera2/portability/LegacyVendorTags.java
new file mode 100644
index 0000000..e55748d
--- /dev/null
+++ b/camera2/portability/src/com/android/ex/camera2/portability/LegacyVendorTags.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.ex.camera2.portability;
+
+import android.hardware.camera2.CameraCharacteristics;
+
+import java.lang.ExceptionInInitializerError;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+
+/**
+ * Vendor tag declarations for the Legacy Camera2 API implementation.
+ */
+public class LegacyVendorTags {
+
+ /**
+ * Hidden enum for scene modes supported only by the Camera1 API.
+ */
+ public static final int CONTROL_SCENE_MODE_HDR;
+
+ static {
+ try {
+ CONTROL_SCENE_MODE_HDR =
+ Class.forName("android.hardware.camera2.CameraCharacteristics").
+ getField("CONTROL_SCENE_MODE_HDR").getInt(null);
+ } catch (Exception e) {
+ throw new ExceptionInInitializerError(
+ "Error while reflecting on LegacyVendorTags: " + e);
+ }
+ }
+
+ private LegacyVendorTags() {
+ throw new AssertionError();
+ }
+} \ No newline at end of file