<!DOCTYPE html>
<html>
<!-- Copyright (C) 2012 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->
<head>
  <!-- automatically generated from html.mako. do NOT edit directly -->
  <meta charset="utf-8" />
  <title>Android Camera HAL2.0 Properties</title>
  <style type="text/css">
    .section { font-size: 1.5em; font-weight: bold; background-color: beige; padding: 0.5em 0em 0.5em 0.1em }
    .kind { font-size: 1.2em; font-weight: bold; padding-left: 0.5em; background-color: gray }
    .entry { background-color: burlywood }

    /* table column sizes */
    table { table-layout: fixed; width: 100%; word-wrap: break-word }
    td,th { border: 1px solid;  }
    .th_name { width: 20% }
    .th_units { width: 10% }
    .th_tags { width: 5% }
    .th_notes { width: 30% }
    .th_type { width: 20% }
    td { font-size: 0.9em; }

    /* hide the first thead, we need it there only to enforce column sizes */
    .thead_dummy { visibility: hidden; }

    /* Entry flair */
    .entry_name { font-family: monospace; font-style: italic; }

    /* Entry type flair */
    .entry_type_name { color: darkgreen; font-weight: bold; }
    .entry_type_name_enum:after { color: darkgreen; font-weight: bold; content:" (enum)" }
    .entry_type_enum_name { font-family: monospace; font-weight: bolder; }
    .entry_type_enum_notes:before { content:" - " }
    .entry_type_enum_value:before { content:" = " }
    .entry_type_enum_value { font-family: monospace; }
    .entry ul { margin: 0 0 0 0; list-style-position: inside; padding-left: 0.5em; }
    .entry ul li { padding: 0 0 0 0; margin: 0 0 0 0;}

    /* Entry tags flair */
    .entry_tags ul { list-style-type: none; }


    /* TODO: generate abbr element for each tag link? */
    /* TODO for each x.y.z try to link it to the entry */

  </style>

  <style>

    {
      /* broken...
         supposedly there is a bug in chrome that it lays out tables before
         it knows its being printed, so the page-break-* styles are ignored
         */
        tr { page-break-after: always; page-break-inside: avoid; }
    }

  </style>
</head>




<body>
  <h1>Android Camera HAL2.0 Properties</h1>

  <h2>Table of Contents</h2>
  <ul class="toc">
    <li><a href="#tag_index">Tags</a></li>


    <li><p class="toc_section"><a href="#section_colorCorrection">colorCorrection</a></p>
    <ul class="toc_section">
        <li><a href="#controls_android.colorCorrection.mode">android.colorCorrection.mode</a> (controls)</li>
        <li><a href="#controls_android.colorCorrection.transform">android.colorCorrection.transform</a> (controls)</li>
        <li><a href="#dynamic_android.colorCorrection.mode">android.colorCorrection.mode</a> (dynamic)</li>
    </ul>
    </li> <!-- toc_section -->
    <li><p class="toc_section"><a href="#section_control">control</a></p>
    <ul class="toc_section">
        <li><a href="#controls_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a> (controls)</li>
        <li><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a> (controls)</li>
        <li><a href="#controls_android.control.aeLock">android.control.aeLock</a> (controls)</li>
        <li><a href="#controls_android.control.aeMode">android.control.aeMode</a> (controls)</li>
        <li><a href="#controls_android.control.aeRegions">android.control.aeRegions</a> (controls)</li>
        <li><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a> (controls)</li>
        <li><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a> (controls)</li>
        <li><a href="#controls_android.control.afMode">android.control.afMode</a> (controls)</li>
        <li><a href="#controls_android.control.afRegions">android.control.afRegions</a> (controls)</li>
        <li><a href="#controls_android.control.afTrigger">android.control.afTrigger</a> (controls)</li>
        <li><a href="#controls_android.control.awbLock">android.control.awbLock</a> (controls)</li>
        <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
        <li><a href="#controls_android.control.awbRegions">android.control.awbRegions</a> (controls)</li>
        <li><a href="#controls_android.control.captureIntent">android.control.captureIntent</a> (controls)</li>
        <li><a href="#controls_android.control.effectMode">android.control.effectMode</a> (controls)</li>
        <li><a href="#controls_android.control.mode">android.control.mode</a> (controls)</li>
        <li><a href="#controls_android.control.sceneMode">android.control.sceneMode</a> (controls)</li>
        <li><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a> (controls)</li>
        <li><a href="#static_android.control.aeAvailableAntibandingModes">android.control.aeAvailableAntibandingModes</a> (static)</li>
        <li><a href="#static_android.control.aeAvailableModes">android.control.aeAvailableModes</a> (static)</li>
        <li><a href="#static_android.control.aeAvailableTargetFpsRanges">android.control.aeAvailableTargetFpsRanges</a> (static)</li>
        <li><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a> (static)</li>
        <li><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a> (static)</li>
        <li><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a> (static)</li>
        <li><a href="#static_android.control.availableEffects">android.control.availableEffects</a> (static)</li>
        <li><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a> (static)</li>
        <li><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a> (static)</li>
        <li><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a> (static)</li>
        <li><a href="#static_android.control.maxRegions">android.control.maxRegions</a> (static)</li>
        <li><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a> (static)</li>
        <li><a href="#dynamic_android.control.aePrecaptureId">android.control.aePrecaptureId</a> (dynamic)</li>
        <li><a href="#dynamic_android.control.aeRegions">android.control.aeRegions</a> (dynamic)</li>
        <li><a href="#dynamic_android.control.aeState">android.control.aeState</a> (dynamic)</li>
        <li><a href="#dynamic_android.control.afMode">android.control.afMode</a> (dynamic)</li>
        <li><a href="#dynamic_android.control.afRegions">android.control.afRegions</a> (dynamic)</li>
        <li><a href="#dynamic_android.control.afState">android.control.afState</a> (dynamic)</li>
        <li><a href="#dynamic_android.control.afTriggerId">android.control.afTriggerId</a> (dynamic)</li>
        <li><a href="#dynamic_android.control.awbMode">android.control.awbMode</a> (dynamic)</li>
        <li><a href="#dynamic_android.control.awbRegions">android.control.awbRegions</a> (dynamic)</li>
        <li><a href="#dynamic_android.control.awbState">android.control.awbState</a> (dynamic)</li>
        <li><a href="#dynamic_android.control.mode">android.control.mode</a> (dynamic)</li>
    </ul>
    </li> <!-- toc_section -->
    <li><p class="toc_section"><a href="#section_demosaic">demosaic</a></p>
    <ul class="toc_section">
        <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a> (controls)</li>
    </ul>
    </li> <!-- toc_section -->
    <li><p class="toc_section"><a href="#section_edge">edge</a></p>
    <ul class="toc_section">
        <li><a href="#controls_android.edge.mode">android.edge.mode</a> (controls)</li>
        <li><a href="#controls_android.edge.strength">android.edge.strength</a> (controls)</li>
        <li><a href="#dynamic_android.edge.mode">android.edge.mode</a> (dynamic)</li>
    </ul>
    </li> <!-- toc_section -->
    <li><p class="toc_section"><a href="#section_flash">flash</a></p>
    <ul class="toc_section">
        <li><a href="#controls_android.flash.firingPower">android.flash.firingPower</a> (controls)</li>
        <li><a href="#controls_android.flash.firingTime">android.flash.firingTime</a> (controls)</li>
        <li><a href="#controls_android.flash.mode">android.flash.mode</a> (controls)</li>
        <li><a href="#static_android.flash.info.available">android.flash.info.available</a> (static)</li>
        <li><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a> (static)</li>
        <li><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a> (static)</li>
        <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a> (static)</li>
        <li><a href="#dynamic_android.flash.firingPower">android.flash.firingPower</a> (dynamic)</li>
        <li><a href="#dynamic_android.flash.firingTime">android.flash.firingTime</a> (dynamic)</li>
        <li><a href="#dynamic_android.flash.mode">android.flash.mode</a> (dynamic)</li>
        <li><a href="#dynamic_android.flash.state">android.flash.state</a> (dynamic)</li>
    </ul>
    </li> <!-- toc_section -->
    <li><p class="toc_section"><a href="#section_geometric">geometric</a></p>
    <ul class="toc_section">
        <li><a href="#controls_android.geometric.mode">android.geometric.mode</a> (controls)</li>
        <li><a href="#controls_android.geometric.strength">android.geometric.strength</a> (controls)</li>
    </ul>
    </li> <!-- toc_section -->
    <li><p class="toc_section"><a href="#section_hotPixel">hotPixel</a></p>
    <ul class="toc_section">
        <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a> (controls)</li>
        <li><a href="#static_android.hotPixel.info.map">android.hotPixel.info.map</a> (static)</li>
        <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a> (dynamic)</li>
    </ul>
    </li> <!-- toc_section -->
    <li><p class="toc_section"><a href="#section_jpeg">jpeg</a></p>
    <ul class="toc_section">
        <li><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a> (controls)</li>
        <li><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a> (controls)</li>
        <li><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a> (controls)</li>
        <li><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a> (controls)</li>
        <li><a href="#controls_android.jpeg.quality">android.jpeg.quality</a> (controls)</li>
        <li><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a> (controls)</li>
        <li><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a> (controls)</li>
        <li><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a> (static)</li>
        <li><a href="#static_android.jpeg.maxSize">android.jpeg.maxSize</a> (static)</li>
        <li><a href="#dynamic_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a> (dynamic)</li>
        <li><a href="#dynamic_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a> (dynamic)</li>
        <li><a href="#dynamic_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a> (dynamic)</li>
        <li><a href="#dynamic_android.jpeg.orientation">android.jpeg.orientation</a> (dynamic)</li>
        <li><a href="#dynamic_android.jpeg.quality">android.jpeg.quality</a> (dynamic)</li>
        <li><a href="#dynamic_android.jpeg.size">android.jpeg.size</a> (dynamic)</li>
        <li><a href="#dynamic_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a> (dynamic)</li>
        <li><a href="#dynamic_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a> (dynamic)</li>
    </ul>
    </li> <!-- toc_section -->
    <li><p class="toc_section"><a href="#section_lens">lens</a></p>
    <ul class="toc_section">
        <li><a href="#controls_android.lens.aperture">android.lens.aperture</a> (controls)</li>
        <li><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a> (controls)</li>
        <li><a href="#controls_android.lens.focalLength">android.lens.focalLength</a> (controls)</li>
        <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
        <li><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (controls)</li>
        <li><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a> (static)</li>
        <li><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a> (static)</li>
        <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
        <li><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a> (static)</li>
        <li><a href="#static_android.lens.info.geometricCorrectionMap">android.lens.info.geometricCorrectionMap</a> (static)</li>
        <li><a href="#static_android.lens.info.geometricCorrectionMapSize">android.lens.info.geometricCorrectionMapSize</a> (static)</li>
        <li><a href="#static_android.lens.info.hyperfocalDistance">android.lens.info.hyperfocalDistance</a> (static)</li>
        <li><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a> (static)</li>
        <li><a href="#static_android.lens.info.shadingMap">android.lens.info.shadingMap</a> (static)</li>
        <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a> (static)</li>
        <li><a href="#static_android.lens.facing">android.lens.facing</a> (static)</li>
        <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a> (static)</li>
        <li><a href="#static_android.lens.position">android.lens.position</a> (static)</li>
        <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a> (dynamic)</li>
        <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a> (dynamic)</li>
        <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a> (dynamic)</li>
        <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a> (dynamic)</li>
        <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a> (dynamic)</li>
        <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (dynamic)</li>
        <li><a href="#dynamic_android.lens.state">android.lens.state</a> (dynamic)</li>
    </ul>
    </li> <!-- toc_section -->
    <li><p class="toc_section"><a href="#section_noiseReduction">noiseReduction</a></p>
    <ul class="toc_section">
        <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a> (controls)</li>
        <li><a href="#controls_android.noiseReduction.strength">android.noiseReduction.strength</a> (controls)</li>
        <li><a href="#dynamic_android.noiseReduction.mode">android.noiseReduction.mode</a> (dynamic)</li>
    </ul>
    </li> <!-- toc_section -->
    <li><p class="toc_section"><a href="#section_quirks">quirks</a></p>
    <ul class="toc_section">
        <li><a href="#static_android.quirks.meteringCropRegion">android.quirks.meteringCropRegion</a> (static)</li>
        <li><a href="#static_android.quirks.triggerAfWithAuto">android.quirks.triggerAfWithAuto</a> (static)</li>
        <li><a href="#static_android.quirks.useZslFormat">android.quirks.useZslFormat</a> (static)</li>
    </ul>
    </li> <!-- toc_section -->
    <li><p class="toc_section"><a href="#section_request">request</a></p>
    <ul class="toc_section">
        <li><a href="#controls_android.request.frameCount">android.request.frameCount</a> (controls)</li>
        <li><a href="#controls_android.request.id">android.request.id</a> (controls)</li>
        <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a> (controls)</li>
        <li><a href="#controls_android.request.metadataMode">android.request.metadataMode</a> (controls)</li>
        <li><a href="#controls_android.request.outputStreams">android.request.outputStreams</a> (controls)</li>
        <li><a href="#controls_android.request.type">android.request.type</a> (controls)</li>
        <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a> (static)</li>
        <li><a href="#static_android.request.maxNumReprocessStreams">android.request.maxNumReprocessStreams</a> (static)</li>
        <li><a href="#dynamic_android.request.frameCount">android.request.frameCount</a> (dynamic)</li>
        <li><a href="#dynamic_android.request.id">android.request.id</a> (dynamic)</li>
        <li><a href="#dynamic_android.request.metadataMode">android.request.metadataMode</a> (dynamic)</li>
        <li><a href="#dynamic_android.request.outputStreams">android.request.outputStreams</a> (dynamic)</li>
    </ul>
    </li> <!-- toc_section -->
    <li><p class="toc_section"><a href="#section_scaler">scaler</a></p>
    <ul class="toc_section">
        <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a> (controls)</li>
        <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a> (static)</li>
        <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a> (static)</li>
        <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a> (static)</li>
        <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a> (static)</li>
        <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a> (static)</li>
        <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a> (static)</li>
        <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a> (static)</li>
        <li><a href="#static_android.scaler.availableRawSizes">android.scaler.availableRawSizes</a> (static)</li>
        <li><a href="#static_android.scaler.maxDigitalZoom">android.scaler.maxDigitalZoom</a> (static)</li>
        <li><a href="#dynamic_android.scaler.cropRegion">android.scaler.cropRegion</a> (dynamic)</li>
    </ul>
    </li> <!-- toc_section -->
    <li><p class="toc_section"><a href="#section_sensor">sensor</a></p>
    <ul class="toc_section">
        <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a> (controls)</li>
        <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
        <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a> (controls)</li>
        <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a> (static)</li>
        <li><a href="#static_android.sensor.info.availableSensitivities">android.sensor.info.availableSensitivities</a> (static)</li>
        <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a> (static)</li>
        <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a> (static)</li>
        <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
        <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
        <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
        <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a> (static)</li>
        <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
        <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a> (static)</li>
        <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a> (static)</li>
        <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a> (static)</li>
        <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a> (static)</li>
        <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a> (static)</li>
        <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a> (static)</li>
        <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a> (static)</li>
        <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
        <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a> (static)</li>
        <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a> (static)</li>
        <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
        <li><a href="#static_android.sensor.referenceIlluminant2">android.sensor.referenceIlluminant2</a> (static)</li>
        <li><a href="#dynamic_android.sensor.exposureTime">android.sensor.exposureTime</a> (dynamic)</li>
        <li><a href="#dynamic_android.sensor.frameDuration">android.sensor.frameDuration</a> (dynamic)</li>
        <li><a href="#dynamic_android.sensor.sensitivity">android.sensor.sensitivity</a> (dynamic)</li>
        <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a> (dynamic)</li>
    </ul>
    </li> <!-- toc_section -->
    <li><p class="toc_section"><a href="#section_shading">shading</a></p>
    <ul class="toc_section">
        <li><a href="#controls_android.shading.mode">android.shading.mode</a> (controls)</li>
        <li><a href="#controls_android.shading.strength">android.shading.strength</a> (controls)</li>
        <li><a href="#dynamic_android.shading.mode">android.shading.mode</a> (dynamic)</li>
    </ul>
    </li> <!-- toc_section -->
    <li><p class="toc_section"><a href="#section_statistics">statistics</a></p>
    <ul class="toc_section">
        <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a> (controls)</li>
        <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a> (controls)</li>
        <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a> (controls)</li>
        <li><a href="#static_android.statistics.info.availableFaceDetectModes">android.statistics.info.availableFaceDetectModes</a> (static)</li>
        <li><a href="#static_android.statistics.info.histogramBucketCount">android.statistics.info.histogramBucketCount</a> (static)</li>
        <li><a href="#static_android.statistics.info.maxFaceCount">android.statistics.info.maxFaceCount</a> (static)</li>
        <li><a href="#static_android.statistics.info.maxHistogramCount">android.statistics.info.maxHistogramCount</a> (static)</li>
        <li><a href="#static_android.statistics.info.maxSharpnessMapValue">android.statistics.info.maxSharpnessMapValue</a> (static)</li>
        <li><a href="#static_android.statistics.info.sharpnessMapSize">android.statistics.info.sharpnessMapSize</a> (static)</li>
        <li><a href="#dynamic_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a> (dynamic)</li>
        <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a> (dynamic)</li>
        <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a> (dynamic)</li>
        <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a> (dynamic)</li>
        <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a> (dynamic)</li>
        <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a> (dynamic)</li>
        <li><a href="#dynamic_android.statistics.histogramMode">android.statistics.histogramMode</a> (dynamic)</li>
        <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a> (dynamic)</li>
        <li><a href="#dynamic_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a> (dynamic)</li>
    </ul>
    </li> <!-- toc_section -->
    <li><p class="toc_section"><a href="#section_tonemap">tonemap</a></p>
    <ul class="toc_section">
        <li><a href="#controls_android.tonemap.curveBlue">android.tonemap.curveBlue</a> (controls)</li>
        <li><a href="#controls_android.tonemap.curveGreen">android.tonemap.curveGreen</a> (controls)</li>
        <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a> (controls)</li>
        <li><a href="#controls_android.tonemap.mode">android.tonemap.mode</a> (controls)</li>
        <li><a href="#static_android.tonemap.maxCurvePoints">android.tonemap.maxCurvePoints</a> (static)</li>
        <li><a href="#dynamic_android.tonemap.curveBlue">android.tonemap.curveBlue</a> (dynamic)</li>
        <li><a href="#dynamic_android.tonemap.curveGreen">android.tonemap.curveGreen</a> (dynamic)</li>
        <li><a href="#dynamic_android.tonemap.curveRed">android.tonemap.curveRed</a> (dynamic)</li>
        <li><a href="#dynamic_android.tonemap.mode">android.tonemap.mode</a> (dynamic)</li>
    </ul>
    </li> <!-- toc_section -->
  </ul>

  <h1>Properties</h1>
  <table class="properties">

    <thead class="thead_dummy">
      <tr>
        <th class="th_name">Property Name</th>
        <th class="th_type">Type</th>
        <th class="th_description">Description</th>
        <th class="th_units">Units</th>
        <th class="th_range">Range</th>
        <th class="th_notes">Notes</th>
        <th class="th_tags">Tags</th>
      </tr>
    </thead> <!-- so that the first occurrence of thead is not
                         above the first occurrence of tr -->
<!-- <namespace name="android"> -->
  <tr><td colspan="7" id="section_colorCorrection" class="section">colorCorrection</td></tr>


      <tr><td colspan="7" class="kind">controls</td></tr>

      <thead>
        <tr>
          <th class="th_name">Property Name</th>
          <th class="th_type">Type</th>
          <th class="th_description">Description</th>
          <th class="th_units">Units</th>
          <th class="th_range">Range</th>
          <th class="th_notes">Notes</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="controls_android.colorCorrection.mode">
            <td class="entry_name">android.<wbr>color<wbr>Correction.<wbr>mode</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">TRANSFORM_MATRIX</span>
                    <span class="entry_type_enum_notes">Use the android.<wbr>color<wbr>Correction.<wbr>transform matrix
              to do color conversion</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FAST</span>
                    <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw
              bayer output</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
                    <span class="entry_type_enum_notes">Frame rate may be reduced by high
              quality</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.colorCorrection.transform">
            <td class="entry_name">android.<wbr>color<wbr>Correction.<wbr>transform</td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  3 x 3
                </span>

                <div class="entry_type_notes">3x3 float matrix in row-major order</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              A transform matrix to chromatically adapt
          pixels in the CIE XYZ (1931) color space from the scene
          illuminant to the sRGB-standard
          D65-illuminant
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              Output values are expected to be in the range
          (0,<wbr>1)
            </td>

            <td class="entry_notes">
              Values outside (0,<wbr>1) should be clamped.<wbr> Need to
          provide utilities to go from CCT (+hue?),<wbr> or (x,<wbr>y) white
          point,<wbr> (or AWB mode) to matrix; use linear Bradford
          algorithm.<wbr>
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>
      <tr><td colspan="7" class="kind">dynamic</td></tr>

      <thead>
        <tr>
          <th class="th_name">Property Name</th>
          <th class="th_type">Type</th>
          <th class="th_description">Description</th>
          <th class="th_units">Units</th>
          <th class="th_range">Range</th>
          <th class="th_notes">Notes</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="dynamic_android.colorCorrection.mode">
            <td class="entry_name">android.<wbr>color<wbr>Correction.<wbr>mode</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">TRANSFORM_MATRIX</span>
                    <span class="entry_type_enum_notes">Use the android.<wbr>color<wbr>Correction.<wbr>transform matrix
              to do color conversion</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FAST</span>
                    <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw
              bayer output</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
                    <span class="entry_type_enum_notes">Frame rate may be reduced by high
              quality</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>

  <!-- end of section -->
  <tr><td colspan="7" id="section_control" class="section">control</td></tr>


      <tr><td colspan="7" class="kind">controls</td></tr>

      <thead>
        <tr>
          <th class="th_name">Property Name</th>
          <th class="th_type">Type</th>
          <th class="th_description">Description</th>
          <th class="th_units">Units</th>
          <th class="th_range">Range</th>
          <th class="th_notes">Notes</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="controls_android.control.aeAntibandingMode">
            <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Antibanding<wbr>Mode</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">50HZ</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">60HZ</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">AUTO</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Enum for controlling
          antibanding
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              
          android.<wbr>control.<wbr>ae<wbr>Available<wbr>Antibanding<wbr>Modes
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.control.aeExposureCompensation">
            <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Exposure<wbr>Compensation</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Adjustment to AE target image
          brightness
            </td>

            <td class="entry_units">
              count of positive/<wbr>negative EV steps
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
              For example,<wbr> if EV step is 0.<wbr>333,<wbr> '6' will mean an
          exposure compensation of +2 EV; -3 will mean an exposure
          compensation of -1
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.control.aeLock">
            <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Lock</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF</span>
                    <span class="entry_type_enum_notes">Autoexposure lock is disabled; the AE algorithm
            is free to update its parameters.<wbr></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON</span>
                    <span class="entry_type_enum_notes">Autoexposure lock is enabled; the AE algorithm
            must not update the exposure and sensitivity parameters
            while the lock is active</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Whether AE is currently locked to its latest
          calculated values
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
              Note that even when AE is locked,<wbr> the flash may be
          fired if the AE mode is ON_<wbr>AUTO_<wbr>FLASH /<wbr> ON_<wbr>ALWAYS_<wbr>FLASH /<wbr>
          ON_<wbr>AUTO_<wbr>FLASH_<wbr>REDEYE.<wbr>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.control.aeMode">
            <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Mode</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF</span>
                    <span class="entry_type_enum_notes">Autoexposure is disabled; sensor.<wbr>exposureTime
              and sensor.<wbr>sensitivity are used</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON</span>
                    <span class="entry_type_enum_notes">Autoexposure is active,<wbr> no flash
              control</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON_AUTO_FLASH</span>
                    <span class="entry_type_enum_notes">if flash exists Autoexposure is active,<wbr> auto
            flash control; flash may be fired when precapture
            trigger is activated,<wbr> and for captures for which
            captureIntent = STILL_<wbr>CAPTURE</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span>
                    <span class="entry_type_enum_notes">if flash exists Autoexposure is active,<wbr> auto
            flash control for precapture trigger and always flash
            when captureIntent = STILL_<wbr>CAPTURE</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span>
                    <span class="entry_type_enum_notes">optional Automatic red eye reduction with flash.<wbr>
            If deemed necessary,<wbr> red eye reduction sequence should
            fire when precapture trigger is activated,<wbr> and final
            flash should fire when captureIntent =
            STILL_<wbr>CAPTURE</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Whether AE is currently updating the sensor
          exposure and sensitivity fields
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              android.<wbr>control.<wbr>ae<wbr>Available<wbr>Modes
            </td>

            <td class="entry_notes">
              Only effective if android.<wbr>control.<wbr>mode =
          AUTO
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.control.aeRegions">
            <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Regions</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  5 x area_count
                </span>



            </td> <!-- entry_type -->

            <td class="entry_description">
              List of areas to use for
          metering
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
              Each area is a rectangle plus weight: xmin,<wbr> ymin,<wbr>
          xmax,<wbr> ymax,<wbr> weight.<wbr> The coordinate system is based on the
          active pixel array,<wbr> with (0,<wbr>0) being the top-left of the
          active pixel array,<wbr> and
          (android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>width,<wbr>
          android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>height) being the
          bottom-right point of the active pixel array.<wbr> The weight
          should be nonnegative.<wbr> If all regions have 0 weight,<wbr> then
          no specific metering area needs to be used by the HAL.<wbr> If
          the metering region is outside the current
          android.<wbr>scaler.<wbr>crop<wbr>Region,<wbr> the HAL should ignore the
          sections outside the region and output the used sections
          in the frame metadata
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.control.aeTargetFpsRange">
            <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Target<wbr>Fps<wbr>Range</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  2
                </span>



            </td> <!-- entry_type -->

            <td class="entry_description">
              Range over which fps can be adjusted to
          maintain exposure
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              android.<wbr>control.<wbr>ae<wbr>Available<wbr>Target<wbr>Fps<wbr>Ranges
            </td>

            <td class="entry_notes">
              Only constrains AE algorithm,<wbr> not manual control
          of android.<wbr>sensor.<wbr>exposure<wbr>Time
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.control.aePrecaptureTrigger">
            <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Precapture<wbr>Trigger</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">IDLE</span>
                    <span class="entry_type_enum_notes">The trigger is idle.<wbr></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">START</span>
                    <span class="entry_type_enum_notes">The precapture metering sequence
              must be started.<wbr> The exact effect of the precapture
              trigger depends on the current AE mode and
              state.<wbr></span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Whether the HAL must trigger precapture
          metering.<wbr>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
              This entry is normally set to IDLE,<wbr> or is not
          included at all in the request settings.<wbr> When included and
          set to START,<wbr> the HAL must trigger the autoexposure
          precapture metering sequence.<wbr> The effect of AE precapture
          trigger depends on the current AE mode and state; see the
          camera HAL device v3 header for details.<wbr>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.control.afMode">
            <td class="entry_name">android.<wbr>control.<wbr>af<wbr>Mode</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF</span>
                    <span class="entry_type_enum_notes">The 3A routines do not control the lens;
            android.<wbr>lens.<wbr>focus<wbr>Position is controlled by the
            application</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">AUTO</span>
                    <span class="entry_type_enum_notes">if lens is not fixed focus.<wbr> Use
            android.<wbr>lens.<wbr>minimum<wbr>Focus<wbr>Distance to determine if lens
            is fixed focus In this mode,<wbr> the lens does not move
            unless the autofocus trigger action is called.<wbr> When
            that trigger is activated,<wbr> AF must transition to
            ACTIVE_<wbr>SCAN,<wbr> then to the outcome of the scan (FOCUSED
            or NOT_<wbr>FOCUSED).<wbr> Triggering cancel AF resets the lens
            position to default,<wbr> and sets the AF state to
            INACTIVE.<wbr></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">MACRO</span>
                    <span class="entry_type_enum_notes">In this mode,<wbr> the lens does not move unless the
            autofocus trigger action is called.<wbr> When that trigger
            is activated,<wbr> AF must transition to ACTIVE_<wbr>SCAN,<wbr> then
            to the outcome of the scan (FOCUSED or NOT_<wbr>FOCUSED).<wbr>
            Triggering cancel AF resets the lens position to
            default,<wbr> and sets the AF state to
            INACTIVE.<wbr></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
                    <span class="entry_type_enum_notes">In this mode,<wbr> the AF algorithm modifies the lens
            position continually to attempt to provide a
            constantly-in-focus image stream.<wbr> The focusing behavior
            should be suitable for good quality video recording;
            typically this means slower focus movement and no
            overshoots.<wbr> When the AF trigger is not involved,<wbr> the AF
            algorithm should start in INACTIVE state,<wbr> and then
            transition into PASSIVE_<wbr>SCAN and PASSIVE_<wbr>FOCUSED states
            as appropriate.<wbr> When the AF trigger is activated,<wbr> the
            algorithm should immediately transition into AF_<wbr>FOCUSED
            or AF_<wbr>NOT_<wbr>FOCUSED as appropriate,<wbr> and lock the lens
            position until a cancel AF trigger is received.<wbr> Once
            cancel is received,<wbr> the algorithm should transition
            back to INACTIVE and resume passive scan.<wbr> Note that
            this behavior is not identical to CONTINUOUS_<wbr>PICTURE,<wbr>
            since an ongoing PASSIVE_<wbr>SCAN must immediately be
            canceled.<wbr></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
                    <span class="entry_type_enum_notes">In this mode,<wbr> the AF algorithm modifies the lens
            position continually to attempt to provide a
            constantly-in-focus image stream.<wbr> The focusing behavior
            should be suitable for still image capture; typically
            this means focusing as fast as possible.<wbr> When the AF
            trigger is not involved,<wbr> the AF algorithm should start
            in INACTIVE state,<wbr> and then transition into
            PASSIVE_<wbr>SCAN and PASSIVE_<wbr>FOCUSED states as appropriate
            as it attempts to maintain focus.<wbr> When the AF trigger
            is activated,<wbr> the algorithm should finish its
            PASSIVE_<wbr>SCAN if active,<wbr> and then transition into
            AF_<wbr>FOCUSED or AF_<wbr>NOT_<wbr>FOCUSED as appropriate,<wbr> and lock
            the lens position until a cancel AF trigger is
            received.<wbr> When the AF cancel trigger is activated,<wbr> the
            algorithm should transition back to INACTIVE and then
            act as if it has just been started.<wbr></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">EDOF</span>
                    <span class="entry_type_enum_notes">Extended depth of field (digital focus).<wbr> AF
            trigger is ignored,<wbr> AF state should always be
            INACTIVE.<wbr></span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Whether AF is currently enabled,<wbr> and what
          mode it is set to
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.control.afRegions">
            <td class="entry_name">android.<wbr>control.<wbr>af<wbr>Regions</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  5 x area_count
                </span>



            </td> <!-- entry_type -->

            <td class="entry_description">
              List of areas to use for focus
          estimation
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
              Each area is a rectangle plus weight: xmin,<wbr> ymin,<wbr>
          xmax,<wbr> ymax,<wbr> weight.<wbr> The coordinate system is based on the
          active pixel array,<wbr> with (0,<wbr>0) being the top-left of the
          active pixel array,<wbr> and
          (android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>width,<wbr>
          android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>height) being the
          bottom-right point of the active pixel array.<wbr> The weight
          should be nonnegative.<wbr> If all regions have 0 weight,<wbr> then
          no specific focus area needs to be used by the HAL.<wbr> If
          the focusing region is outside the current
          android.<wbr>scaler.<wbr>crop<wbr>Region,<wbr> the HAL should ignore the
          sections outside the region and output the used sections
          in the frame metadata
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.control.afTrigger">
            <td class="entry_name">android.<wbr>control.<wbr>af<wbr>Trigger</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">IDLE</span>
                    <span class="entry_type_enum_notes">The trigger is idle.<wbr></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">START</span>
                    <span class="entry_type_enum_notes">Autofocus must trigger now.<wbr></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">CANCEL</span>
                    <span class="entry_type_enum_notes">Autofocus must return to initial
              state,<wbr> and cancel any active trigger.<wbr></span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Whether the HAL must trigger autofocus.<wbr>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
              This entry is normally set to IDLE,<wbr> or is not
          included at all in the request settings.<wbr> When included and
          set to START,<wbr> the HAL must trigger the autofocus
          algorithm.<wbr> The effect of AF trigger depends on the current
          AF mode and state; see the camera HAL device v3 header for
          details.<wbr> When set to CANCEL,<wbr> the HAL must cancel any active
          trigger,<wbr> and return to initial AF state.<wbr>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.control.awbLock">
            <td class="entry_name">android.<wbr>control.<wbr>awb<wbr>Lock</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF</span>
                    <span class="entry_type_enum_notes">Auto-whitebalance lock is disabled; the AWB
            algorithm is free to update its parameters if in AUTO
            mode.<wbr></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON</span>
                    <span class="entry_type_enum_notes">Auto-whitebalance lock is enabled; the AWB
            algorithm must not update the exposure and sensitivity
            parameters while the lock is active</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Whether AWB is currently locked to its
          latest calculated values
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
              Note that AWB lock is only meaningful for AUTO
          mode; in other modes,<wbr> AWB is already fixed to a specific
          setting
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.control.awbMode">
            <td class="entry_name">android.<wbr>control.<wbr>awb<wbr>Mode</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">AUTO</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">INCANDESCENT</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FLUORESCENT</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">WARM_FLUORESCENT</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">DAYLIGHT</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">TWILIGHT</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">SHADE</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Whether AWB is currently setting the color
          transform fields,<wbr> and what its illumination target
          is
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
              [BC - AWB lock,<wbr>AWB modes]
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
                  <li><a href="#tag_AWB">AWB</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.control.awbRegions">
            <td class="entry_name">android.<wbr>control.<wbr>awb<wbr>Regions</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  5 x area_count
                </span>



            </td> <!-- entry_type -->

            <td class="entry_description">
              List of areas to use for illuminant
          estimation
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
              Only used in AUTO mode.<wbr> Each area is a rectangle
          plus weight: xmin,<wbr> ymin,<wbr> xmax,<wbr> ymax,<wbr> weight.<wbr> The
          coordinate system is based on the active pixel array,<wbr>
          with (0,<wbr>0) being the top-left of the active pixel array,<wbr>
          and (android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>width,<wbr>
          android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>height) being the
          bottom-right point of the active pixel array.<wbr> The weight
          should be nonnegative.<wbr> If all regions have 0 weight,<wbr> then
          no specific metering area needs to be used by the HAL.<wbr> If
          the metering region is outside the current
          android.<wbr>scaler.<wbr>crop<wbr>Region,<wbr> the HAL should ignore the
          sections outside the region and output the used sections
          in the frame metadata
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.control.captureIntent">
            <td class="entry_name">android.<wbr>control.<wbr>capture<wbr>Intent</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">CUSTOM</span>
                    <span class="entry_type_enum_notes">This request doesn't fall into the other
            categories.<wbr> Default to preview-like
            behavior.<wbr></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">PREVIEW</span>
                    <span class="entry_type_enum_notes">This request is for a preview-like usecase.<wbr> The
            precapture trigger may be used to start off a metering
            w/<wbr>flash sequence</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">STILL_CAPTURE</span>
                    <span class="entry_type_enum_notes">This request is for a still capture-type
            usecase.<wbr></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">VIDEO_RECORD</span>
                    <span class="entry_type_enum_notes">This request is for a video recording
            usecase.<wbr></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">VIDEO_SNAPSHOT</span>
                    <span class="entry_type_enum_notes">This request is for a video snapshot (still
            image while recording video) usecase</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ZERO_SHUTTER_LAG</span>
                    <span class="entry_type_enum_notes">This request is for a ZSL usecase; the
            application will stream full-resolution images and
            reprocess one or several later for a final
            capture</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Information to 3A routines about the purpose
          of this capture,<wbr> to help decide optimal 3A
          strategy
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              all must be supported
            </td>

            <td class="entry_notes">
              Only used if android.<wbr>control.<wbr>mode != OFF.<wbr>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.control.effectMode">
            <td class="entry_name">android.<wbr>control.<wbr>effect<wbr>Mode</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">MONO</span>
                    <span class="entry_type_enum_optional">optional</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">NEGATIVE</span>
                    <span class="entry_type_enum_optional">optional</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">SOLARIZE</span>
                    <span class="entry_type_enum_optional">optional</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">SEPIA</span>
                    <span class="entry_type_enum_optional">optional</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">POSTERIZE</span>
                    <span class="entry_type_enum_optional">optional</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">WHITEBOARD</span>
                    <span class="entry_type_enum_optional">optional</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">BLACKBOARD</span>
                    <span class="entry_type_enum_optional">optional</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">AQUA</span>
                    <span class="entry_type_enum_optional">optional</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Whether any special color effect is in use.<wbr>
          Only used if android.<wbr>control.<wbr>mode != OFF
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              android.<wbr>control.<wbr>available<wbr>Effects
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.control.mode">
            <td class="entry_name">android.<wbr>control.<wbr>mode</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF</span>
                    <span class="entry_type_enum_notes">Full application control of pipeline.<wbr> All 3A
            routines are disabled,<wbr> no other settings in
            android.<wbr>control.<wbr>* have any effect</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">AUTO</span>
                    <span class="entry_type_enum_notes">Use settings for each individual 3A routine.<wbr>
            Manual control of capture parameters is disabled.<wbr> All
            controls in android.<wbr>control.<wbr>* besides sceneMode take
            effect</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">USE_SCENE_MODE</span>
                    <span class="entry_type_enum_notes">Use specific scene mode.<wbr> Enabling this disables
            control.<wbr>aeMode,<wbr> control.<wbr>awbMode and control.<wbr>afMode
            controls; the HAL must ignore those settings while
            USE_<wbr>SCENE_<wbr>MODE is active (except for FACE_<wbr>PRIORITY
            scene mode).<wbr> Other control entries are still active.<wbr>
            This setting can only be used if availableSceneModes !=
            UNSUPPORTED</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Overall mode of 3A control
          routines
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              all must be supported
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.control.sceneMode">
            <td class="entry_name">android.<wbr>control.<wbr>scene<wbr>Mode</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">UNSUPPORTED</span>
                    <span class="entry_type_enum_value">0</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FACE_PRIORITY</span>
                    <span class="entry_type_enum_notes">if face detection support exists Use face
            detection data to drive 3A routines.<wbr> If face detection
            statistics are disabled,<wbr> should still operate correctly
            (but not return face detection statistics to the
            framework).<wbr> Unlike the other scene modes,<wbr> aeMode,<wbr>
            awbMode,<wbr> and afMode remain active when FACE_<wbr>PRIORITY is
            set.<wbr> This is due to compatibility concerns with the old
            camera API</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ACTION</span>
                    <span class="entry_type_enum_optional">optional</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">PORTRAIT</span>
                    <span class="entry_type_enum_optional">optional</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">LANDSCAPE</span>
                    <span class="entry_type_enum_optional">optional</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">NIGHT</span>
                    <span class="entry_type_enum_optional">optional</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">NIGHT_PORTRAIT</span>
                    <span class="entry_type_enum_optional">optional</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">THEATRE</span>
                    <span class="entry_type_enum_optional">optional</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">BEACH</span>
                    <span class="entry_type_enum_optional">optional</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">SNOW</span>
                    <span class="entry_type_enum_optional">optional</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">SUNSET</span>
                    <span class="entry_type_enum_optional">optional</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">STEADYPHOTO</span>
                    <span class="entry_type_enum_optional">optional</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FIREWORKS</span>
                    <span class="entry_type_enum_optional">optional</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">SPORTS</span>
                    <span class="entry_type_enum_optional">optional</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">PARTY</span>
                    <span class="entry_type_enum_optional">optional</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">CANDLELIGHT</span>
                    <span class="entry_type_enum_optional">optional</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">BARCODE</span>
                    <span class="entry_type_enum_optional">optional</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Which scene mode is active when
          android.<wbr>control.<wbr>mode = SCENE_<wbr>MODE
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              android.<wbr>control.<wbr>available<wbr>Scene<wbr>Modes
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.control.videoStabilizationMode">
            <td class="entry_name">android.<wbr>control.<wbr>video<wbr>Stabilization<wbr>Mode</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Whether video stabilization is
          active
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
              If enabled,<wbr> video stabilization can modify the
          android.<wbr>scaler.<wbr>crop<wbr>Region to keep the video stream
          stabilized
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>
      <tr><td colspan="7" class="kind">static</td></tr>

      <thead>
        <tr>
          <th class="th_name">Property Name</th>
          <th class="th_type">Type</th>
          <th class="th_description">Description</th>
          <th class="th_units">Units</th>
          <th class="th_range">Range</th>
          <th class="th_notes">Notes</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="static_android.control.aeAvailableAntibandingModes">
            <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Available<wbr>Antibanding<wbr>Modes</td>
            <td class="entry_type">
                <span class="entry_type_name">byte</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  n
                </span>

                <div class="entry_type_notes">list of enums</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              Which set of antibanding modes are
          supported
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.control.aeAvailableModes">
            <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Available<wbr>Modes</td>
            <td class="entry_type">
                <span class="entry_type_name">byte</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  n
                </span>

                <div class="entry_type_notes">list of enums</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              Which subset of AE modes is
          supported
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              OFF,<wbr> ON must be supported.<wbr>
          ON_<wbr>AUTO_<wbr>FLASH/<wbr>ON_<wbr>ALWAYS_<wbr>FLASH must be supported if flash
          unit is available
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.control.aeAvailableTargetFpsRanges">
            <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Available<wbr>Target<wbr>Fps<wbr>Ranges</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  2 x n
                </span>

                <div class="entry_type_notes">list of pairs of frame rates</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              List of frame rate ranges supported by the
          AE algorithm/<wbr>hardware
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.control.aeCompensationRange">
            <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Compensation<wbr>Range</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  2
                </span>



            </td> <!-- entry_type -->

            <td class="entry_description">
              Maximum and minimum exposure compensation
          setting,<wbr> in counts of
          android.<wbr>control.<wbr>ae<wbr>Compensation<wbr>Step<wbr>Size
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              At least (-2,<wbr>2)/<wbr>(exp compensation step
          size)
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.control.aeCompensationStep">
            <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Compensation<wbr>Step</td>
            <td class="entry_type">
                <span class="entry_type_name">rational</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Smallest step by which exposure compensation
          can be changed
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              <= 1/<wbr>2
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.control.afAvailableModes">
            <td class="entry_name">android.<wbr>control.<wbr>af<wbr>Available<wbr>Modes</td>
            <td class="entry_type">
                <span class="entry_type_name">byte</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  n
                </span>

                <div class="entry_type_notes">List of enums</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              List of AF modes that can be
          selected
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              OFF must be included.<wbr> AUTO must be supported if
          lens allows for changing focus
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.control.availableEffects">
            <td class="entry_name">android.<wbr>control.<wbr>available<wbr>Effects</td>
            <td class="entry_type">
                <span class="entry_type_name">byte</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  n
                </span>

                <div class="entry_type_notes">list of enums</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              what subset of the full color effect enum
          list is supported
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              OFF must be listed
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.control.availableSceneModes">
            <td class="entry_name">android.<wbr>control.<wbr>available<wbr>Scene<wbr>Modes</td>
            <td class="entry_type">
                <span class="entry_type_name">byte</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  n
                </span>

                <div class="entry_type_notes">list of enums from android.<wbr>control.<wbr>scene<wbr>Mode,<wbr> plus UNSUPPORTED to indicate no scene modes are supported</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              what subset of the scene mode enum list is
          supported.<wbr>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              SCENE_<wbr>MODE_<wbr>FACE_<wbr>PRIORITY must be supported if face
          detection is supported
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.control.availableVideoStabilizationModes">
            <td class="entry_name">android.<wbr>control.<wbr>available<wbr>Video<wbr>Stabilization<wbr>Modes</td>
            <td class="entry_type">
                <span class="entry_type_name">byte</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  n
                </span>

                <div class="entry_type_notes">List of enums.<wbr></div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              List of video stabilization modes that can
          be supported
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              OFF must be included
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.control.awbAvailableModes">
            <td class="entry_name">android.<wbr>control.<wbr>awb<wbr>Available<wbr>Modes</td>
            <td class="entry_type">
                <span class="entry_type_name">byte</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
            </td>

            <td class="entry_units">
              List of enums (android.<wbr>control.<wbr>awb<wbr>Mode)
            </td>

            <td class="entry_range">
              OFF,<wbr> AUTO must be included
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.control.maxRegions">
            <td class="entry_name">android.<wbr>control.<wbr>max<wbr>Regions</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              For AE,<wbr> AWB,<wbr> and AF,<wbr> how many individual
          regions can be listed for metering?
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              >= 1
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.control.sceneModeOverrides">
            <td class="entry_name">android.<wbr>control.<wbr>scene<wbr>Mode<wbr>Overrides</td>
            <td class="entry_type">
                <span class="entry_type_name">byte</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  3 x lengthavailablescenemodes
                </span>



            </td> <!-- entry_type -->

            <td class="entry_description">
              List of AE,<wbr> AWB,<wbr> and AF modes to use for
          each available scene mode
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              For each listed scene mode,<wbr> lists the aeMode,<wbr>
          awbMode,<wbr> and afMode that the HAL wants to use for that
          scene mode.<wbr> For each entry,<wbr> the order is {aeMode,<wbr>
          awbMode,<wbr> afMode} in order of increasing index
            </td>

            <td class="entry_notes">
              When a scene mode is enabled,<wbr> the HAL is expected
          to override aeMode,<wbr> awbMode,<wbr> and afMode with its
          preferred settings for that scene mode.<wbr> To simplify
          communication with old camera API applications,<wbr> the
          service wants this override list in the static metadata.<wbr>
          The order of this list matches that of
          availableSceneModes,<wbr> with 3 entires for each scene mode.<wbr>
          The overrides listed for SCENE_<wbr>MODE_<wbr>FACE_<wbr>PRIORITY are
          ignored,<wbr> since for that mode,<wbr> the application-set aeMode,<wbr>
          awbMode,<wbr> and afMode are used instead,<wbr> like they are when
          android.<wbr>control.<wbr>mode is AUTO.<wbr> It is recommended that for
          FACE_<wbr>PRIORITY,<wbr> the overrides should be set to 0.<wbr> As an
          example,<wbr> if availableSceneModes is { FACE_<wbr>PRIORITY,<wbr>
          ACTION,<wbr> NIGHT },<wbr> then the service expects this field to
          have 9 entries; for example { 0 ,<wbr> 0,<wbr> 0,<wbr> ON_<wbr>AUTO_<wbr>FLASH,<wbr>
          AUTO,<wbr> CONTINUOUS_<wbr>PICTURE,<wbr> ON_<wbr>AUTO_<wbr>FLASH,<wbr> INCANDESCENT,<wbr>
          AUTO }
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>
      <tr><td colspan="7" class="kind">dynamic</td></tr>

      <thead>
        <tr>
          <th class="th_name">Property Name</th>
          <th class="th_type">Type</th>
          <th class="th_description">Description</th>
          <th class="th_units">Units</th>
          <th class="th_range">Range</th>
          <th class="th_notes">Notes</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="dynamic_android.control.aePrecaptureId">
            <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Precapture<wbr>Id</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              The ID sent with the latest
          CAMERA2_<wbr>TRIGGER_<wbr>PRECAPTURE_<wbr>METERING call
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
              Must be 0 if no
          CAMERA2_<wbr>TRIGGER_<wbr>PRECAPTURE_<wbr>METERING trigger received yet
          by HAL.<wbr> Always updated even if AE algorithm ignores the
          trigger
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.control.aeRegions">
            <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>Regions</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  5 x area_count
                </span>



            </td> <!-- entry_type -->

            <td class="entry_description">
              List of areas to use for
          metering
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
              Each area is a rectangle plus weight: xmin,<wbr> ymin,<wbr>
          xmax,<wbr> ymax,<wbr> weight.<wbr> The coordinate system is based on the
          active pixel array,<wbr> with (0,<wbr>0) being the top-left of the
          active pixel array,<wbr> and
          (android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>width,<wbr>
          android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>height) being the
          bottom-right point of the active pixel array.<wbr> The weight
          should be nonnegative.<wbr> If all regions have 0 weight,<wbr> then
          no specific metering area needs to be used by the HAL.<wbr> If
          the metering region is outside the current
          android.<wbr>scaler.<wbr>crop<wbr>Region,<wbr> the HAL should ignore the
          sections outside the region and output the used sections
          in the frame metadata
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.control.aeState">
            <td class="entry_name">android.<wbr>control.<wbr>ae<wbr>State</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">INACTIVE</span>
                    <span class="entry_type_enum_notes">AE is off</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">SEARCHING</span>
                    <span class="entry_type_enum_notes">AE doesn't yet have a good set of control values
            for the current scene</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">CONVERGED</span>
                    <span class="entry_type_enum_notes">AE has a good set of control values for the
            current scene</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">LOCKED</span>
                    <span class="entry_type_enum_notes">AE has been locked (aeMode =
            LOCKED)</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FLASH_REQUIRED</span>
                    <span class="entry_type_enum_notes">AE has a good set of control values,<wbr> but flash
            needs to be fired for good quality still
            capture</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">PRECAPTURE</span>
                    <span class="entry_type_enum_notes">AE has been asked to do a precapture sequence
            (through the
            trigger_<wbr>action(CAMERA2_<wbr>TRIGGER_<wbr>PRECAPTURE_<wbr>METERING)
            call),<wbr> and is currently executing it.<wbr> Once PRECAPTURE
            completes,<wbr> AE will transition to CONVERGED or
            FLASH_<wbr>REQUIRED as appropriate</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Current state of AE algorithm
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
              Whenever the AE algorithm state changes,<wbr> a
          MSG_<wbr>AUTOEXPOSURE notification must be send if a
          notification callback is registered.<wbr>
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.control.afMode">
            <td class="entry_name">android.<wbr>control.<wbr>af<wbr>Mode</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF</span>
                    <span class="entry_type_enum_notes">The 3A routines do not control the lens;
            android.<wbr>lens.<wbr>focus<wbr>Position is controlled by the
            application</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">AUTO</span>
                    <span class="entry_type_enum_notes">if lens is not fixed focus.<wbr> Use
            android.<wbr>lens.<wbr>minimum<wbr>Focus<wbr>Distance to determine if lens
            is fixed focus In this mode,<wbr> the lens does not move
            unless the autofocus trigger action is called.<wbr> When
            that trigger is activated,<wbr> AF must transition to
            ACTIVE_<wbr>SCAN,<wbr> then to the outcome of the scan (FOCUSED
            or NOT_<wbr>FOCUSED).<wbr> Triggering cancel AF resets the lens
            position to default,<wbr> and sets the AF state to
            INACTIVE.<wbr></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">MACRO</span>
                    <span class="entry_type_enum_notes">In this mode,<wbr> the lens does not move unless the
            autofocus trigger action is called.<wbr> When that trigger
            is activated,<wbr> AF must transition to ACTIVE_<wbr>SCAN,<wbr> then
            to the outcome of the scan (FOCUSED or NOT_<wbr>FOCUSED).<wbr>
            Triggering cancel AF resets the lens position to
            default,<wbr> and sets the AF state to
            INACTIVE.<wbr></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
                    <span class="entry_type_enum_notes">In this mode,<wbr> the AF algorithm modifies the lens
            position continually to attempt to provide a
            constantly-in-focus image stream.<wbr> The focusing behavior
            should be suitable for good quality video recording;
            typically this means slower focus movement and no
            overshoots.<wbr> When the AF trigger is not involved,<wbr> the AF
            algorithm should start in INACTIVE state,<wbr> and then
            transition into PASSIVE_<wbr>SCAN and PASSIVE_<wbr>FOCUSED states
            as appropriate.<wbr> When the AF trigger is activated,<wbr> the
            algorithm should immediately transition into AF_<wbr>FOCUSED
            or AF_<wbr>NOT_<wbr>FOCUSED as appropriate,<wbr> and lock the lens
            position until a cancel AF trigger is received.<wbr> Once
            cancel is received,<wbr> the algorithm should transition
            back to INACTIVE and resume passive scan.<wbr> Note that
            this behavior is not identical to CONTINUOUS_<wbr>PICTURE,<wbr>
            since an ongoing PASSIVE_<wbr>SCAN must immediately be
            canceled.<wbr></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
                    <span class="entry_type_enum_notes">In this mode,<wbr> the AF algorithm modifies the lens
            position continually to attempt to provide a
            constantly-in-focus image stream.<wbr> The focusing behavior
            should be suitable for still image capture; typically
            this means focusing as fast as possible.<wbr> When the AF
            trigger is not involved,<wbr> the AF algorithm should start
            in INACTIVE state,<wbr> and then transition into
            PASSIVE_<wbr>SCAN and PASSIVE_<wbr>FOCUSED states as appropriate
            as it attempts to maintain focus.<wbr> When the AF trigger
            is activated,<wbr> the algorithm should finish its
            PASSIVE_<wbr>SCAN if active,<wbr> and then transition into
            AF_<wbr>FOCUSED or AF_<wbr>NOT_<wbr>FOCUSED as appropriate,<wbr> and lock
            the lens position until a cancel AF trigger is
            received.<wbr> When the AF cancel trigger is activated,<wbr> the
            algorithm should transition back to INACTIVE and then
            act as if it has just been started.<wbr></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">EDOF</span>
                    <span class="entry_type_enum_notes">Extended depth of field (digital focus).<wbr> AF
            trigger is ignored,<wbr> AF state should always be
            INACTIVE.<wbr></span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Whether AF is currently enabled,<wbr> and what
          mode it is set to
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.control.afRegions">
            <td class="entry_name">android.<wbr>control.<wbr>af<wbr>Regions</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  5 x area_count
                </span>



            </td> <!-- entry_type -->

            <td class="entry_description">
              List of areas to use for focus
          estimation
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
              Each area is a rectangle plus weight: xmin,<wbr> ymin,<wbr>
          xmax,<wbr> ymax,<wbr> weight.<wbr> The coordinate system is based on the
          active pixel array,<wbr> with (0,<wbr>0) being the top-left of the
          active pixel array,<wbr> and
          (android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>width,<wbr>
          android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>height) being the
          bottom-right point of the active pixel array.<wbr> The weight
          should be nonnegative.<wbr> If all regions have 0 weight,<wbr> then
          no specific focus area needs to be used by the HAL.<wbr> If
          the focusing region is outside the current
          android.<wbr>scaler.<wbr>crop<wbr>Region,<wbr> the HAL should ignore the
          sections outside the region and output the used sections
          in the frame metadata
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.control.afState">
            <td class="entry_name">android.<wbr>control.<wbr>af<wbr>State</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">INACTIVE</span>
                    <span class="entry_type_enum_notes">AF off or has not yet tried to scan/<wbr>been asked
            to scan</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">PASSIVE_SCAN</span>
                    <span class="entry_type_enum_notes">if CONTINUOUS_<wbr>* modes are supported AF is
            currently doing an AF scan initiated by a continuous
            autofocus mode</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">PASSIVE_FOCUSED</span>
                    <span class="entry_type_enum_notes">if CONTINUOUS_<wbr>* modes are supported AF currently
            believes it is in focus,<wbr> but may restart scanning at
            any time.<wbr></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ACTIVE_SCAN</span>
                    <span class="entry_type_enum_notes">if AUTO or MACRO modes are supported AF is doing
            an AF scan because it was triggered by AF
            trigger</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FOCUSED_LOCKED</span>
                    <span class="entry_type_enum_notes">if any AF mode besides OFF is supported AF
            believes it is focused correctly and is
            locked</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">NOT_FOCUSED_LOCKED</span>
                    <span class="entry_type_enum_notes">if any AF mode besides OFF is supported AF has
            failed to focus successfully and is
            locked</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Current state of AF algorithm
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
              Whenever the AF algorithm state changes,<wbr> a
          MSG_<wbr>AUTOFOCUS notification must be send if a notification
          callback is registered.<wbr>
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.control.afTriggerId">
            <td class="entry_name">android.<wbr>control.<wbr>af<wbr>Trigger<wbr>Id</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              The ID sent with the latest
          CAMERA2_<wbr>TRIGGER_<wbr>AUTOFOCUS call
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
              Must be 0 if no CAMERA2_<wbr>TRIGGER_<wbr>AUTOFOCUS trigger
          received yet by HAL.<wbr> Always updated even if AF algorithm
          ignores the trigger
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.control.awbMode">
            <td class="entry_name">android.<wbr>control.<wbr>awb<wbr>Mode</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">AUTO</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">INCANDESCENT</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FLUORESCENT</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">WARM_FLUORESCENT</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">DAYLIGHT</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">TWILIGHT</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">SHADE</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Whether AWB is currently setting the color
          transform fields,<wbr> and what its illumination target
          is
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
              [BC - AWB lock,<wbr>AWB modes]
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
                  <li><a href="#tag_AWB">AWB</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.control.awbRegions">
            <td class="entry_name">android.<wbr>control.<wbr>awb<wbr>Regions</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  5 x area_count
                </span>



            </td> <!-- entry_type -->

            <td class="entry_description">
              List of areas to use for illuminant
          estimation
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
              Only used in AUTO mode.<wbr> Each area is a rectangle
          plus weight: xmin,<wbr> ymin,<wbr> xmax,<wbr> ymax,<wbr> weight.<wbr> The
          coordinate system is based on the active pixel array,<wbr>
          with (0,<wbr>0) being the top-left of the active pixel array,<wbr>
          and (android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>width,<wbr>
          android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>height) being the
          bottom-right point of the active pixel array.<wbr> The weight
          should be nonnegative.<wbr> If all regions have 0 weight,<wbr> then
          no specific metering area needs to be used by the HAL.<wbr> If
          the metering region is outside the current
          android.<wbr>scaler.<wbr>crop<wbr>Region,<wbr> the HAL should ignore the
          sections outside the region and output the used sections
          in the frame metadata
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.control.awbState">
            <td class="entry_name">android.<wbr>control.<wbr>awb<wbr>State</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">INACTIVE</span>
                    <span class="entry_type_enum_notes">AWB is not in auto mode</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">SEARCHING</span>
                    <span class="entry_type_enum_notes">AWB doesn't yet have a good set of control
            values for the current scene</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">CONVERGED</span>
                    <span class="entry_type_enum_notes">AWB has a good set of control values for the
            current scene</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">LOCKED</span>
                    <span class="entry_type_enum_notes">AE has been locked (aeMode =
            LOCKED)</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Current state of AWB algorithm
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
              Whenever the AWB algorithm state changes,<wbr> a
          MSG_<wbr>AUTOWHITEBALANCE notification must be send if a
          notification callback is registered.<wbr>
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.control.mode">
            <td class="entry_name">android.<wbr>control.<wbr>mode</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF</span>
                    <span class="entry_type_enum_notes">Full application control of pipeline.<wbr> All 3A
            routines are disabled,<wbr> no other settings in
            android.<wbr>control.<wbr>* have any effect</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">AUTO</span>
                    <span class="entry_type_enum_notes">Use settings for each individual 3A routine.<wbr>
            Manual control of capture parameters is disabled.<wbr> All
            controls in android.<wbr>control.<wbr>* besides sceneMode take
            effect</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">USE_SCENE_MODE</span>
                    <span class="entry_type_enum_notes">Use specific scene mode.<wbr> Enabling this disables
            control.<wbr>aeMode,<wbr> control.<wbr>awbMode and control.<wbr>afMode
            controls; the HAL must ignore those settings while
            USE_<wbr>SCENE_<wbr>MODE is active (except for FACE_<wbr>PRIORITY
            scene mode).<wbr> Other control entries are still active.<wbr>
            This setting can only be used if availableSceneModes !=
            UNSUPPORTED</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Overall mode of 3A control
          routines
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              all must be supported
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>

  <!-- end of section -->
  <tr><td colspan="7" id="section_demosaic" class="section">demosaic</td></tr>


      <tr><td colspan="7" class="kind">controls</td></tr>

      <thead>
        <tr>
          <th class="th_name">Property Name</th>
          <th class="th_type">Type</th>
          <th class="th_description">Description</th>
          <th class="th_units">Units</th>
          <th class="th_range">Range</th>
          <th class="th_notes">Notes</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="controls_android.demosaic.mode">
            <td class="entry_name">android.<wbr>demosaic.<wbr>mode</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">FAST</span>
                    <span class="entry_type_enum_notes">Minimal or no slowdown of frame rate compared to
            Bayer RAW output</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
                    <span class="entry_type_enum_notes">High-quality may reduce output frame
            rate</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Controls the quality of the demosaicing
          processing
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>

  <!-- end of section -->
  <tr><td colspan="7" id="section_edge" class="section">edge</td></tr>


      <tr><td colspan="7" class="kind">controls</td></tr>

      <thead>
        <tr>
          <th class="th_name">Property Name</th>
          <th class="th_type">Type</th>
          <th class="th_description">Description</th>
          <th class="th_units">Units</th>
          <th class="th_range">Range</th>
          <th class="th_notes">Notes</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="controls_android.edge.mode">
            <td class="entry_name">android.<wbr>edge.<wbr>mode</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF</span>
                    <span class="entry_type_enum_notes">No edge enhancement is applied</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FAST</span>
                    <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw
            bayer output</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
                    <span class="entry_type_enum_notes">Frame rate may be reduced by high
            quality</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Operation mode for edge
          enhancement
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.edge.strength">
            <td class="entry_name">android.<wbr>edge.<wbr>strength</td>
            <td class="entry_type">
                <span class="entry_type_name">byte</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Control the amount of edge enhancement
          applied to the images
            </td>

            <td class="entry_units">
              1-10; 10 is maximum sharpening
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>
      <tr><td colspan="7" class="kind">dynamic</td></tr>

      <thead>
        <tr>
          <th class="th_name">Property Name</th>
          <th class="th_type">Type</th>
          <th class="th_description">Description</th>
          <th class="th_units">Units</th>
          <th class="th_range">Range</th>
          <th class="th_notes">Notes</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="dynamic_android.edge.mode">
            <td class="entry_name">android.<wbr>edge.<wbr>mode</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF</span>
                    <span class="entry_type_enum_notes">No edge enhancement is applied</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FAST</span>
                    <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw
            bayer output</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
                    <span class="entry_type_enum_notes">Frame rate may be reduced by high
            quality</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Operation mode for edge
          enhancement
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>

  <!-- end of section -->
  <tr><td colspan="7" id="section_flash" class="section">flash</td></tr>


      <tr><td colspan="7" class="kind">controls</td></tr>

      <thead>
        <tr>
          <th class="th_name">Property Name</th>
          <th class="th_type">Type</th>
          <th class="th_description">Description</th>
          <th class="th_units">Units</th>
          <th class="th_range">Range</th>
          <th class="th_notes">Notes</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="controls_android.flash.firingPower">
            <td class="entry_name">android.<wbr>flash.<wbr>firing<wbr>Power</td>
            <td class="entry_type">
                <span class="entry_type_name">byte</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Power for flash firing/<wbr>torch
            </td>

            <td class="entry_units">
              10 is max power; 0 is no flash.<wbr> Linear
            </td>

            <td class="entry_range">
              0 - 10
            </td>

            <td class="entry_notes">
              Power for snapshot may use a different scale than
          for torch mode.<wbr> Only one entry for torch mode will be
          used
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.flash.firingTime">
            <td class="entry_name">android.<wbr>flash.<wbr>firing<wbr>Time</td>
            <td class="entry_type">
                <span class="entry_type_name">int64</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Firing time of flash relative to start of
          exposure
            </td>

            <td class="entry_units">
              nanoseconds
            </td>

            <td class="entry_range">
              0-(exposure time-flash duration)
            </td>

            <td class="entry_notes">
              Clamped to (0,<wbr> exposure time - flash
          duration).<wbr>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.flash.mode">
            <td class="entry_name">android.<wbr>flash.<wbr>mode</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF</span>
                    <span class="entry_type_enum_notes">Do not fire the flash for this
            capture</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">SINGLE</span>
                    <span class="entry_type_enum_notes">if android.<wbr>flash.<wbr>available is true Fire flash
            for this capture based on firingPower,<wbr>
            firingTime.<wbr></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">TORCH</span>
                    <span class="entry_type_enum_notes">if android.<wbr>flash.<wbr>available is true Flash
            continuously on,<wbr> power set by
            firingPower</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Select flash operation mode
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>
      <tr><td colspan="7" class="kind">static</td></tr>

      <thead>
        <tr>
          <th class="th_name">Property Name</th>
          <th class="th_type">Type</th>
          <th class="th_description">Description</th>
          <th class="th_units">Units</th>
          <th class="th_range">Range</th>
          <th class="th_notes">Notes</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        
                
            

                
          <tr class="entry" id="static_android.flash.info.available">
            <td class="entry_name">android.<wbr>flash.<wbr>info.<wbr>available</td>
            <td class="entry_type">
                <span class="entry_type_name">byte</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Whether this camera has a
            flash
            </td>

            <td class="entry_units">
              boolean (0 = false,<wbr> otherwise true)
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
              If no flash,<wbr> none of the flash controls do
            anything.<wbr> All other metadata should return 0
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.flash.info.chargeDuration">
            <td class="entry_name">android.<wbr>flash.<wbr>info.<wbr>charge<wbr>Duration</td>
            <td class="entry_type">
                <span class="entry_type_name">int64</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Time taken before flash can fire
            again
            </td>

            <td class="entry_units">
              nanoseconds
            </td>

            <td class="entry_range">
              0-1e9
            </td>

            <td class="entry_notes">
              1 second too long/<wbr>too short for recharge? Should
            this be power-dependent?
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
        
        

                
          <tr class="entry" id="static_android.flash.colorTemperature">
            <td class="entry_name">android.<wbr>flash.<wbr>color<wbr>Temperature</td>
            <td class="entry_type">
                <span class="entry_type_name">byte</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              The x,<wbr>y whitepoint of the
          flash
            </td>

            <td class="entry_units">
              pair of floats
            </td>

            <td class="entry_range">
              0-1 for both
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_ADV">ADV</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.flash.maxEnergy">
            <td class="entry_name">android.<wbr>flash.<wbr>max<wbr>Energy</td>
            <td class="entry_type">
                <span class="entry_type_name">byte</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Max energy output of the flash for a full
          power single flash
            </td>

            <td class="entry_units">
              lumen-seconds
            </td>

            <td class="entry_range">
              >= 0
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_ADV">ADV</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>
      <tr><td colspan="7" class="kind">dynamic</td></tr>

      <thead>
        <tr>
          <th class="th_name">Property Name</th>
          <th class="th_type">Type</th>
          <th class="th_description">Description</th>
          <th class="th_units">Units</th>
          <th class="th_range">Range</th>
          <th class="th_notes">Notes</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="dynamic_android.flash.firingPower">
            <td class="entry_name">android.<wbr>flash.<wbr>firing<wbr>Power</td>
            <td class="entry_type">
                <span class="entry_type_name">byte</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Power for flash firing/<wbr>torch
            </td>

            <td class="entry_units">
              10 is max power; 0 is no flash.<wbr> Linear
            </td>

            <td class="entry_range">
              0 - 10
            </td>

            <td class="entry_notes">
              Power for snapshot may use a different scale than
          for torch mode.<wbr> Only one entry for torch mode will be
          used
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.flash.firingTime">
            <td class="entry_name">android.<wbr>flash.<wbr>firing<wbr>Time</td>
            <td class="entry_type">
                <span class="entry_type_name">int64</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Firing time of flash relative to start of
          exposure
            </td>

            <td class="entry_units">
              nanoseconds
            </td>

            <td class="entry_range">
              0-(exposure time-flash duration)
            </td>

            <td class="entry_notes">
              Clamped to (0,<wbr> exposure time - flash
          duration).<wbr>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.flash.mode">
            <td class="entry_name">android.<wbr>flash.<wbr>mode</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF</span>
                    <span class="entry_type_enum_notes">Do not fire the flash for this
            capture</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">SINGLE</span>
                    <span class="entry_type_enum_notes">if android.<wbr>flash.<wbr>available is true Fire flash
            for this capture based on firingPower,<wbr>
            firingTime.<wbr></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">TORCH</span>
                    <span class="entry_type_enum_notes">if android.<wbr>flash.<wbr>available is true Flash
            continuously on,<wbr> power set by
            firingPower</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Select flash operation mode
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.flash.state">
            <td class="entry_name">android.<wbr>flash.<wbr>state</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">UNAVAILABLE</span>
                    <span class="entry_type_enum_notes">No flash on camera</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">CHARGING</span>
                    <span class="entry_type_enum_notes">if android.<wbr>flash.<wbr>available is true Flash is
            charging and cannot be fired</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">READY</span>
                    <span class="entry_type_enum_notes">if android.<wbr>flash.<wbr>available is true Flash is
            ready to fire</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FIRED</span>
                    <span class="entry_type_enum_notes">if android.<wbr>flash.<wbr>available is true Flash fired
            for this capture</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Current state of the flash
          unit
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>

  <!-- end of section -->
  <tr><td colspan="7" id="section_geometric" class="section">geometric</td></tr>


      <tr><td colspan="7" class="kind">controls</td></tr>

      <thead>
        <tr>
          <th class="th_name">Property Name</th>
          <th class="th_type">Type</th>
          <th class="th_description">Description</th>
          <th class="th_units">Units</th>
          <th class="th_range">Range</th>
          <th class="th_notes">Notes</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="controls_android.geometric.mode">
            <td class="entry_name">android.<wbr>geometric.<wbr>mode</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF</span>
                    <span class="entry_type_enum_notes">No geometric correction is
            applied</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FAST</span>
                    <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw
            bayer output</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
                    <span class="entry_type_enum_notes">Frame rate may be reduced by high
            quality</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Operating mode of geometric
          correction
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.geometric.strength">
            <td class="entry_name">android.<wbr>geometric.<wbr>strength</td>
            <td class="entry_type">
                <span class="entry_type_name">byte</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Control the amount of shading correction
          applied to the images
            </td>

            <td class="entry_units">
              unitless: 1-10; 10 is full shading
          compensation
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_ADV">ADV</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>

  <!-- end of section -->
  <tr><td colspan="7" id="section_hotPixel" class="section">hotPixel</td></tr>


      <tr><td colspan="7" class="kind">controls</td></tr>

      <thead>
        <tr>
          <th class="th_name">Property Name</th>
          <th class="th_type">Type</th>
          <th class="th_description">Description</th>
          <th class="th_units">Units</th>
          <th class="th_range">Range</th>
          <th class="th_notes">Notes</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="controls_android.hotPixel.mode">
            <td class="entry_name">android.<wbr>hot<wbr>Pixel.<wbr>mode</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF</span>
                    <span class="entry_type_enum_notes">No hot pixel correction can be
            applied</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FAST</span>
                    <span class="entry_type_enum_notes">Frame rate must not be reduced compared to raw
            Bayer output</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
                    <span class="entry_type_enum_notes">Frame rate may be reduced by high
            quality</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Set operational mode for hot pixel
          correction
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>
      <tr><td colspan="7" class="kind">static</td></tr>

      <thead>
        <tr>
          <th class="th_name">Property Name</th>
          <th class="th_type">Type</th>
          <th class="th_description">Description</th>
          <th class="th_units">Units</th>
          <th class="th_range">Range</th>
          <th class="th_notes">Notes</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        
                
            

                
          <tr class="entry" id="static_android.hotPixel.info.map">
            <td class="entry_name">android.<wbr>hot<wbr>Pixel.<wbr>info.<wbr>map</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  2 x n
                </span>

                <div class="entry_type_notes">list of coordinates based on android.<wbr>sensor.<wbr>pixel<wbr>Array<wbr>Size</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              Location of hot/<wbr>defective pixels on
            sensor
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_ADV">ADV</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
        
        

        

      <!-- end of kind -->
      </tbody>
      <tr><td colspan="7" class="kind">dynamic</td></tr>

      <thead>
        <tr>
          <th class="th_name">Property Name</th>
          <th class="th_type">Type</th>
          <th class="th_description">Description</th>
          <th class="th_units">Units</th>
          <th class="th_range">Range</th>
          <th class="th_notes">Notes</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="dynamic_android.hotPixel.mode">
            <td class="entry_name">android.<wbr>hot<wbr>Pixel.<wbr>mode</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF</span>
                    <span class="entry_type_enum_notes">No hot pixel correction can be
            applied</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FAST</span>
                    <span class="entry_type_enum_notes">Frame rate must not be reduced compared to raw
            Bayer output</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
                    <span class="entry_type_enum_notes">Frame rate may be reduced by high
            quality</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Set operational mode for hot pixel
          correction
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>

  <!-- end of section -->
  <tr><td colspan="7" id="section_jpeg" class="section">jpeg</td></tr>


      <tr><td colspan="7" class="kind">controls</td></tr>

      <thead>
        <tr>
          <th class="th_name">Property Name</th>
          <th class="th_type">Type</th>
          <th class="th_description">Description</th>
          <th class="th_units">Units</th>
          <th class="th_range">Range</th>
          <th class="th_notes">Notes</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="controls_android.jpeg.gpsCoordinates">
            <td class="entry_name">android.<wbr>jpeg.<wbr>gps<wbr>Coordinates</td>
            <td class="entry_type">
                <span class="entry_type_name">double</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  3
                </span>

                <div class="entry_type_notes">latitude,<wbr> longitude,<wbr> altitude.<wbr> First two in degrees,<wbr> the third in meters</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              GPS coordinates to include in output JPEG
          EXIF
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              (-180 - 180],<wbr> [-90,<wbr>90],<wbr> [-inf,<wbr> inf]
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.jpeg.gpsProcessingMethod">
            <td class="entry_name">android.<wbr>jpeg.<wbr>gps<wbr>Processing<wbr>Method</td>
            <td class="entry_type">
                <span class="entry_type_name">byte</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              32 characters describing GPS algorithm to
          include in EXIF
            </td>

            <td class="entry_units">
              UTF-8 null-terminated string
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.jpeg.gpsTimestamp">
            <td class="entry_name">android.<wbr>jpeg.<wbr>gps<wbr>Timestamp</td>
            <td class="entry_type">
                <span class="entry_type_name">int64</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Time GPS fix was made to include in
          EXIF
            </td>

            <td class="entry_units">
              UTC in seconds since January 1,<wbr> 1970
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.jpeg.orientation">
            <td class="entry_name">android.<wbr>jpeg.<wbr>orientation</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Orientation of JPEG image to
          write
            </td>

            <td class="entry_units">
              Degrees in multiples of 90
            </td>

            <td class="entry_range">
              0,<wbr> 90,<wbr> 180,<wbr> 270
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.jpeg.quality">
            <td class="entry_name">android.<wbr>jpeg.<wbr>quality</td>
            <td class="entry_type">
                <span class="entry_type_name">byte</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Compression quality of the final JPEG
          image
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              1-100; larger is higher quality
            </td>

            <td class="entry_notes">
              85-95 is typical usage range
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.jpeg.thumbnailQuality">
            <td class="entry_name">android.<wbr>jpeg.<wbr>thumbnail<wbr>Quality</td>
            <td class="entry_type">
                <span class="entry_type_name">byte</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Compression quality of JPEG
          thumbnail
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              1-100; larger is higher quality
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.jpeg.thumbnailSize">
            <td class="entry_name">android.<wbr>jpeg.<wbr>thumbnail<wbr>Size</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  2
                </span>



            </td> <!-- entry_type -->

            <td class="entry_description">
              Resolution of embedded JPEG
          thumbnail
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              from android.<wbr>jpeg.<wbr>available<wbr>Thumbnail<wbr>Sizes
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>
      <tr><td colspan="7" class="kind">static</td></tr>

      <thead>
        <tr>
          <th class="th_name">Property Name</th>
          <th class="th_type">Type</th>
          <th class="th_description">Description</th>
          <th class="th_units">Units</th>
          <th class="th_range">Range</th>
          <th class="th_notes">Notes</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="static_android.jpeg.availableThumbnailSizes">
            <td class="entry_name">android.<wbr>jpeg.<wbr>available<wbr>Thumbnail<wbr>Sizes</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  2 x n
                </span>

                <div class="entry_type_notes">list of resolution pairs</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              Supported resolutions for the JPEG
          thumbnail
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              Must include at least one valid resolution,<wbr> plus
          (0,<wbr>0) for no thumbnail generation
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.jpeg.maxSize">
            <td class="entry_name">android.<wbr>jpeg.<wbr>max<wbr>Size</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Maximum size in bytes for the compressed
          JPEG buffer
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              Must be large enough to fit any JPEG produced by
          the camera
            </td>

            <td class="entry_notes">
              This is used for sizing the gralloc buffers for
          JPEG
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>
      <tr><td colspan="7" class="kind">dynamic</td></tr>

      <thead>
        <tr>
          <th class="th_name">Property Name</th>
          <th class="th_type">Type</th>
          <th class="th_description">Description</th>
          <th class="th_units">Units</th>
          <th class="th_range">Range</th>
          <th class="th_notes">Notes</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="dynamic_android.jpeg.gpsCoordinates">
            <td class="entry_name">android.<wbr>jpeg.<wbr>gps<wbr>Coordinates</td>
            <td class="entry_type">
                <span class="entry_type_name">double</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  3
                </span>

                <div class="entry_type_notes">latitude,<wbr> longitude,<wbr> altitude.<wbr> First two in degrees,<wbr> the third in meters</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              GPS coordinates to include in output JPEG
          EXIF
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              (-180 - 180],<wbr> [-90,<wbr>90],<wbr> [-inf,<wbr> inf]
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.jpeg.gpsProcessingMethod">
            <td class="entry_name">android.<wbr>jpeg.<wbr>gps<wbr>Processing<wbr>Method</td>
            <td class="entry_type">
                <span class="entry_type_name">byte</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              32 characters describing GPS algorithm to
          include in EXIF
            </td>

            <td class="entry_units">
              UTF-8 null-terminated string
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.jpeg.gpsTimestamp">
            <td class="entry_name">android.<wbr>jpeg.<wbr>gps<wbr>Timestamp</td>
            <td class="entry_type">
                <span class="entry_type_name">int64</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Time GPS fix was made to include in
          EXIF
            </td>

            <td class="entry_units">
              UTC in seconds since January 1,<wbr> 1970
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.jpeg.orientation">
            <td class="entry_name">android.<wbr>jpeg.<wbr>orientation</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Orientation of JPEG image to
          write
            </td>

            <td class="entry_units">
              Degrees in multiples of 90
            </td>

            <td class="entry_range">
              0,<wbr> 90,<wbr> 180,<wbr> 270
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.jpeg.quality">
            <td class="entry_name">android.<wbr>jpeg.<wbr>quality</td>
            <td class="entry_type">
                <span class="entry_type_name">byte</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Compression quality of the final JPEG
          image
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              1-100; larger is higher quality
            </td>

            <td class="entry_notes">
              85-95 is typical usage range
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.jpeg.size">
            <td class="entry_name">android.<wbr>jpeg.<wbr>size</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              The size of the compressed JPEG image,<wbr> in
          bytes
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              >= 0
            </td>

            <td class="entry_notes">
              If no JPEG output is produced for the request,<wbr>
          this must be 0.<wbr> Otherwise,<wbr> this describes the real size
          of the compressed JPEG image placed in the output stream.<wbr>
          More specifically,<wbr> if android.<wbr>jpeg.<wbr>max<wbr>Size = 1000000,<wbr> and
          a specific capture has android.<wbr>jpeg.<wbr>size = 500000,<wbr> then
          the output buffer from the JPEG stream will be 1000000
          bytes,<wbr> of which the first 500000 make up the real
          data.<wbr>
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.jpeg.thumbnailQuality">
            <td class="entry_name">android.<wbr>jpeg.<wbr>thumbnail<wbr>Quality</td>
            <td class="entry_type">
                <span class="entry_type_name">byte</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Compression quality of JPEG
          thumbnail
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              1-100; larger is higher quality
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.jpeg.thumbnailSize">
            <td class="entry_name">android.<wbr>jpeg.<wbr>thumbnail<wbr>Size</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  2
                </span>



            </td> <!-- entry_type -->

            <td class="entry_description">
              Resolution of embedded JPEG
          thumbnail
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              from android.<wbr>jpeg.<wbr>available<wbr>Thumbnail<wbr>Sizes
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>

  <!-- end of section -->
  <tr><td colspan="7" id="section_lens" class="section">lens</td></tr>


      <tr><td colspan="7" class="kind">controls</td></tr>

      <thead>
        <tr>
          <th class="th_name">Property Name</th>
          <th class="th_type">Type</th>
          <th class="th_description">Description</th>
          <th class="th_units">Units</th>
          <th class="th_range">Range</th>
          <th class="th_notes">Notes</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="controls_android.lens.aperture">
            <td class="entry_name">android.<wbr>lens.<wbr>aperture</td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Size of the lens aperture
            </td>

            <td class="entry_units">
              f-number (f/<wbr>NNN)
            </td>

            <td class="entry_range">
              android.<wbr>lens.<wbr>info.<wbr>available<wbr>Apertures
            </td>

            <td class="entry_notes">
              Will not be supported on most devices.<wbr> Can only
          pick from supported list
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.lens.filterDensity">
            <td class="entry_name">android.<wbr>lens.<wbr>filter<wbr>Density</td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              State of lens neutral density
          filter(s)
            </td>

            <td class="entry_units">
              number of stops of filtering
            </td>

            <td class="entry_range">
              android.<wbr>lens.<wbr>info.<wbr>available<wbr>Filter<wbr>Densities
            </td>

            <td class="entry_notes">
              Will not be supported on most devices.<wbr> Can only
          pick from supported list
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.lens.focalLength">
            <td class="entry_name">android.<wbr>lens.<wbr>focal<wbr>Length</td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Lens optical zoom setting
            </td>

            <td class="entry_units">
              focal length in mm
            </td>

            <td class="entry_range">
              > 0
            </td>

            <td class="entry_notes">
              Will not be supported on most devices.<wbr>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.lens.focusDistance">
            <td class="entry_name">android.<wbr>lens.<wbr>focus<wbr>Distance</td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Distance to plane of sharpest focus,<wbr>
          measured from frontmost surface of the lens
            </td>

            <td class="entry_units">
              diopters (1/<wbr>m)
            </td>

            <td class="entry_range">
              >= 0
            </td>

            <td class="entry_notes">
              0 = infinity focus.<wbr> Used value should be clamped
          to (0,<wbr>minimum focus distance)
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.lens.opticalStabilizationMode">
            <td class="entry_name">android.<wbr>lens.<wbr>optical<wbr>Stabilization<wbr>Mode</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON</span>
                    <span class="entry_type_enum_optional">optional</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Whether optical image stabilization is
          enabled.<wbr>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              android.<wbr>lens.<wbr>available<wbr>Optical<wbr>Stabilization
            </td>

            <td class="entry_notes">
              Will not be supported on most devices.<wbr>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>
      <tr><td colspan="7" class="kind">static</td></tr>

      <thead>
        <tr>
          <th class="th_name">Property Name</th>
          <th class="th_type">Type</th>
          <th class="th_description">Description</th>
          <th class="th_units">Units</th>
          <th class="th_range">Range</th>
          <th class="th_notes">Notes</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        
                
            

                
          <tr class="entry" id="static_android.lens.info.availableApertures">
            <td class="entry_name">android.<wbr>lens.<wbr>info.<wbr>available<wbr>Apertures</td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  n
                </span>



            </td> <!-- entry_type -->

            <td class="entry_description">
              List of supported aperture
            values
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              one entry required,<wbr> > 0
            </td>

            <td class="entry_notes">
              If variable aperture not available,<wbr> only setting
            should be for the fixed aperture
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.lens.info.availableFilterDensities">
            <td class="entry_name">android.<wbr>lens.<wbr>info.<wbr>available<wbr>Filter<wbr>Densities</td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  n
                </span>



            </td> <!-- entry_type -->

            <td class="entry_description">
              List of supported ND filter
            values
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              one entry required,<wbr> >= 0
            </td>

            <td class="entry_notes">
              If not available,<wbr> only setting is 0.<wbr> Otherwise,<wbr>
            lists the available exposure index values for dimming
            (2 would mean the filter is set to reduce incoming
            light by two stops)
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.lens.info.availableFocalLengths">
            <td class="entry_name">android.<wbr>lens.<wbr>info.<wbr>available<wbr>Focal<wbr>Lengths</td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  n
                </span>

                <div class="entry_type_notes">the list of available focal lengths</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              If fitted with optical zoom,<wbr> what focal
            lengths are available.<wbr> If not,<wbr> the static focal
            length
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              > 0
            </td>

            <td class="entry_notes">
              If optical zoom not supported,<wbr> only one value
            should be reported
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.lens.info.availableOpticalStabilization">
            <td class="entry_name">android.<wbr>lens.<wbr>info.<wbr>available<wbr>Optical<wbr>Stabilization</td>
            <td class="entry_type">
                <span class="entry_type_name">byte</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  n
                </span>

                <div class="entry_type_notes">list of enums</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              List of supported optical image
            stabilization modes
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.lens.info.geometricCorrectionMap">
            <td class="entry_name">android.<wbr>lens.<wbr>info.<wbr>geometric<wbr>Correction<wbr>Map</td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  2 x 3 x n x m
                </span>

                <div class="entry_type_notes">2D array of destination coordinate pairs for uniform grid points in source image,<wbr> per color channel.<wbr> Size in the range of 2x3x40x30</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              A low-resolution map for correction of
            geometric distortions and chromatic aberrations,<wbr> per
            color channel
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              N,<wbr> M >= 2
            </td>

            <td class="entry_notes">
              [DNG wants a function instead].<wbr> What's easiest
            for implementers? With an array size (M,<wbr> N),<wbr> entry (i,<wbr>
            j) provides the destination for pixel (i/<wbr>(M-1) * width,<wbr>
            j/<wbr>(N-1) * height).<wbr> Data is row-major,<wbr> with each array
            entry being ( (X,<wbr> Y)_<wbr>r,<wbr> (X,<wbr> Y)_<wbr>g,<wbr> (X,<wbr> Y)_<wbr>b ) )
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_DNG">DNG</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.lens.info.geometricCorrectionMapSize">
            <td class="entry_name">android.<wbr>lens.<wbr>info.<wbr>geometric<wbr>Correction<wbr>Map<wbr>Size</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  2
                </span>

                <div class="entry_type_notes">width and height of geometric correction map</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              Dimensions of geometric correction
            map
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              Both values >= 2
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.lens.info.hyperfocalDistance">
            <td class="entry_name">android.<wbr>lens.<wbr>info.<wbr>hyperfocal<wbr>Distance</td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Hyperfocal distance for this lens; set to
            0 if fixed focus
            </td>

            <td class="entry_units">
              diopters
            </td>

            <td class="entry_range">
              >= 0
            </td>

            <td class="entry_notes">
              The hyperfocal distance is used for the old
            API's 'fixed' setting
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.lens.info.minimumFocusDistance">
            <td class="entry_name">android.<wbr>lens.<wbr>info.<wbr>minimum<wbr>Focus<wbr>Distance</td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Shortest distance from frontmost surface
            of the lens that can be focused correctly
            </td>

            <td class="entry_units">
              diopters
            </td>

            <td class="entry_range">
              >= 0
            </td>

            <td class="entry_notes">
              If the lens is fixed-focus,<wbr> this should be
            0
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.lens.info.shadingMap">
            <td class="entry_name">android.<wbr>lens.<wbr>info.<wbr>shading<wbr>Map</td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  3 x n x m
                </span>

                <div class="entry_type_notes">2D array of float gain factors per channel to correct for lens falloff.<wbr> Should be on the order of 3x40x30</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              A low-resolution map of lens shading,<wbr> per
            color channel
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              Each gain factor is >= 1
            </td>

            <td class="entry_notes">
              Assume bilinear interpolation of map.<wbr> The least
            shaded section of the image should have a gain factor
            of 1; all other sections should have gains above
            1.<wbr>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_DNG">DNG</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.lens.info.shadingMapSize">
            <td class="entry_name">android.<wbr>lens.<wbr>info.<wbr>shading<wbr>Map<wbr>Size</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  2
                </span>

                <div class="entry_type_notes">width and height of lens shading map</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              Dimensions of lens shading
            map
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              Both values >= 1
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
        
        

                
          <tr class="entry" id="static_android.lens.facing">
            <td class="entry_name">android.<wbr>lens.<wbr>facing</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">FRONT</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">BACK</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Direction the camera faces relative to
          device screen
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.lens.opticalAxisAngle">
            <td class="entry_name">android.<wbr>lens.<wbr>optical<wbr>Axis<wbr>Angle</td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  2
                </span>

                <div class="entry_type_notes">degrees.<wbr> First defines the angle of separation between the perpendicular to the screen and the camera optical axis.<wbr> The second then defines the clockwise rotation of the optical axis from native device up.<wbr></div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              Relative angle of camera optical axis to the
          perpendicular axis from the display
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              [0-90) for first angle,<wbr> [0-360) for second
            </td>

            <td class="entry_notes">
              Examples: (0,<wbr>0) means that the camera optical axis
          is perpendicular to the display surface; (45,<wbr>0) means
          that the camera points 45 degrees up when device is held
          upright; (45,<wbr>90) means the camera points 45 degrees to
          the right when the device is held upright.<wbr> Use FACING
          field to determine perpendicular outgoing
          direction
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_ADV">ADV</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.lens.position">
            <td class="entry_name">android.<wbr>lens.<wbr>position</td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  3, location in mm, in the sensor coordinate
            system
                </span>



            </td> <!-- entry_type -->

            <td class="entry_description">
              Coordinates of camera optical axis on
          device
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>
      <tr><td colspan="7" class="kind">dynamic</td></tr>

      <thead>
        <tr>
          <th class="th_name">Property Name</th>
          <th class="th_type">Type</th>
          <th class="th_description">Description</th>
          <th class="th_units">Units</th>
          <th class="th_range">Range</th>
          <th class="th_notes">Notes</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="dynamic_android.lens.aperture">
            <td class="entry_name">android.<wbr>lens.<wbr>aperture</td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Size of the lens aperture
            </td>

            <td class="entry_units">
              f-number (f/<wbr>NNN)
            </td>

            <td class="entry_range">
              android.<wbr>lens.<wbr>info.<wbr>available<wbr>Apertures
            </td>

            <td class="entry_notes">
              Will not be supported on most devices.<wbr> Can only
          pick from supported list
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.lens.filterDensity">
            <td class="entry_name">android.<wbr>lens.<wbr>filter<wbr>Density</td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              State of lens neutral density
          filter(s)
            </td>

            <td class="entry_units">
              number of stops of filtering
            </td>

            <td class="entry_range">
              android.<wbr>lens.<wbr>info.<wbr>available<wbr>Filter<wbr>Densities
            </td>

            <td class="entry_notes">
              Will not be supported on most devices.<wbr> Can only
          pick from supported list
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.lens.focalLength">
            <td class="entry_name">android.<wbr>lens.<wbr>focal<wbr>Length</td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Lens optical zoom setting
            </td>

            <td class="entry_units">
              focal length in mm
            </td>

            <td class="entry_range">
              > 0
            </td>

            <td class="entry_notes">
              Will not be supported on most devices.<wbr>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.lens.focusDistance">
            <td class="entry_name">android.<wbr>lens.<wbr>focus<wbr>Distance</td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Distance to plane of sharpest focus,<wbr>
          measured from frontmost surface of the lens
            </td>

            <td class="entry_units">
              diopters (1/<wbr>m)
            </td>

            <td class="entry_range">
              >= 0
            </td>

            <td class="entry_notes">
              Should be zero for fixed-focus cameras
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.lens.focusRange">
            <td class="entry_name">android.<wbr>lens.<wbr>focus<wbr>Range</td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              The range of scene distances that are in
          sharp focus (depth of field)
            </td>

            <td class="entry_units">
              pair of focus distances in diopters: (near,<wbr>
          far)
            </td>

            <td class="entry_range">
              >=0
            </td>

            <td class="entry_notes">
              If variable focus not supported,<wbr> can still report
          fixed depth of field range
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.lens.opticalStabilizationMode">
            <td class="entry_name">android.<wbr>lens.<wbr>optical<wbr>Stabilization<wbr>Mode</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON</span>
                    <span class="entry_type_enum_optional">optional</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Whether optical image stabilization is
          enabled.<wbr>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              android.<wbr>lens.<wbr>available<wbr>Optical<wbr>Stabilization
            </td>

            <td class="entry_notes">
              Will not be supported on most devices.<wbr>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.lens.state">
            <td class="entry_name">android.<wbr>lens.<wbr>state</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">STATIONARY</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Current lens status
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>

  <!-- end of section -->
  <tr><td colspan="7" id="section_noiseReduction" class="section">noiseReduction</td></tr>


      <tr><td colspan="7" class="kind">controls</td></tr>

      <thead>
        <tr>
          <th class="th_name">Property Name</th>
          <th class="th_type">Type</th>
          <th class="th_description">Description</th>
          <th class="th_units">Units</th>
          <th class="th_range">Range</th>
          <th class="th_notes">Notes</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="controls_android.noiseReduction.mode">
            <td class="entry_name">android.<wbr>noise<wbr>Reduction.<wbr>mode</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF</span>
                    <span class="entry_type_enum_notes">No noise reduction is applied</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FAST</span>
                    <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw
            bayer output</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
                    <span class="entry_type_enum_notes">May slow down frame rate to provide highest
            quality</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Mode of operation for the noise reduction
          algorithm
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              android.<wbr>noise<wbr>Reduction.<wbr>available<wbr>Modes
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.noiseReduction.strength">
            <td class="entry_name">android.<wbr>noise<wbr>Reduction.<wbr>strength</td>
            <td class="entry_type">
                <span class="entry_type_name">byte</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Control the amount of noise reduction
          applied to the images
            </td>

            <td class="entry_units">
              1-10; 10 is max noise reduction
            </td>

            <td class="entry_range">
              1 - 10
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>
      <tr><td colspan="7" class="kind">dynamic</td></tr>

      <thead>
        <tr>
          <th class="th_name">Property Name</th>
          <th class="th_type">Type</th>
          <th class="th_description">Description</th>
          <th class="th_units">Units</th>
          <th class="th_range">Range</th>
          <th class="th_notes">Notes</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="dynamic_android.noiseReduction.mode">
            <td class="entry_name">android.<wbr>noise<wbr>Reduction.<wbr>mode</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF</span>
                    <span class="entry_type_enum_notes">No noise reduction is applied</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FAST</span>
                    <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw
            bayer output</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
                    <span class="entry_type_enum_notes">May slow down frame rate to provide highest
            quality</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Mode of operation for the noise reduction
          algorithm
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              android.<wbr>noise<wbr>Reduction.<wbr>available<wbr>Modes
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>

  <!-- end of section -->
  <tr><td colspan="7" id="section_quirks" class="section">quirks</td></tr>


      <tr><td colspan="7" class="kind">static</td></tr>

      <thead>
        <tr>
          <th class="th_name">Property Name</th>
          <th class="th_type">Type</th>
          <th class="th_description">Description</th>
          <th class="th_units">Units</th>
          <th class="th_range">Range</th>
          <th class="th_notes">Notes</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="static_android.quirks.meteringCropRegion">
            <td class="entry_name">android.<wbr>quirks.<wbr>metering<wbr>Crop<wbr>Region</td>
            <td class="entry_type">
                <span class="entry_type_name">byte</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              If set to 1,<wbr> the camera service does not
          scale 'normalized' coordinates with respect to the crop
          region.<wbr> This applies to metering input (a{e,<wbr>f,<wbr>wb}Region
          and output (face rectangles).<wbr>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
              Normalized coordinates refer to those in the
          (-1000,<wbr>1000) range mentioned in the
          android.<wbr>hardware.<wbr><wbr>Camera API.<wbr> HAL implementations should
          instead always use and emit sensor array-relative
          coordinates for all region data.<wbr> Does not need to be
          listed in static metadata.<wbr> Support will be removed in
          future versions of camera service.<wbr>
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.quirks.triggerAfWithAuto">
            <td class="entry_name">android.<wbr>quirks.<wbr>trigger<wbr>Af<wbr>With<wbr>Auto</td>
            <td class="entry_type">
                <span class="entry_type_name">byte</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              If set to 1,<wbr> then the camera service always
          switches to FOCUS_<wbr>MODE_<wbr>AUTO before issuing a AF
          trigger.<wbr>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
              HAL implementations should implement AF trigger
          modes for AUTO,<wbr> MACRO,<wbr> CONTINUOUS_<wbr>FOCUS,<wbr> and
          CONTINUOUS_<wbr>PICTURE modes instead of using this flag.<wbr> Does
          not need to be listed in static metadata.<wbr> Support will be
          removed in future versions of camera service
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.quirks.useZslFormat">
            <td class="entry_name">android.<wbr>quirks.<wbr>use<wbr>Zsl<wbr>Format</td>
            <td class="entry_type">
                <span class="entry_type_name">byte</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              If set to 1,<wbr> the camera service uses
          CAMERA2_<wbr>PIXEL_<wbr>FORMAT_<wbr>ZSL instead of
          HAL_<wbr>PIXEL_<wbr>FORMAT_<wbr>IMPLEMENTATION_<wbr>DEFINED for the zero
          shutter lag stream
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
              HAL implementations should use gralloc usage flags
          to determine that a stream will be used for
          zero-shutter-lag,<wbr> instead of relying on an explicit
          format setting.<wbr> Does not need to be listed in static
          metadata.<wbr> Support will be removed in future versions of
          camera service.<wbr>
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>

  <!-- end of section -->
  <tr><td colspan="7" id="section_request" class="section">request</td></tr>


      <tr><td colspan="7" class="kind">controls</td></tr>

      <thead>
        <tr>
          <th class="th_name">Property Name</th>
          <th class="th_type">Type</th>
          <th class="th_description">Description</th>
          <th class="th_units">Units</th>
          <th class="th_range">Range</th>
          <th class="th_notes">Notes</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="controls_android.request.frameCount">
            <td class="entry_name">android.<wbr>request.<wbr>frame<wbr>Count</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              A frame counter set by the framework.<wbr> Must
          be maintained unchanged in output frame
            </td>

            <td class="entry_units">
              incrementing integer
            </td>

            <td class="entry_range">
              Any int
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.request.id">
            <td class="entry_name">android.<wbr>request.<wbr>id</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              An application-specified ID for the current
          request.<wbr> Must be maintained unchanged in output
          frame
            </td>

            <td class="entry_units">
              arbitrary integer assigned by application
            </td>

            <td class="entry_range">
              Any int
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.request.inputStreams">
            <td class="entry_name">android.<wbr>request.<wbr>input<wbr>Streams</td>
            <td class="entry_type">
                <span class="entry_type_name">byte</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              List which camera reprocess stream is used
          for the source of reprocessing data.<wbr>
            </td>

            <td class="entry_units">
              List of camera reprocess stream IDs
            </td>

            <td class="entry_range">
              Typically,<wbr> only one entry allowed,<wbr> must be a valid
          reprocess stream ID.<wbr> If android.<wbr>jpeg.<wbr>needs<wbr>Thumbnail is
          set,<wbr> then multiple reprocess streams may be included in a
          single request; they must be different scaled versions of
          the same image.<wbr>
            </td>

            <td class="entry_notes">
              Only meaningful when android.<wbr>request.<wbr>type ==
          REPROCESS.<wbr> Ignored otherwise
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.request.metadataMode">
            <td class="entry_name">android.<wbr>request.<wbr>metadata<wbr>Mode</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">NONE</span>
                    <span class="entry_type_enum_notes">No metadata should be produced on output,<wbr> except
            for application-bound buffer data.<wbr> If no
            application-bound streams exist,<wbr> no frame should be
            placed in the output frame queue.<wbr> If such streams
            exist,<wbr> a frame should be placed on the output queue
            with null metadata but with the necessary output buffer
            information.<wbr> Timestamp information should still be
            included with any output stream buffers</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FULL</span>
                    <span class="entry_type_enum_notes">All metadata should be produced.<wbr> Statistics will
            only be produced if they are separately
            enabled</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              How much metadata to produce on
          output
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.request.outputStreams">
            <td class="entry_name">android.<wbr>request.<wbr>output<wbr>Streams</td>
            <td class="entry_type">
                <span class="entry_type_name">byte</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Lists which camera output streams image data
          from this capture must be sent to
            </td>

            <td class="entry_units">
              List of camera stream IDs
            </td>

            <td class="entry_range">
              List must only include streams that have been
          created
            </td>

            <td class="entry_notes">
              If no output streams are listed,<wbr> then the image
          data should simply be discarded.<wbr> The image data must
          still be captured for metadata and statistics production,<wbr>
          and the lens and flash must operate as requested.<wbr>
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.request.type">
            <td class="entry_name">android.<wbr>request.<wbr>type</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">CAPTURE</span>
                    <span class="entry_type_enum_notes">Capture a new image from the imaging hardware,<wbr>
            and process it according to the
            settings</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">REPROCESS</span>
                    <span class="entry_type_enum_notes">Process previously captured data; the
            android.<wbr>request.<wbr>input<wbr>Stream parameter determines the
            source reprocessing stream.<wbr> TODO: Mark dynamic metadata
            needed for reprocessing with [RP]</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              The type of the request; either CAPTURE or
          REPROCESS
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>
      <tr><td colspan="7" class="kind">static</td></tr>

      <thead>
        <tr>
          <th class="th_name">Property Name</th>
          <th class="th_type">Type</th>
          <th class="th_description">Description</th>
          <th class="th_units">Units</th>
          <th class="th_range">Range</th>
          <th class="th_notes">Notes</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="static_android.request.maxNumOutputStreams">
            <td class="entry_name">android.<wbr>request.<wbr>max<wbr>Num<wbr>Output<wbr>Streams</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  3
                </span>



            </td> <!-- entry_type -->

            <td class="entry_description">
              How many output streams can be allocated at
          the same time for each type of stream
            </td>

            <td class="entry_units">
              The number of raw sensor streams; the number of
          processed,<wbr> uncompressed streams; and the number of
          JPEG-compressed streams
            </td>

            <td class="entry_range">
              >=1 for Raw and JPEG-compressed stream.<wbr> >= 3
          for processed,<wbr> uncompressed streams
            </td>

            <td class="entry_notes">
              Video snapshot with preview callbacks requires 3
          processed streams (preview,<wbr> record,<wbr> app callbacks) and
          one JPEG stream (snapshot)
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.request.maxNumReprocessStreams">
            <td class="entry_name">android.<wbr>request.<wbr>max<wbr>Num<wbr>Reprocess<wbr>Streams</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  1
                </span>



            </td> <!-- entry_type -->

            <td class="entry_description">
              How many reprocessing streams of any type
          can be allocated at the same time
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              >= 1
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>
      <tr><td colspan="7" class="kind">dynamic</td></tr>

      <thead>
        <tr>
          <th class="th_name">Property Name</th>
          <th class="th_type">Type</th>
          <th class="th_description">Description</th>
          <th class="th_units">Units</th>
          <th class="th_range">Range</th>
          <th class="th_notes">Notes</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="dynamic_android.request.frameCount">
            <td class="entry_name">android.<wbr>request.<wbr>frame<wbr>Count</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Number of frames captured since
          open()
            </td>

            <td class="entry_units">
              count of frames
            </td>

            <td class="entry_range">
              > 0
            </td>

            <td class="entry_notes">
              Reset on release()
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.request.id">
            <td class="entry_name">android.<wbr>request.<wbr>id</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              An application-specified ID for the current
          request.<wbr> Must be maintained unchanged in output
          frame
            </td>

            <td class="entry_units">
              arbitrary integer assigned by application
            </td>

            <td class="entry_range">
              Any int
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.request.metadataMode">
            <td class="entry_name">android.<wbr>request.<wbr>metadata<wbr>Mode</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">NONE</span>
                    <span class="entry_type_enum_notes">No metadata should be produced on output,<wbr> except
            for application-bound buffer data.<wbr> If no
            application-bound streams exist,<wbr> no frame should be
            placed in the output frame queue.<wbr> If such streams
            exist,<wbr> a frame should be placed on the output queue
            with null metadata but with the necessary output buffer
            information.<wbr> Timestamp information should still be
            included with any output stream buffers</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FULL</span>
                    <span class="entry_type_enum_notes">All metadata should be produced.<wbr> Statistics will
            only be produced if they are separately
            enabled</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              How much metadata to produce on
          output
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.request.outputStreams">
            <td class="entry_name">android.<wbr>request.<wbr>output<wbr>Streams</td>
            <td class="entry_type">
                <span class="entry_type_name">byte</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Lists which camera output streams image data
          from this capture must be sent to
            </td>

            <td class="entry_units">
              List of camera stream IDs
            </td>

            <td class="entry_range">
              List must only include streams that have been
          created
            </td>

            <td class="entry_notes">
              If no output streams are listed,<wbr> then the image
          data should simply be discarded.<wbr> The image data must
          still be captured for metadata and statistics production,<wbr>
          and the lens and flash must operate as requested.<wbr>
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>

  <!-- end of section -->
  <tr><td colspan="7" id="section_scaler" class="section">scaler</td></tr>


      <tr><td colspan="7" class="kind">controls</td></tr>

      <thead>
        <tr>
          <th class="th_name">Property Name</th>
          <th class="th_type">Type</th>
          <th class="th_description">Description</th>
          <th class="th_units">Units</th>
          <th class="th_range">Range</th>
          <th class="th_notes">Notes</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="controls_android.scaler.cropRegion">
            <td class="entry_name">android.<wbr>scaler.<wbr>crop<wbr>Region</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  3
                </span>



            </td> <!-- entry_type -->

            <td class="entry_description">
              Top-left corner and width of the output
          region to select from the active pixel
          array
            </td>

            <td class="entry_units">
              (x,<wbr>y) of top-left corner,<wbr> width of region in
          pixels; (0,<wbr>0) is top-left corner of
          android.<wbr>sensor.<wbr>active<wbr>Pixel<wbr>Array
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
              [BC - zoom] Height determined based on width and
          aspect ratio of output stream.<wbr> Negative values for corner
          are allowed for raw output if full pixel array is larger
          than active pixel array.<wbr> Width may be rounded to nearest
          larger supportable width,<wbr> especially for raw output,<wbr>
          where only a few fixed scales may be possible
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>
      <tr><td colspan="7" class="kind">static</td></tr>

      <thead>
        <tr>
          <th class="th_name">Property Name</th>
          <th class="th_type">Type</th>
          <th class="th_description">Description</th>
          <th class="th_units">Units</th>
          <th class="th_range">Range</th>
          <th class="th_notes">Notes</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="static_android.scaler.availableFormats">
            <td class="entry_name">android.<wbr>scaler.<wbr>available<wbr>Formats</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">int32</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  n
                </span>

                <div class="entry_type_notes">values from HAL_<wbr>PIXEL_<wbr>FORMAT_<wbr>* in /<wbr>system/<wbr>core/<wbr>include/<wbr>system/<wbr>graphics.<wbr>h</div>

                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">RAW_SENSOR</span>
                    <span class="entry_type_enum_value">0x20</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">YV12</span>
                    <span class="entry_type_enum_value">0x32315659</span>
                    <span class="entry_type_enum_notes">YCrCb 4:2:0 Planar</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">YCbCr_420_SP</span>
                    <span class="entry_type_enum_value">0x11</span>
                    <span class="entry_type_enum_notes">NV21</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">JPEG</span>
                    <span class="entry_type_enum_value">0x21</span>
                    <span class="entry_type_enum_notes">BLOB</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              List of app-visible formats
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.scaler.availableJpegMinDurations">
            <td class="entry_name">android.<wbr>scaler.<wbr>available<wbr>Jpeg<wbr>Min<wbr>Durations</td>
            <td class="entry_type">
                <span class="entry_type_name">int64</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  n
                </span>



            </td> <!-- entry_type -->

            <td class="entry_description">
              The minimum frame duration that is supported
          for each resolution in availableJpegSizes.<wbr> Should
          correspond to the frame duration when only that JPEG
          stream is active,<wbr> with all processing set to
          FAST
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
              When multiple streams are configured,<wbr> the minimum
          frame duration will be >= max(individual stream min
          durations)
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.scaler.availableJpegSizes">
            <td class="entry_name">android.<wbr>scaler.<wbr>available<wbr>Jpeg<wbr>Sizes</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  n x 2
                </span>



            </td> <!-- entry_type -->

            <td class="entry_description">
              The resolutions available for output from
          the JPEG block.<wbr> Listed as width x height
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              Must include: - sensor maximum resolution Should
          include: - half/<wbr>quarter max resolution
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.scaler.availableMaxDigitalZoom">
            <td class="entry_name">android.<wbr>scaler.<wbr>available<wbr>Max<wbr>Digital<wbr>Zoom</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              TODO: have a real description here
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.scaler.availableProcessedMinDurations">
            <td class="entry_name">android.<wbr>scaler.<wbr>available<wbr>Processed<wbr>Min<wbr>Durations</td>
            <td class="entry_type">
                <span class="entry_type_name">int64</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  n
                </span>



            </td> <!-- entry_type -->

            <td class="entry_description">
              The minimum frame duration that is supported
          for each resolution in availableProcessedSizes.<wbr> Should
          correspond to the frame duration when only that processed
          stream is active,<wbr> with all processing set to
          FAST
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
              When multiple streams are configured,<wbr> the minimum
          frame duration will be >= max(individual stream min
          durations)
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.scaler.availableProcessedSizes">
            <td class="entry_name">android.<wbr>scaler.<wbr>available<wbr>Processed<wbr>Sizes</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  n x 2
                </span>



            </td> <!-- entry_type -->

            <td class="entry_description">
              The resolutions available for use with
          processed output streams,<wbr> such as YV12,<wbr> NV12,<wbr> and
          platform opaque YUV/<wbr>RGB streams to the GPU or video
          encoders.<wbr> Listed as width,<wbr> height
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              Must include: - sensor maximum resolution -
          standard QCIF,<wbr> 240p,<wbr> 480p,<wbr> 720p,<wbr> and 1080p
          resolutions
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.scaler.availableRawMinDurations">
            <td class="entry_name">android.<wbr>scaler.<wbr>available<wbr>Raw<wbr>Min<wbr>Durations</td>
            <td class="entry_type">
                <span class="entry_type_name">int64</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  n
                </span>



            </td> <!-- entry_type -->

            <td class="entry_description">
              The minimum frame duration that is supported
          for each raw resolution in availableRawSizes.<wbr> Should
          correspond to the frame duration when only the raw stream
          is active.<wbr>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
              When multiple streams are configured,<wbr> the minimum
          frame duration will be >= max(individual stream min
          durations)
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.scaler.availableRawSizes">
            <td class="entry_name">android.<wbr>scaler.<wbr>available<wbr>Raw<wbr>Sizes</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  n x 2
                </span>



            </td> <!-- entry_type -->

            <td class="entry_description">
              The resolutions available for use with raw
          sensor output streams,<wbr> listed as width,<wbr>
          height
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              Must include: - sensor maximum resolution
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.scaler.maxDigitalZoom">
            <td class="entry_name">android.<wbr>scaler.<wbr>max<wbr>Digital<wbr>Zoom</td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              The maximum ratio between active area width
          and crop region width,<wbr> or between active area height and
          crop region height,<wbr> if the crop region height is larger
          than width
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              >=1
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>
      <tr><td colspan="7" class="kind">dynamic</td></tr>

      <thead>
        <tr>
          <th class="th_name">Property Name</th>
          <th class="th_type">Type</th>
          <th class="th_description">Description</th>
          <th class="th_units">Units</th>
          <th class="th_range">Range</th>
          <th class="th_notes">Notes</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="dynamic_android.scaler.cropRegion">
            <td class="entry_name">android.<wbr>scaler.<wbr>crop<wbr>Region</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  3
                </span>



            </td> <!-- entry_type -->

            <td class="entry_description">
              Top-left corner and width of the output
          region to select from the active pixel
          array
            </td>

            <td class="entry_units">
              (x,<wbr>y) of top-left corner,<wbr> width of region in
          pixels; (0,<wbr>0) is top-left corner of
          android.<wbr>sensor.<wbr>active<wbr>Pixel<wbr>Array
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
              [BC - zoom] Height determined based on width and
          aspect ratio of output stream.<wbr> Negative values for corner
          are allowed for raw output if full pixel array is larger
          than active pixel array.<wbr> Width may be rounded to nearest
          larger supportable width,<wbr> especially for raw output,<wbr>
          where only a few fixed scales may be possible
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>

  <!-- end of section -->
  <tr><td colspan="7" id="section_sensor" class="section">sensor</td></tr>


      <tr><td colspan="7" class="kind">controls</td></tr>

      <thead>
        <tr>
          <th class="th_name">Property Name</th>
          <th class="th_type">Type</th>
          <th class="th_description">Description</th>
          <th class="th_units">Units</th>
          <th class="th_range">Range</th>
          <th class="th_notes">Notes</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="controls_android.sensor.exposureTime">
            <td class="entry_name">android.<wbr>sensor.<wbr>exposure<wbr>Time</td>
            <td class="entry_type">
                <span class="entry_type_name">int64</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Duration each pixel is exposed to
          light
            </td>

            <td class="entry_units">
              nanoseconds
            </td>

            <td class="entry_range">
              android.<wbr>sensor.<wbr>info.<wbr>exposure<wbr>Time<wbr>Range
            </td>

            <td class="entry_notes">
              1/<wbr>10000 - 30 sec range.<wbr> No bulb mode
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.sensor.frameDuration">
            <td class="entry_name">android.<wbr>sensor.<wbr>frame<wbr>Duration</td>
            <td class="entry_type">
                <span class="entry_type_name">int64</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Duration from start of frame exposure to
          start of next frame exposure
            </td>

            <td class="entry_units">
              nanoseconds
            </td>

            <td class="entry_range">
              see android.<wbr>sensor.<wbr>info.<wbr>max<wbr>Frame<wbr>Duration,<wbr>
          android.<wbr>scaler.<wbr>info.<wbr>available<wbr>Min<wbr>Frame<wbr>Durations
            </td>

            <td class="entry_notes">
              Exposure time has priority,<wbr> so duration is set to
          max(duration,<wbr> exposure time + overhead)
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.sensor.sensitivity">
            <td class="entry_name">android.<wbr>sensor.<wbr>sensitivity</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Gain applied to image data.<wbr> Must be
          implemented through analog gain only if set to values
          below 'maximum analog sensitivity'.<wbr>
            </td>

            <td class="entry_units">
              ISO arithmetic units
            </td>

            <td class="entry_range">
              android.<wbr>sensor.<wbr>info.<wbr>sensitivity<wbr>Range
            </td>

            <td class="entry_notes">
              ISO 12232:2006 REI method
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>
      <tr><td colspan="7" class="kind">static</td></tr>

      <thead>
        <tr>
          <th class="th_name">Property Name</th>
          <th class="th_type">Type</th>
          <th class="th_description">Description</th>
          <th class="th_units">Units</th>
          <th class="th_range">Range</th>
          <th class="th_notes">Notes</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        
                
            

                
          <tr class="entry" id="static_android.sensor.info.activeArraySize">
            <td class="entry_name">android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  4
                </span>

                <div class="entry_type_notes">Four ints defining the active pixel rectangle</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              Area of raw data which corresponds to only
            active pixels; smaller or equal to
            pixelArraySize.<wbr>
            </td>

            <td class="entry_units">
              xmin,<wbr> ymin,<wbr> width,<wbr> height.<wbr> Top left of full
            pixel array is (0,<wbr>0)
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_DNG">DNG</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.info.availableSensitivities">
            <td class="entry_name">android.<wbr>sensor.<wbr>info.<wbr>available<wbr>Sensitivities</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  n
                </span>

                <div class="entry_type_notes">List of supported sensitivity values</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              Range of valid sensitivities
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              Must at least include 100,<wbr> 200,<wbr> 400,<wbr> 800,<wbr>
            1600
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.info.colorFilterArrangement">
            <td class="entry_name">android.<wbr>sensor.<wbr>info.<wbr>color<wbr>Filter<wbr>Arrangement</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">RGGB</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">GRBG</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">GBRG</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">BGGR</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">RGB</span>
                    <span class="entry_type_enum_notes">Sensor is not Bayer; output has 3 16-bit
              values for each pixel,<wbr> instead of just 1 16-bit value
              per pixel.<wbr></span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Arrangement of color filters on sensor;
            represents the colors in the top-left 2x2 section of
            the sensor,<wbr> in reading order
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_DNG">DNG</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.info.exposureTimeRange">
            <td class="entry_name">android.<wbr>sensor.<wbr>info.<wbr>exposure<wbr>Time<wbr>Range</td>
            <td class="entry_type">
                <span class="entry_type_name">int64</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  2
                </span>

                <div class="entry_type_notes">nanoseconds</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              Range of valid exposure
            times
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              Min <= 100e3 (100 us),<wbr> Max >= 30e9 (30
            sec)
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.info.maxFrameDuration">
            <td class="entry_name">android.<wbr>sensor.<wbr>info.<wbr>max<wbr>Frame<wbr>Duration</td>
            <td class="entry_type">
                <span class="entry_type_name">int64</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Maximum frame duration (minimum frame
            rate)
            </td>

            <td class="entry_units">
              nanoseconds
            </td>

            <td class="entry_range">
              >= 30e9
            </td>

            <td class="entry_notes">
              Minimum duration is a function of resolution,<wbr>
            processing settings.<wbr> See
            android.<wbr>scaler.<wbr>info.<wbr>available<wbr>Min<wbr>Frame<wbr>Durations
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.info.physicalSize">
            <td class="entry_name">android.<wbr>sensor.<wbr>info.<wbr>physical<wbr>Size</td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  2
                </span>

                <div class="entry_type_notes">width x height in millimeters</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              The physical dimensions of the full pixel
            array
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
              Needed for FOV calculation for old API
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.info.pixelArraySize">
            <td class="entry_name">android.<wbr>sensor.<wbr>info.<wbr>pixel<wbr>Array<wbr>Size</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  2
                </span>



            </td> <!-- entry_type -->

            <td class="entry_description">
              Dimensions of full pixel array,<wbr> possibly
            including black calibration pixels
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
              Maximum output resolution for raw format must
            match this in
            android.<wbr>scaler.<wbr>info.<wbr>available<wbr>Sizes<wbr>Per<wbr>Format
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_DNG">DNG</a></li>
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.info.whiteLevel">
            <td class="entry_name">android.<wbr>sensor.<wbr>info.<wbr>white<wbr>Level</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Maximum raw value output by
            sensor
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              > 1024 (10-bit output)
            </td>

            <td class="entry_notes">
              Defines sensor bit depth (10-14 bits is
            expected)
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_DNG">DNG</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
        
        

                
          <tr class="entry" id="static_android.sensor.baseGainFactor">
            <td class="entry_name">android.<wbr>sensor.<wbr>base<wbr>Gain<wbr>Factor</td>
            <td class="entry_type">
                <span class="entry_type_name">rational</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Gain factor from electrons to raw units when
          ISO=100
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.blackLevelPattern">
            <td class="entry_name">android.<wbr>sensor.<wbr>black<wbr>Level<wbr>Pattern</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  4
                </span>

                <div class="entry_type_notes">2x2 raw count block</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              A fixed black level offset for each of the
          Bayer mosaic channels
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              >= 0 each
            </td>

            <td class="entry_notes">
              As per DNG BlackLevelRepeatDim /<wbr> BlackLevel
          tags
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_DNG">DNG</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.calibrationTransform1">
            <td class="entry_name">android.<wbr>sensor.<wbr>calibration<wbr>Transform1</td>
            <td class="entry_type">
                <span class="entry_type_name">rational</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  9
                </span>

                <div class="entry_type_notes">3x3 matrix in row-major-order</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              Per-device calibration on top of color space
          transform 1
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_DNG">DNG</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.calibrationTransform2">
            <td class="entry_name">android.<wbr>sensor.<wbr>calibration<wbr>Transform2</td>
            <td class="entry_type">
                <span class="entry_type_name">rational</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  9
                </span>

                <div class="entry_type_notes">3x3 matrix in row-major-order</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              Per-device calibration on top of color space
          transform 2
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_DNG">DNG</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.colorTransform1">
            <td class="entry_name">android.<wbr>sensor.<wbr>color<wbr>Transform1</td>
            <td class="entry_type">
                <span class="entry_type_name">rational</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  9
                </span>

                <div class="entry_type_notes">3x3 matrix in row-major-order</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              Linear mapping from XYZ (D50) color space to
          reference linear sensor color,<wbr> for first reference
          illuminant
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
              Use as follows XYZ = inv(transform) * clip( (raw -
          black level(raw) ) /<wbr> ( white level - max black level) ).<wbr>
          At least in the simple case
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_DNG">DNG</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.colorTransform2">
            <td class="entry_name">android.<wbr>sensor.<wbr>color<wbr>Transform2</td>
            <td class="entry_type">
                <span class="entry_type_name">rational</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  9
                </span>

                <div class="entry_type_notes">3x3 matrix in row-major-order</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              Linear mapping from XYZ (D50) color space to
          reference linear sensor color,<wbr> for second reference
          illuminant
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_DNG">DNG</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.forwardMatrix1">
            <td class="entry_name">android.<wbr>sensor.<wbr>forward<wbr>Matrix1</td>
            <td class="entry_type">
                <span class="entry_type_name">rational</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  9
                </span>

                <div class="entry_type_notes">3x3 matrix in row-major-order</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              Used by DNG for better WB
          adaptation
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_DNG">DNG</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.forwardMatrix2">
            <td class="entry_name">android.<wbr>sensor.<wbr>forward<wbr>Matrix2</td>
            <td class="entry_type">
                <span class="entry_type_name">rational</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  9
                </span>

                <div class="entry_type_notes">3x3 matrix in row-major-order</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              Used by DNG for better WB
          adaptation
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_DNG">DNG</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.maxAnalogSensitivity">
            <td class="entry_name">android.<wbr>sensor.<wbr>max<wbr>Analog<wbr>Sensitivity</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Maximum sensitivity that is implemented
          purely through analog gain
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
              For android.<wbr>sensor.<wbr>sensitivity values less than or
          equal to this,<wbr> all applied gain must be analog.<wbr> For
          values above this,<wbr> it can be a mix of analog and
          digital
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.noiseModelCoefficients">
            <td class="entry_name">android.<wbr>sensor.<wbr>noise<wbr>Model<wbr>Coefficients</td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  2
                </span>

                <div class="entry_type_notes">float constants A,<wbr> B for the noise variance model</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              Estimation of sensor noise
          characteristics
            </td>

            <td class="entry_units">
              var(raw pixel value) = electrons * (baseGainFactor
          * iso/<wbr>100)^2 + A * (baseGainFactor * iso/<wbr>100)^2 +
          B
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
              A represents sensor read noise before analog
          amplification; B represents noise from A/<wbr>D conversion and
          other circuits after amplification.<wbr> Both noise sources
          are assumed to be gaussian,<wbr> independent,<wbr> and not to vary
          across the sensor
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.orientation">
            <td class="entry_name">android.<wbr>sensor.<wbr>orientation</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Clockwise angle through which the output
          image needs to be rotated to be upright on the device
          screen in its native orientation.<wbr> Also defines the
          direction of rolling shutter readout,<wbr> which is from top
          to bottom in the sensor's coordinate system
            </td>

            <td class="entry_units">
              degrees clockwise rotation,<wbr> only multiples of
          90
            </td>

            <td class="entry_range">
              0,<wbr>90,<wbr>180,<wbr>270
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.referenceIlluminant1">
            <td class="entry_name">android.<wbr>sensor.<wbr>reference<wbr>Illuminant1</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">DAYLIGHT</span>
                    <span class="entry_type_enum_value">1</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FLUORESCENT</span>
                    <span class="entry_type_enum_value">2</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">TUNGSTEN</span>
                    <span class="entry_type_enum_value">3</span>
                    <span class="entry_type_enum_notes">Incandescent light</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FLASH</span>
                    <span class="entry_type_enum_value">4</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FINE_WEATHER</span>
                    <span class="entry_type_enum_value">9</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">CLOUDY_WEATHER</span>
                    <span class="entry_type_enum_value">10</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">SHADE</span>
                    <span class="entry_type_enum_value">11</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">DAYLIGHT_FLUORESCENT</span>
                    <span class="entry_type_enum_value">12</span>
                    <span class="entry_type_enum_notes">D 5700 - 7100K</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">DAY_WHITE_FLUORESCENT</span>
                    <span class="entry_type_enum_value">13</span>
                    <span class="entry_type_enum_notes">N 4600 - 5400K</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">COOL_WHITE_FLUORESCENT</span>
                    <span class="entry_type_enum_value">14</span>
                    <span class="entry_type_enum_notes">W 3900 - 4500K</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">WHITE_FLUORESCENT</span>
                    <span class="entry_type_enum_value">15</span>
                    <span class="entry_type_enum_notes">WW 3200 - 3700K</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">STANDARD_A</span>
                    <span class="entry_type_enum_value">17</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">STANDARD_B</span>
                    <span class="entry_type_enum_value">18</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">STANDARD_C</span>
                    <span class="entry_type_enum_value">19</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">D55</span>
                    <span class="entry_type_enum_value">20</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">D65</span>
                    <span class="entry_type_enum_value">21</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">D75</span>
                    <span class="entry_type_enum_value">22</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">D50</span>
                    <span class="entry_type_enum_value">23</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ISO_STUDIO_TUNGSTEN</span>
                    <span class="entry_type_enum_value">24</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Light source used to define transform
          1
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
              [EXIF LightSource tag] Must all these be
          supported? Need CCT for each!
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_DNG">DNG</a></li>
                  <li><a href="#tag_EXIF">EXIF</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.referenceIlluminant2">
            <td class="entry_name">android.<wbr>sensor.<wbr>reference<wbr>Illuminant2</td>
            <td class="entry_type">
                <span class="entry_type_name">byte</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Light source used to define transform
          2
            </td>

            <td class="entry_units">
              Same as illuminant 1
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>
      <tr><td colspan="7" class="kind">dynamic</td></tr>

      <thead>
        <tr>
          <th class="th_name">Property Name</th>
          <th class="th_type">Type</th>
          <th class="th_description">Description</th>
          <th class="th_units">Units</th>
          <th class="th_range">Range</th>
          <th class="th_notes">Notes</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="dynamic_android.sensor.exposureTime">
            <td class="entry_name">android.<wbr>sensor.<wbr>exposure<wbr>Time</td>
            <td class="entry_type">
                <span class="entry_type_name">int64</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Duration each pixel is exposed to
          light
            </td>

            <td class="entry_units">
              nanoseconds
            </td>

            <td class="entry_range">
              android.<wbr>sensor.<wbr>info.<wbr>exposure<wbr>Time<wbr>Range
            </td>

            <td class="entry_notes">
              1/<wbr>10000 - 30 sec range.<wbr> No bulb mode
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.sensor.frameDuration">
            <td class="entry_name">android.<wbr>sensor.<wbr>frame<wbr>Duration</td>
            <td class="entry_type">
                <span class="entry_type_name">int64</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Duration from start of frame exposure to
          start of next frame exposure
            </td>

            <td class="entry_units">
              nanoseconds
            </td>

            <td class="entry_range">
              see android.<wbr>sensor.<wbr>info.<wbr>max<wbr>Frame<wbr>Duration,<wbr>
          android.<wbr>scaler.<wbr>info.<wbr>available<wbr>Min<wbr>Frame<wbr>Durations
            </td>

            <td class="entry_notes">
              Exposure time has priority,<wbr> so duration is set to
          max(duration,<wbr> exposure time + overhead)
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.sensor.sensitivity">
            <td class="entry_name">android.<wbr>sensor.<wbr>sensitivity</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Gain applied to image data.<wbr> Must be
          implemented through analog gain only if set to values
          below 'maximum analog sensitivity'.<wbr>
            </td>

            <td class="entry_units">
              ISO arithmetic units
            </td>

            <td class="entry_range">
              android.<wbr>sensor.<wbr>info.<wbr>sensitivity<wbr>Range
            </td>

            <td class="entry_notes">
              ISO 12232:2006 REI method
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.sensor.timestamp">
            <td class="entry_name">android.<wbr>sensor.<wbr>timestamp</td>
            <td class="entry_type">
                <span class="entry_type_name">int64</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Time at start of exposure of first
          row
            </td>

            <td class="entry_units">
              nanoseconds
            </td>

            <td class="entry_range">
              > 0
            </td>

            <td class="entry_notes">
              Monotonic,<wbr> should be synced to other timestamps in
          system
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>

  <!-- end of section -->
  <tr><td colspan="7" id="section_shading" class="section">shading</td></tr>


      <tr><td colspan="7" class="kind">controls</td></tr>

      <thead>
        <tr>
          <th class="th_name">Property Name</th>
          <th class="th_type">Type</th>
          <th class="th_description">Description</th>
          <th class="th_units">Units</th>
          <th class="th_range">Range</th>
          <th class="th_notes">Notes</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="controls_android.shading.mode">
            <td class="entry_name">android.<wbr>shading.<wbr>mode</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF</span>
                    <span class="entry_type_enum_notes">No shading correction is applied</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FAST</span>
                    <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw
            bayer output</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
                    <span class="entry_type_enum_notes">Frame rate may be reduced by high
            quality</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Quality of lens shading correction applied
          to the image data
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.shading.strength">
            <td class="entry_name">android.<wbr>shading.<wbr>strength</td>
            <td class="entry_type">
                <span class="entry_type_name">byte</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Control the amount of shading correction
          applied to the images
            </td>

            <td class="entry_units">
              unitless: 1-10; 10 is full shading
          compensation
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_ADV">ADV</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>
      <tr><td colspan="7" class="kind">dynamic</td></tr>

      <thead>
        <tr>
          <th class="th_name">Property Name</th>
          <th class="th_type">Type</th>
          <th class="th_description">Description</th>
          <th class="th_units">Units</th>
          <th class="th_range">Range</th>
          <th class="th_notes">Notes</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="dynamic_android.shading.mode">
            <td class="entry_name">android.<wbr>shading.<wbr>mode</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF</span>
                    <span class="entry_type_enum_notes">No shading correction is applied</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FAST</span>
                    <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw
            bayer output</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
                    <span class="entry_type_enum_notes">Frame rate may be reduced by high
            quality</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Quality of lens shading correction applied
          to the image data
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>

  <!-- end of section -->
  <tr><td colspan="7" id="section_statistics" class="section">statistics</td></tr>


      <tr><td colspan="7" class="kind">controls</td></tr>

      <thead>
        <tr>
          <th class="th_name">Property Name</th>
          <th class="th_type">Type</th>
          <th class="th_description">Description</th>
          <th class="th_units">Units</th>
          <th class="th_range">Range</th>
          <th class="th_notes">Notes</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="controls_android.statistics.faceDetectMode">
            <td class="entry_name">android.<wbr>statistics.<wbr>face<wbr>Detect<wbr>Mode</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">SIMPLE</span>
                    <span class="entry_type_enum_notes">Optional Return rectangle and confidence
            only</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FULL</span>
                    <span class="entry_type_enum_notes">Optional Return all face
            metadata</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              State of the face detector
          unit
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              
          android.<wbr>statistics.<wbr>available<wbr>Face<wbr>Detect<wbr>Modes
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.statistics.histogramMode">
            <td class="entry_name">android.<wbr>statistics.<wbr>histogram<wbr>Mode</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Operating mode for histogram
          generation
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.statistics.sharpnessMapMode">
            <td class="entry_name">android.<wbr>statistics.<wbr>sharpness<wbr>Map<wbr>Mode</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Operating mode for sharpness map
          generation
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>
      <tr><td colspan="7" class="kind">static</td></tr>

      <thead>
        <tr>
          <th class="th_name">Property Name</th>
          <th class="th_type">Type</th>
          <th class="th_description">Description</th>
          <th class="th_units">Units</th>
          <th class="th_range">Range</th>
          <th class="th_notes">Notes</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        
                
            

                
          <tr class="entry" id="static_android.statistics.info.availableFaceDetectModes">
            <td class="entry_name">android.<wbr>statistics.<wbr>info.<wbr>available<wbr>Face<wbr>Detect<wbr>Modes</td>
            <td class="entry_type">
                <span class="entry_type_name">byte</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  n
                </span>

                <div class="entry_type_notes">List of enums</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              Which face detection modes are available,<wbr>
            if any
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              OFF
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.statistics.info.histogramBucketCount">
            <td class="entry_name">android.<wbr>statistics.<wbr>info.<wbr>histogram<wbr>Bucket<wbr>Count</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Number of histogram buckets
            supported
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              >= 64
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.statistics.info.maxFaceCount">
            <td class="entry_name">android.<wbr>statistics.<wbr>info.<wbr>max<wbr>Face<wbr>Count</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              If face detection is supported,<wbr> how many
            faces can be detected at once
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              >= 4 if availableFaceDetectionModes lists
            modes besides OFF,<wbr> otherwise 0
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.statistics.info.maxHistogramCount">
            <td class="entry_name">android.<wbr>statistics.<wbr>info.<wbr>max<wbr>Histogram<wbr>Count</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Maximum value possible for a histogram
            bucket
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.statistics.info.maxSharpnessMapValue">
            <td class="entry_name">android.<wbr>statistics.<wbr>info.<wbr>max<wbr>Sharpness<wbr>Map<wbr>Value</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Maximum value possible for a sharpness map
            region.<wbr>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.statistics.info.sharpnessMapSize">
            <td class="entry_name">android.<wbr>statistics.<wbr>info.<wbr>sharpness<wbr>Map<wbr>Size</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  2
                </span>

                <div class="entry_type_notes">width x height</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              Dimensions of the sharpness
            map
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              Must be at least 32 x 32
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
        
        

        

      <!-- end of kind -->
      </tbody>
      <tr><td colspan="7" class="kind">dynamic</td></tr>

      <thead>
        <tr>
          <th class="th_name">Property Name</th>
          <th class="th_type">Type</th>
          <th class="th_description">Description</th>
          <th class="th_units">Units</th>
          <th class="th_range">Range</th>
          <th class="th_notes">Notes</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="dynamic_android.statistics.faceDetectMode">
            <td class="entry_name">android.<wbr>statistics.<wbr>face<wbr>Detect<wbr>Mode</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">SIMPLE</span>
                    <span class="entry_type_enum_notes">Optional Return rectangle and confidence
            only</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FULL</span>
                    <span class="entry_type_enum_notes">Optional Return all face
            metadata</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              State of the face detector
          unit
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              
          android.<wbr>statistics.<wbr>available<wbr>Face<wbr>Detect<wbr>Modes
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.statistics.faceIds">
            <td class="entry_name">android.<wbr>statistics.<wbr>face<wbr>Ids</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  n
                </span>



            </td> <!-- entry_type -->

            <td class="entry_description">
              List of unique IDs for detected
          faces
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
              Only available if faceDetectMode == FULL
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.statistics.faceLandmarks">
            <td class="entry_name">android.<wbr>statistics.<wbr>face<wbr>Landmarks</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  n x 6
                </span>

                <div class="entry_type_notes">(leftEyeX,<wbr> leftEyeY,<wbr> rightEyeX,<wbr> rightEyeY,<wbr> mouthX,<wbr> mouthY)</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              List of landmarks for detected
          faces
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
              Only available if faceDetectMode == FULL
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.statistics.faceRectangles">
            <td class="entry_name">android.<wbr>statistics.<wbr>face<wbr>Rectangles</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  n x 4
                </span>

                <div class="entry_type_notes">(xmin,<wbr> ymin,<wbr> xmax,<wbr> ymax).<wbr> (0,<wbr>0) is top-left of active pixel area</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              List of the bounding rectangles for detected
          faces
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
              Only available if faceDetectMode != OFF
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.statistics.faceScores">
            <td class="entry_name">android.<wbr>statistics.<wbr>face<wbr>Scores</td>
            <td class="entry_type">
                <span class="entry_type_name">byte</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  n
                </span>



            </td> <!-- entry_type -->

            <td class="entry_description">
              List of the face confidence scores for
          detected faces
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              0-100
            </td>

            <td class="entry_notes">
              Only available if faceDetectMode != OFF
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.statistics.histogram">
            <td class="entry_name">android.<wbr>statistics.<wbr>histogram</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  n x 3
                </span>

                <div class="entry_type_notes">count of pixels for each color channel that fall into each histogram bucket,<wbr> scaled to be between 0 and maxHistogramCount</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              A 3-channel histogram based on the raw
          sensor data
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
              The k'th bucket (0-based) covers the input range
          (with w = android.<wbr>sensor.<wbr>info.<wbr>white<wbr>Level) of [ k * w/<wbr>N,<wbr>
          (k + 1) * w /<wbr> N ).<wbr> If only a monochrome sharpness map is
          supported,<wbr> all channels should have the same data
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.statistics.histogramMode">
            <td class="entry_name">android.<wbr>statistics.<wbr>histogram<wbr>Mode</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Operating mode for histogram
          generation
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.statistics.sharpnessMap">
            <td class="entry_name">android.<wbr>statistics.<wbr>sharpness<wbr>Map</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  n x m x 3
                </span>

                <div class="entry_type_notes">estimated sharpness for each region of the input image.<wbr> Normalized to be between 0 and maxSharpnessMapValue.<wbr> Higher values mean sharper (better focused)</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              A 3-channel sharpness map,<wbr> based on the raw
          sensor data
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
              If only a monochrome sharpness map is supported,<wbr>
          all channels should have the same data
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.statistics.sharpnessMapMode">
            <td class="entry_name">android.<wbr>statistics.<wbr>sharpness<wbr>Map<wbr>Mode</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              Operating mode for sharpness map
          generation
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>

  <!-- end of section -->
  <tr><td colspan="7" id="section_tonemap" class="section">tonemap</td></tr>


      <tr><td colspan="7" class="kind">controls</td></tr>

      <thead>
        <tr>
          <th class="th_name">Property Name</th>
          <th class="th_type">Type</th>
          <th class="th_description">Description</th>
          <th class="th_units">Units</th>
          <th class="th_range">Range</th>
          <th class="th_notes">Notes</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="controls_android.tonemap.curveBlue">
            <td class="entry_name">android.<wbr>tonemap.<wbr>curve<wbr>Blue</td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Table mapping blue input values to output
          values
            </td>

            <td class="entry_units">
              same as android.<wbr>tonemap.<wbr>curve<wbr>Red
            </td>

            <td class="entry_range">
              same as android.<wbr>tonemap.<wbr>curve<wbr>Red
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.tonemap.curveGreen">
            <td class="entry_name">android.<wbr>tonemap.<wbr>curve<wbr>Green</td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Table mapping green input values to output
          values
            </td>

            <td class="entry_units">
              same as android.<wbr>tonemap.<wbr>curve<wbr>Red
            </td>

            <td class="entry_range">
              same as android.<wbr>tonemap.<wbr>curve<wbr>Red
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.tonemap.curveRed">
            <td class="entry_name">android.<wbr>tonemap.<wbr>curve<wbr>Red</td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  n x 2
                </span>

                <div class="entry_type_notes">A 1D array of pairs of floats.<wbr> mapping a 0-1 input range to a 0-1 output range.<wbr></div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              Table mapping red input values to output
          values
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              0-1 on input and output coordinates.<wbr> Max entry
          count speciied by android.<wbr>tonemap.<wbr>max<wbr>Curve<wbr>Points
            </td>

            <td class="entry_notes">
              .<wbr>The input range must be monotonically increasing
          with N,<wbr> and values between entries should be linearly
          interpolated.<wbr> For example,<wbr> if the array is: [0.<wbr>0,<wbr> 0.<wbr>0,<wbr>
          0.<wbr>3,<wbr> 0.<wbr>5,<wbr> 1.<wbr>0,<wbr> 1.<wbr>0],<wbr> then the input->output mapping
          for a few sample points would be: 0 -> 0,<wbr> 0.<wbr>15 ->
          0.<wbr>25,<wbr> 0.<wbr>3 -> 0.<wbr>5,<wbr> 0.<wbr>5 -> 0.<wbr>64
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_DNG">DNG</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.tonemap.mode">
            <td class="entry_name">android.<wbr>tonemap.<wbr>mode</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">CONTRAST_CURVE</span>
                    <span class="entry_type_enum_notes">Use the tone mapping curve specified in
            android.<wbr>tonemap.<wbr>curve</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FAST</span>
                    <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw
            bayer output</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
                    <span class="entry_type_enum_notes">Frame rate may be reduced by high
            quality</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>
      <tr><td colspan="7" class="kind">static</td></tr>

      <thead>
        <tr>
          <th class="th_name">Property Name</th>
          <th class="th_type">Type</th>
          <th class="th_description">Description</th>
          <th class="th_units">Units</th>
          <th class="th_range">Range</th>
          <th class="th_notes">Notes</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="static_android.tonemap.maxCurvePoints">
            <td class="entry_name">android.<wbr>tonemap.<wbr>max<wbr>Curve<wbr>Points</td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Maximum number of supported points in the
          tonemap curve
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              >= 128
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>
      <tr><td colspan="7" class="kind">dynamic</td></tr>

      <thead>
        <tr>
          <th class="th_name">Property Name</th>
          <th class="th_type">Type</th>
          <th class="th_description">Description</th>
          <th class="th_units">Units</th>
          <th class="th_range">Range</th>
          <th class="th_notes">Notes</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="dynamic_android.tonemap.curveBlue">
            <td class="entry_name">android.<wbr>tonemap.<wbr>curve<wbr>Blue</td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Table mapping blue input values to output
          values
            </td>

            <td class="entry_units">
              same as android.<wbr>tonemap.<wbr>curve<wbr>Red
            </td>

            <td class="entry_range">
              same as android.<wbr>tonemap.<wbr>curve<wbr>Red
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.tonemap.curveGreen">
            <td class="entry_name">android.<wbr>tonemap.<wbr>curve<wbr>Green</td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              Table mapping green input values to output
          values
            </td>

            <td class="entry_units">
              same as android.<wbr>tonemap.<wbr>curve<wbr>Red
            </td>

            <td class="entry_range">
              same as android.<wbr>tonemap.<wbr>curve<wbr>Red
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.tonemap.curveRed">
            <td class="entry_name">android.<wbr>tonemap.<wbr>curve<wbr>Red</td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  n x 2
                </span>

                <div class="entry_type_notes">A 1D array of pairs of floats.<wbr> mapping a 0-1 input range to a 0-1 output range.<wbr></div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              Table mapping red input values to output
          values
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              0-1 on input and output coordinates.<wbr> Max entry
          count speciied by android.<wbr>tonemap.<wbr>max<wbr>Curve<wbr>Points
            </td>

            <td class="entry_notes">
              .<wbr>The input range must be monotonically increasing
          with N,<wbr> and values between entries should be linearly
          interpolated.<wbr> For example,<wbr> if the array is: [0.<wbr>0,<wbr> 0.<wbr>0,<wbr>
          0.<wbr>3,<wbr> 0.<wbr>5,<wbr> 1.<wbr>0,<wbr> 1.<wbr>0],<wbr> then the input->output mapping
          for a few sample points would be: 0 -> 0,<wbr> 0.<wbr>15 ->
          0.<wbr>25,<wbr> 0.<wbr>3 -> 0.<wbr>5,<wbr> 0.<wbr>5 -> 0.<wbr>64
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_DNG">DNG</a></li>
              </ul>
            </td>

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.tonemap.mode">
            <td class="entry_name">android.<wbr>tonemap.<wbr>mode</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">CONTRAST_CURVE</span>
                    <span class="entry_type_enum_notes">Use the tone mapping curve specified in
            android.<wbr>tonemap.<wbr>curve</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FAST</span>
                    <span class="entry_type_enum_notes">Must not slow down frame rate relative to raw
            bayer output</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
                    <span class="entry_type_enum_notes">Frame rate may be reduced by high
            quality</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_notes">
            </td>

            <td class="entry_tags">
            </td>

          </tr> <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>

  <!-- end of section -->
<!-- </namespace> -->
  </table>

  <div class="tags" id="tag_index">
    <h2>Tags</h2>
    <ul>
      <li id="tag_AWB">AWB - 
        Needed for auto white balance
    
        <ul class="tags_entries">
          <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
        </ul>
      </li> <!-- tag_AWB -->
      <li id="tag_BC">BC - 
        Needed for backwards compatibility with old Java API
    
        <ul class="tags_entries">
          <li><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a> (controls)</li>
          <li><a href="#controls_android.control.aeLock">android.control.aeLock</a> (controls)</li>
          <li><a href="#controls_android.control.aeMode">android.control.aeMode</a> (controls)</li>
          <li><a href="#controls_android.control.aeRegions">android.control.aeRegions</a> (controls)</li>
          <li><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a> (controls)</li>
          <li><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a> (controls)</li>
          <li><a href="#controls_android.control.afMode">android.control.afMode</a> (controls)</li>
          <li><a href="#controls_android.control.afRegions">android.control.afRegions</a> (controls)</li>
          <li><a href="#controls_android.control.afTrigger">android.control.afTrigger</a> (controls)</li>
          <li><a href="#controls_android.control.awbLock">android.control.awbLock</a> (controls)</li>
          <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
          <li><a href="#controls_android.control.awbRegions">android.control.awbRegions</a> (controls)</li>
          <li><a href="#controls_android.control.captureIntent">android.control.captureIntent</a> (controls)</li>
          <li><a href="#controls_android.control.effectMode">android.control.effectMode</a> (controls)</li>
          <li><a href="#controls_android.control.mode">android.control.mode</a> (controls)</li>
          <li><a href="#controls_android.control.sceneMode">android.control.sceneMode</a> (controls)</li>
          <li><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a> (controls)</li>
          <li><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a> (static)</li>
          <li><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a> (static)</li>
          <li><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a> (static)</li>
          <li><a href="#static_android.control.availableEffects">android.control.availableEffects</a> (static)</li>
          <li><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a> (static)</li>
          <li><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a> (static)</li>
          <li><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a> (static)</li>
          <li><a href="#static_android.control.maxRegions">android.control.maxRegions</a> (static)</li>
          <li><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a> (static)</li>
          <li><a href="#controls_android.flash.mode">android.flash.mode</a> (controls)</li>
          <li><a href="#static_android.flash.info.available">android.flash.info.available</a> (static)</li>
          <li><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a> (controls)</li>
          <li><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a> (controls)</li>
          <li><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a> (controls)</li>
          <li><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a> (controls)</li>
          <li><a href="#controls_android.jpeg.quality">android.jpeg.quality</a> (controls)</li>
          <li><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a> (controls)</li>
          <li><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a> (controls)</li>
          <li><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a> (static)</li>
          <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
          <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
          <li><a href="#static_android.lens.info.hyperfocalDistance">android.lens.info.hyperfocalDistance</a> (static)</li>
          <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a> (dynamic)</li>
          <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a> (static)</li>
          <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a> (controls)</li>
          <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a> (static)</li>
          <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a> (static)</li>
          <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a> (static)</li>
          <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a> (static)</li>
          <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a> (static)</li>
          <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a> (static)</li>
          <li><a href="#static_android.scaler.maxDigitalZoom">android.scaler.maxDigitalZoom</a> (static)</li>
          <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
          <li><a href="#static_android.sensor.info.availableSensitivities">android.sensor.info.availableSensitivities</a> (static)</li>
          <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
          <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
          <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
          <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a> (static)</li>
          <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a> (dynamic)</li>
          <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a> (controls)</li>
          <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a> (dynamic)</li>
          <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a> (dynamic)</li>
          <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a> (dynamic)</li>
          <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a> (dynamic)</li>
          <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a> (dynamic)</li>
          <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a> (dynamic)</li>
        </ul>
      </li> <!-- tag_BC -->
      <li id="tag_V1">V1 - 
        New features for first camera 2 release (API1)
    
        <ul class="tags_entries">
          <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a> (controls)</li>
          <li><a href="#controls_android.flash.firingPower">android.flash.firingPower</a> (controls)</li>
          <li><a href="#controls_android.flash.firingTime">android.flash.firingTime</a> (controls)</li>
          <li><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a> (static)</li>
          <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a> (controls)</li>
          <li><a href="#controls_android.lens.aperture">android.lens.aperture</a> (controls)</li>
          <li><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a> (controls)</li>
          <li><a href="#controls_android.lens.focalLength">android.lens.focalLength</a> (controls)</li>
          <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
          <li><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (controls)</li>
          <li><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a> (static)</li>
          <li><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a> (static)</li>
          <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
          <li><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a> (static)</li>
          <li><a href="#static_android.lens.info.geometricCorrectionMapSize">android.lens.info.geometricCorrectionMapSize</a> (static)</li>
          <li><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a> (static)</li>
          <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a> (static)</li>
          <li><a href="#static_android.lens.position">android.lens.position</a> (static)</li>
          <li><a href="#dynamic_android.lens.state">android.lens.state</a> (dynamic)</li>
          <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a> (controls)</li>
          <li><a href="#controls_android.request.id">android.request.id</a> (controls)</li>
          <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a> (controls)</li>
          <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
          <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a> (controls)</li>
          <li><a href="#static_android.sensor.info.availableSensitivities">android.sensor.info.availableSensitivities</a> (static)</li>
          <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a> (static)</li>
          <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
          <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
          <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
          <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
          <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a> (static)</li>
          <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a> (controls)</li>
          <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a> (controls)</li>
          <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a> (dynamic)</li>
          <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a> (dynamic)</li>
          <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a> (dynamic)</li>
          <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a> (dynamic)</li>
          <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a> (dynamic)</li>
          <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (dynamic)</li>
        </ul>
      </li> <!-- tag_V1 -->
      <li id="tag_ADV">ADV - None
        <ul class="tags_entries">
          <li><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a> (static)</li>
          <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a> (static)</li>
          <li><a href="#controls_android.geometric.strength">android.geometric.strength</a> (controls)</li>
          <li><a href="#static_android.hotPixel.info.map">android.hotPixel.info.map</a> (static)</li>
          <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a> (static)</li>
          <li><a href="#controls_android.shading.strength">android.shading.strength</a> (controls)</li>
        </ul>
      </li> <!-- tag_ADV -->
      <li id="tag_DNG">DNG - 
        Needed for DNG file support
    
        <ul class="tags_entries">
          <li><a href="#static_android.lens.info.geometricCorrectionMap">android.lens.info.geometricCorrectionMap</a> (static)</li>
          <li><a href="#static_android.lens.info.shadingMap">android.lens.info.shadingMap</a> (static)</li>
          <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a> (static)</li>
          <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a> (static)</li>
          <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
          <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a> (static)</li>
          <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a> (static)</li>
          <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a> (static)</li>
          <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a> (static)</li>
          <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a> (static)</li>
          <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a> (static)</li>
          <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a> (static)</li>
          <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a> (static)</li>
          <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
          <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a> (controls)</li>
        </ul>
      </li> <!-- tag_DNG -->
      <li id="tag_EXIF">EXIF - None
        <ul class="tags_entries">
          <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
        </ul>
      </li> <!-- tag_EXIF -->
    </ul>
  </div>

  [ <a href="#">top</a> ]

</body>
</html>
