diff --git a/api/current.txt b/api/current.txt index 86f1a3b525839..b06786f5bc185 100644 --- a/api/current.txt +++ b/api/current.txt @@ -15639,6 +15639,7 @@ package android.hardware.camera2 { field public static final android.hardware.camera2.CameraCharacteristics.Key STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES; field public static final android.hardware.camera2.CameraCharacteristics.Key STATISTICS_INFO_AVAILABLE_HOT_PIXEL_MAP_MODES; field public static final android.hardware.camera2.CameraCharacteristics.Key STATISTICS_INFO_AVAILABLE_LENS_SHADING_MAP_MODES; + field public static final android.hardware.camera2.CameraCharacteristics.Key STATISTICS_INFO_AVAILABLE_OIS_DATA_MODES; field public static final android.hardware.camera2.CameraCharacteristics.Key STATISTICS_INFO_MAX_FACE_COUNT; field public static final android.hardware.camera2.CameraCharacteristics.Key SYNC_MAX_LATENCY; field public static final android.hardware.camera2.CameraCharacteristics.Key TONEMAP_AVAILABLE_TONE_MAP_MODES; @@ -15902,6 +15903,8 @@ package android.hardware.camera2 { field public static final int STATISTICS_FACE_DETECT_MODE_SIMPLE = 1; // 0x1 field public static final int STATISTICS_LENS_SHADING_MAP_MODE_OFF = 0; // 0x0 field public static final int STATISTICS_LENS_SHADING_MAP_MODE_ON = 1; // 0x1 + field public static final int STATISTICS_OIS_DATA_MODE_OFF = 0; // 0x0 + field public static final int STATISTICS_OIS_DATA_MODE_ON = 1; // 0x1 field public static final int STATISTICS_SCENE_FLICKER_50HZ = 1; // 0x1 field public static final int STATISTICS_SCENE_FLICKER_60HZ = 2; // 0x2 field public static final int STATISTICS_SCENE_FLICKER_NONE = 0; // 0x0 @@ -15984,6 +15987,7 @@ package android.hardware.camera2 { field public static final android.hardware.camera2.CaptureRequest.Key STATISTICS_FACE_DETECT_MODE; field public static final android.hardware.camera2.CaptureRequest.Key STATISTICS_HOT_PIXEL_MAP_MODE; field public static final android.hardware.camera2.CaptureRequest.Key STATISTICS_LENS_SHADING_MAP_MODE; + field public static final android.hardware.camera2.CaptureRequest.Key STATISTICS_OIS_DATA_MODE; field public static final android.hardware.camera2.CaptureRequest.Key TONEMAP_CURVE; field public static final android.hardware.camera2.CaptureRequest.Key TONEMAP_GAMMA; field public static final android.hardware.camera2.CaptureRequest.Key TONEMAP_MODE; @@ -16083,6 +16087,10 @@ package android.hardware.camera2 { field public static final android.hardware.camera2.CaptureResult.Key STATISTICS_HOT_PIXEL_MAP_MODE; field public static final android.hardware.camera2.CaptureResult.Key STATISTICS_LENS_SHADING_CORRECTION_MAP; field public static final android.hardware.camera2.CaptureResult.Key STATISTICS_LENS_SHADING_MAP_MODE; + field public static final android.hardware.camera2.CaptureResult.Key STATISTICS_OIS_DATA_MODE; + field public static final android.hardware.camera2.CaptureResult.Key STATISTICS_OIS_TIMESTAMPS; + field public static final android.hardware.camera2.CaptureResult.Key STATISTICS_OIS_X_SHIFTS; + field public static final android.hardware.camera2.CaptureResult.Key STATISTICS_OIS_Y_SHIFTS; field public static final android.hardware.camera2.CaptureResult.Key STATISTICS_SCENE_FLICKER; field public static final android.hardware.camera2.CaptureResult.Key TONEMAP_CURVE; field public static final android.hardware.camera2.CaptureResult.Key TONEMAP_GAMMA; diff --git a/core/java/android/hardware/camera2/CameraCharacteristics.java b/core/java/android/hardware/camera2/CameraCharacteristics.java index 1201ef48220a2..5e179171e91ba 100644 --- a/core/java/android/hardware/camera2/CameraCharacteristics.java +++ b/core/java/android/hardware/camera2/CameraCharacteristics.java @@ -2869,6 +2869,21 @@ public final class CameraCharacteristics extends CameraMetadata STATISTICS_INFO_AVAILABLE_LENS_SHADING_MAP_MODES = new Key("android.statistics.info.availableLensShadingMapModes", int[].class); + /** + *

List of OIS data output modes for {@link CaptureRequest#STATISTICS_OIS_DATA_MODE android.statistics.oisDataMode} that + * are supported by this camera device.

+ *

If no OIS data output is available for this camera device, this key will + * contain only OFF.

+ *

Range of valid values:
+ * Any value listed in {@link CaptureRequest#STATISTICS_OIS_DATA_MODE android.statistics.oisDataMode}

+ *

Optional - This value may be {@code null} on some devices.

+ * + * @see CaptureRequest#STATISTICS_OIS_DATA_MODE + */ + @PublicKey + public static final Key STATISTICS_INFO_AVAILABLE_OIS_DATA_MODES = + new Key("android.statistics.info.availableOisDataModes", int[].class); + /** *

Maximum number of supported points in the * tonemap curve that can be used for {@link CaptureRequest#TONEMAP_CURVE android.tonemap.curve}.

diff --git a/core/java/android/hardware/camera2/CameraMetadata.java b/core/java/android/hardware/camera2/CameraMetadata.java index 2294ec56525f2..35b53734889a5 100644 --- a/core/java/android/hardware/camera2/CameraMetadata.java +++ b/core/java/android/hardware/camera2/CameraMetadata.java @@ -2565,6 +2565,22 @@ public abstract class CameraMetadata { */ public static final int STATISTICS_LENS_SHADING_MAP_MODE_ON = 1; + // + // Enumeration values for CaptureRequest#STATISTICS_OIS_DATA_MODE + // + + /** + *

Do not include OIS data in the capture result.

+ * @see CaptureRequest#STATISTICS_OIS_DATA_MODE + */ + public static final int STATISTICS_OIS_DATA_MODE_OFF = 0; + + /** + *

Include OIS data in the capture result.

+ * @see CaptureRequest#STATISTICS_OIS_DATA_MODE + */ + public static final int STATISTICS_OIS_DATA_MODE_ON = 1; + // // Enumeration values for CaptureRequest#TONEMAP_MODE // diff --git a/core/java/android/hardware/camera2/CaptureRequest.java b/core/java/android/hardware/camera2/CaptureRequest.java index ce75fa52eff7e..437d6b0e629f8 100644 --- a/core/java/android/hardware/camera2/CaptureRequest.java +++ b/core/java/android/hardware/camera2/CaptureRequest.java @@ -2618,6 +2618,29 @@ public final class CaptureRequest extends CameraMetadata> public static final Key STATISTICS_LENS_SHADING_MAP_MODE = new Key("android.statistics.lensShadingMapMode", int.class); + /** + *

Whether the camera device outputs the OIS data in output + * result metadata.

+ *

When set to ON, + * {@link CaptureResult#STATISTICS_OIS_TIMESTAMPS android.statistics.oisTimestamps}, android.statistics.oisShiftPixelX, + * android.statistics.oisShiftPixelY will provide OIS data in the output result metadata.

+ *

Possible values: + *

    + *
  • {@link #STATISTICS_OIS_DATA_MODE_OFF OFF}
  • + *
  • {@link #STATISTICS_OIS_DATA_MODE_ON ON}
  • + *

+ *

Available values for this device:
+ * android.Statistics.info.availableOisDataModes

+ *

Optional - This value may be {@code null} on some devices.

+ * + * @see CaptureResult#STATISTICS_OIS_TIMESTAMPS + * @see #STATISTICS_OIS_DATA_MODE_OFF + * @see #STATISTICS_OIS_DATA_MODE_ON + */ + @PublicKey + public static final Key STATISTICS_OIS_DATA_MODE = + new Key("android.statistics.oisDataMode", int.class); + /** *

Tonemapping / contrast / gamma curve for the blue * channel, to use when {@link CaptureRequest#TONEMAP_MODE android.tonemap.mode} is diff --git a/core/java/android/hardware/camera2/CaptureResult.java b/core/java/android/hardware/camera2/CaptureResult.java index 237a92d3ca9fe..4b93511836812 100644 --- a/core/java/android/hardware/camera2/CaptureResult.java +++ b/core/java/android/hardware/camera2/CaptureResult.java @@ -3910,6 +3910,76 @@ public class CaptureResult extends CameraMetadata> { public static final Key STATISTICS_LENS_SHADING_MAP_MODE = new Key("android.statistics.lensShadingMapMode", int.class); + /** + *

Whether the camera device outputs the OIS data in output + * result metadata.

+ *

When set to ON, + * {@link CaptureResult#STATISTICS_OIS_TIMESTAMPS android.statistics.oisTimestamps}, android.statistics.oisShiftPixelX, + * android.statistics.oisShiftPixelY will provide OIS data in the output result metadata.

+ *

Possible values: + *

    + *
  • {@link #STATISTICS_OIS_DATA_MODE_OFF OFF}
  • + *
  • {@link #STATISTICS_OIS_DATA_MODE_ON ON}
  • + *

+ *

Available values for this device:
+ * android.Statistics.info.availableOisDataModes

+ *

Optional - This value may be {@code null} on some devices.

+ * + * @see CaptureResult#STATISTICS_OIS_TIMESTAMPS + * @see #STATISTICS_OIS_DATA_MODE_OFF + * @see #STATISTICS_OIS_DATA_MODE_ON + */ + @PublicKey + public static final Key STATISTICS_OIS_DATA_MODE = + new Key("android.statistics.oisDataMode", int.class); + + /** + *

An array of timestamps of OIS samples, in nanoseconds.

+ *

The array contains the timestamps of OIS samples. The timestamps are in the same + * timebase as and comparable to {@link CaptureResult#SENSOR_TIMESTAMP android.sensor.timestamp}.

+ *

Units: nanoseconds

+ *

Optional - This value may be {@code null} on some devices.

+ * + * @see CaptureResult#SENSOR_TIMESTAMP + */ + @PublicKey + public static final Key STATISTICS_OIS_TIMESTAMPS = + new Key("android.statistics.oisTimestamps", long[].class); + + /** + *

An array of shifts of OIS samples, in x direction.

+ *

The array contains the amount of shifts in x direction, in pixels, based on OIS samples. + * A positive value is a shift from left to right in active array coordinate system. For + * example, if the optical center is (1000, 500) in active array coordinates, an shift of + * (3, 0) puts the new optical center at (1003, 500).

+ *

The number of shifts must match the number of timestamps in + * {@link CaptureResult#STATISTICS_OIS_TIMESTAMPS android.statistics.oisTimestamps}.

+ *

Units: Pixels in active array.

+ *

Optional - This value may be {@code null} on some devices.

+ * + * @see CaptureResult#STATISTICS_OIS_TIMESTAMPS + */ + @PublicKey + public static final Key STATISTICS_OIS_X_SHIFTS = + new Key("android.statistics.oisXShifts", float[].class); + + /** + *

An array of shifts of OIS samples, in y direction.

+ *

The array contains the amount of shifts in y direction, in pixels, based on OIS samples. + * A positive value is a shift from top to bottom in active array coordinate system. For + * example, if the optical center is (1000, 500) in active array coordinates, an shift of + * (0, 5) puts the new optical center at (1000, 505).

+ *

The number of shifts must match the number of timestamps in + * {@link CaptureResult#STATISTICS_OIS_TIMESTAMPS android.statistics.oisTimestamps}.

+ *

Units: Pixels in active array.

+ *

Optional - This value may be {@code null} on some devices.

+ * + * @see CaptureResult#STATISTICS_OIS_TIMESTAMPS + */ + @PublicKey + public static final Key STATISTICS_OIS_Y_SHIFTS = + new Key("android.statistics.oisYShifts", float[].class); + /** *

Tonemapping / contrast / gamma curve for the blue * channel, to use when {@link CaptureRequest#TONEMAP_MODE android.tonemap.mode} is