From 2d5e89778e955b4ff209a93e738761356349d48c Mon Sep 17 00:00:00 2001 From: Zhijun He Date: Fri, 7 Feb 2014 16:13:46 -0800 Subject: Camera2: Add OFF_KEEP_STATE mode Change-Id: I8802339a6b6d8a009f3ba790ffad23c0fcbbfa94 --- api/current.txt | 1 + core/java/android/hardware/camera2/CameraMetadata.java | 8 ++++++++ core/java/android/hardware/camera2/CaptureRequest.java | 10 ++++++++-- core/java/android/hardware/camera2/CaptureResult.java | 6 ++++++ 4 files changed, 23 insertions(+), 2 deletions(-) diff --git a/api/current.txt b/api/current.txt index c08118e4a637..e27a2ed3c0c7 100644 --- a/api/current.txt +++ b/api/current.txt @@ -11427,6 +11427,7 @@ package android.hardware.camera2 { field public static final int CONTROL_EFFECT_MODE_WHITEBOARD = 6; // 0x6 field public static final int CONTROL_MODE_AUTO = 1; // 0x1 field public static final int CONTROL_MODE_OFF = 0; // 0x0 + field public static final int CONTROL_MODE_OFF_KEEP_STATE = 3; // 0x3 field public static final int CONTROL_MODE_USE_SCENE_MODE = 2; // 0x2 field public static final int CONTROL_SCENE_MODE_ACTION = 2; // 0x2 field public static final int CONTROL_SCENE_MODE_BARCODE = 16; // 0x10 diff --git a/core/java/android/hardware/camera2/CameraMetadata.java b/core/java/android/hardware/camera2/CameraMetadata.java index 3a0056bd6f5e..03ee50871ef6 100644 --- a/core/java/android/hardware/camera2/CameraMetadata.java +++ b/core/java/android/hardware/camera2/CameraMetadata.java @@ -841,6 +841,14 @@ public abstract class CameraMetadata { */ public static final int CONTROL_MODE_USE_SCENE_MODE = 2; + /** + *

Same as OFF mode, except that this capture will not be + * used by camera device background auto-exposure, auto-white balance and + * auto-focus algorithms to update their statistics.

+ * @see CaptureRequest#CONTROL_MODE + */ + public static final int CONTROL_MODE_OFF_KEEP_STATE = 3; + // // Enumeration values for CaptureRequest#CONTROL_SCENE_MODE // diff --git a/core/java/android/hardware/camera2/CaptureRequest.java b/core/java/android/hardware/camera2/CaptureRequest.java index ee180417b540..8f91e0789e2d 100644 --- a/core/java/android/hardware/camera2/CaptureRequest.java +++ b/core/java/android/hardware/camera2/CaptureRequest.java @@ -639,10 +639,10 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable { /** *

Whether AWB is currently locked to its - * latest calculated values

+ * latest calculated values.

*

Note that AWB lock is only meaningful for AUTO * mode; in other modes, AWB is already fixed to a specific - * setting

+ * setting.

*/ public static final Key CONTROL_AWB_LOCK = new Key("android.control.awbLock", boolean.class); @@ -763,11 +763,17 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable { * one of the scene mode settings (such as ACTION, SUNSET, or PARTY) * as it wishes. The camera device scene mode 3A settings are provided by * android.control.sceneModeOverrides.

+ *

When set to OFF_KEEP_STATE, it is similar to OFF mode, the only difference + * is that this frame will not be used by camera device background 3A statistics + * update, as if this frame is never captured. This mode can be used in the scenario + * where the application doesn't want a 3A manual control capture to affect + * the subsequent auto 3A capture results.

* * @see CaptureRequest#CONTROL_AF_MODE * @see #CONTROL_MODE_OFF * @see #CONTROL_MODE_AUTO * @see #CONTROL_MODE_USE_SCENE_MODE + * @see #CONTROL_MODE_OFF_KEEP_STATE */ public static final Key CONTROL_MODE = new Key("android.control.mode", int.class); diff --git a/core/java/android/hardware/camera2/CaptureResult.java b/core/java/android/hardware/camera2/CaptureResult.java index 543ce214712c..2d82a1f33cab 100644 --- a/core/java/android/hardware/camera2/CaptureResult.java +++ b/core/java/android/hardware/camera2/CaptureResult.java @@ -938,11 +938,17 @@ public final class CaptureResult extends CameraMetadata { * one of the scene mode settings (such as ACTION, SUNSET, or PARTY) * as it wishes. The camera device scene mode 3A settings are provided by * android.control.sceneModeOverrides.

+ *

When set to OFF_KEEP_STATE, it is similar to OFF mode, the only difference + * is that this frame will not be used by camera device background 3A statistics + * update, as if this frame is never captured. This mode can be used in the scenario + * where the application doesn't want a 3A manual control capture to affect + * the subsequent auto 3A capture results.

* * @see CaptureRequest#CONTROL_AF_MODE * @see #CONTROL_MODE_OFF * @see #CONTROL_MODE_AUTO * @see #CONTROL_MODE_USE_SCENE_MODE + * @see #CONTROL_MODE_OFF_KEEP_STATE */ public static final Key CONTROL_MODE = new Key("android.control.mode", int.class); -- cgit v1.2.3-59-g8ed1b