diff options
| -rw-r--r-- | api/current.txt | 2 | ||||
| -rw-r--r-- | core/java/android/hardware/camera2/CameraMetadata.java | 49 | ||||
| -rw-r--r-- | core/java/android/hardware/camera2/CaptureRequest.java | 17 |
3 files changed, 54 insertions, 14 deletions
diff --git a/api/current.txt b/api/current.txt index 37157646051e..83ccd91a7ec0 100644 --- a/api/current.txt +++ b/api/current.txt @@ -11360,6 +11360,7 @@ package android.hardware.camera2 { field public static final int CONTROL_SCENE_MODE_BARCODE = 16; // 0x10 field public static final int CONTROL_SCENE_MODE_BEACH = 8; // 0x8 field public static final int CONTROL_SCENE_MODE_CANDLELIGHT = 15; // 0xf + field public static final int CONTROL_SCENE_MODE_DISABLED = 0; // 0x0 field public static final int CONTROL_SCENE_MODE_FACE_PRIORITY = 1; // 0x1 field public static final int CONTROL_SCENE_MODE_FIREWORKS = 12; // 0xc field public static final int CONTROL_SCENE_MODE_LANDSCAPE = 4; // 0x4 @@ -11372,7 +11373,6 @@ package android.hardware.camera2 { field public static final int CONTROL_SCENE_MODE_STEADYPHOTO = 11; // 0xb field public static final int CONTROL_SCENE_MODE_SUNSET = 10; // 0xa field public static final int CONTROL_SCENE_MODE_THEATRE = 7; // 0x7 - field public static final int CONTROL_SCENE_MODE_UNSUPPORTED = 0; // 0x0 field public static final int EDGE_MODE_FAST = 1; // 0x1 field public static final int EDGE_MODE_HIGH_QUALITY = 2; // 0x2 field public static final int EDGE_MODE_OFF = 0; // 0x0 diff --git a/core/java/android/hardware/camera2/CameraMetadata.java b/core/java/android/hardware/camera2/CameraMetadata.java index e9d794b83897..f311578473fd 100644 --- a/core/java/android/hardware/camera2/CameraMetadata.java +++ b/core/java/android/hardware/camera2/CameraMetadata.java @@ -781,95 +781,124 @@ public abstract class CameraMetadata { // /** + * <p>Indicates that no scene modes are set for a given capture request.</p> * @see CaptureRequest#CONTROL_SCENE_MODE */ - public static final int CONTROL_SCENE_MODE_UNSUPPORTED = 0; + public static final int CONTROL_SCENE_MODE_DISABLED = 0; /** - * <p>if face detection support exists Use face - * detection data to drive 3A routines. If face detection - * statistics are disabled, should still operate correctly - * (but not return face detection statistics to the - * framework).</p> - * <p>Unlike the other scene modes, aeMode, awbMode, and afMode - * remain active when FACE_PRIORITY is set. This is due to - * compatibility concerns with the old camera - * API</p> + * <p>If face detection support exists, use face + * detection data for auto-focus, auto-white balance, and + * auto-exposure routines. If face detection statistics are + * disabled (i.e. {@link CaptureRequest#STATISTICS_FACE_DETECT_MODE android.statistics.faceDetectMode} is set to OFF), + * this should still operate correctly (but will not return + * face detection statistics to the framework).</p> + * <p>Unlike the other scene modes, {@link CaptureRequest#CONTROL_AE_MODE android.control.aeMode}, + * {@link CaptureRequest#CONTROL_AWB_MODE android.control.awbMode}, and android.control.afMode + * remain active when FACE_PRIORITY is set.</p> + * + * @see CaptureRequest#CONTROL_AE_MODE + * @see CaptureRequest#CONTROL_AWB_MODE + * @see CaptureRequest#STATISTICS_FACE_DETECT_MODE * @see CaptureRequest#CONTROL_SCENE_MODE */ public static final int CONTROL_SCENE_MODE_FACE_PRIORITY = 1; /** + * <p>Optimized for photos of quickly moving objects. + * Similar to SPORTS.</p> * @see CaptureRequest#CONTROL_SCENE_MODE */ public static final int CONTROL_SCENE_MODE_ACTION = 2; /** + * <p>Optimized for still photos of people.</p> * @see CaptureRequest#CONTROL_SCENE_MODE */ public static final int CONTROL_SCENE_MODE_PORTRAIT = 3; /** + * <p>Optimized for photos of distant macroscopic objects.</p> * @see CaptureRequest#CONTROL_SCENE_MODE */ public static final int CONTROL_SCENE_MODE_LANDSCAPE = 4; /** + * <p>Optimized for low-light settings.</p> * @see CaptureRequest#CONTROL_SCENE_MODE */ public static final int CONTROL_SCENE_MODE_NIGHT = 5; /** + * <p>Optimized for still photos of people in low-light + * settings.</p> * @see CaptureRequest#CONTROL_SCENE_MODE */ public static final int CONTROL_SCENE_MODE_NIGHT_PORTRAIT = 6; /** + * <p>Optimized for dim, indoor settings where flash must + * remain off.</p> * @see CaptureRequest#CONTROL_SCENE_MODE */ public static final int CONTROL_SCENE_MODE_THEATRE = 7; /** + * <p>Optimized for bright, outdoor beach settings.</p> * @see CaptureRequest#CONTROL_SCENE_MODE */ public static final int CONTROL_SCENE_MODE_BEACH = 8; /** + * <p>Optimized for bright, outdoor settings containing snow.</p> * @see CaptureRequest#CONTROL_SCENE_MODE */ public static final int CONTROL_SCENE_MODE_SNOW = 9; /** + * <p>Optimized for scenes of the setting sun.</p> * @see CaptureRequest#CONTROL_SCENE_MODE */ public static final int CONTROL_SCENE_MODE_SUNSET = 10; /** + * <p>Optimized to avoid blurry photos due to small amounts of + * device motion (for example: due to hand shake).</p> * @see CaptureRequest#CONTROL_SCENE_MODE */ public static final int CONTROL_SCENE_MODE_STEADYPHOTO = 11; /** + * <p>Optimized for nighttime photos of fireworks.</p> * @see CaptureRequest#CONTROL_SCENE_MODE */ public static final int CONTROL_SCENE_MODE_FIREWORKS = 12; /** + * <p>Optimized for photos of quickly moving people. + * Similar to ACTION.</p> * @see CaptureRequest#CONTROL_SCENE_MODE */ public static final int CONTROL_SCENE_MODE_SPORTS = 13; /** + * <p>Optimized for dim, indoor settings with multiple moving + * people.</p> * @see CaptureRequest#CONTROL_SCENE_MODE */ public static final int CONTROL_SCENE_MODE_PARTY = 14; /** + * <p>Optimized for dim settings where the main light source + * is a flame.</p> * @see CaptureRequest#CONTROL_SCENE_MODE */ public static final int CONTROL_SCENE_MODE_CANDLELIGHT = 15; /** + * <p>Optimized for accurately capturing a photo of barcode + * for use by camera applications that wish to read the + * barcode value.</p> * @see CaptureRequest#CONTROL_SCENE_MODE */ public static final int CONTROL_SCENE_MODE_BARCODE = 16; diff --git a/core/java/android/hardware/camera2/CaptureRequest.java b/core/java/android/hardware/camera2/CaptureRequest.java index 176132b68296..cac457b4aefa 100644 --- a/core/java/android/hardware/camera2/CaptureRequest.java +++ b/core/java/android/hardware/camera2/CaptureRequest.java @@ -758,11 +758,22 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable { new Key<Integer>("android.control.mode", int.class); /** - * <p>Which scene mode is active when - * {@link CaptureRequest#CONTROL_MODE android.control.mode} = SCENE_MODE</p> + * <p>A camera mode optimized for conditions typical in a particular + * capture setting.</p> + * <p>This is the mode that that is active when + * <code>{@link CaptureRequest#CONTROL_MODE android.control.mode} == USE_SCENE_MODE</code>. Aside from FACE_PRIORITY, + * these modes will disable {@link CaptureRequest#CONTROL_AE_MODE android.control.aeMode}, + * {@link CaptureRequest#CONTROL_AWB_MODE android.control.awbMode}, and {@link CaptureRequest#CONTROL_AF_MODE android.control.afMode} while in use.</p> + * <p>The interpretation and implementation of these scene modes is left + * to the implementor of the camera device. Their behavior will not be + * consistent across all devices, and any given device may only implement + * a subset of these modes.</p> * + * @see CaptureRequest#CONTROL_AE_MODE + * @see CaptureRequest#CONTROL_AF_MODE + * @see CaptureRequest#CONTROL_AWB_MODE * @see CaptureRequest#CONTROL_MODE - * @see #CONTROL_SCENE_MODE_UNSUPPORTED + * @see #CONTROL_SCENE_MODE_DISABLED * @see #CONTROL_SCENE_MODE_FACE_PRIORITY * @see #CONTROL_SCENE_MODE_ACTION * @see #CONTROL_SCENE_MODE_PORTRAIT |