From ba93fe6468ef14865ec341bc14fc4a1dc7e88704 Mon Sep 17 00:00:00 2001 From: Zhijun He Date: Fri, 17 Jan 2014 16:43:05 -0800 Subject: [PATCH] Camera2: Update shading mode spec Change-Id: Id4dc8de6e66aa130677ecab700a982943fcd8e09 --- .../hardware/camera2/CameraMetadata.java | 25 ++++++++++++++ .../hardware/camera2/CaptureRequest.java | 33 +++++++++++++++++++ .../hardware/camera2/CaptureResult.java | 33 +++++++++++++++++++ 3 files changed, 91 insertions(+) diff --git a/core/java/android/hardware/camera2/CameraMetadata.java b/core/java/android/hardware/camera2/CameraMetadata.java index 8756dd1b615d3..5c80be1acd39b 100644 --- a/core/java/android/hardware/camera2/CameraMetadata.java +++ b/core/java/android/hardware/camera2/CameraMetadata.java @@ -942,6 +942,31 @@ public abstract class CameraMetadata { */ public static final int NOISE_REDUCTION_MODE_HIGH_QUALITY = 2; + // + // Enumeration values for CaptureRequest#SHADING_MODE + // + + /** + *

No lens shading correction is applied

+ * @see CaptureRequest#SHADING_MODE + * @hide + */ + public static final int SHADING_MODE_OFF = 0; + + /** + *

Must not slow down frame rate relative to sensor raw output

+ * @see CaptureRequest#SHADING_MODE + * @hide + */ + public static final int SHADING_MODE_FAST = 1; + + /** + *

Frame rate may be reduced by high quality

+ * @see CaptureRequest#SHADING_MODE + * @hide + */ + public static final int SHADING_MODE_HIGH_QUALITY = 2; + // // Enumeration values for CaptureRequest#STATISTICS_FACE_DETECT_MODE // diff --git a/core/java/android/hardware/camera2/CaptureRequest.java b/core/java/android/hardware/camera2/CaptureRequest.java index 13a6cb6dfc1d7..0321e90461397 100644 --- a/core/java/android/hardware/camera2/CaptureRequest.java +++ b/core/java/android/hardware/camera2/CaptureRequest.java @@ -1140,6 +1140,39 @@ public final class CaptureRequest extends CameraMetadata implements Parcelable { public static final Key SENSOR_SENSITIVITY = new Key("android.sensor.sensitivity", int.class); + /** + *

Quality of lens shading correction applied + * to the image data.

+ *

When set to OFF mode, no lens shading correction will be applied by the + * camera device, and an identity lens shading map data will be provided + * if {@link CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODE android.statistics.lensShadingMapMode} == ON. For example, for lens + * shading map with size specified as {@link CameraCharacteristics#LENS_INFO_SHADING_MAP_SIZE android.lens.info.shadingMapSize} = [ 4, 3 ], + * the output {@link CaptureResult#STATISTICS_LENS_SHADING_MAP android.statistics.lensShadingMap} for this case will be an identity map + * shown below:

+ *
[ 1.0, 1.0, 1.0, 1.0,  1.0, 1.0, 1.0, 1.0,
+     * 1.0, 1.0, 1.0, 1.0,  1.0, 1.0, 1.0, 1.0,
+     * 1.0, 1.0, 1.0, 1.0,  1.0, 1.0, 1.0, 1.0,
+     * 1.0, 1.0, 1.0, 1.0,  1.0, 1.0, 1.0, 1.0,
+     * 1.0, 1.0, 1.0, 1.0,   1.0, 1.0, 1.0, 1.0,
+     * 1.0, 1.0, 1.0, 1.0,  1.0, 1.0, 1.0, 1.0 ]
+     * 
+ *

When set to other modes, lens shading correction will be applied by the + * camera device. Applications can request lens shading map data by setting + * {@link CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODE android.statistics.lensShadingMapMode} to ON, and then the camera device will provide + * lens shading map data in {@link CaptureResult#STATISTICS_LENS_SHADING_MAP android.statistics.lensShadingMap}, with size specified + * by {@link CameraCharacteristics#LENS_INFO_SHADING_MAP_SIZE android.lens.info.shadingMapSize}.

+ * + * @see CameraCharacteristics#LENS_INFO_SHADING_MAP_SIZE + * @see CaptureResult#STATISTICS_LENS_SHADING_MAP + * @see CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODE + * @see #SHADING_MODE_OFF + * @see #SHADING_MODE_FAST + * @see #SHADING_MODE_HIGH_QUALITY + * @hide + */ + public static final Key SHADING_MODE = + new Key("android.shading.mode", int.class); + /** *

State of the face detector * unit

diff --git a/core/java/android/hardware/camera2/CaptureResult.java b/core/java/android/hardware/camera2/CaptureResult.java index 9990142888422..923726742d8aa 100644 --- a/core/java/android/hardware/camera2/CaptureResult.java +++ b/core/java/android/hardware/camera2/CaptureResult.java @@ -1377,6 +1377,39 @@ public final class CaptureResult extends CameraMetadata { public static final Key SENSOR_TEMPERATURE = new Key("android.sensor.temperature", float.class); + /** + *

Quality of lens shading correction applied + * to the image data.

+ *

When set to OFF mode, no lens shading correction will be applied by the + * camera device, and an identity lens shading map data will be provided + * if {@link CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODE android.statistics.lensShadingMapMode} == ON. For example, for lens + * shading map with size specified as {@link CameraCharacteristics#LENS_INFO_SHADING_MAP_SIZE android.lens.info.shadingMapSize} = [ 4, 3 ], + * the output {@link CaptureResult#STATISTICS_LENS_SHADING_MAP android.statistics.lensShadingMap} for this case will be an identity map + * shown below:

+ *
[ 1.0, 1.0, 1.0, 1.0,  1.0, 1.0, 1.0, 1.0,
+     * 1.0, 1.0, 1.0, 1.0,  1.0, 1.0, 1.0, 1.0,
+     * 1.0, 1.0, 1.0, 1.0,  1.0, 1.0, 1.0, 1.0,
+     * 1.0, 1.0, 1.0, 1.0,  1.0, 1.0, 1.0, 1.0,
+     * 1.0, 1.0, 1.0, 1.0,   1.0, 1.0, 1.0, 1.0,
+     * 1.0, 1.0, 1.0, 1.0,  1.0, 1.0, 1.0, 1.0 ]
+     * 
+ *

When set to other modes, lens shading correction will be applied by the + * camera device. Applications can request lens shading map data by setting + * {@link CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODE android.statistics.lensShadingMapMode} to ON, and then the camera device will provide + * lens shading map data in {@link CaptureResult#STATISTICS_LENS_SHADING_MAP android.statistics.lensShadingMap}, with size specified + * by {@link CameraCharacteristics#LENS_INFO_SHADING_MAP_SIZE android.lens.info.shadingMapSize}.

+ * + * @see CameraCharacteristics#LENS_INFO_SHADING_MAP_SIZE + * @see CaptureResult#STATISTICS_LENS_SHADING_MAP + * @see CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODE + * @see #SHADING_MODE_OFF + * @see #SHADING_MODE_FAST + * @see #SHADING_MODE_HIGH_QUALITY + * @hide + */ + public static final Key SHADING_MODE = + new Key("android.shading.mode", int.class); + /** *

State of the face detector * unit