Camera2: Update tonemap curve definitions.
This updates android.tonemap.curveGreen and android.tonemap.curveBlue
definitions.
Also update android.sensor.info.physicalSize type.
Bug: 10394966
Change-Id: I23156ad0cd67fa59500a1c803068e392514756d4
diff --git a/core/java/android/hardware/camera2/CameraProperties.java b/core/java/android/hardware/camera2/CameraProperties.java
index e713d21..0c39705 100644
--- a/core/java/android/hardware/camera2/CameraProperties.java
+++ b/core/java/android/hardware/camera2/CameraProperties.java
@@ -384,8 +384,8 @@
* Needed for FOV calculation for old API
* </p>
*/
- public static final Key<android.hardware.camera2.Size> SENSOR_INFO_PHYSICAL_SIZE =
- new Key<android.hardware.camera2.Size>("android.sensor.info.physicalSize", android.hardware.camera2.Size.class);
+ public static final Key<float[]> SENSOR_INFO_PHYSICAL_SIZE =
+ new Key<float[]>("android.sensor.info.physicalSize", float[].class);
/**
* <p>
diff --git a/core/java/android/hardware/camera2/CaptureRequest.java b/core/java/android/hardware/camera2/CaptureRequest.java
index f2f6190..8b5bf4a 100644
--- a/core/java/android/hardware/camera2/CaptureRequest.java
+++ b/core/java/android/hardware/camera2/CaptureRequest.java
@@ -855,18 +855,30 @@
* Table mapping blue input values to output
* values
* </p>
+ * <p>
+ * Tonemapping / contrast / gamma curve for the blue
+ * channel, to use when android.tonemap.mode is CONTRAST_CURVE.
+ * </p><p>
+ * See android.tonemap.curveRed for more details.
+ * </p>
*/
- public static final Key<Float> TONEMAP_CURVE_BLUE =
- new Key<Float>("android.tonemap.curveBlue", float.class);
+ public static final Key<float[]> TONEMAP_CURVE_BLUE =
+ new Key<float[]>("android.tonemap.curveBlue", float[].class);
/**
* <p>
* Table mapping green input values to output
* values
* </p>
+ * <p>
+ * Tonemapping / contrast / gamma curve for the green
+ * channel, to use when android.tonemap.mode is CONTRAST_CURVE.
+ * </p><p>
+ * See android.tonemap.curveRed for more details.
+ * </p>
*/
- public static final Key<Float> TONEMAP_CURVE_GREEN =
- new Key<Float>("android.tonemap.curveGreen", float.class);
+ public static final Key<float[]> TONEMAP_CURVE_GREEN =
+ new Key<float[]>("android.tonemap.curveGreen", float[].class);
/**
* <p>
@@ -874,9 +886,17 @@
* values
* </p>
* <p>
- * .The input range must be monotonically increasing
- * with N, and values between entries should be linearly
- * interpolated. For example, if the array is: [0.0, 0.0,
+ * Tonemapping / contrast / gamma curve for the red
+ * channel, to use when android.tonemap.mode is CONTRAST_CURVE.
+ * </p><p>
+ * Since the input and output ranges may vary depending on
+ * the camera pipeline, the input and output pixel values
+ * are represented by normalized floating-point values
+ * between 0 and 1, with 0 == black and 1 == white.
+ * </p><p>
+ * The curve should be linearly interpolated between the
+ * defined points. The points will be listed in increasing
+ * order of P_IN. For example, if the array is: [0.0, 0.0,
* 0.3, 0.5, 1.0, 1.0], then the input->output mapping
* for a few sample points would be: 0 -> 0, 0.15 ->
* 0.25, 0.3 -> 0.5, 0.5 -> 0.64
diff --git a/core/java/android/hardware/camera2/CaptureResult.java b/core/java/android/hardware/camera2/CaptureResult.java
index 83ec07f..ef6aaa0 100644
--- a/core/java/android/hardware/camera2/CaptureResult.java
+++ b/core/java/android/hardware/camera2/CaptureResult.java
@@ -877,18 +877,30 @@
* Table mapping blue input values to output
* values
* </p>
+ * <p>
+ * Tonemapping / contrast / gamma curve for the blue
+ * channel, to use when android.tonemap.mode is CONTRAST_CURVE.
+ * </p><p>
+ * See android.tonemap.curveRed for more details.
+ * </p>
*/
- public static final Key<Float> TONEMAP_CURVE_BLUE =
- new Key<Float>("android.tonemap.curveBlue", float.class);
+ public static final Key<float[]> TONEMAP_CURVE_BLUE =
+ new Key<float[]>("android.tonemap.curveBlue", float[].class);
/**
* <p>
* Table mapping green input values to output
* values
* </p>
+ * <p>
+ * Tonemapping / contrast / gamma curve for the green
+ * channel, to use when android.tonemap.mode is CONTRAST_CURVE.
+ * </p><p>
+ * See android.tonemap.curveRed for more details.
+ * </p>
*/
- public static final Key<Float> TONEMAP_CURVE_GREEN =
- new Key<Float>("android.tonemap.curveGreen", float.class);
+ public static final Key<float[]> TONEMAP_CURVE_GREEN =
+ new Key<float[]>("android.tonemap.curveGreen", float[].class);
/**
* <p>
@@ -896,9 +908,17 @@
* values
* </p>
* <p>
- * .The input range must be monotonically increasing
- * with N, and values between entries should be linearly
- * interpolated. For example, if the array is: [0.0, 0.0,
+ * Tonemapping / contrast / gamma curve for the red
+ * channel, to use when android.tonemap.mode is CONTRAST_CURVE.
+ * </p><p>
+ * Since the input and output ranges may vary depending on
+ * the camera pipeline, the input and output pixel values
+ * are represented by normalized floating-point values
+ * between 0 and 1, with 0 == black and 1 == white.
+ * </p><p>
+ * The curve should be linearly interpolated between the
+ * defined points. The points will be listed in increasing
+ * order of P_IN. For example, if the array is: [0.0, 0.0,
* 0.3, 0.5, 1.0, 1.0], then the input->output mapping
* for a few sample points would be: 0 -> 0, 0.15 ->
* 0.25, 0.3 -> 0.5, 0.5 -> 0.64