summaryrefslogtreecommitdiffstats
path: root/camera2
diff options
context:
space:
mode:
authorRuben Brunk <rubenbrunk@google.com>2014-08-27 18:52:32 -0700
committerRuben Brunk <rubenbrunk@google.com>2014-08-28 18:50:59 -0700
commit54c8f898815a233ba6478630940432ddafdb4314 (patch)
treed14746bc5ccc56ed471023f9179a4e1bcdfa6433 /camera2
parentf27e71f979e803a3ac00f4057eb909886d957a3e (diff)
downloadandroid_frameworks_ex-54c8f898815a233ba6478630940432ddafdb4314.tar.gz
android_frameworks_ex-54c8f898815a233ba6478630940432ddafdb4314.tar.bz2
android_frameworks_ex-54c8f898815a233ba6478630940432ddafdb4314.zip
camera2: Add HDR vendor tag for legacy mode.
Bug: 17072609 Change-Id: Iebb97d12fc62986ad389460c253cfc504a68ad7f
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 7f6cffe..a132d08 100644
--- a/camera2/portability/src/com/android/ex/camera2/portability/AndroidCamera2Settings.java
+++ b/camera2/portability/src/com/android/ex/camera2/portability/AndroidCamera2Settings.java
@@ -405,7 +405,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