<!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 HAL3.0 Properties</title>
  <style type="text/css">
     body { background-color: #f7f7f7; font-family: Roboto, sans-serif;}
     h1 { color: #333333; }
     h2 { color: #333333; }
     a:link { color: #258aaf; text-decoration: none}
     a:hover { color: #459aaf; text-decoration: underline }
     a:visited { color: #154a5f; text-decoration: none}
    .section { color: #eeeeee; font-size: 1.5em; font-weight: bold; background-color: #888888; padding: 0.5em 0em 0.5em 0.5em; border-width: thick thin thin thin; border-color: #111111 #777777 #777777 #777777}
    .kind { color: #eeeeee; font-size: 1.2em; font-weight: bold; padding-left: 1.5em; background-color: #aaaaaa }
    .entry { background-color: #f0f0f0 }
    .entries_header { background-color: #dddddd; text-align: center}

    /* toc style */
    .toc_section_header { font-size:1.3em;  }
    .toc_kind_header { font-size:1.2em;  }

    /* table column sizes */
    table { border-collapse:collapse; table-layout: fixed; width: 100%; word-wrap: break-word }
    td,th { border: 1px solid; border-color: #aaaaaa; padding-left: 0.5em; padding-right: 0.5em }
    .th_name { width: 20% }
    .th_units { width: 10% }
    .th_tags { width: 5% }
    .th_notes { width: 25% }
    .th_type { width: 20% }
    .th_description { width: 20% }
    .th_range { width: 10% }
    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 { color: #333333; padding-left:1.0em; font-size:1.1em; font-family: monospace; }

    /* Entry type flair */
    .entry_type_name { font-size:1.1em; color: #669900; font-weight: bold;}
    .entry_type_name_enum:after { color: #669900; font-weight: bold; content:" (enum)" }
    .entry_type_visibility { font-weight: bolder; padding-left:1em}
    .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 visibility flair */

    /* 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 HAL3.0 Properties</h1>


  <h2>Table of Contents</h2>
  <ul class="toc">
    <li><a href="#tag_index" class="toc_section_header">Tags</a></li>
    <li>
      <span class="toc_section_header"><a href="#section_colorCorrection">colorCorrection</a></span>
      <ul class="toc_section">
        <li>
          <span class="toc_kind_header">controls</span>
          <ul class="toc_section">
            <li><a href="#controls_android.colorCorrection.mode">android.colorCorrection.mode</a></li>
            <li><a href="#controls_android.colorCorrection.transform">android.colorCorrection.transform</a></li>
            <li><a href="#controls_android.colorCorrection.gains">android.colorCorrection.gains</a></li>
          </ul>
        </li>
        <li>
          <span class="toc_kind_header">dynamic</span>
          <ul class="toc_section">
            <li><a href="#dynamic_android.colorCorrection.transform">android.colorCorrection.transform</a></li>
            <li><a href="#dynamic_android.colorCorrection.gains">android.colorCorrection.gains</a></li>
          </ul>
        </li>
      </ul> <!-- toc_section -->
    </li>
    <li>
      <span class="toc_section_header"><a href="#section_control">control</a></span>
      <ul class="toc_section">
        <li>
          <span class="toc_kind_header">controls</span>
          <ul class="toc_section">
            <li><a href="#controls_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a></li>
            <li><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a></li>
            <li><a href="#controls_android.control.aeLock">android.control.aeLock</a></li>
            <li><a href="#controls_android.control.aeMode">android.control.aeMode</a></li>
            <li><a href="#controls_android.control.aeRegions">android.control.aeRegions</a></li>
            <li><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a></li>
            <li><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a></li>
            <li><a href="#controls_android.control.afMode">android.control.afMode</a></li>
            <li><a href="#controls_android.control.afRegions">android.control.afRegions</a></li>
            <li><a href="#controls_android.control.afTrigger">android.control.afTrigger</a></li>
            <li><a href="#controls_android.control.awbLock">android.control.awbLock</a></li>
            <li><a href="#controls_android.control.awbMode">android.control.awbMode</a></li>
            <li><a href="#controls_android.control.awbRegions">android.control.awbRegions</a></li>
            <li><a href="#controls_android.control.captureIntent">android.control.captureIntent</a></li>
            <li><a href="#controls_android.control.effectMode">android.control.effectMode</a></li>
            <li><a href="#controls_android.control.mode">android.control.mode</a></li>
            <li><a href="#controls_android.control.sceneMode">android.control.sceneMode</a></li>
            <li><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a></li>
          </ul>
        </li>
        <li>
          <span class="toc_kind_header">static</span>
          <ul class="toc_section">
            <li><a href="#static_android.control.aeAvailableAntibandingModes">android.control.aeAvailableAntibandingModes</a></li>
            <li><a href="#static_android.control.aeAvailableModes">android.control.aeAvailableModes</a></li>
            <li><a href="#static_android.control.aeAvailableTargetFpsRanges">android.control.aeAvailableTargetFpsRanges</a></li>
            <li><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a></li>
            <li><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a></li>
            <li><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a></li>
            <li><a href="#static_android.control.availableEffects">android.control.availableEffects</a></li>
            <li><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a></li>
            <li><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a></li>
            <li><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a></li>
            <li><a href="#static_android.control.maxRegions">android.control.maxRegions</a></li>
            <li><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a></li>
          </ul>
        </li>
        <li>
          <span class="toc_kind_header">dynamic</span>
          <ul class="toc_section">
            <li><a href="#dynamic_android.control.aePrecaptureId">android.control.aePrecaptureId</a></li>
            <li><a href="#dynamic_android.control.aeRegions">android.control.aeRegions</a></li>
            <li><a href="#dynamic_android.control.aeState">android.control.aeState</a></li>
            <li><a href="#dynamic_android.control.afMode">android.control.afMode</a></li>
            <li><a href="#dynamic_android.control.afRegions">android.control.afRegions</a></li>
            <li><a href="#dynamic_android.control.afState">android.control.afState</a></li>
            <li><a href="#dynamic_android.control.afTriggerId">android.control.afTriggerId</a></li>
            <li><a href="#dynamic_android.control.awbMode">android.control.awbMode</a></li>
            <li><a href="#dynamic_android.control.awbRegions">android.control.awbRegions</a></li>
            <li><a href="#dynamic_android.control.awbState">android.control.awbState</a></li>
            <li><a href="#dynamic_android.control.mode">android.control.mode</a></li>
          </ul>
        </li>
      </ul> <!-- toc_section -->
    </li>
    <li>
      <span class="toc_section_header"><a href="#section_demosaic">demosaic</a></span>
      <ul class="toc_section">
        <li>
          <span class="toc_kind_header">controls</span>
          <ul class="toc_section">
            <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a></li>
          </ul>
        </li>
      </ul> <!-- toc_section -->
    </li>
    <li>
      <span class="toc_section_header"><a href="#section_edge">edge</a></span>
      <ul class="toc_section">
        <li>
          <span class="toc_kind_header">controls</span>
          <ul class="toc_section">
            <li><a href="#controls_android.edge.mode">android.edge.mode</a></li>
            <li><a href="#controls_android.edge.strength">android.edge.strength</a></li>
          </ul>
        </li>
        <li>
          <span class="toc_kind_header">dynamic</span>
          <ul class="toc_section">
            <li><a href="#dynamic_android.edge.mode">android.edge.mode</a></li>
          </ul>
        </li>
      </ul> <!-- toc_section -->
    </li>
    <li>
      <span class="toc_section_header"><a href="#section_flash">flash</a></span>
      <ul class="toc_section">
        <li>
          <span class="toc_kind_header">controls</span>
          <ul class="toc_section">
            <li><a href="#controls_android.flash.firingPower">android.flash.firingPower</a></li>
            <li><a href="#controls_android.flash.firingTime">android.flash.firingTime</a></li>
            <li><a href="#controls_android.flash.mode">android.flash.mode</a></li>
          </ul>
        </li>
        <li>
          <span class="toc_kind_header">static</span>
          <ul class="toc_section">

            <li><a href="#static_android.flash.info.available">android.flash.info.available</a></li>
            <li><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a></li>

            <li><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a></li>
            <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a></li>
          </ul>
        </li>
        <li>
          <span class="toc_kind_header">dynamic</span>
          <ul class="toc_section">
            <li><a href="#dynamic_android.flash.firingPower">android.flash.firingPower</a></li>
            <li><a href="#dynamic_android.flash.firingTime">android.flash.firingTime</a></li>
            <li><a href="#dynamic_android.flash.mode">android.flash.mode</a></li>
            <li><a href="#dynamic_android.flash.state">android.flash.state</a></li>
          </ul>
        </li>
      </ul> <!-- toc_section -->
    </li>
    <li>
      <span class="toc_section_header"><a href="#section_geometric">geometric</a></span>
      <ul class="toc_section">
        <li>
          <span class="toc_kind_header">controls</span>
          <ul class="toc_section">
            <li><a href="#controls_android.geometric.mode">android.geometric.mode</a></li>
            <li><a href="#controls_android.geometric.strength">android.geometric.strength</a></li>
          </ul>
        </li>
      </ul> <!-- toc_section -->
    </li>
    <li>
      <span class="toc_section_header"><a href="#section_hotPixel">hotPixel</a></span>
      <ul class="toc_section">
        <li>
          <span class="toc_kind_header">controls</span>
          <ul class="toc_section">
            <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a></li>
          </ul>
        </li>
        <li>
          <span class="toc_kind_header">static</span>
          <ul class="toc_section">

            <li><a href="#static_android.hotPixel.info.map">android.hotPixel.info.map</a></li>

          </ul>
        </li>
        <li>
          <span class="toc_kind_header">dynamic</span>
          <ul class="toc_section">
            <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a></li>
          </ul>
        </li>
      </ul> <!-- toc_section -->
    </li>
    <li>
      <span class="toc_section_header"><a href="#section_jpeg">jpeg</a></span>
      <ul class="toc_section">
        <li>
          <span class="toc_kind_header">controls</span>
          <ul class="toc_section">
            <li><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a></li>
            <li><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a></li>
            <li><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a></li>
            <li><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a></li>
            <li><a href="#controls_android.jpeg.quality">android.jpeg.quality</a></li>
            <li><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a></li>
            <li><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a></li>
          </ul>
        </li>
        <li>
          <span class="toc_kind_header">static</span>
          <ul class="toc_section">
            <li><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a></li>
            <li><a href="#static_android.jpeg.maxSize">android.jpeg.maxSize</a></li>
          </ul>
        </li>
        <li>
          <span class="toc_kind_header">dynamic</span>
          <ul class="toc_section">
            <li><a href="#dynamic_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a></li>
            <li><a href="#dynamic_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a></li>
            <li><a href="#dynamic_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a></li>
            <li><a href="#dynamic_android.jpeg.orientation">android.jpeg.orientation</a></li>
            <li><a href="#dynamic_android.jpeg.quality">android.jpeg.quality</a></li>
            <li><a href="#dynamic_android.jpeg.size">android.jpeg.size</a></li>
            <li><a href="#dynamic_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a></li>
            <li><a href="#dynamic_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a></li>
          </ul>
        </li>
      </ul> <!-- toc_section -->
    </li>
    <li>
      <span class="toc_section_header"><a href="#section_lens">lens</a></span>
      <ul class="toc_section">
        <li>
          <span class="toc_kind_header">controls</span>
          <ul class="toc_section">
            <li><a href="#controls_android.lens.aperture">android.lens.aperture</a></li>
            <li><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a></li>
            <li><a href="#controls_android.lens.focalLength">android.lens.focalLength</a></li>
            <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a></li>
            <li><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a></li>
          </ul>
        </li>
        <li>
          <span class="toc_kind_header">static</span>
          <ul class="toc_section">

            <li><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a></li>
            <li><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a></li>
            <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a></li>
            <li><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a></li>
            <li><a href="#static_android.lens.info.geometricCorrectionMap">android.lens.info.geometricCorrectionMap</a></li>
            <li><a href="#static_android.lens.info.geometricCorrectionMapSize">android.lens.info.geometricCorrectionMapSize</a></li>
            <li><a href="#static_android.lens.info.hyperfocalDistance">android.lens.info.hyperfocalDistance</a></li>
            <li><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a></li>
            <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a></li>

            <li><a href="#static_android.lens.facing">android.lens.facing</a></li>
            <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a></li>
            <li><a href="#static_android.lens.position">android.lens.position</a></li>
          </ul>
        </li>
        <li>
          <span class="toc_kind_header">dynamic</span>
          <ul class="toc_section">
            <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a></li>
            <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a></li>
            <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a></li>
            <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a></li>
            <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a></li>
            <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a></li>
            <li><a href="#dynamic_android.lens.state">android.lens.state</a></li>
          </ul>
        </li>
      </ul> <!-- toc_section -->
    </li>
    <li>
      <span class="toc_section_header"><a href="#section_noiseReduction">noiseReduction</a></span>
      <ul class="toc_section">
        <li>
          <span class="toc_kind_header">controls</span>
          <ul class="toc_section">
            <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a></li>
            <li><a href="#controls_android.noiseReduction.strength">android.noiseReduction.strength</a></li>
          </ul>
        </li>
        <li>
          <span class="toc_kind_header">dynamic</span>
          <ul class="toc_section">
            <li><a href="#dynamic_android.noiseReduction.mode">android.noiseReduction.mode</a></li>
          </ul>
        </li>
      </ul> <!-- toc_section -->
    </li>
    <li>
      <span class="toc_section_header"><a href="#section_quirks">quirks</a></span>
      <ul class="toc_section">
        <li>
          <span class="toc_kind_header">static</span>
          <ul class="toc_section">
            <li><a href="#static_android.quirks.meteringCropRegion">android.quirks.meteringCropRegion</a></li>
            <li><a href="#static_android.quirks.triggerAfWithAuto">android.quirks.triggerAfWithAuto</a></li>
            <li><a href="#static_android.quirks.useZslFormat">android.quirks.useZslFormat</a></li>
            <li><a href="#static_android.quirks.usePartialResult">android.quirks.usePartialResult</a></li>
          </ul>
        </li>
        <li>
          <span class="toc_kind_header">dynamic</span>
          <ul class="toc_section">
            <li><a href="#dynamic_android.quirks.partialResult">android.quirks.partialResult</a></li>
          </ul>
        </li>
      </ul> <!-- toc_section -->
    </li>
    <li>
      <span class="toc_section_header"><a href="#section_request">request</a></span>
      <ul class="toc_section">
        <li>
          <span class="toc_kind_header">controls</span>
          <ul class="toc_section">
            <li><a href="#controls_android.request.frameCount">android.request.frameCount</a></li>
            <li><a href="#controls_android.request.id">android.request.id</a></li>
            <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a></li>
            <li><a href="#controls_android.request.metadataMode">android.request.metadataMode</a></li>
            <li><a href="#controls_android.request.outputStreams">android.request.outputStreams</a></li>
            <li><a href="#controls_android.request.type">android.request.type</a></li>
          </ul>
        </li>
        <li>
          <span class="toc_kind_header">static</span>
          <ul class="toc_section">
            <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a></li>
            <li><a href="#static_android.request.maxNumReprocessStreams">android.request.maxNumReprocessStreams</a></li>
          </ul>
        </li>
        <li>
          <span class="toc_kind_header">dynamic</span>
          <ul class="toc_section">
            <li><a href="#dynamic_android.request.frameCount">android.request.frameCount</a></li>
            <li><a href="#dynamic_android.request.id">android.request.id</a></li>
            <li><a href="#dynamic_android.request.metadataMode">android.request.metadataMode</a></li>
            <li><a href="#dynamic_android.request.outputStreams">android.request.outputStreams</a></li>
          </ul>
        </li>
      </ul> <!-- toc_section -->
    </li>
    <li>
      <span class="toc_section_header"><a href="#section_scaler">scaler</a></span>
      <ul class="toc_section">
        <li>
          <span class="toc_kind_header">controls</span>
          <ul class="toc_section">
            <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a></li>
          </ul>
        </li>
        <li>
          <span class="toc_kind_header">static</span>
          <ul class="toc_section">
            <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a></li>
            <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a></li>
            <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a></li>
            <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a></li>
            <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a></li>
            <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a></li>
            <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a></li>
            <li><a href="#static_android.scaler.availableRawSizes">android.scaler.availableRawSizes</a></li>
          </ul>
        </li>
        <li>
          <span class="toc_kind_header">dynamic</span>
          <ul class="toc_section">
            <li><a href="#dynamic_android.scaler.cropRegion">android.scaler.cropRegion</a></li>
          </ul>
        </li>
      </ul> <!-- toc_section -->
    </li>
    <li>
      <span class="toc_section_header"><a href="#section_sensor">sensor</a></span>
      <ul class="toc_section">
        <li>
          <span class="toc_kind_header">controls</span>
          <ul class="toc_section">
            <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a></li>
            <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a></li>
            <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a></li>
          </ul>
        </li>
        <li>
          <span class="toc_kind_header">static</span>
          <ul class="toc_section">

            <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a></li>
            <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a></li>
            <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a></li>
            <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a></li>
            <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a></li>
            <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a></li>
            <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a></li>
            <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a></li>

            <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a></li>
            <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a></li>
            <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a></li>
            <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a></li>
            <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a></li>
            <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a></li>
            <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a></li>
            <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a></li>
            <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a></li>
            <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a></li>
            <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a></li>
            <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a></li>
            <li><a href="#static_android.sensor.referenceIlluminant2">android.sensor.referenceIlluminant2</a></li>
          </ul>
        </li>
        <li>
          <span class="toc_kind_header">dynamic</span>
          <ul class="toc_section">
            <li><a href="#dynamic_android.sensor.exposureTime">android.sensor.exposureTime</a></li>
            <li><a href="#dynamic_android.sensor.frameDuration">android.sensor.frameDuration</a></li>
            <li><a href="#dynamic_android.sensor.sensitivity">android.sensor.sensitivity</a></li>
            <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a></li>
            <li><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a></li>
          </ul>
        </li>
      </ul> <!-- toc_section -->
    </li>
    <li>
      <span class="toc_section_header"><a href="#section_shading">shading</a></span>
      <ul class="toc_section">
        <li>
          <span class="toc_kind_header">controls</span>
          <ul class="toc_section">
            <li><a href="#controls_android.shading.mode">android.shading.mode</a></li>
            <li><a href="#controls_android.shading.strength">android.shading.strength</a></li>
          </ul>
        </li>
        <li>
          <span class="toc_kind_header">dynamic</span>
          <ul class="toc_section">
            <li><a href="#dynamic_android.shading.mode">android.shading.mode</a></li>
          </ul>
        </li>
      </ul> <!-- toc_section -->
    </li>
    <li>
      <span class="toc_section_header"><a href="#section_statistics">statistics</a></span>
      <ul class="toc_section">
        <li>
          <span class="toc_kind_header">controls</span>
          <ul class="toc_section">
            <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a></li>
            <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a></li>
            <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a></li>
            <li><a href="#controls_android.statistics.lensShadingMapMode">android.statistics.lensShadingMapMode</a></li>
          </ul>
        </li>
        <li>
          <span class="toc_kind_header">static</span>
          <ul class="toc_section">

            <li><a href="#static_android.statistics.info.availableFaceDetectModes">android.statistics.info.availableFaceDetectModes</a></li>
            <li><a href="#static_android.statistics.info.histogramBucketCount">android.statistics.info.histogramBucketCount</a></li>
            <li><a href="#static_android.statistics.info.maxFaceCount">android.statistics.info.maxFaceCount</a></li>
            <li><a href="#static_android.statistics.info.maxHistogramCount">android.statistics.info.maxHistogramCount</a></li>
            <li><a href="#static_android.statistics.info.maxSharpnessMapValue">android.statistics.info.maxSharpnessMapValue</a></li>
            <li><a href="#static_android.statistics.info.sharpnessMapSize">android.statistics.info.sharpnessMapSize</a></li>

          </ul>
        </li>
        <li>
          <span class="toc_kind_header">dynamic</span>
          <ul class="toc_section">
            <li><a href="#dynamic_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a></li>
            <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a></li>
            <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a></li>
            <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a></li>
            <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a></li>
            <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a></li>
            <li><a href="#dynamic_android.statistics.histogramMode">android.statistics.histogramMode</a></li>
            <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a></li>
            <li><a href="#dynamic_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a></li>
            <li><a href="#dynamic_android.statistics.lensShadingMap">android.statistics.lensShadingMap</a></li>
            <li><a href="#dynamic_android.statistics.predictedColorGains">android.statistics.predictedColorGains</a></li>
            <li><a href="#dynamic_android.statistics.predictedColorTransform">android.statistics.predictedColorTransform</a></li>
            <li><a href="#dynamic_android.statistics.sceneFlicker">android.statistics.sceneFlicker</a></li>
          </ul>
        </li>
      </ul> <!-- toc_section -->
    </li>
    <li>
      <span class="toc_section_header"><a href="#section_tonemap">tonemap</a></span>
      <ul class="toc_section">
        <li>
          <span class="toc_kind_header">controls</span>
          <ul class="toc_section">
            <li><a href="#controls_android.tonemap.curveBlue">android.tonemap.curveBlue</a></li>
            <li><a href="#controls_android.tonemap.curveGreen">android.tonemap.curveGreen</a></li>
            <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a></li>
            <li><a href="#controls_android.tonemap.mode">android.tonemap.mode</a></li>
          </ul>
        </li>
        <li>
          <span class="toc_kind_header">static</span>
          <ul class="toc_section">
            <li><a href="#static_android.tonemap.maxCurvePoints">android.tonemap.maxCurvePoints</a></li>
          </ul>
        </li>
        <li>
          <span class="toc_kind_header">dynamic</span>
          <ul class="toc_section">
            <li><a href="#dynamic_android.tonemap.curveBlue">android.tonemap.curveBlue</a></li>
            <li><a href="#dynamic_android.tonemap.curveGreen">android.tonemap.curveGreen</a></li>
            <li><a href="#dynamic_android.tonemap.curveRed">android.tonemap.curveRed</a></li>
            <li><a href="#dynamic_android.tonemap.mode">android.tonemap.mode</a></li>
          </ul>
        </li>
      </ul> <!-- toc_section -->
    </li>
    <li>
      <span class="toc_section_header"><a href="#section_led">led</a></span>
      <ul class="toc_section">
        <li>
          <span class="toc_kind_header">controls</span>
          <ul class="toc_section">
            <li><a href="#controls_android.led.transmit">android.led.transmit</a></li>
          </ul>
        </li>
        <li>
          <span class="toc_kind_header">dynamic</span>
          <ul class="toc_section">
            <li><a href="#dynamic_android.led.transmit">android.led.transmit</a></li>
          </ul>
        </li>
        <li>
          <span class="toc_kind_header">static</span>
          <ul class="toc_section">
            <li><a href="#static_android.led.availableLeds">android.led.availableLeds</a></li>
          </ul>
        </li>
      </ul> <!-- toc_section -->
    </li>
    <li>
      <span class="toc_section_header"><a href="#section_info">info</a></span>
      <ul class="toc_section">
        <li>
          <span class="toc_kind_header">static</span>
          <ul class="toc_section">
            <li><a href="#static_android.info.supportedHardwareLevel">android.info.supportedHardwareLevel</a></li>
          </ul>
        </li>
      </ul> <!-- toc_section -->
    </li>
    <li>
      <span class="toc_section_header"><a href="#section_blackLevel">blackLevel</a></span>
      <ul class="toc_section">
        <li>
          <span class="toc_kind_header">controls</span>
          <ul class="toc_section">
            <li><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a></li>
          </ul>
        </li>
        <li>
          <span class="toc_kind_header">dynamic</span>
          <ul class="toc_section">
            <li><a href="#dynamic_android.blackLevel.lock">android.blackLevel.lock</a></li>
          </ul>
        </li>
      </ul> <!-- toc_section -->
    </li>
  </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 class="entries_header">
        <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>

              <span class="entry_type_visibility"> [public]</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
              and android.<wbr>color<wbr>Correction.<wbr>gains 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">
              When android.<wbr>control.<wbr>awb<wbr>Mode is not OFF,<wbr> TRANSFORM_<wbr>MATRIX
          should be ignored.<wbr>
            </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">rational</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  3 x 3
                </span>
              <span class="entry_type_visibility"> [public]</span>
                <div class="entry_type_notes">3x3 rational matrix in row-major order</div>


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

            <td class="entry_description">
              A color transform matrix to use to transform
          from sensor RGB color space to output linear sRGB color space
          
            </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">
              This matrix is either set by HAL when the request
          android.<wbr>color<wbr>Correction.<wbr>mode is not TRANSFORM_<wbr>MATRIX,<wbr> or
          directly by the application in the request when the
          android.<wbr>color<wbr>Correction.<wbr>mode is TRANSFORM_<wbr>MATRIX.<wbr>
<br>
<br>          In the latter case,<wbr> the HAL may round the matrix to account
          for precision issues; the final rounded matrix should be
          reported back in this matrix result metadata.<wbr>
            </td>

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

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

                <span class="entry_type_array">
                  4
                </span>
              <span class="entry_type_visibility"> [public]</span>
                <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>


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

            <td class="entry_description">
              Gains applying to Bayer color channels for
          white-balance
            </td>

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

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

            <td class="entry_notes">
              The 4-channel white-balance gains are defined in
          the order of [R G_<wbr>even G_<wbr>odd B],<wbr> where G_<wbr>even is the gain
          for green pixels on even rows of the output,<wbr> and G_<wbr>odd
          is the gain for greenpixels on the odd rows.<wbr> if a HAL
          does not support a separate gain for even/<wbr>odd green channels,<wbr>
          it should use the G_<wbr>even value,<wbr>and write G_<wbr>odd equal to
          G_<wbr>even in the output result metadata.<wbr>
<br>
<br>          This array is either set by HAL when the request
          android.<wbr>color<wbr>Correction.<wbr>mode is not TRANSFORM_<wbr>MATRIX,<wbr> or
          directly by the application in the request when the
          android.<wbr>color<wbr>Correction.<wbr>mode is TRANSFORM_<wbr>MATRIX.<wbr>
<br>
<br>          The ouput should be the gains actually applied by the HAL to
          the current frame.<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 class="entries_header">
        <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.transform">
            <td class="entry_name">android.<wbr>color<wbr>Correction.<wbr>transform</td>
            <td class="entry_type">
                <span class="entry_type_name">rational</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  3 x 3
                </span>
              <span class="entry_type_visibility"> [public]</span>
                <div class="entry_type_notes">3x3 rational matrix in row-major order</div>


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

            <td class="entry_description">
              A color transform matrix to use to transform
          from sensor RGB color space to output linear sRGB color space
          
            </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">
              This matrix is either set by HAL when the request
          android.<wbr>color<wbr>Correction.<wbr>mode is not TRANSFORM_<wbr>MATRIX,<wbr> or
          directly by the application in the request when the
          android.<wbr>color<wbr>Correction.<wbr>mode is TRANSFORM_<wbr>MATRIX.<wbr>
<br>
<br>          In the latter case,<wbr> the HAL may round the matrix to account
          for precision issues; the final rounded matrix should be
          reported back in this matrix result metadata.<wbr>
            </td>

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

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

                <span class="entry_type_array">
                  4
                </span>
              <span class="entry_type_visibility"> [public]</span>
                <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>


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

            <td class="entry_description">
              Gains applying to Bayer color channels for
          white-balance
            </td>

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

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

            <td class="entry_notes">
              The 4-channel white-balance gains are defined in
          the order of [R G_<wbr>even G_<wbr>odd B],<wbr> where G_<wbr>even is the gain
          for green pixels on even rows of the output,<wbr> and G_<wbr>odd
          is the gain for greenpixels on the odd rows.<wbr> if a HAL
          does not support a separate gain for even/<wbr>odd green channels,<wbr>
          it should use the G_<wbr>even value,<wbr>and write G_<wbr>odd equal to
          G_<wbr>even in the output result metadata.<wbr>
<br>
<br>          This array is either set by HAL when the request
          android.<wbr>color<wbr>Correction.<wbr>mode is not TRANSFORM_<wbr>MATRIX,<wbr> or
          directly by the application in the request when the
          android.<wbr>color<wbr>Correction.<wbr>mode is TRANSFORM_<wbr>MATRIX.<wbr>
<br>
<br>          The ouput should be the gains actually applied by the HAL to
          the current frame.<wbr>
            </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 class="entries_header">
        <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>

              <span class="entry_type_visibility"> [public]</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>

              <span class="entry_type_visibility"> [public]</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>

              <span class="entry_type_visibility"> [public as boolean]</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>

              <span class="entry_type_visibility"> [public]</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,<wbr>
              sensor.<wbr>sensitivity and sensor.<wbr>frameDuration 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>
              <span class="entry_type_visibility"> [public]</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 rectangle is defined inclusive of the
          specified coordinates.<wbr>
<br>
<br>          The coordinate system is based on the active pixel array,<wbr>
          with (0,<wbr>0) being the top-left pixel in the active pixel array,<wbr> and
          (android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>width - 1,<wbr>
          android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>height - 1) being the
          bottom-right pixel in the active pixel array.<wbr> The weight
          should be nonnegative.<wbr>
<br>
<br>          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>
              <span class="entry_type_visibility"> [public]</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>

              <span class="entry_type_visibility"> [public]</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>
<br>
<br>          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>

              <span class="entry_type_visibility"> [public]</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>Distance 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>
              <span class="entry_type_visibility"> [public]</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 rectangle is defined inclusive of the
          specified coordinates.<wbr>
<br>
<br>          The coordinate system is based on the active pixel array,<wbr>
          with (0,<wbr>0) being the top-left pixel in the active pixel array,<wbr> and
          (android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>width - 1,<wbr>
          android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>height - 1) being the
          bottom-right pixel in the active pixel array.<wbr> The weight
          should be nonnegative.<wbr>
<br>
<br>          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>

              <span class="entry_type_visibility"> [public]</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>
<br>
<br>          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>

              <span class="entry_type_visibility"> [public as boolean]</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>

              <span class="entry_type_visibility"> [public]</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>
              <span class="entry_type_visibility"> [public]</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>
<br>
<br>          Each area is a rectangle plus weight: xmin,<wbr> ymin,<wbr>
          xmax,<wbr> ymax,<wbr> weight.<wbr> The rectangle is defined inclusive of the
          specified coordinates.<wbr>
<br>
<br>          The coordinate system is based on the active pixel array,<wbr>
          with (0,<wbr>0) being the top-left pixel in the active pixel array,<wbr> and
          (android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>width - 1,<wbr>
          android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>height - 1) being the
          bottom-right pixel in the active pixel array.<wbr> The weight
          should be nonnegative.<wbr>
<br>
<br>          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>

              <span class="entry_type_visibility"> [public]</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>

              <span class="entry_type_visibility"> [public]</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>

              <span class="entry_type_visibility"> [public]</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>

              <span class="entry_type_visibility"> [public]</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>

              <span class="entry_type_visibility"> [public as boolean]</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 class="entries_header">
        <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>
              <span class="entry_type_visibility"> [public]</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>
              <span class="entry_type_visibility"> [system]</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>
              <span class="entry_type_visibility"> [public]</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>
              <span class="entry_type_visibility"> [public]</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>

              <span class="entry_type_visibility"> [public]</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>
              <span class="entry_type_visibility"> [public]</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>
              <span class="entry_type_visibility"> [public]</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>
              <span class="entry_type_visibility"> [public]</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>
              <span class="entry_type_visibility"> [public]</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>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  n
                </span>
              <span class="entry_type_visibility"> [public]</span>
                <div class="entry_type_notes">List of enums (android.<wbr>control.<wbr>awb<wbr>Mode)</div>


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

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

            <td class="entry_units">
            </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>

              <span class="entry_type_visibility"> [public]</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 length(availableSceneModes)
                </span>
              <span class="entry_type_visibility"> [system]</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>
<br>
<br>          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>
<br>
<br>          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 class="entries_header">
        <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>

              <span class="entry_type_visibility"> [hidden]</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>
              <span class="entry_type_visibility"> [public]</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 rectangle is defined inclusive of the
          specified coordinates.<wbr>
<br>
<br>          The coordinate system is based on the active pixel array,<wbr>
          with (0,<wbr>0) being the top-left pixel in the active pixel array,<wbr> and
          (android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>width - 1,<wbr>
          android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>height - 1) being the
          bottom-right pixel in the active pixel array.<wbr> The weight
          should be nonnegative.<wbr>
<br>
<br>          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>

              <span class="entry_type_visibility"> [public]</span>

                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">INACTIVE</span>
                    <span class="entry_type_enum_notes">AE is off.<wbr>  When a camera device is opened,<wbr> it starts in
            this state.<wbr></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>

              <span class="entry_type_visibility"> [public]</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>Distance 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>
              <span class="entry_type_visibility"> [public]</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 rectangle is defined inclusive of the
          specified coordinates.<wbr>
<br>
<br>          The coordinate system is based on the active pixel array,<wbr>
          with (0,<wbr>0) being the top-left pixel in the active pixel array,<wbr> and
          (android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>width - 1,<wbr>
          android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>height - 1) being the
          bottom-right pixel in the active pixel array.<wbr> The weight
          should be nonnegative.<wbr>
<br>
<br>          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>

              <span class="entry_type_visibility"> [public]</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.<wbr>  When a camera device is opened,<wbr> it starts in
            this state.<wbr></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">PASSIVE_SCAN</span>
                    <span class="entry_type_enum_notes">if CONTINUOUS_<wbr>* modes are supported.<wbr> 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.<wbr> 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.<wbr> 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.<wbr> 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.<wbr> AF has
            failed to focus successfully and is
            locked</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">PASSIVE_UNFOCUSED</span>
                    <span class="entry_type_enum_notes">if CONTINUOUS_<wbr>* modes are supported.<wbr> AF finished a
            passive scan without finding focus,<wbr> and may restart
            scanning at any time.<wbr></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>

              <span class="entry_type_visibility"> [hidden]</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>

              <span class="entry_type_visibility"> [public]</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>
              <span class="entry_type_visibility"> [public]</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>
<br>
<br>          Each area is a rectangle plus weight: xmin,<wbr> ymin,<wbr>
          xmax,<wbr> ymax,<wbr> weight.<wbr> The rectangle is defined inclusive of the
          specified coordinates.<wbr>
<br>
<br>          The coordinate system is based on the active pixel array,<wbr>
          with (0,<wbr>0) being the top-left pixel in the active pixel array,<wbr> and
          (android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>width - 1,<wbr>
          android.<wbr>sensor.<wbr>info.<wbr>active<wbr>Array<wbr>Size.<wbr>height - 1) being the
          bottom-right pixel in the active pixel array.<wbr> The weight
          should be nonnegative.<wbr>
<br>
<br>          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>

              <span class="entry_type_visibility"> [public]</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.<wbr>  When a camera device is opened,<wbr> it
            starts in this state.<wbr></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>

              <span class="entry_type_visibility"> [public]</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 class="entries_header">
        <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>

              <span class="entry_type_visibility"> [system]</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 class="entries_header">
        <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>

              <span class="entry_type_visibility"> [public]</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>

              <span class="entry_type_visibility"> [system]</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 class="entries_header">
        <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>

              <span class="entry_type_visibility"> [public]</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 class="entries_header">
        <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>

              <span class="entry_type_visibility"> [system]</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>

              <span class="entry_type_visibility"> [system]</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>

              <span class="entry_type_visibility"> [public]</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 class="entries_header">
        <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>

              <span class="entry_type_visibility"> [public]</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>

              <span class="entry_type_visibility"> [system]</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>

              <span class="entry_type_visibility"> [system]</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>

              <span class="entry_type_visibility"> [system]</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 class="entries_header">
        <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>

              <span class="entry_type_visibility"> [system]</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>

              <span class="entry_type_visibility"> [system]</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>

              <span class="entry_type_visibility"> [public]</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>

              <span class="entry_type_visibility"> [public]</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 class="entries_header">
        <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>

              <span class="entry_type_visibility"> [system]</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>

              <span class="entry_type_visibility"> [system]</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 class="entries_header">
        <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>

              <span class="entry_type_visibility"> [system]</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 class="entries_header">
        <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>
              <span class="entry_type_visibility"> [system]</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 class="entries_header">
        <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>

              <span class="entry_type_visibility"> [system]</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 class="entries_header">
        <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>
              <span class="entry_type_visibility"> [public]</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>

              <span class="entry_type_visibility"> [public as string]</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>

              <span class="entry_type_visibility"> [public]</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>

              <span class="entry_type_visibility"> [public]</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>

              <span class="entry_type_visibility"> [public]</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>

              <span class="entry_type_visibility"> [public]</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>
              <span class="entry_type_visibility"> [public as size]</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 class="entries_header">
        <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>
              <span class="entry_type_visibility"> [public as size]</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>

              <span class="entry_type_visibility"> [system]</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 class="entries_header">
        <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>
              <span class="entry_type_visibility"> [public]</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>

              <span class="entry_type_visibility"> [public as string]</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>

              <span class="entry_type_visibility"> [public]</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>

              <span class="entry_type_visibility"> [public]</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>

              <span class="entry_type_visibility"> [public]</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>

              <span class="entry_type_visibility"> [system]</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>
<br>
<br>          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>

              <span class="entry_type_visibility"> [public]</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>
              <span class="entry_type_visibility"> [public as size]</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 class="entries_header">
        <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>

              <span class="entry_type_visibility"> [public]</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>

              <span class="entry_type_visibility"> [public]</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>

              <span class="entry_type_visibility"> [public]</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>

              <span class="entry_type_visibility"> [public]</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>

              <span class="entry_type_visibility"> [public]</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 class="entries_header">
        <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>
              <span class="entry_type_visibility"> [public]</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>
              <span class="entry_type_visibility"> [public]</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>
              <span class="entry_type_visibility"> [public]</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>
              <span class="entry_type_visibility"> [public]</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>
              <span class="entry_type_visibility"> [system]</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>
              <span class="entry_type_visibility"> [system as size]</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>

              <span class="entry_type_visibility"> [public]</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>

              <span class="entry_type_visibility"> [public]</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.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>
              <span class="entry_type_visibility"> [public as size]</span>
                <div class="entry_type_notes">width and height of lens shading map provided by the HAL.<wbr> (N,<wbr> M)</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>

              <span class="entry_type_visibility"> [public]</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>
              <span class="entry_type_visibility"> [system]</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:
<br>
<br>          (0,<wbr>0) means that the camera optical axis
          is perpendicular to the display surface;
<br>
<br>          (45,<wbr>0) means that the camera points 45 degrees up when
          device is held upright;
<br>
<br>          (45,<wbr>90) means the camera points 45 degrees to the right when
          the device is held upright.<wbr>
<br>
<br>          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>
              <span class="entry_type_visibility"> [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 class="entries_header">
        <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>

              <span class="entry_type_visibility"> [public]</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>

              <span class="entry_type_visibility"> [public]</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>

              <span class="entry_type_visibility"> [public]</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>

              <span class="entry_type_visibility"> [public]</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>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  2
                </span>
              <span class="entry_type_visibility"> [public]</span>
                <div class="entry_type_notes">Range of scene distances that are in focus</div>


            </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>

              <span class="entry_type_visibility"> [public]</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>

              <span class="entry_type_visibility"> [public]</span>

                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">STATIONARY</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">MOVING</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 class="entries_header">
        <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>

              <span class="entry_type_visibility"> [public]</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>

              <span class="entry_type_visibility"> [system]</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 class="entries_header">
        <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>

              <span class="entry_type_visibility"> [public]</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 class="entries_header">
        <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>

              <span class="entry_type_visibility"> [system]</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>
<br>
<br>          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>

              <span class="entry_type_visibility"> [system]</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>

              <span class="entry_type_visibility"> [system]</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 -->
        
                
          <tr class="entry" id="static_android.quirks.usePartialResult">
            <td class="entry_name">android.<wbr>quirks.<wbr>use<wbr>Partial<wbr>Result</td>
            <td class="entry_type">
                <span class="entry_type_name">byte</span>

              <span class="entry_type_visibility"> [system]</span>


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

            <td class="entry_description">
              If set to 1,<wbr> the HAL will always split result
          metadata for a single capture into multiple buffers,<wbr>
          returned using multiple process_<wbr>capture_<wbr>result calls.<wbr>
          
            </td>

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

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

            <td class="entry_notes">
              Does not need to be listed in static
          metadata.<wbr> Support for partial results will be reworked in
          future versions of camera service.<wbr> This quirk will stop
          working at that point; DO NOT USE without careful
          consideration of future support.<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 class="entries_header">
        <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.quirks.partialResult">
            <td class="entry_name">android.<wbr>quirks.<wbr>partial<wbr>Result</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>

              <span class="entry_type_visibility"> [system as boolean]</span>

                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">FINAL</span>
                    <span class="entry_type_enum_notes">The last or only metadata result buffer
            for this capture.<wbr></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">PARTIAL</span>
                    <span class="entry_type_enum_notes">A partial buffer of result metadata for this
            capture.<wbr> More result buffers for this capture will be sent
            by the HAL,<wbr> the last of which will be marked
            FINAL.<wbr></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              Whether a result given to the framework is the
          final one for the capture,<wbr> or only a partial that contains a
          subset of the full set of dynamic metadata
          values.<wbr>
            </td>

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

            <td class="entry_range">
              Optional.<wbr> Default value is FINAL.<wbr>
            </td>

            <td class="entry_notes">
              The entries in the result metadata buffers for a
          single capture may not overlap,<wbr> except for this entry.<wbr> The
          FINAL buffers must retain FIFO ordering relative to the
          requests that generate them,<wbr> so the FINAL buffer for frame 3 must
          always be sent to the framework after the FINAL buffer for frame 2,<wbr> and
          before the FINAL buffer for frame 4.<wbr> PARTIAL buffers may be returned
          in any order relative to other frames,<wbr> but all PARTIAL buffers for a given
          capture must arrive before the FINAL buffer for that capture.<wbr> This entry may
          only be used by the HAL if quirks.<wbr>usePartialResult is set to 1.<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 class="entries_header">
        <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>

              <span class="entry_type_visibility"> [system]</span>


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

            <td class="entry_description">
              A frame counter set by the framework.<wbr> Must
          be maintained unchanged in output frame.<wbr> This value monotonically
          increases with every new result (that is,<wbr> each new result has a unique
          frameCount value).<wbr>
          
            </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>

              <span class="entry_type_visibility"> [hidden]</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">int32</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  n
                </span>
              <span class="entry_type_visibility"> [system]</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">
              <ul class="entry_tags">
                  <li><a href="#tag_HAL2">HAL2</a></li>
              </ul>
            </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>

              <span class="entry_type_visibility"> [system]</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">int32</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  n
                </span>
              <span class="entry_type_visibility"> [system]</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">
              <ul class="entry_tags">
                  <li><a href="#tag_HAL2">HAL2</a></li>
              </ul>
            </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>

              <span class="entry_type_visibility"> [system]</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.<wbr> For HAL3,<wbr> this tag is redundant.<wbr>
            </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_HAL2">HAL2</a></li>
              </ul>
            </td>

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

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

      <thead class="entries_header">
        <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>
              <span class="entry_type_visibility"> [public]</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>
              <span class="entry_type_visibility"> [system]</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 class="entries_header">
        <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>

              <span class="entry_type_visibility"> [public]</span>


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

            <td class="entry_description">
              A frame counter set by the framework.<wbr> This value monotonically
          increases with every new result (that is,<wbr> each new result has a unique
          frameCount value).<wbr>
            </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>

              <span class="entry_type_visibility"> [hidden]</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>

              <span class="entry_type_visibility"> [system]</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">int32</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  n
                </span>
              <span class="entry_type_visibility"> [system]</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">
              <ul class="entry_tags">
                  <li><a href="#tag_HAL2">HAL2</a></li>
              </ul>
            </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 class="entries_header">
        <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">
                  4
                </span>
              <span class="entry_type_visibility"> [public as rectangle]</span>


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

            <td class="entry_description">
              (x,<wbr> y,<wbr> width,<wbr> height).<wbr>
<br>
<br>          A rectangle with the top-level corner of (x,<wbr>y) and size
          (width,<wbr> height).<wbr> The region of the sensor that is used for
          output.<wbr> Each stream must use this rectangle to produce its
          output,<wbr> cropping to a smaller region if necessary to
          maintain the stream's aspect ratio.<wbr>
<br>
<br>          HAL2.<wbr>x uses only (x,<wbr> y,<wbr> width)
            </td>

            <td class="entry_units">
              (x,<wbr>y) of top-left corner,<wbr> width and height of region
          in pixels; (0,<wbr>0) is top-left corner of
          android.<wbr>sensor.<wbr>active<wbr>Array<wbr>Size
            </td>

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

            <td class="entry_notes">
              
            Any additional per-stream cropping must be done to
            maximize the final pixel area of the stream.<wbr>
<br>
<br>            For example,<wbr> if the crop region is set to a 4:3 aspect
            ratio,<wbr> then 4:3 streams should use the exact crop
            region.<wbr> 16:9 streams should further crop vertically
            (letterbox).<wbr>
<br>
<br>            Conversely,<wbr> if the crop region is set to a 16:9,<wbr> then 4:3
            outputs should crop horizontally (pillarbox),<wbr> and 16:9
            streams should match exactly.<wbr> These additional crops must
            be centered within the crop region.<wbr>
<br>
<br>            The output streams must maintain square pixels at all
            times,<wbr> no matter what the relative aspect ratios of the
            crop region and the stream are.<wbr>  Negative values for
            corner are allowed for raw output if full pixel array is
            larger than active pixel array.<wbr> Width and height may be
            rounded to nearest larger supportable width,<wbr> especially
            for raw output,<wbr> where only a few fixed scales may be
            possible.<wbr> The width and height of the crop region cannot
            be set to be smaller than floor( activeArraySize.<wbr>width /<wbr>
            android.<wbr>scaler.<wbr>max<wbr>Digital<wbr>Zoom ) and floor(
            activeArraySize.<wbr>height /<wbr> android.<wbr>scaler.<wbr>max<wbr>Digital<wbr>Zoom),<wbr>
            respectively.<wbr>
          
            </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 class="entries_header">
        <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>
              <span class="entry_type_visibility"> [public as imageFormat]</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">YCrCb_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">IMPLEMENTATION_DEFINED</span>
                    <span class="entry_type_enum_value">0x22</span>
                    <span class="entry_type_enum_notes">Hal Implementation Defined</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">YCbCr_420_888</span>
                    <span class="entry_type_enum_value">0x23</span>
                    <span class="entry_type_enum_notes">Flexible YUV420 Format</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">BLOB</span>
                    <span class="entry_type_enum_value">0x21</span>
                    <span class="entry_type_enum_notes">JPEG</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>
              <span class="entry_type_visibility"> [public]</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 and captured in a burst,<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>
              <span class="entry_type_visibility"> [public as size]</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">float</span>

              <span class="entry_type_visibility"> [public]</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 -->
        
                
          <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>
              <span class="entry_type_visibility"> [public]</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>
              <span class="entry_type_visibility"> [public as size]</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">
              The actual supported resolution list may be limited by
          consumer end points for different use cases.<wbr> For example,<wbr> for
          recording use case,<wbr> the largest supported resolution may be
          limited by max supported size from encoder,<wbr> for preview use
          case,<wbr> the largest supported resolution may be limited by max
          resolution SurfaceTexture/<wbr>SurfaceView can support.<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="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>
              <span class="entry_type_visibility"> [system]</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>
              <span class="entry_type_visibility"> [system as size]</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 -->
        
        

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

      <thead class="entries_header">
        <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">
                  4
                </span>
              <span class="entry_type_visibility"> [public as rectangle]</span>


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

            <td class="entry_description">
              (x,<wbr> y,<wbr> width,<wbr> height).<wbr>
<br>
<br>          A rectangle with the top-level corner of (x,<wbr>y) and size
          (width,<wbr> height).<wbr> The region of the sensor that is used for
          output.<wbr> Each stream must use this rectangle to produce its
          output,<wbr> cropping to a smaller region if necessary to
          maintain the stream's aspect ratio.<wbr>
<br>
<br>          HAL2.<wbr>x uses only (x,<wbr> y,<wbr> width)
            </td>

            <td class="entry_units">
              (x,<wbr>y) of top-left corner,<wbr> width and height of region
          in pixels; (0,<wbr>0) is top-left corner of
          android.<wbr>sensor.<wbr>active<wbr>Array<wbr>Size
            </td>

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

            <td class="entry_notes">
              
            Any additional per-stream cropping must be done to
            maximize the final pixel area of the stream.<wbr>
<br>
<br>            For example,<wbr> if the crop region is set to a 4:3 aspect
            ratio,<wbr> then 4:3 streams should use the exact crop
            region.<wbr> 16:9 streams should further crop vertically
            (letterbox).<wbr>
<br>
<br>            Conversely,<wbr> if the crop region is set to a 16:9,<wbr> then 4:3
            outputs should crop horizontally (pillarbox),<wbr> and 16:9
            streams should match exactly.<wbr> These additional crops must
            be centered within the crop region.<wbr>
<br>
<br>            The output streams must maintain square pixels at all
            times,<wbr> no matter what the relative aspect ratios of the
            crop region and the stream are.<wbr>  Negative values for
            corner are allowed for raw output if full pixel array is
            larger than active pixel array.<wbr> Width and height may be
            rounded to nearest larger supportable width,<wbr> especially
            for raw output,<wbr> where only a few fixed scales may be
            possible.<wbr> The width and height of the crop region cannot
            be set to be smaller than floor( activeArraySize.<wbr>width /<wbr>
            android.<wbr>scaler.<wbr>max<wbr>Digital<wbr>Zoom ) and floor(
            activeArraySize.<wbr>height /<wbr> android.<wbr>scaler.<wbr>max<wbr>Digital<wbr>Zoom),<wbr>
            respectively.<wbr>
          
            </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 class="entries_header">
        <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>

              <span class="entry_type_visibility"> [public]</span>


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

            <td class="entry_description">
              Duration each pixel is exposed to
          light.<wbr>
<br>
<br>          If the sensor can't expose this exact duration,<wbr> it should shorten the
          duration exposed to the nearest possible value (rather than expose longer).<wbr>
          
            </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>

              <span class="entry_type_visibility"> [public]</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>

              <span class="entry_type_visibility"> [public]</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>
<br>
<br>          If the sensor can't apply this exact gain,<wbr> it should lessen the
          gain to the nearest possible value (rather than gain more).<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 class="entries_header">
        <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>
              <span class="entry_type_visibility"> [public as rectangle]</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.sensitivityRange">
            <td class="entry_name">android.<wbr>sensor.<wbr>info.<wbr>sensitivity<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>
              <span class="entry_type_visibility"> [public]</span>
                <div class="entry_type_notes">Range of supported sensitivities</div>


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

            <td class="entry_description">
              Range of valid sensitivities
            </td>

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

            <td class="entry_range">
              Min <= 100,<wbr> Max >= 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>

              <span class="entry_type_visibility"> [system]</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>
              <span class="entry_type_visibility"> [public]</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>

              <span class="entry_type_visibility"> [public]</span>


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

            <td class="entry_description">
              Maximum possible 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>available<wbr>Processed<wbr>Min<wbr>Durations
            android.<wbr>scaler.<wbr>available<wbr>Jpeg<wbr>Min<wbr>Durations
            android.<wbr>scaler.<wbr>available<wbr>Raw<wbr>Min<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>
              <span class="entry_type_visibility"> [public]</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>
              <span class="entry_type_visibility"> [system as size]</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>

              <span class="entry_type_visibility"> [system]</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>

              <span class="entry_type_visibility"> [public]</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>
                  <li><a href="#tag_FULL">FULL</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>
              <span class="entry_type_visibility"> [system]</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>
              <span class="entry_type_visibility"> [system]</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>
              <span class="entry_type_visibility"> [system]</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>
              <span class="entry_type_visibility"> [system]</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>
              <span class="entry_type_visibility"> [system]</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>
              <span class="entry_type_visibility"> [system]</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>
              <span class="entry_type_visibility"> [system]</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>

              <span class="entry_type_visibility"> [public]</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>
                  <li><a href="#tag_FULL">FULL</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>
              <span class="entry_type_visibility"> [system]</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>

              <span class="entry_type_visibility"> [public]</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>

              <span class="entry_type_visibility"> [system]</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>

              <span class="entry_type_visibility"> [system]</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 class="entries_header">
        <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>

              <span class="entry_type_visibility"> [public]</span>


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

            <td class="entry_description">
              Duration each pixel is exposed to
          light.<wbr>
<br>
<br>          If the sensor can't expose this exact duration,<wbr> it should shorten the
          duration exposed to the nearest possible value (rather than expose longer).<wbr>
          
            </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>

              <span class="entry_type_visibility"> [public]</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>

              <span class="entry_type_visibility"> [public]</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>
<br>
<br>          If the sensor can't apply this exact gain,<wbr> it should lessen the
          gain to the nearest possible value (rather than gain more).<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>

              <span class="entry_type_visibility"> [public]</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 -->
        
                
          <tr class="entry" id="dynamic_android.sensor.temperature">
            <td class="entry_name">android.<wbr>sensor.<wbr>temperature</td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>

              <span class="entry_type_visibility"> [public]</span>


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

            <td class="entry_description">
              The temperature of the sensor,<wbr> sampled at the time
          exposure began for this frame.<wbr>
<br>
<br>          The thermal diode being queried should be inside the sensor PCB,<wbr> or
          somewhere close to it.<wbr>
          
            </td>

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

            <td class="entry_range">
              Optional.<wbr> This value is missing if no temperature is available.<wbr>
            </td>

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

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_FULL">FULL</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 class="entries_header">
        <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>

              <span class="entry_type_visibility"> [system]</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>

              <span class="entry_type_visibility"> [system]</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 class="entries_header">
        <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>

              <span class="entry_type_visibility"> [system]</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 class="entries_header">
        <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>

              <span class="entry_type_visibility"> [public]</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>info.<wbr>available<wbr>Face<wbr>Detect<wbr>Modes
            </td>

            <td class="entry_notes">
              Whether face detection is enabled,<wbr> and whether it
          should output just the basic fields or the full set of
          fields.<wbr> Value must be one of the
          android.<wbr>statistics.<wbr>info.<wbr>available<wbr>Face<wbr>Detect<wbr>Modes.<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.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>

              <span class="entry_type_visibility"> [system as boolean]</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>

              <span class="entry_type_visibility"> [system as boolean]</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 -->
        
                
          <tr class="entry" id="controls_android.statistics.lensShadingMapMode">
            <td class="entry_name">android.<wbr>statistics.<wbr>lens<wbr>Shading<wbr>Map<wbr>Mode</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>

              <span class="entry_type_visibility"> [public]</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 the HAL needs to output the lens
          shading map in output result metadata
            </td>

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

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

            <td class="entry_notes">
              When set to ON,<wbr>
          android.<wbr>statistics.<wbr>lens<wbr>Shading<wbr>Map must be provided in
          the output result metdata.<wbr>
            </td>

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

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

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

      <thead class="entries_header">
        <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>
              <span class="entry_type_visibility"> [public]</span>
                <div class="entry_type_notes">List of enums from android.<wbr>statistics.<wbr>face<wbr>Detect<wbr>Mode</div>


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

            <td class="entry_description">
              Which face detection modes are available,<wbr>
            if any
            </td>

            <td class="entry_units">
              List of enum:
            OFF
            SIMPLE
            FULL
            </td>

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

            <td class="entry_notes">
              OFF means face detection is disabled,<wbr> it must
            be included in the list.<wbr>
<br>
<br>            SIMPLE means the device supports the
            android.<wbr>statistics.<wbr>face<wbr>Rectangles and
            android.<wbr>statistics.<wbr>face<wbr>Scores outputs.<wbr>
<br>
<br>            FULL means the device additionally supports the
            android.<wbr>statistics.<wbr>face<wbr>Ids and
            android.<wbr>statistics.<wbr>face<wbr>Landmarks outputs.<wbr>
            
            </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>

              <span class="entry_type_visibility"> [system]</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>

              <span class="entry_type_visibility"> [public]</span>


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

            <td class="entry_description">
              Maximum number of simultaneously detectable
            faces
            </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>

              <span class="entry_type_visibility"> [system]</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>

              <span class="entry_type_visibility"> [system]</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>
              <span class="entry_type_visibility"> [system as size]</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 class="entries_header">
        <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>

              <span class="entry_type_visibility"> [public]</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>info.<wbr>available<wbr>Face<wbr>Detect<wbr>Modes
            </td>

            <td class="entry_notes">
              Whether face detection is enabled,<wbr> and whether it
          should output just the basic fields or the full set of
          fields.<wbr> Value must be one of the
          android.<wbr>statistics.<wbr>info.<wbr>available<wbr>Face<wbr>Detect<wbr>Modes.<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.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>
              <span class="entry_type_visibility"> [public]</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>
              <span class="entry_type_visibility"> [public]</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>
              <span class="entry_type_visibility"> [public as rectangle]</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>
              <span class="entry_type_visibility"> [public]</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">
              1-100
            </td>

            <td class="entry_notes">
              Only available if faceDetectMode != OFF.<wbr> The value should be
          meaningful (for example,<wbr> setting 100 at all times is illegal).<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.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>
              <span class="entry_type_visibility"> [system]</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>

              <span class="entry_type_visibility"> [system as boolean]</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>
              <span class="entry_type_visibility"> [system]</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>

              <span class="entry_type_visibility"> [system as boolean]</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 -->
        
                
          <tr class="entry" id="dynamic_android.statistics.lensShadingMap">
            <td class="entry_name">android.<wbr>statistics.<wbr>lens<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">
                  4 x n x m
                </span>
              <span class="entry_type_visibility"> [public]</span>
                <div class="entry_type_notes">2D array of float gain factors per channel to correct lens shading</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>
          the map should be on the order of 30-40 rows,<wbr> and
          must be smaller than 64x64.<wbr>
<br>
<br>          When android.<wbr>color<wbr>Correction.<wbr>mode = TRANSFORM_<wbr>MATRIX,<wbr> the map
          must take into account the colorCorrection settings.<wbr>
          
            </td>

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

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.statistics.predictedColorGains">
            <td class="entry_name">android.<wbr>statistics.<wbr>predicted<wbr>Color<wbr>Gains</td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  4
                </span>
              <span class="entry_type_visibility"> [public]</span>
                <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>


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

            <td class="entry_description">
              The best-fit color channel gains calculated
          by the HAL's statistics units for the current output frame
          
            </td>

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

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

            <td class="entry_notes">
              
          This may be different than the gains used for this frame,<wbr>
          since statistics processing on data from a new frame
          typically completes after the transform has already been
          applied to that frame.<wbr>
<br>
<br>          The 4 channel gains are defined in Bayer domain,<wbr>
          see android.<wbr>color<wbr>Correction.<wbr>gains for details.<wbr>
<br>
<br>          This value should always be calculated by the AWB block,<wbr>
          regardless of the android.<wbr>control.<wbr>* current values.<wbr>
          
            </td>

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

          </tr> <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.statistics.predictedColorTransform">
            <td class="entry_name">android.<wbr>statistics.<wbr>predicted<wbr>Color<wbr>Transform</td>
            <td class="entry_type">
                <span class="entry_type_name">rational</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  3 x 3
                </span>
              <span class="entry_type_visibility"> [public]</span>
                <div class="entry_type_notes">3x3 rational matrix in row-major order</div>


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

            <td class="entry_description">
              The best-fit color transform matrix estimate
          calculated by the HAL's statistics units for the current
          output frame
            </td>

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

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

            <td class="entry_notes">
              The HAL must provide the estimate from its
          statistics unit on the white balance transforms to use
          for the next frame.<wbr> These are the values the HAL believes
          are the best fit for the current output frame.<wbr> This may
          be different than the transform used for this frame,<wbr> since
          statistics processing on data from a new frame typically
          completes after the transform has already been applied to
          that frame.<wbr>
<br>
<br>          These estimates must be provided for all frames,<wbr> even if
          capture settings and color transforms are set by the application.<wbr>
<br>
<br>          This value should always be calculated by the AWB block,<wbr>
          regardless of the android.<wbr>control.<wbr>* current values.<wbr>
          
            </td>

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

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

              <span class="entry_type_visibility"> [public]</span>

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

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

            <td class="entry_description">
              The HAL estimated scene illumination lighting
          frequency
            </td>

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

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

            <td class="entry_notes">
              Report NONE if there doesn't appear to be flickering
          illumination
            </td>

            <td class="entry_tags">
            </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 class="entries_header">
        <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>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  n x 2
                </span>
              <span class="entry_type_visibility"> [public]</span>
                <div class="entry_type_notes">1D array of float pairs (P_<wbr>IN,<wbr> P_<wbr>OUT).<wbr> The maximum number of pairs is specified by android.<wbr>tonemap.<wbr>max<wbr>Curve<wbr>Points.<wbr></div>


            </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">
              Tonemapping /<wbr> contrast /<wbr> gamma curve for the blue
          channel,<wbr> to use when android.<wbr>tonemap.<wbr>mode is CONTRAST_<wbr>CURVE.<wbr>
<br>
<br>          See android.<wbr>tonemap.<wbr>curve<wbr>Red for more details.<wbr>
            </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>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  n x 2
                </span>
              <span class="entry_type_visibility"> [public]</span>
                <div class="entry_type_notes">1D array of float pairs (P_<wbr>IN,<wbr> P_<wbr>OUT).<wbr> The maximum number of pairs is specified by android.<wbr>tonemap.<wbr>max<wbr>Curve<wbr>Points.<wbr></div>


            </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">
              Tonemapping /<wbr> contrast /<wbr> gamma curve for the green
          channel,<wbr> to use when android.<wbr>tonemap.<wbr>mode is CONTRAST_<wbr>CURVE.<wbr>
<br>
<br>          See android.<wbr>tonemap.<wbr>curve<wbr>Red for more details.<wbr>
            </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>
              <span class="entry_type_visibility"> [public]</span>
                <div class="entry_type_notes">1D array of float pairs (P_<wbr>IN,<wbr> P_<wbr>OUT).<wbr> The maximum number of pairs is specified by android.<wbr>tonemap.<wbr>max<wbr>Curve<wbr>Points.<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>
            </td>

            <td class="entry_notes">
              Tonemapping /<wbr> contrast /<wbr> gamma curve for the red
          channel,<wbr> to use when android.<wbr>tonemap.<wbr>mode is CONTRAST_<wbr>CURVE.<wbr>
<br>
<br>          Since the input and output ranges may vary depending on
          the camera pipeline,<wbr> the input and output pixel values
          are represented by normalized floating-point values
          between 0 and 1,<wbr> with 0 == black and 1 == white.<wbr>
<br>
<br>          The curve should be linearly interpolated between the
          defined points.<wbr> The points will be listed in increasing
          order of P_<wbr>IN.<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>

              <span class="entry_type_visibility"> [public]</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 class="entries_header">
        <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>

              <span class="entry_type_visibility"> [public]</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 class="entries_header">
        <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>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  n x 2
                </span>
              <span class="entry_type_visibility"> [public]</span>
                <div class="entry_type_notes">1D array of float pairs (P_<wbr>IN,<wbr> P_<wbr>OUT).<wbr> The maximum number of pairs is specified by android.<wbr>tonemap.<wbr>max<wbr>Curve<wbr>Points.<wbr></div>


            </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">
              Tonemapping /<wbr> contrast /<wbr> gamma curve for the blue
          channel,<wbr> to use when android.<wbr>tonemap.<wbr>mode is CONTRAST_<wbr>CURVE.<wbr>
<br>
<br>          See android.<wbr>tonemap.<wbr>curve<wbr>Red for more details.<wbr>
            </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>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  n x 2
                </span>
              <span class="entry_type_visibility"> [public]</span>
                <div class="entry_type_notes">1D array of float pairs (P_<wbr>IN,<wbr> P_<wbr>OUT).<wbr> The maximum number of pairs is specified by android.<wbr>tonemap.<wbr>max<wbr>Curve<wbr>Points.<wbr></div>


            </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">
              Tonemapping /<wbr> contrast /<wbr> gamma curve for the green
          channel,<wbr> to use when android.<wbr>tonemap.<wbr>mode is CONTRAST_<wbr>CURVE.<wbr>
<br>
<br>          See android.<wbr>tonemap.<wbr>curve<wbr>Red for more details.<wbr>
            </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>
              <span class="entry_type_visibility"> [public]</span>
                <div class="entry_type_notes">1D array of float pairs (P_<wbr>IN,<wbr> P_<wbr>OUT).<wbr> The maximum number of pairs is specified by android.<wbr>tonemap.<wbr>max<wbr>Curve<wbr>Points.<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>
            </td>

            <td class="entry_notes">
              Tonemapping /<wbr> contrast /<wbr> gamma curve for the red
          channel,<wbr> to use when android.<wbr>tonemap.<wbr>mode is CONTRAST_<wbr>CURVE.<wbr>
<br>
<br>          Since the input and output ranges may vary depending on
          the camera pipeline,<wbr> the input and output pixel values
          are represented by normalized floating-point values
          between 0 and 1,<wbr> with 0 == black and 1 == white.<wbr>
<br>
<br>          The curve should be linearly interpolated between the
          defined points.<wbr> The points will be listed in increasing
          order of P_<wbr>IN.<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>

              <span class="entry_type_visibility"> [public]</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 -->
  <tr><td colspan="7" id="section_led" class="section">led</td></tr>


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

      <thead class="entries_header">
        <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.led.transmit">
            <td class="entry_name">android.<wbr>led.<wbr>transmit</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>

              <span class="entry_type_visibility"> [hidden as boolean]</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">
              This LED is nominally used to indicate to the user
          that the camera is powered on and may be streaming images back to the
          Application Processor.<wbr> In certain rare circumstances,<wbr> the OS may
          disable this when video is processed locally and not transmitted to
          any untrusted applications.<wbr>
<br>
<br>          In particular,<wbr> the LED *must* always be on when the data could be
          transmitted off the device.<wbr> The LED *should* always be on whenever
          data is stored locally on the device.<wbr>
<br>
<br>          The LED *may* be off if a trusted application is using the data that
          doesn't violate the above rules.<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 -->
        
        

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

      <thead class="entries_header">
        <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.led.transmit">
            <td class="entry_name">android.<wbr>led.<wbr>transmit</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>

              <span class="entry_type_visibility"> [hidden as boolean]</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">
              This LED is nominally used to indicate to the user
          that the camera is powered on and may be streaming images back to the
          Application Processor.<wbr> In certain rare circumstances,<wbr> the OS may
          disable this when video is processed locally and not transmitted to
          any untrusted applications.<wbr>
<br>
<br>          In particular,<wbr> the LED *must* always be on when the data could be
          transmitted off the device.<wbr> The LED *should* always be on whenever
          data is stored locally on the device.<wbr>
<br>
<br>          The LED *may* be off if a trusted application is using the data that
          doesn't violate the above rules.<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 -->
        
        

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

      <thead class="entries_header">
        <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.led.availableLeds">
            <td class="entry_name">android.<wbr>led.<wbr>available<wbr>Leds</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  n
                </span>
              <span class="entry_type_visibility"> [hidden]</span>

                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">TRANSMIT</span>
                    <span class="entry_type_enum_notes">android.<wbr>led.<wbr>transmit control is used</span>
                  </li>
                </ul>

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

            <td class="entry_description">
              A list of camera LEDs that are available on this system.<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 -->
        
        

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

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


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

      <thead class="entries_header">
        <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.info.supportedHardwareLevel">
            <td class="entry_name">android.<wbr>info.<wbr>supported<wbr>Hardware<wbr>Level</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>

              <span class="entry_type_visibility"> [public]</span>

                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">LIMITED</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FULL</span>
                  </li>
                </ul>

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

            <td class="entry_description">
              
          The camera 3 HAL device can implement one of two possible
          operational modes; limited and full.<wbr> Full support is
          expected from new higher-end devices.<wbr> Limited mode has
          hardware requirements roughly in line with those for a
          camera HAL device v1 implementation,<wbr> and is expected from
          older or inexpensive devices.<wbr> Full is a strict superset of
          limited,<wbr> and they share the same essential operational flow.<wbr>
<br>
<br>          For full details refer to "S3.<wbr> Operational Modes" in camera3.<wbr>h
          
            </td>

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

            <td class="entry_range">
              Optional.<wbr> Default value is LIMITED.<wbr>
            </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_blackLevel" class="section">blackLevel</td></tr>


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

      <thead class="entries_header">
        <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.blackLevel.lock">
            <td class="entry_name">android.<wbr>black<wbr>Level.<wbr>lock</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>

              <span class="entry_type_visibility"> [public as boolean]</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 black-level compensation is locked
          to its current values,<wbr> or is free to vary
            </td>

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

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

            <td class="entry_notes">
              When set to ON,<wbr> the values used for black-level
          compensation must not change until the lock is set to
          OFF
<br>
<br>          Since changes to certain capture parameters (such as
          exposure time) may require resetting of black level
          compensation,<wbr> the HAL must report whether setting the
          black level lock was successful in the output result
          metadata.<wbr>
<br>
<br>          The black level locking must happen at the sensor,<wbr> and not at the ISP.<wbr>
          If for some reason black level locking is no longer legal (for example,<wbr>
          the analog gain has changed,<wbr> which forces black levels to be
          recalculated),<wbr> then the HAL is free to override this request (and it
          must report 'OFF' when this does happen) until the next time locking
          is legal again.<wbr>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_HAL2">HAL2</a></li>
              </ul>
            </td>

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

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

      <thead class="entries_header">
        <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.blackLevel.lock">
            <td class="entry_name">android.<wbr>black<wbr>Level.<wbr>lock</td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>

              <span class="entry_type_visibility"> [public as boolean]</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 black-level compensation is locked
          to its current values,<wbr> or is free to vary
            </td>

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

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

            <td class="entry_notes">
              When set to ON,<wbr> the values used for black-level
          compensation must not change until the lock is set to
          OFF
<br>
<br>          Since changes to certain capture parameters (such as
          exposure time) may require resetting of black level
          compensation,<wbr> the HAL must report whether setting the
          black level lock was successful in the output result
          metadata.<wbr>
<br>
<br>          The black level locking must happen at the sensor,<wbr> and not at the ISP.<wbr>
          If for some reason black level locking is no longer legal (for example,<wbr>
          the analog gain has changed,<wbr> which forces black levels to be
          recalculated),<wbr> then the HAL is free to override this request (and it
          must report 'OFF' when this does happen) until the next time locking
          is legal again.<wbr>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_HAL2">HAL2</a></li>
              </ul>
            </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.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="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
          <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</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.sensitivityRange">android.sensor.info.sensitivityRange</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.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 -->
      <li id="tag_HAL2">HAL2 - 
        Entry is only used by camera device HAL 2.x
    
        <ul class="tags_entries">
          <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</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="#controls_android.blackLevel.lock">android.blackLevel.lock</a> (controls)</li>
        </ul>
      </li> <!-- tag_HAL2 -->
      <li id="tag_FULL">FULL - 
        Entry is required for full hardware level devices, and optional for other hardware levels
    
        <ul class="tags_entries">
          <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="#dynamic_android.sensor.temperature">android.sensor.temperature</a> (dynamic)</li>
        </ul>
      </li> <!-- tag_FULL -->
    </ul>
  </div>

  [ <a href="#">top</a> ]

</body>
</html>
