camera2: Update hotpixel tags.

Change-Id: I6e2931d54a92f3852e8abe8c480f1762c92655ad
diff --git a/api/current.txt b/api/current.txt
index 439f172..ffdd983 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -11293,6 +11293,7 @@
     field public static final android.hardware.camera2.CameraMetadata.Key SENSOR_INFO_EXPOSURE_TIME_RANGE;
     field public static final android.hardware.camera2.CameraMetadata.Key SENSOR_INFO_MAX_FRAME_DURATION;
     field public static final android.hardware.camera2.CameraMetadata.Key SENSOR_INFO_PHYSICAL_SIZE;
+    field public static final android.hardware.camera2.CameraMetadata.Key SENSOR_INFO_PIXEL_ARRAY_SIZE;
     field public static final android.hardware.camera2.CameraMetadata.Key SENSOR_INFO_SENSITIVITY_RANGE;
     field public static final android.hardware.camera2.CameraMetadata.Key SENSOR_MAX_ANALOG_SENSITIVITY;
     field public static final android.hardware.camera2.CameraMetadata.Key SENSOR_ORIENTATION;
@@ -11457,6 +11458,9 @@
     field public static final int FLASH_STATE_FIRED = 3; // 0x3
     field public static final int FLASH_STATE_READY = 2; // 0x2
     field public static final int FLASH_STATE_UNAVAILABLE = 0; // 0x0
+    field public static final int HOT_PIXEL_MODE_FAST = 1; // 0x1
+    field public static final int HOT_PIXEL_MODE_HIGH_QUALITY = 2; // 0x2
+    field public static final int HOT_PIXEL_MODE_OFF = 0; // 0x0
     field public static final int INFO_SUPPORTED_HARDWARE_LEVEL_FULL = 1; // 0x1
     field public static final int INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED = 0; // 0x0
     field public static final int LENS_FACING_BACK = 1; // 0x1
@@ -11538,6 +11542,7 @@
     field public static final android.os.Parcelable.Creator CREATOR;
     field public static final android.hardware.camera2.CameraMetadata.Key EDGE_MODE;
     field public static final android.hardware.camera2.CameraMetadata.Key FLASH_MODE;
+    field public static final android.hardware.camera2.CameraMetadata.Key HOT_PIXEL_MODE;
     field public static final android.hardware.camera2.CameraMetadata.Key JPEG_GPS_COORDINATES;
     field public static final android.hardware.camera2.CameraMetadata.Key JPEG_GPS_PROCESSING_METHOD;
     field public static final android.hardware.camera2.CameraMetadata.Key JPEG_GPS_TIMESTAMP;
@@ -11595,6 +11600,8 @@
     field public static final android.hardware.camera2.CameraMetadata.Key EDGE_MODE;
     field public static final android.hardware.camera2.CameraMetadata.Key FLASH_MODE;
     field public static final android.hardware.camera2.CameraMetadata.Key FLASH_STATE;
+    field public static final android.hardware.camera2.CameraMetadata.Key HOT_PIXEL_MAP;
+    field public static final android.hardware.camera2.CameraMetadata.Key HOT_PIXEL_MODE;
     field public static final android.hardware.camera2.CameraMetadata.Key JPEG_GPS_COORDINATES;
     field public static final android.hardware.camera2.CameraMetadata.Key JPEG_GPS_PROCESSING_METHOD;
     field public static final android.hardware.camera2.CameraMetadata.Key JPEG_GPS_TIMESTAMP;
diff --git a/core/java/android/hardware/camera2/CameraCharacteristics.java b/core/java/android/hardware/camera2/CameraCharacteristics.java
index fb098b0..3577ade 100644
--- a/core/java/android/hardware/camera2/CameraCharacteristics.java
+++ b/core/java/android/hardware/camera2/CameraCharacteristics.java
@@ -622,6 +622,16 @@
             new Key<float[]>("android.sensor.info.physicalSize", float[].class);
 
     /**
+     * <p>Dimensions of full pixel array, possibly
+     * including black calibration pixels.</p>
+     * <p>Maximum output resolution for raw format must
+     * match this in
+     * android.scaler.info.availableSizesPerFormat.</p>
+     */
+    public static final Key<android.hardware.camera2.Size> SENSOR_INFO_PIXEL_ARRAY_SIZE =
+            new Key<android.hardware.camera2.Size>("android.sensor.info.pixelArraySize", android.hardware.camera2.Size.class);
+
+    /**
      * <p>Gain factor from electrons to raw units when
      * ISO=100</p>
      * <p><b>Optional</b> - This value may be {@code null} on some devices.</p>
diff --git a/core/java/android/hardware/camera2/CameraMetadata.java b/core/java/android/hardware/camera2/CameraMetadata.java
index 03ee508..e0807e9 100644
--- a/core/java/android/hardware/camera2/CameraMetadata.java
+++ b/core/java/android/hardware/camera2/CameraMetadata.java
@@ -1025,6 +1025,34 @@
     public static final int FLASH_MODE_TORCH = 2;
 
     //
+    // Enumeration values for CaptureRequest#HOT_PIXEL_MODE
+    //
+
+    /**
+     * <p>The frame rate must not be reduced relative to sensor raw output
+     * for this option.</p>
+     * <p>No hot pixel correction is applied.</p>
+     * @see CaptureRequest#HOT_PIXEL_MODE
+     */
+    public static final int HOT_PIXEL_MODE_OFF = 0;
+
+    /**
+     * <p>The frame rate must not be reduced relative to sensor raw output
+     * for this option.</p>
+     * <p>Hot pixel correction is applied.</p>
+     * @see CaptureRequest#HOT_PIXEL_MODE
+     */
+    public static final int HOT_PIXEL_MODE_FAST = 1;
+
+    /**
+     * <p>The frame rate may be reduced relative to sensor raw output
+     * for this option.</p>
+     * <p>A high-quality hot pixel correction is applied.</p>
+     * @see CaptureRequest#HOT_PIXEL_MODE
+     */
+    public static final int HOT_PIXEL_MODE_HIGH_QUALITY = 2;
+
+    //
     // Enumeration values for CaptureRequest#LENS_OPTICAL_STABILIZATION_MODE
     //
 
diff --git a/core/java/android/hardware/camera2/CaptureRequest.java b/core/java/android/hardware/camera2/CaptureRequest.java
index 8f91e07..9904db7 100644
--- a/core/java/android/hardware/camera2/CaptureRequest.java
+++ b/core/java/android/hardware/camera2/CaptureRequest.java
@@ -872,6 +872,18 @@
             new Key<Integer>("android.flash.mode", int.class);
 
     /**
+     * <p>Set operational mode for hot pixel correction.</p>
+     * <p>Hotpixel correction interpolates out, or otherwise removes, pixels
+     * that do not accurately encode the incoming light (i.e. pixels that
+     * are stuck at an arbitrary value).</p>
+     * @see #HOT_PIXEL_MODE_OFF
+     * @see #HOT_PIXEL_MODE_FAST
+     * @see #HOT_PIXEL_MODE_HIGH_QUALITY
+     */
+    public static final Key<Integer> HOT_PIXEL_MODE =
+            new Key<Integer>("android.hotPixel.mode", int.class);
+
+    /**
      * <p>GPS coordinates to include in output JPEG
      * EXIF</p>
      */
diff --git a/core/java/android/hardware/camera2/CaptureResult.java b/core/java/android/hardware/camera2/CaptureResult.java
index 48a1870..7b2f628 100644
--- a/core/java/android/hardware/camera2/CaptureResult.java
+++ b/core/java/android/hardware/camera2/CaptureResult.java
@@ -1014,6 +1014,31 @@
             new Key<Integer>("android.flash.state", int.class);
 
     /**
+     * <p>List of <code>(x, y)</code> coordinates of hot/defective pixels on the
+     * sensor, where <code>(x, y)</code> lies between <code>(0, 0)</code>, which is the top-left
+     * of the pixel array, and the width,height of the pixel array given in
+     * {@link CameraCharacteristics#SENSOR_INFO_PIXEL_ARRAY_SIZE android.sensor.info.pixelArraySize}.  This may include hot pixels
+     * that lie outside of the active array bounds given by
+     * android.sensor.activeArraySize.</p>
+     *
+     * @see CameraCharacteristics#SENSOR_INFO_PIXEL_ARRAY_SIZE
+     */
+    public static final Key<int[]> HOT_PIXEL_MAP =
+            new Key<int[]>("android.hotPixel.map", int[].class);
+
+    /**
+     * <p>Set operational mode for hot pixel correction.</p>
+     * <p>Hotpixel correction interpolates out, or otherwise removes, pixels
+     * that do not accurately encode the incoming light (i.e. pixels that
+     * are stuck at an arbitrary value).</p>
+     * @see #HOT_PIXEL_MODE_OFF
+     * @see #HOT_PIXEL_MODE_FAST
+     * @see #HOT_PIXEL_MODE_HIGH_QUALITY
+     */
+    public static final Key<Integer> HOT_PIXEL_MODE =
+            new Key<Integer>("android.hotPixel.mode", int.class);
+
+    /**
      * <p>GPS coordinates to include in output JPEG
      * EXIF</p>
      */