<!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.4 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 }
    .entry_cont { 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;  }
    .toc_deprecated { text-decoration:line-through; }

    /* 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_details { width: 25% }
    .th_type { width: 17% }
    .th_description { width: 20% }
    .th_range { width: 8% }
    .th_hal_version { width: 5% }
    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; vertical-align:top; }
    .entry_name_deprecated { text-decoration:line-through; }

    /* 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_synthetic { font-weight: bolder; color: #996600; }
    .entry_type_hwlevel { font-weight: bolder; color: #000066; }
    .entry_type_deprecated { font-weight: bolder; color: #4D4D4D; }
    .entry_type_enum_name { font-family: monospace; font-weight: bolder; }
    .entry_type_enum_notes:before { content:" - " }
    .entry_type_enum_notes>p:first-child { display:inline; }
    .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_range_deprecated { font-weight: bolder; }

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

    /* Entry details (full docs) flair */
    .entry_details_header { font-weight: bold; background-color: #dddddd;
      text-align: center; font-size: 1.1em; margin-left: 0em; margin-right: 0em; }

    /* Entry spacer flair */
    .entry_spacer { background-color: transparent; border-style: none; height: 0.5em; }

    /* 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.2 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>
            <li
            ><a href="#controls_android.colorCorrection.aberrationMode">android.colorCorrection.aberrationMode</a></li>
          </ul>
        </li>
        <li>
          <span class="toc_kind_header">dynamic</span>
          <ul class="toc_section">
            <li
            ><a href="#dynamic_android.colorCorrection.mode">android.colorCorrection.mode</a></li>
            <li
            ><a href="#dynamic_android.colorCorrection.transform">android.colorCorrection.transform</a></li>
            <li
            ><a href="#dynamic_android.colorCorrection.gains">android.colorCorrection.gains</a></li>
            <li
            ><a href="#dynamic_android.colorCorrection.aberrationMode">android.colorCorrection.aberrationMode</a></li>
          </ul>
        </li>
        <li>
          <span class="toc_kind_header">static</span>
          <ul class="toc_section">
            <li
            ><a href="#static_android.colorCorrection.availableAberrationModes">android.colorCorrection.availableAberrationModes</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>
            <li
            ><a href="#controls_android.control.postRawSensitivityBoost">android.control.postRawSensitivityBoost</a></li>
            <li
            ><a href="#controls_android.control.enableZsl">android.control.enableZsl</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.maxRegionsAe">android.control.maxRegionsAe</a></li>
            <li
            ><a href="#static_android.control.maxRegionsAwb">android.control.maxRegionsAwb</a></li>
            <li
            ><a href="#static_android.control.maxRegionsAf">android.control.maxRegionsAf</a></li>
            <li
            ><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a></li>
            <li
            ><a href="#static_android.control.availableHighSpeedVideoConfigurations">android.control.availableHighSpeedVideoConfigurations</a></li>
            <li
            ><a href="#static_android.control.aeLockAvailable">android.control.aeLockAvailable</a></li>
            <li
            ><a href="#static_android.control.awbLockAvailable">android.control.awbLockAvailable</a></li>
            <li
            ><a href="#static_android.control.availableModes">android.control.availableModes</a></li>
            <li
            ><a href="#static_android.control.postRawSensitivityBoostRange">android.control.postRawSensitivityBoostRange</a></li>
          </ul>
        </li>
        <li>
          <span class="toc_kind_header">dynamic</span>
          <ul class="toc_section">
            <li
                class="toc_deprecated"
            ><a href="#dynamic_android.control.aePrecaptureId">android.control.aePrecaptureId</a></li>
            <li
            ><a href="#dynamic_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a></li>
            <li
            ><a href="#dynamic_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a></li>
            <li
            ><a href="#dynamic_android.control.aeLock">android.control.aeLock</a></li>
            <li
            ><a href="#dynamic_android.control.aeMode">android.control.aeMode</a></li>
            <li
            ><a href="#dynamic_android.control.aeRegions">android.control.aeRegions</a></li>
            <li
            ><a href="#dynamic_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a></li>
            <li
            ><a href="#dynamic_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</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.afTrigger">android.control.afTrigger</a></li>
            <li
            ><a href="#dynamic_android.control.afState">android.control.afState</a></li>
            <li
                class="toc_deprecated"
            ><a href="#dynamic_android.control.afTriggerId">android.control.afTriggerId</a></li>
            <li
            ><a href="#dynamic_android.control.awbLock">android.control.awbLock</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.captureIntent">android.control.captureIntent</a></li>
            <li
            ><a href="#dynamic_android.control.awbState">android.control.awbState</a></li>
            <li
            ><a href="#dynamic_android.control.effectMode">android.control.effectMode</a></li>
            <li
            ><a href="#dynamic_android.control.mode">android.control.mode</a></li>
            <li
            ><a href="#dynamic_android.control.sceneMode">android.control.sceneMode</a></li>
            <li
            ><a href="#dynamic_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a></li>
            <li
            ><a href="#dynamic_android.control.postRawSensitivityBoost">android.control.postRawSensitivityBoost</a></li>
            <li
            ><a href="#dynamic_android.control.enableZsl">android.control.enableZsl</a></li>
            <li
            ><a href="#dynamic_android.control.afSceneChange">android.control.afSceneChange</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">static</span>
          <ul class="toc_section">
            <li
            ><a href="#static_android.edge.availableEdgeModes">android.edge.availableEdgeModes</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_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.availableHotPixelModes">android.hotPixel.availableHotPixelModes</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.gpsLocation">android.jpeg.gpsLocation</a></li>
            <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.gpsLocation">android.jpeg.gpsLocation</a></li>
            <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.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.info.focusDistanceCalibration">android.lens.info.focusDistanceCalibration</a></li>

            <li
            ><a href="#static_android.lens.facing">android.lens.facing</a></li>
            <li
            ><a href="#static_android.lens.poseRotation">android.lens.poseRotation</a></li>
            <li
            ><a href="#static_android.lens.poseTranslation">android.lens.poseTranslation</a></li>
            <li
            ><a href="#static_android.lens.intrinsicCalibration">android.lens.intrinsicCalibration</a></li>
            <li
                class="toc_deprecated"
            ><a href="#static_android.lens.radialDistortion">android.lens.radialDistortion</a></li>
            <li
            ><a href="#static_android.lens.poseReference">android.lens.poseReference</a></li>
            <li
            ><a href="#static_android.lens.distortion">android.lens.distortion</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>
            <li
            ><a href="#dynamic_android.lens.poseRotation">android.lens.poseRotation</a></li>
            <li
            ><a href="#dynamic_android.lens.poseTranslation">android.lens.poseTranslation</a></li>
            <li
            ><a href="#dynamic_android.lens.intrinsicCalibration">android.lens.intrinsicCalibration</a></li>
            <li
                class="toc_deprecated"
            ><a href="#dynamic_android.lens.radialDistortion">android.lens.radialDistortion</a></li>
            <li
            ><a href="#dynamic_android.lens.distortion">android.lens.distortion</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">static</span>
          <ul class="toc_section">
            <li
            ><a href="#static_android.noiseReduction.availableNoiseReductionModes">android.noiseReduction.availableNoiseReductionModes</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
                class="toc_deprecated"
            ><a href="#static_android.quirks.meteringCropRegion">android.quirks.meteringCropRegion</a></li>
            <li
                class="toc_deprecated"
            ><a href="#static_android.quirks.triggerAfWithAuto">android.quirks.triggerAfWithAuto</a></li>
            <li
                class="toc_deprecated"
            ><a href="#static_android.quirks.useZslFormat">android.quirks.useZslFormat</a></li>
            <li
                class="toc_deprecated"
            ><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
                class="toc_deprecated"
            ><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
                class="toc_deprecated"
            ><a href="#controls_android.request.frameCount">android.request.frameCount</a></li>
            <li
            ><a href="#controls_android.request.id">android.request.id</a></li>
            <li
                class="toc_deprecated"
            ><a href="#controls_android.request.inputStreams">android.request.inputStreams</a></li>
            <li
            ><a href="#controls_android.request.metadataMode">android.request.metadataMode</a></li>
            <li
                class="toc_deprecated"
            ><a href="#controls_android.request.outputStreams">android.request.outputStreams</a></li>
            <li
                class="toc_deprecated"
            ><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.maxNumOutputRaw">android.request.maxNumOutputRaw</a></li>
            <li
            ><a href="#static_android.request.maxNumOutputProc">android.request.maxNumOutputProc</a></li>
            <li
            ><a href="#static_android.request.maxNumOutputProcStalling">android.request.maxNumOutputProcStalling</a></li>
            <li
                class="toc_deprecated"
            ><a href="#static_android.request.maxNumReprocessStreams">android.request.maxNumReprocessStreams</a></li>
            <li
            ><a href="#static_android.request.maxNumInputStreams">android.request.maxNumInputStreams</a></li>
            <li
            ><a href="#static_android.request.pipelineMaxDepth">android.request.pipelineMaxDepth</a></li>
            <li
            ><a href="#static_android.request.partialResultCount">android.request.partialResultCount</a></li>
            <li
            ><a href="#static_android.request.availableCapabilities">android.request.availableCapabilities</a></li>
            <li
            ><a href="#static_android.request.availableRequestKeys">android.request.availableRequestKeys</a></li>
            <li
            ><a href="#static_android.request.availableResultKeys">android.request.availableResultKeys</a></li>
            <li
            ><a href="#static_android.request.availableCharacteristicsKeys">android.request.availableCharacteristicsKeys</a></li>
            <li
            ><a href="#static_android.request.availableSessionKeys">android.request.availableSessionKeys</a></li>
            <li
            ><a href="#static_android.request.availablePhysicalCameraRequestKeys">android.request.availablePhysicalCameraRequestKeys</a></li>
          </ul>
        </li>
        <li>
          <span class="toc_kind_header">dynamic</span>
          <ul class="toc_section">
            <li
                class="toc_deprecated"
            ><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
                class="toc_deprecated"
            ><a href="#dynamic_android.request.outputStreams">android.request.outputStreams</a></li>
            <li
            ><a href="#dynamic_android.request.pipelineDepth">android.request.pipelineDepth</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
                class="toc_deprecated"
            ><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a></li>
            <li
                class="toc_deprecated"
            ><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a></li>
            <li
                class="toc_deprecated"
            ><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a></li>
            <li
            ><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a></li>
            <li
                class="toc_deprecated"
            ><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a></li>
            <li
                class="toc_deprecated"
            ><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a></li>
            <li
                class="toc_deprecated"
            ><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a></li>
            <li
                class="toc_deprecated"
            ><a href="#static_android.scaler.availableRawSizes">android.scaler.availableRawSizes</a></li>
            <li
            ><a href="#static_android.scaler.availableInputOutputFormatsMap">android.scaler.availableInputOutputFormatsMap</a></li>
            <li
            ><a href="#static_android.scaler.availableStreamConfigurations">android.scaler.availableStreamConfigurations</a></li>
            <li
            ><a href="#static_android.scaler.availableMinFrameDurations">android.scaler.availableMinFrameDurations</a></li>
            <li
            ><a href="#static_android.scaler.availableStallDurations">android.scaler.availableStallDurations</a></li>
            <li
            ><a href="#static_android.scaler.streamConfigurationMap">android.scaler.streamConfigurationMap</a></li>
            <li
            ><a href="#static_android.scaler.croppingType">android.scaler.croppingType</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>
            <li
            ><a href="#controls_android.sensor.testPatternData">android.sensor.testPatternData</a></li>
            <li
            ><a href="#controls_android.sensor.testPatternMode">android.sensor.testPatternMode</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.info.timestampSource">android.sensor.info.timestampSource</a></li>
            <li
            ><a href="#static_android.sensor.info.lensShadingApplied">android.sensor.info.lensShadingApplied</a></li>
            <li
            ><a href="#static_android.sensor.info.preCorrectionActiveArraySize">android.sensor.info.preCorrectionActiveArraySize</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>
            <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.baseGainFactor">android.sensor.baseGainFactor</a></li>
            <li
            ><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a></li>
            <li
            ><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a></li>
            <li
            ><a href="#static_android.sensor.orientation">android.sensor.orientation</a></li>
            <li
            ><a href="#static_android.sensor.profileHueSatMapDimensions">android.sensor.profileHueSatMapDimensions</a></li>
            <li
            ><a href="#static_android.sensor.availableTestPatternModes">android.sensor.availableTestPatternModes</a></li>
            <li
            ><a href="#static_android.sensor.opticalBlackRegions">android.sensor.opticalBlackRegions</a></li>
            <li
            ><a href="#static_android.sensor.opaqueRawSize">android.sensor.opaqueRawSize</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>
            <li
            ><a href="#dynamic_android.sensor.neutralColorPoint">android.sensor.neutralColorPoint</a></li>
            <li
            ><a href="#dynamic_android.sensor.noiseProfile">android.sensor.noiseProfile</a></li>
            <li
            ><a href="#dynamic_android.sensor.profileHueSatMap">android.sensor.profileHueSatMap</a></li>
            <li
            ><a href="#dynamic_android.sensor.profileToneCurve">android.sensor.profileToneCurve</a></li>
            <li
            ><a href="#dynamic_android.sensor.greenSplit">android.sensor.greenSplit</a></li>
            <li
            ><a href="#dynamic_android.sensor.testPatternData">android.sensor.testPatternData</a></li>
            <li
            ><a href="#dynamic_android.sensor.testPatternMode">android.sensor.testPatternMode</a></li>
            <li
            ><a href="#dynamic_android.sensor.rollingShutterSkew">android.sensor.rollingShutterSkew</a></li>
            <li
            ><a href="#dynamic_android.sensor.dynamicBlackLevel">android.sensor.dynamicBlackLevel</a></li>
            <li
            ><a href="#dynamic_android.sensor.dynamicWhiteLevel">android.sensor.dynamicWhiteLevel</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>
        <li>
          <span class="toc_kind_header">static</span>
          <ul class="toc_section">
            <li
            ><a href="#static_android.shading.availableModes">android.shading.availableModes</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.hotPixelMapMode">android.statistics.hotPixelMapMode</a></li>
            <li
            ><a href="#controls_android.statistics.lensShadingMapMode">android.statistics.lensShadingMapMode</a></li>
            <li
            ><a href="#controls_android.statistics.oisDataMode">android.statistics.oisDataMode</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>
            <li
            ><a href="#static_android.statistics.info.availableHotPixelMapModes">android.statistics.info.availableHotPixelMapModes</a></li>
            <li
            ><a href="#static_android.statistics.info.availableLensShadingMapModes">android.statistics.info.availableLensShadingMapModes</a></li>
            <li
            ><a href="#static_android.statistics.info.availableOisDataModes">android.statistics.info.availableOisDataModes</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.faces">android.statistics.faces</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.lensShadingCorrectionMap">android.statistics.lensShadingCorrectionMap</a></li>
            <li
            ><a href="#dynamic_android.statistics.lensShadingMap">android.statistics.lensShadingMap</a></li>
            <li
                class="toc_deprecated"
            ><a href="#dynamic_android.statistics.predictedColorGains">android.statistics.predictedColorGains</a></li>
            <li
                class="toc_deprecated"
            ><a href="#dynamic_android.statistics.predictedColorTransform">android.statistics.predictedColorTransform</a></li>
            <li
            ><a href="#dynamic_android.statistics.sceneFlicker">android.statistics.sceneFlicker</a></li>
            <li
            ><a href="#dynamic_android.statistics.hotPixelMapMode">android.statistics.hotPixelMapMode</a></li>
            <li
            ><a href="#dynamic_android.statistics.hotPixelMap">android.statistics.hotPixelMap</a></li>
            <li
            ><a href="#dynamic_android.statistics.lensShadingMapMode">android.statistics.lensShadingMapMode</a></li>
            <li
            ><a href="#dynamic_android.statistics.oisDataMode">android.statistics.oisDataMode</a></li>
            <li
            ><a href="#dynamic_android.statistics.oisTimestamps">android.statistics.oisTimestamps</a></li>
            <li
            ><a href="#dynamic_android.statistics.oisXShifts">android.statistics.oisXShifts</a></li>
            <li
            ><a href="#dynamic_android.statistics.oisYShifts">android.statistics.oisYShifts</a></li>
            <li
            ><a href="#dynamic_android.statistics.oisSamples">android.statistics.oisSamples</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.curve">android.tonemap.curve</a></li>
            <li
            ><a href="#controls_android.tonemap.mode">android.tonemap.mode</a></li>
            <li
            ><a href="#controls_android.tonemap.gamma">android.tonemap.gamma</a></li>
            <li
            ><a href="#controls_android.tonemap.presetCurve">android.tonemap.presetCurve</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>
            <li
            ><a href="#static_android.tonemap.availableToneMapModes">android.tonemap.availableToneMapModes</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.curve">android.tonemap.curve</a></li>
            <li
            ><a href="#dynamic_android.tonemap.mode">android.tonemap.mode</a></li>
            <li
            ><a href="#dynamic_android.tonemap.gamma">android.tonemap.gamma</a></li>
            <li
            ><a href="#dynamic_android.tonemap.presetCurve">android.tonemap.presetCurve</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>
            <li
            ><a href="#static_android.info.version">android.info.version</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>
    <li>
      <span class="toc_section_header"><a href="#section_sync">sync</a></span>
      <ul class="toc_section">
        <li>
          <span class="toc_kind_header">dynamic</span>
          <ul class="toc_section">
            <li
            ><a href="#dynamic_android.sync.frameNumber">android.sync.frameNumber</a></li>
          </ul>
        </li>
        <li>
          <span class="toc_kind_header">static</span>
          <ul class="toc_section">
            <li
            ><a href="#static_android.sync.maxLatency">android.sync.maxLatency</a></li>
          </ul>
        </li>
      </ul> <!-- toc_section -->
    </li>
    <li>
      <span class="toc_section_header"><a href="#section_reprocess">reprocess</a></span>
      <ul class="toc_section">
        <li>
          <span class="toc_kind_header">controls</span>
          <ul class="toc_section">
            <li
            ><a href="#controls_android.reprocess.effectiveExposureFactor">android.reprocess.effectiveExposureFactor</a></li>
          </ul>
        </li>
        <li>
          <span class="toc_kind_header">dynamic</span>
          <ul class="toc_section">
            <li
            ><a href="#dynamic_android.reprocess.effectiveExposureFactor">android.reprocess.effectiveExposureFactor</a></li>
          </ul>
        </li>
        <li>
          <span class="toc_kind_header">static</span>
          <ul class="toc_section">
            <li
            ><a href="#static_android.reprocess.maxCaptureStall">android.reprocess.maxCaptureStall</a></li>
          </ul>
        </li>
      </ul> <!-- toc_section -->
    </li>
    <li>
      <span class="toc_section_header"><a href="#section_depth">depth</a></span>
      <ul class="toc_section">
        <li>
          <span class="toc_kind_header">static</span>
          <ul class="toc_section">
            <li
            ><a href="#static_android.depth.maxDepthSamples">android.depth.maxDepthSamples</a></li>
            <li
            ><a href="#static_android.depth.availableDepthStreamConfigurations">android.depth.availableDepthStreamConfigurations</a></li>
            <li
            ><a href="#static_android.depth.availableDepthMinFrameDurations">android.depth.availableDepthMinFrameDurations</a></li>
            <li
            ><a href="#static_android.depth.availableDepthStallDurations">android.depth.availableDepthStallDurations</a></li>
            <li
            ><a href="#static_android.depth.depthIsExclusive">android.depth.depthIsExclusive</a></li>
          </ul>
        </li>
      </ul> <!-- toc_section -->
    </li>
    <li>
      <span class="toc_section_header"><a href="#section_logicalMultiCamera">logicalMultiCamera</a></span>
      <ul class="toc_section">
        <li>
          <span class="toc_kind_header">static</span>
          <ul class="toc_section">
            <li
            ><a href="#static_android.logicalMultiCamera.physicalIds">android.logicalMultiCamera.physicalIds</a></li>
            <li
            ><a href="#static_android.logicalMultiCamera.sensorSyncType">android.logicalMultiCamera.sensorSyncType</a></li>
          </ul>
        </li>
      </ul> <!-- toc_section -->
    </li>
    <li>
      <span class="toc_section_header"><a href="#section_distortionCorrection">distortionCorrection</a></span>
      <ul class="toc_section">
        <li>
          <span class="toc_kind_header">controls</span>
          <ul class="toc_section">
            <li
            ><a href="#controls_android.distortionCorrection.mode">android.distortionCorrection.mode</a></li>
          </ul>
        </li>
        <li>
          <span class="toc_kind_header">static</span>
          <ul class="toc_section">
            <li
            ><a href="#static_android.distortionCorrection.availableModes">android.distortionCorrection.availableModes</a></li>
          </ul>
        </li>
        <li>
          <span class="toc_kind_header">dynamic</span>
          <ul class="toc_section">
            <li
            ><a href="#dynamic_android.distortionCorrection.mode">android.distortionCorrection.mode</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_hal_version">HIDL HAL version</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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="controls_android.colorCorrection.mode">
            <td class="entry_name
             " rowspan="5">
              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>


              <span class="entry_type_hwlevel">[full] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">TRANSFORM_MATRIX (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Use the <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> matrix
and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> to do color conversion.<wbr/></p>
<p>All advanced white balance adjustments (not specified
by our white balance pipeline) must be disabled.<wbr/></p>
<p>If AWB is enabled with <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != OFF</code>,<wbr/> then
TRANSFORM_<wbr/>MATRIX is ignored.<wbr/> The camera device will override
this value to either FAST or HIGH_<wbr/>QUALITY.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FAST (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Color correction processing must not slow down
capture rate relative to sensor raw output.<wbr/></p>
<p>Advanced white balance adjustments above and beyond
the specified white balance pipeline may be applied.<wbr/></p>
<p>If AWB is enabled with <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != OFF</code>,<wbr/> then
the camera device uses the last frame's AWB values
(or defaults if AWB has never been run).<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Color correction processing operates at improved
quality but the capture rate might be reduced (relative to sensor
raw output rate)</p>
<p>Advanced white balance adjustments above and beyond
the specified white balance pipeline may be applied.<wbr/></p>
<p>If AWB is enabled with <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != OFF</code>,<wbr/> then
the camera device uses the last frame's AWB values
(or defaults if AWB has never been run).<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>The mode control selects how the image data is converted from the
sensor's native color into linear sRGB color.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>When auto-white balance (AWB) is enabled with <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> this
control is overridden by the AWB routine.<wbr/> When AWB is disabled,<wbr/> the
application controls how the color mapping is performed.<wbr/></p>
<p>We define the expected processing pipeline below.<wbr/> For consistency
across devices,<wbr/> this is always the case with TRANSFORM_<wbr/>MATRIX.<wbr/></p>
<p>When either FULL or HIGH_<wbr/>QUALITY is used,<wbr/> the camera device may
do additional processing but <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> will still be provided by the
camera device (in the results) and be roughly correct.<wbr/></p>
<p>Switching to TRANSFORM_<wbr/>MATRIX and using the data provided from
FAST or HIGH_<wbr/>QUALITY will yield a picture with the same white point
as what was produced by the camera device in the earlier frame.<wbr/></p>
<p>The expected processing pipeline is as follows:</p>
<p><img alt="White balance processing pipeline" src="images/camera2/metadata/android.colorCorrection.mode/processing_pipeline.png"/></p>
<p>The white balance is encoded by two values,<wbr/> a 4-channel white-balance
gain vector (applied in the Bayer domain),<wbr/> and a 3x3 color transform
matrix (applied after demosaic).<wbr/></p>
<p>The 4-channel white-balance gains are defined as:</p>
<pre><code><a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> = [ R G_<wbr/>even G_<wbr/>odd B ]
</code></pre>
<p>where <code>G_<wbr/>even</code> is the gain for green pixels on even rows of the
output,<wbr/> and <code>G_<wbr/>odd</code> is the gain for green pixels on the odd rows.<wbr/>
These may be identical for a given camera device implementation; if
the camera device does not support a separate gain for even/<wbr/>odd green
channels,<wbr/> it will use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
<p>The matrices for color transforms are defined as a 9-entry vector:</p>
<pre><code><a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> = [ I0 I1 I2 I3 I4 I5 I6 I7 I8 ]
</code></pre>
<p>which define a transform from input sensor colors,<wbr/> <code>P_<wbr/>in = [ r g b ]</code>,<wbr/>
to output linear sRGB,<wbr/> <code>P_<wbr/>out = [ r' g' b' ]</code>,<wbr/></p>
<p>with colors as follows:</p>
<pre><code>r' = I0r + I1g + I2b
g' = I3r + I4g + I5b
b' = I6r + I7g + I8b
</code></pre>
<p>Both the input and output value ranges must match.<wbr/> Overflow/<wbr/>underflow
values are clipped to fit within the range.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>HAL must support both FAST and HIGH_<wbr/>QUALITY if color correction control is available
on the camera device,<wbr/> but the underlying implementation can be the same for both modes.<wbr/>
That is,<wbr/> if the highest quality implementation on the camera device does not slow down
capture rate,<wbr/> then FAST and HIGH_<wbr/>QUALITY should generate the same output.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.colorCorrection.transform">
            <td class="entry_name
             " rowspan="3">
              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 as colorSpaceTransform]</span>


              <span class="entry_type_hwlevel">[full] </span>


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


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

            <td class="entry_description">
              <p>A color transform matrix to use to transform
from sensor RGB color space to output linear sRGB color space.<wbr/></p>
            </td>

            <td class="entry_units">
              Unitless scale factors
            </td>

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This matrix is either set by the camera device when the request
<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
directly by the application in the request when the
<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
<p>In the latter case,<wbr/> the camera device may round the matrix to account
for precision issues; the final rounded matrix should be reported back
in this matrix result metadata.<wbr/> The transform should keep the magnitude
of the output color values within <code>[0,<wbr/> 1.<wbr/>0]</code> (assuming input color
values is within the normalized range <code>[0,<wbr/> 1.<wbr/>0]</code>),<wbr/> or clipping may occur.<wbr/></p>
<p>The valid range of each matrix element varies on different devices,<wbr/> but
values within [-1.<wbr/>5,<wbr/> 3.<wbr/>0] are guaranteed not to be clipped.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.colorCorrection.gains">
            <td class="entry_name
             " rowspan="5">
              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 as rggbChannelVector]</span>


              <span class="entry_type_hwlevel">[full] </span>


                <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>


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

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

            <td class="entry_units">
              Unitless gain factors
            </td>

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>These per-channel gains are either set by the camera device
when the request <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not
TRANSFORM_<wbr/>MATRIX,<wbr/> or directly by the application in the
request when the <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is
TRANSFORM_<wbr/>MATRIX.<wbr/></p>
<p>The gains in the result metadata are the gains actually
applied by the camera device to the current frame.<wbr/></p>
<p>The valid range of gains varies on different devices,<wbr/> but gains
between [1.<wbr/>0,<wbr/> 3.<wbr/>0] are guaranteed not to be clipped.<wbr/> Even if a given
device allows gains below 1.<wbr/>0,<wbr/> this is usually not recommended because
this can create color artifacts.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The 4-channel white-balance gains are defined in
the order of <code>[R G_<wbr/>even G_<wbr/>odd B]</code>,<wbr/> where <code>G_<wbr/>even</code> is the gain
for green pixels on even rows of the output,<wbr/> and <code>G_<wbr/>odd</code>
is the gain for green pixels on the odd rows.<wbr/></p>
<p>If a HAL does not support a separate gain for even/<wbr/>odd green
channels,<wbr/> it must use the <code>G_<wbr/>even</code> value,<wbr/> and write
<code>G_<wbr/>odd</code> equal to <code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.colorCorrection.aberrationMode">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>color<wbr/>Correction.<wbr/>aberration<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>


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>No aberration correction is applied.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FAST (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Aberration correction will not slow down capture rate
relative to sensor raw output.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Aberration correction operates at improved quality but the capture rate might be
reduced (relative to sensor raw output rate)</p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>Mode of operation for the chromatic aberration correction algorithm.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p><a href="#static_android.colorCorrection.availableAberrationModes">android.<wbr/>color<wbr/>Correction.<wbr/>available<wbr/>Aberration<wbr/>Modes</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Chromatic (color) aberration is caused by the fact that different wavelengths of light
can not focus on the same point after exiting from the lens.<wbr/> This metadata defines
the high level control of chromatic aberration correction algorithm,<wbr/> which aims to
minimize the chromatic artifacts that may occur along the object boundaries in an
image.<wbr/></p>
<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean that camera device determined aberration
correction will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device will
use the highest-quality aberration correction algorithms,<wbr/> even if it slows down
capture rate.<wbr/> FAST means the camera device will not slow down capture rate when
applying aberration correction.<wbr/></p>
<p>LEGACY devices will always be in FAST mode.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="dynamic_android.colorCorrection.mode">
            <td class="entry_name
             " rowspan="5">
              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>


              <span class="entry_type_hwlevel">[full] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">TRANSFORM_MATRIX (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Use the <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> matrix
and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> to do color conversion.<wbr/></p>
<p>All advanced white balance adjustments (not specified
by our white balance pipeline) must be disabled.<wbr/></p>
<p>If AWB is enabled with <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != OFF</code>,<wbr/> then
TRANSFORM_<wbr/>MATRIX is ignored.<wbr/> The camera device will override
this value to either FAST or HIGH_<wbr/>QUALITY.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FAST (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Color correction processing must not slow down
capture rate relative to sensor raw output.<wbr/></p>
<p>Advanced white balance adjustments above and beyond
the specified white balance pipeline may be applied.<wbr/></p>
<p>If AWB is enabled with <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != OFF</code>,<wbr/> then
the camera device uses the last frame's AWB values
(or defaults if AWB has never been run).<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Color correction processing operates at improved
quality but the capture rate might be reduced (relative to sensor
raw output rate)</p>
<p>Advanced white balance adjustments above and beyond
the specified white balance pipeline may be applied.<wbr/></p>
<p>If AWB is enabled with <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != OFF</code>,<wbr/> then
the camera device uses the last frame's AWB values
(or defaults if AWB has never been run).<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>The mode control selects how the image data is converted from the
sensor's native color into linear sRGB color.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>When auto-white balance (AWB) is enabled with <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> this
control is overridden by the AWB routine.<wbr/> When AWB is disabled,<wbr/> the
application controls how the color mapping is performed.<wbr/></p>
<p>We define the expected processing pipeline below.<wbr/> For consistency
across devices,<wbr/> this is always the case with TRANSFORM_<wbr/>MATRIX.<wbr/></p>
<p>When either FULL or HIGH_<wbr/>QUALITY is used,<wbr/> the camera device may
do additional processing but <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> will still be provided by the
camera device (in the results) and be roughly correct.<wbr/></p>
<p>Switching to TRANSFORM_<wbr/>MATRIX and using the data provided from
FAST or HIGH_<wbr/>QUALITY will yield a picture with the same white point
as what was produced by the camera device in the earlier frame.<wbr/></p>
<p>The expected processing pipeline is as follows:</p>
<p><img alt="White balance processing pipeline" src="images/camera2/metadata/android.colorCorrection.mode/processing_pipeline.png"/></p>
<p>The white balance is encoded by two values,<wbr/> a 4-channel white-balance
gain vector (applied in the Bayer domain),<wbr/> and a 3x3 color transform
matrix (applied after demosaic).<wbr/></p>
<p>The 4-channel white-balance gains are defined as:</p>
<pre><code><a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> = [ R G_<wbr/>even G_<wbr/>odd B ]
</code></pre>
<p>where <code>G_<wbr/>even</code> is the gain for green pixels on even rows of the
output,<wbr/> and <code>G_<wbr/>odd</code> is the gain for green pixels on the odd rows.<wbr/>
These may be identical for a given camera device implementation; if
the camera device does not support a separate gain for even/<wbr/>odd green
channels,<wbr/> it will use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
<p>The matrices for color transforms are defined as a 9-entry vector:</p>
<pre><code><a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> = [ I0 I1 I2 I3 I4 I5 I6 I7 I8 ]
</code></pre>
<p>which define a transform from input sensor colors,<wbr/> <code>P_<wbr/>in = [ r g b ]</code>,<wbr/>
to output linear sRGB,<wbr/> <code>P_<wbr/>out = [ r' g' b' ]</code>,<wbr/></p>
<p>with colors as follows:</p>
<pre><code>r' = I0r + I1g + I2b
g' = I3r + I4g + I5b
b' = I6r + I7g + I8b
</code></pre>
<p>Both the input and output value ranges must match.<wbr/> Overflow/<wbr/>underflow
values are clipped to fit within the range.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>HAL must support both FAST and HIGH_<wbr/>QUALITY if color correction control is available
on the camera device,<wbr/> but the underlying implementation can be the same for both modes.<wbr/>
That is,<wbr/> if the highest quality implementation on the camera device does not slow down
capture rate,<wbr/> then FAST and HIGH_<wbr/>QUALITY should generate the same output.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.colorCorrection.transform">
            <td class="entry_name
             " rowspan="3">
              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 as colorSpaceTransform]</span>


              <span class="entry_type_hwlevel">[full] </span>


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


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

            <td class="entry_description">
              <p>A color transform matrix to use to transform
from sensor RGB color space to output linear sRGB color space.<wbr/></p>
            </td>

            <td class="entry_units">
              Unitless scale factors
            </td>

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This matrix is either set by the camera device when the request
<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
directly by the application in the request when the
<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
<p>In the latter case,<wbr/> the camera device may round the matrix to account
for precision issues; the final rounded matrix should be reported back
in this matrix result metadata.<wbr/> The transform should keep the magnitude
of the output color values within <code>[0,<wbr/> 1.<wbr/>0]</code> (assuming input color
values is within the normalized range <code>[0,<wbr/> 1.<wbr/>0]</code>),<wbr/> or clipping may occur.<wbr/></p>
<p>The valid range of each matrix element varies on different devices,<wbr/> but
values within [-1.<wbr/>5,<wbr/> 3.<wbr/>0] are guaranteed not to be clipped.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.colorCorrection.gains">
            <td class="entry_name
             " rowspan="5">
              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 as rggbChannelVector]</span>


              <span class="entry_type_hwlevel">[full] </span>


                <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>


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

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

            <td class="entry_units">
              Unitless gain factors
            </td>

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>These per-channel gains are either set by the camera device
when the request <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not
TRANSFORM_<wbr/>MATRIX,<wbr/> or directly by the application in the
request when the <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is
TRANSFORM_<wbr/>MATRIX.<wbr/></p>
<p>The gains in the result metadata are the gains actually
applied by the camera device to the current frame.<wbr/></p>
<p>The valid range of gains varies on different devices,<wbr/> but gains
between [1.<wbr/>0,<wbr/> 3.<wbr/>0] are guaranteed not to be clipped.<wbr/> Even if a given
device allows gains below 1.<wbr/>0,<wbr/> this is usually not recommended because
this can create color artifacts.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The 4-channel white-balance gains are defined in
the order of <code>[R G_<wbr/>even G_<wbr/>odd B]</code>,<wbr/> where <code>G_<wbr/>even</code> is the gain
for green pixels on even rows of the output,<wbr/> and <code>G_<wbr/>odd</code>
is the gain for green pixels on the odd rows.<wbr/></p>
<p>If a HAL does not support a separate gain for even/<wbr/>odd green
channels,<wbr/> it must use the <code>G_<wbr/>even</code> value,<wbr/> and write
<code>G_<wbr/>odd</code> equal to <code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.colorCorrection.aberrationMode">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>color<wbr/>Correction.<wbr/>aberration<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>


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>No aberration correction is applied.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FAST (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Aberration correction will not slow down capture rate
relative to sensor raw output.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Aberration correction operates at improved quality but the capture rate might be
reduced (relative to sensor raw output rate)</p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>Mode of operation for the chromatic aberration correction algorithm.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p><a href="#static_android.colorCorrection.availableAberrationModes">android.<wbr/>color<wbr/>Correction.<wbr/>available<wbr/>Aberration<wbr/>Modes</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Chromatic (color) aberration is caused by the fact that different wavelengths of light
can not focus on the same point after exiting from the lens.<wbr/> This metadata defines
the high level control of chromatic aberration correction algorithm,<wbr/> which aims to
minimize the chromatic artifacts that may occur along the object boundaries in an
image.<wbr/></p>
<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean that camera device determined aberration
correction will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device will
use the highest-quality aberration correction algorithms,<wbr/> even if it slows down
capture rate.<wbr/> FAST means the camera device will not slow down capture rate when
applying aberration correction.<wbr/></p>
<p>LEGACY devices will always be in FAST mode.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="static_android.colorCorrection.availableAberrationModes">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>color<wbr/>Correction.<wbr/>available<wbr/>Aberration<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 as enumList]</span>


              <span class="entry_type_hwlevel">[legacy] </span>


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


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

            <td class="entry_description">
              <p>List of aberration correction modes for <a href="#controls_android.colorCorrection.aberrationMode">android.<wbr/>color<wbr/>Correction.<wbr/>aberration<wbr/>Mode</a> that are
supported by this camera device.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>Any value listed in <a href="#controls_android.colorCorrection.aberrationMode">android.<wbr/>color<wbr/>Correction.<wbr/>aberration<wbr/>Mode</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This key lists the valid modes for <a href="#controls_android.colorCorrection.aberrationMode">android.<wbr/>color<wbr/>Correction.<wbr/>aberration<wbr/>Mode</a>.<wbr/>  If no
aberration correction modes are available for a device,<wbr/> this list will solely include
OFF mode.<wbr/> All camera devices will support either OFF or FAST mode.<wbr/></p>
<p>Camera devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability will always list
OFF mode.<wbr/> This includes all FULL level devices.<wbr/></p>
<p>LEGACY devices will always only support FAST mode.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>HAL must support both FAST and HIGH_<wbr/>QUALITY if chromatic aberration control is available
on the camera device,<wbr/> but the underlying implementation can be the same for both modes.<wbr/>
That is,<wbr/> if the highest quality implementation on the camera device does not slow down
capture rate,<wbr/> then FAST and HIGH_<wbr/>QUALITY will generate the same output.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="controls_android.control.aeAntibandingMode">
            <td class="entry_name
             " rowspan="5">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The camera device will not adjust exposure duration to
avoid banding problems.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">50HZ (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
avoid banding problems with 50Hz illumination sources.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">60HZ (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
avoid banding problems with 60Hz illumination
sources.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">AUTO (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The camera device will automatically adapt its
antibanding routine to the current illumination
condition.<wbr/> This is the default mode if AUTO is
available on given camera device.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>The desired setting for the camera device's auto-exposure
algorithm's antibanding compensation.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p><a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Some kinds of lighting fixtures,<wbr/> such as some fluorescent
lights,<wbr/> flicker at the rate of the power supply frequency
(60Hz or 50Hz,<wbr/> depending on country).<wbr/> While this is
typically not noticeable to a person,<wbr/> it can be visible to
a camera device.<wbr/> If a camera sets its exposure time to the
wrong value,<wbr/> the flicker may become visible in the
viewfinder as flicker or in a final captured image,<wbr/> as a
set of variable-brightness bands across the image.<wbr/></p>
<p>Therefore,<wbr/> the auto-exposure routines of camera devices
include antibanding routines that ensure that the chosen
exposure value will not cause such banding.<wbr/> The choice of
exposure time depends on the rate of flicker,<wbr/> which the
camera device can detect automatically,<wbr/> or the expected
rate can be selected by the application using this
control.<wbr/></p>
<p>A given camera device may not support all of the possible
options for the antibanding mode.<wbr/> The
<a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a> key contains
the available modes for a given camera device.<wbr/></p>
<p>AUTO mode is the default if it is available on given
camera device.<wbr/> When AUTO mode is not available,<wbr/> the
default will be either 50HZ or 60HZ,<wbr/> and both 50HZ
and 60HZ will be available.<wbr/></p>
<p>If manual exposure control is enabled (by setting
<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> or <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> to OFF),<wbr/>
then this setting has no effect,<wbr/> and the application must
ensure it selects exposure times that do not cause banding
issues.<wbr/> The <a href="#dynamic_android.statistics.sceneFlicker">android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker</a> key can assist
the application in this.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>For all capture request templates,<wbr/> this field must be set
to AUTO if AUTO mode is available.<wbr/> If AUTO is not available,<wbr/>
the default must be either 50HZ or 60HZ,<wbr/> and both 50HZ and
60HZ must be available.<wbr/></p>
<p>If manual exposure control is enabled (by setting
<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> or <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> to OFF),<wbr/>
then the exposure values provided by the application must not be
adjusted for antibanding.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.control.aeExposureCompensation">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>




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

            <td class="entry_description">
              <p>Adjustment to auto-exposure (AE) target image
brightness.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p><a href="#static_android.control.aeCompensationRange">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The adjustment is measured as a count of steps,<wbr/> with the
step size defined by <a href="#static_android.control.aeCompensationStep">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step</a> and the
allowed range by <a href="#static_android.control.aeCompensationRange">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range</a>.<wbr/></p>
<p>For example,<wbr/> if the exposure value (EV) step is 0.<wbr/>333,<wbr/> '6'
will mean an exposure compensation of +2 EV; -3 will mean an
exposure compensation of -1 EV.<wbr/> One EV represents a doubling
of image brightness.<wbr/> Note that this control will only be
effective if <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> <code>!=</code> OFF.<wbr/> This control
will take effect even when <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> <code>== true</code>.<wbr/></p>
<p>In the event of exposure compensation value being changed,<wbr/> camera device
may take several frames to reach the newly requested exposure target.<wbr/>
During that time,<wbr/> <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> field will be in the SEARCHING
state.<wbr/> Once the new exposure target is reached,<wbr/> <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> will
change from SEARCHING to either CONVERGED,<wbr/> LOCKED (if AE lock is enabled),<wbr/> or
FLASH_<wbr/>REQUIRED (if the scene is too dark for still capture).<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.control.aeLock">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Auto-exposure lock is disabled; the AE algorithm
is free to update its parameters.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Auto-exposure lock is enabled; the AE algorithm
must not update the exposure and sensitivity parameters
while the lock is active.<wbr/></p>
<p><a href="#controls_android.control.aeExposureCompensation">android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation</a> setting changes
will still take effect while auto-exposure is locked.<wbr/></p>
<p>Some rare LEGACY devices may not support
this,<wbr/> in which case the value will always be overridden to OFF.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>Whether auto-exposure (AE) is currently locked to its latest
calculated values.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>When set to <code>true</code> (ON),<wbr/> the AE algorithm is locked to its latest parameters,<wbr/>
and will not change exposure settings until the lock is set to <code>false</code> (OFF).<wbr/></p>
<p>Note that even when AE is locked,<wbr/> the flash may be fired if
the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is ON_<wbr/>AUTO_<wbr/>FLASH /<wbr/>
ON_<wbr/>ALWAYS_<wbr/>FLASH /<wbr/> ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE.<wbr/></p>
<p>When <a href="#controls_android.control.aeExposureCompensation">android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation</a> is changed,<wbr/> even if the AE lock
is ON,<wbr/> the camera device will still adjust its exposure value.<wbr/></p>
<p>If AE precapture is triggered (see <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>)
when AE is already locked,<wbr/> the camera device will not change the exposure time
(<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>) and sensitivity (<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>)
parameters.<wbr/> The flash may be fired if the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>
is ON_<wbr/>AUTO_<wbr/>FLASH/<wbr/>ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE and the scene is too dark.<wbr/> If the
<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> the scene may become overexposed.<wbr/>
Similarly,<wbr/> AE precapture trigger CANCEL has no effect when AE is already locked.<wbr/></p>
<p>When an AE precapture sequence is triggered,<wbr/> AE unlock will not be able to unlock
the AE if AE is locked by the camera device internally during precapture metering
sequence In other words,<wbr/> submitting requests with AE unlock has no effect for an
ongoing precapture metering sequence.<wbr/> Otherwise,<wbr/> the precapture metering sequence
will never succeed in a sequence of preview requests where AE lock is always set
to <code>false</code>.<wbr/></p>
<p>Since the camera device has a pipeline of in-flight requests,<wbr/> the settings that
get locked do not necessarily correspond to the settings that were present in the
latest capture result received from the camera device,<wbr/> since additional captures
and AE updates may have occurred even before the result was sent out.<wbr/> If an
application is switching between automatic and manual control and wishes to eliminate
any flicker during the switch,<wbr/> the following procedure is recommended:</p>
<ol>
<li>Starting in auto-AE mode:</li>
<li>Lock AE</li>
<li>Wait for the first result to be output that has the AE locked</li>
<li>Copy exposure settings from that result into a request,<wbr/> set the request to manual AE</li>
<li>Submit the capture request,<wbr/> proceed to run manual AE as desired.<wbr/></li>
</ol>
<p>See <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> for AE lock related state transition details.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.control.aeMode">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled.<wbr/></p>
<p>The application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera
device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's
a flash unit for this camera device.<wbr/></p>
<p>Note that auto-white balance (AWB) and auto-focus (AF)
behavior is device dependent when AE is in OFF mode.<wbr/>
To have consistent behavior across different devices,<wbr/>
it is recommended to either set AWB and AF to OFF mode
or lock AWB and AF before setting AE to OFF.<wbr/>
See <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>,<wbr/>
<a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a>,<wbr/> and <a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a>
for more details.<wbr/></p>
<p>LEGACY devices do not support the OFF mode and will
override attempts to use this value to ON.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
with no flash control.<wbr/></p>
<p>The application's values for
<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The
application has control over the various
android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON_AUTO_FLASH (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
the camera's flash unit,<wbr/> firing it in low-light
conditions.<wbr/></p>
<p>The flash may be fired during a precapture sequence
(triggered by <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and
may be fired for captures for which the
<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
STILL_<wbr/>CAPTURE</p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON_ALWAYS_FLASH (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
the camera's flash unit,<wbr/> always firing it for still
captures.<wbr/></p>
<p>The flash may be fired during a precapture sequence
(triggered by <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and
will always be fired for captures for which the
<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
STILL_<wbr/>CAPTURE</p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
reduction.<wbr/></p>
<p>If deemed necessary by the camera device,<wbr/> a red eye
reduction flash will fire during the precapture
sequence.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON_EXTERNAL_FLASH (v3.3)</span>
                    <span class="entry_type_enum_notes"><p>An external flash has been turned on.<wbr/></p>
<p>It informs the camera device that an external flash has been turned on,<wbr/> and that
metering (and continuous focus if active) should be quickly recaculated to account
for the external flash.<wbr/> Otherwise,<wbr/> this mode acts like ON.<wbr/></p>
<p>When the external flash is turned off,<wbr/> AE mode should be changed to one of the
other available AE modes.<wbr/></p>
<p>If the camera device supports AE external flash mode,<wbr/> <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> must
be FLASH_<wbr/>REQUIRED after the camera device finishes AE scan and it's too dark without
flash.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>The desired mode for the camera device's
auto-exposure routine.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p><a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
AUTO.<wbr/></p>
<p>When set to any of the ON modes,<wbr/> the camera device's
auto-exposure routine is enabled,<wbr/> overriding the
application's selected exposure time,<wbr/> sensor sensitivity,<wbr/>
and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes
is selected,<wbr/> the camera device's flash unit controls are
also overridden.<wbr/></p>
<p>The FLASH modes are only available if the camera device
has a flash unit (<a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is <code>true</code>).<wbr/></p>
<p>If flash TORCH mode is desired,<wbr/> this field must be set to
ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p>
<p>When set to any of the ON modes,<wbr/> the values chosen by the
camera device auto-exposure routine for the overridden
fields for a given capture will be available in its
CaptureResult.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.control.aeRegions">
            <td class="entry_name
             " rowspan="5">
              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 as meteringRectangle]</span>






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

            <td class="entry_description">
              <p>List of metering areas to use for auto-exposure adjustment.<wbr/></p>
            </td>

            <td class="entry_units">
              Pixel coordinates within android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
            </td>

            <td class="entry_range">
              <p>Coordinates must be between <code>[(0,<wbr/>0),<wbr/> (width,<wbr/> height))</code> of
<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Not available if <a href="#static_android.control.maxRegionsAe">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Ae</a> is 0.<wbr/>
Otherwise will always be present.<wbr/></p>
<p>The maximum number of regions supported by the device is determined by the value
of <a href="#static_android.control.maxRegionsAe">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Ae</a>.<wbr/></p>
<p>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
(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
bottom-right pixel in the active pixel array.<wbr/></p>
<p>The weight must be within <code>[0,<wbr/> 1000]</code>,<wbr/> and represents a weight
for every pixel in the area.<wbr/> This means that a large metering area
with the same weight as a smaller area will have more effect in
the metering result.<wbr/> Metering areas can partially overlap and the
camera device will add the weights in the overlap region.<wbr/></p>
<p>The weights are relative to weights of other exposure metering regions,<wbr/> so if only one
region is used,<wbr/> all non-zero weights will have the same effect.<wbr/> A region with 0
weight is ignored.<wbr/></p>
<p>If all regions have 0 weight,<wbr/> then no specific metering area needs to be used by the
camera device.<wbr/></p>
<p>If the metering region is outside the used <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a> returned in
capture result metadata,<wbr/> the camera device will ignore the sections outside the crop
region and output only the intersection rectangle as the metering region in the result
metadata.<wbr/>  If the region is entirely outside the crop region,<wbr/> it will be ignored and
not reported in the result metadata.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The HAL level representation of MeteringRectangle[] is a
int[5 * area_<wbr/>count].<wbr/>
Every five elements represent a metering region of
(xmin,<wbr/> ymin,<wbr/> xmax,<wbr/> ymax,<wbr/> weight).<wbr/>
The rectangle is defined to be inclusive on xmin and ymin,<wbr/> but
exclusive on xmax and ymax.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.control.aeTargetFpsRange">
            <td class="entry_name
             " rowspan="3">
              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 as rangeInt]</span>


              <span class="entry_type_hwlevel">[legacy] </span>




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

            <td class="entry_description">
              <p>Range over which the auto-exposure routine can
adjust the capture frame rate to maintain good
exposure.<wbr/></p>
            </td>

            <td class="entry_units">
              Frames per second (FPS)
            </td>

            <td class="entry_range">
              <p>Any of the entries in <a href="#static_android.control.aeAvailableTargetFpsRanges">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Only constrains auto-exposure (AE) algorithm,<wbr/> not
manual control of <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a> and
<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.control.aePrecaptureTrigger">
            <td class="entry_name
             " rowspan="5">
              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>


              <span class="entry_type_hwlevel">[limited] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">IDLE (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">START (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The precapture metering sequence will be started
by the camera device.<wbr/></p>
<p>The exact effect of the precapture trigger depends on
the current AE mode and state.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">CANCEL (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The camera device will cancel any currently active or completed
precapture metering sequence,<wbr/> the auto-exposure routine will return to its
initial state.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>Whether the camera device will trigger a precapture
metering sequence when it processes this request.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>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 camera device will trigger the auto-exposure (AE)
precapture metering sequence.<wbr/></p>
<p>When set to CANCEL,<wbr/> the camera device will cancel any active
precapture metering trigger,<wbr/> and return to its initial AE state.<wbr/>
If a precapture metering sequence is already completed,<wbr/> and the camera
device has implicitly locked the AE for subsequent still capture,<wbr/> the
CANCEL trigger will unlock the AE and return to its initial AE state.<wbr/></p>
<p>The precapture sequence should be triggered before starting a
high-quality still capture for final metering decisions to
be made,<wbr/> and for firing pre-capture flash pulses to estimate
scene brightness and required final capture flash power,<wbr/> when
the flash is enabled.<wbr/></p>
<p>Normally,<wbr/> this entry should be set to START for only a
single request,<wbr/> and the application should wait until the
sequence completes before starting a new one.<wbr/></p>
<p>When a precapture metering sequence is finished,<wbr/> the camera device
may lock the auto-exposure routine internally to be able to accurately expose the
subsequent still capture image (<code><a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> == STILL_<wbr/>CAPTURE</code>).<wbr/>
For this case,<wbr/> the AE may not resume normal scan if no subsequent still capture is
submitted.<wbr/> To ensure that the AE routine restarts normal scan,<wbr/> the application should
submit a request with <code><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> == true</code>,<wbr/> followed by a request
with <code><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> == false</code>,<wbr/> if the application decides not to submit a
still capture request after the precapture sequence completes.<wbr/> Alternatively,<wbr/> for
API level 23 or newer devices,<wbr/> the CANCEL can be used to unlock the camera device
internally locked AE if the application doesn't submit a still capture request after
the AE precapture trigger.<wbr/> Note that,<wbr/> the CANCEL was added in API level 23,<wbr/> and must not
be used in devices that have earlier API levels.<wbr/></p>
<p>The exact effect of auto-exposure (AE) precapture trigger
depends on the current AE mode and state; see
<a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> for AE precapture state transition
details.<wbr/></p>
<p>On LEGACY-level devices,<wbr/> the precapture trigger is not supported;
capturing a high-resolution JPEG image will automatically trigger a
precapture sequence before the high-resolution capture,<wbr/> including
potentially firing a pre-capture flash.<wbr/></p>
<p>Using the precapture trigger and the auto-focus trigger <a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a>
simultaneously is allowed.<wbr/> However,<wbr/> since these triggers often require cooperation between
the auto-focus and auto-exposure routines (for example,<wbr/> the may need to be enabled for a
focus sweep),<wbr/> the camera device may delay acting on a later trigger until the previous
trigger has been fully handled.<wbr/> This may lead to longer intervals between the trigger and
changes to <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> indicating the start of the precapture sequence,<wbr/> for
example.<wbr/></p>
<p>If both the precapture and the auto-focus trigger are activated on the same request,<wbr/> then
the camera device will complete them in the optimal order for that device.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The HAL must support triggering the AE precapture trigger while an AF trigger is active
(and vice versa),<wbr/> or at the same time as the AF trigger.<wbr/>  It is acceptable for the HAL to
treat these as two consecutive triggers,<wbr/> for example handling the AF trigger and then the
AE trigger.<wbr/>  Or the HAL may choose to optimize the case with both triggers fired at once,<wbr/>
to minimize the latency for converging both focus and exposure/<wbr/>flash usage.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.control.afMode">
            <td class="entry_name
             " rowspan="5">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
application.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">AUTO (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Basic automatic focus mode.<wbr/></p>
<p>In this mode,<wbr/> the lens does not move unless
the autofocus trigger action is called.<wbr/> When that trigger
is activated,<wbr/> AF will transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
<p>Always supported if lens is not fixed focus.<wbr/></p>
<p>Use <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> to determine if lens
is fixed-focus.<wbr/></p>
<p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
and sets the AF state to INACTIVE.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">MACRO (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Close-up focusing mode.<wbr/></p>
<p>In this mode,<wbr/> the lens does not move unless the
autofocus trigger action is called.<wbr/> When that trigger is
activated,<wbr/> AF will transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/> This
mode is optimized for focusing on objects very close to
the camera.<wbr/></p>
<p>When that trigger is activated,<wbr/> AF will 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/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">CONTINUOUS_VIDEO (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
position continually to attempt to provide a
constantly-in-focus image stream.<wbr/></p>
<p>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/></p>
<p>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/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">CONTINUOUS_PICTURE (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
position continually to attempt to provide a
constantly-in-focus image stream.<wbr/></p>
<p>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/></p>
<p>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/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">EDOF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus) mode.<wbr/></p>
<p>The camera device will produce images with an extended
depth of field automatically; no special focusing
operations need to be done before taking a picture.<wbr/></p>
<p>AF triggers are ignored,<wbr/> and the AF state will always be
INACTIVE.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>Whether auto-focus (AF) is currently enabled,<wbr/> and what
mode it is set to.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p><a href="#static_android.control.afAvailableModes">android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> = AUTO and the lens is not fixed focus
(i.<wbr/>e.<wbr/> <code><a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> &gt; 0</code>).<wbr/> Also note that
when <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/> the behavior of AF is device
dependent.<wbr/> It is recommended to lock AF by using <a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a> before
setting <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> to OFF,<wbr/> or set AF mode to OFF when AE is OFF.<wbr/></p>
<p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
the camera device will report the current AF status in <a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a>
in result metadata.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>When afMode is AUTO or MACRO,<wbr/> the lens must not move until an AF trigger is sent in a
request (<a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a> <code>==</code> START).<wbr/> After an AF trigger,<wbr/> the afState will end
up with either FOCUSED_<wbr/>LOCKED or NOT_<wbr/>FOCUSED_<wbr/>LOCKED state (see
<a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a> for detailed state transitions),<wbr/> which indicates that the lens is
locked and will not move.<wbr/> If camera movement (e.<wbr/>g.<wbr/> tilting camera) causes the lens to move
after the lens is locked,<wbr/> the HAL must compensate this movement appropriately such that
the same focal plane remains in focus.<wbr/></p>
<p>When afMode is one of the continuous auto focus modes,<wbr/> the HAL is free to start a AF
scan whenever it's not locked.<wbr/> When the lens is locked after an AF trigger
(see <a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a> for detailed state transitions),<wbr/> the HAL should maintain the
same lock behavior as above.<wbr/></p>
<p>When afMode is OFF,<wbr/> the application controls focus manually.<wbr/> The accuracy of the
focus distance control depends on the <a href="#static_android.lens.info.focusDistanceCalibration">android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration</a>.<wbr/>
However,<wbr/> the lens must not move regardless of the camera movement for any focus distance
manual control.<wbr/></p>
<p>To put this in concrete terms,<wbr/> if the camera has lens elements which may move based on
camera orientation or motion (e.<wbr/>g.<wbr/> due to gravity),<wbr/> then the HAL must drive the lens to
remain in a fixed position invariant to the camera's orientation or motion,<wbr/> for example,<wbr/>
by using accelerometer measurements in the lens control logic.<wbr/> This is a typical issue
that will arise on camera modules with open-loop VCMs.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.control.afRegions">
            <td class="entry_name
             " rowspan="5">
              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 as meteringRectangle]</span>






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

            <td class="entry_description">
              <p>List of metering areas to use for auto-focus.<wbr/></p>
            </td>

            <td class="entry_units">
              Pixel coordinates within android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
            </td>

            <td class="entry_range">
              <p>Coordinates must be between <code>[(0,<wbr/>0),<wbr/> (width,<wbr/> height))</code> of
<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Not available if <a href="#static_android.control.maxRegionsAf">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Af</a> is 0.<wbr/>
Otherwise will always be present.<wbr/></p>
<p>The maximum number of focus areas supported by the device is determined by the value
of <a href="#static_android.control.maxRegionsAf">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Af</a>.<wbr/></p>
<p>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
(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
bottom-right pixel in the active pixel array.<wbr/></p>
<p>The weight must be within <code>[0,<wbr/> 1000]</code>,<wbr/> and represents a weight
for every pixel in the area.<wbr/> This means that a large metering area
with the same weight as a smaller area will have more effect in
the metering result.<wbr/> Metering areas can partially overlap and the
camera device will add the weights in the overlap region.<wbr/></p>
<p>The weights are relative to weights of other metering regions,<wbr/> so if only one region
is used,<wbr/> all non-zero weights will have the same effect.<wbr/> A region with 0 weight is
ignored.<wbr/></p>
<p>If all regions have 0 weight,<wbr/> then no specific metering area needs to be used by the
camera device.<wbr/> The capture result will either be a zero weight region as well,<wbr/> or
the region selected by the camera device as the focus area of interest.<wbr/></p>
<p>If the metering region is outside the used <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a> returned in
capture result metadata,<wbr/> the camera device will ignore the sections outside the crop
region and output only the intersection rectangle as the metering region in the result
metadata.<wbr/> If the region is entirely outside the crop region,<wbr/> it will be ignored and
not reported in the result metadata.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The HAL level representation of MeteringRectangle[] is a
int[5 * area_<wbr/>count].<wbr/>
Every five elements represent a metering region of
(xmin,<wbr/> ymin,<wbr/> xmax,<wbr/> ymax,<wbr/> weight).<wbr/>
The rectangle is defined to be inclusive on xmin and ymin,<wbr/> but
exclusive on xmax and ymax.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.control.afTrigger">
            <td class="entry_name
             " rowspan="5">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">IDLE (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">START (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Autofocus will trigger now.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">CANCEL (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Autofocus will return to its initial
state,<wbr/> and cancel any currently active trigger.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>Whether the camera device will trigger autofocus for this request.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This entry is normally set to IDLE,<wbr/> or is not
included at all in the request settings.<wbr/></p>
<p>When included and set to START,<wbr/> the camera device will trigger the
autofocus algorithm.<wbr/> If autofocus is disabled,<wbr/> this trigger has no effect.<wbr/></p>
<p>When set to CANCEL,<wbr/> the camera device will cancel any active trigger,<wbr/>
and return to its initial AF state.<wbr/></p>
<p>Generally,<wbr/> applications should set this entry to START or CANCEL for only a
single capture,<wbr/> and then return it to IDLE (or not set at all).<wbr/> Specifying
START for multiple captures in a row means restarting the AF operation over
and over again.<wbr/></p>
<p>See <a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a> for what the trigger means for each AF mode.<wbr/></p>
<p>Using the autofocus trigger and the precapture trigger <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>
simultaneously is allowed.<wbr/> However,<wbr/> since these triggers often require cooperation between
the auto-focus and auto-exposure routines (for example,<wbr/> the may need to be enabled for a
focus sweep),<wbr/> the camera device may delay acting on a later trigger until the previous
trigger has been fully handled.<wbr/> This may lead to longer intervals between the trigger and
changes to <a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a>,<wbr/> for example.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The HAL must support triggering the AF trigger while an AE precapture trigger is active
(and vice versa),<wbr/> or at the same time as the AE trigger.<wbr/>  It is acceptable for the HAL to
treat these as two consecutive triggers,<wbr/> for example handling the AF trigger and then the
AE trigger.<wbr/>  Or the HAL may choose to optimize the case with both triggers fired at once,<wbr/>
to minimize the latency for converging both focus and exposure/<wbr/>flash usage.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.control.awbLock">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Auto-white balance lock is disabled; the AWB
algorithm is free to update its parameters if in AUTO
mode.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Auto-white balance lock is enabled; the AWB
algorithm will not update its parameters while the lock
is active.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>Whether auto-white balance (AWB) is currently locked to its
latest calculated values.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>When set to <code>true</code> (ON),<wbr/> the AWB algorithm is locked to its latest parameters,<wbr/>
and will not change color balance settings until the lock is set to <code>false</code> (OFF).<wbr/></p>
<p>Since the camera device has a pipeline of in-flight requests,<wbr/> the settings that
get locked do not necessarily correspond to the settings that were present in the
latest capture result received from the camera device,<wbr/> since additional captures
and AWB updates may have occurred even before the result was sent out.<wbr/> If an
application is switching between automatic and manual control and wishes to eliminate
any flicker during the switch,<wbr/> the following procedure is recommended:</p>
<ol>
<li>Starting in auto-AWB mode:</li>
<li>Lock AWB</li>
<li>Wait for the first result to be output that has the AWB locked</li>
<li>Copy AWB settings from that result into a request,<wbr/> set the request to manual AWB</li>
<li>Submit the capture request,<wbr/> proceed to run manual AWB as desired.<wbr/></li>
</ol>
<p>Note that AWB lock is only meaningful when
<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> is in the AUTO mode; in other modes,<wbr/>
AWB is already fixed to a specific setting.<wbr/></p>
<p>Some LEGACY devices may not support ON; the value is then overridden to OFF.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.control.awbMode">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled.<wbr/></p>
<p>The application-selected color transform matrix
(<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
(<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
device for manual white balance control.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">AUTO (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is active.<wbr/></p>
<p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
values used by the camera device for the transform and gains
will be available in the capture result for this request.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">INCANDESCENT (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
the camera device uses incandescent light as the assumed scene
illumination for white balance.<wbr/></p>
<p>While the exact white balance transforms are up to the
camera device,<wbr/> they will approximately match the CIE
standard illuminant A.<wbr/></p>
<p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
values used by the camera device for the transform and gains
will be available in the capture result for this request.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FLUORESCENT (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
the camera device uses fluorescent light as the assumed scene
illumination for white balance.<wbr/></p>
<p>While the exact white balance transforms are up to the
camera device,<wbr/> they will approximately match the CIE
standard illuminant F2.<wbr/></p>
<p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
values used by the camera device for the transform and gains
will be available in the capture result for this request.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">WARM_FLUORESCENT (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
the camera device uses warm fluorescent light as the assumed scene
illumination for white balance.<wbr/></p>
<p>While the exact white balance transforms are up to the
camera device,<wbr/> they will approximately match the CIE
standard illuminant F4.<wbr/></p>
<p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
values used by the camera device for the transform and gains
will be available in the capture result for this request.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">DAYLIGHT (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
the camera device uses daylight light as the assumed scene
illumination for white balance.<wbr/></p>
<p>While the exact white balance transforms are up to the
camera device,<wbr/> they will approximately match the CIE
standard illuminant D65.<wbr/></p>
<p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
values used by the camera device for the transform and gains
will be available in the capture result for this request.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">CLOUDY_DAYLIGHT (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
the camera device uses cloudy daylight light as the assumed scene
illumination for white balance.<wbr/></p>
<p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
values used by the camera device for the transform and gains
will be available in the capture result for this request.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">TWILIGHT (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
the camera device uses twilight light as the assumed scene
illumination for white balance.<wbr/></p>
<p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
values used by the camera device for the transform and gains
will be available in the capture result for this request.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">SHADE (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
the camera device uses shade light as the assumed scene
illumination for white balance.<wbr/></p>
<p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
values used by the camera device for the transform and gains
will be available in the capture result for this request.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>Whether auto-white balance (AWB) is currently setting the color
transform fields,<wbr/> and what its illumination target
is.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p><a href="#static_android.control.awbAvailableModes">android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
<p>When set to the ON mode,<wbr/> the camera device's auto-white balance
routine is enabled,<wbr/> overriding the application's selected
<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/> Note that when <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>
is OFF,<wbr/> the behavior of AWB is device dependent.<wbr/> It is recommened to
also set AWB mode to OFF or lock AWB by using <a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> before
setting AE mode to OFF.<wbr/></p>
<p>When set to the OFF mode,<wbr/> the camera device's auto-white balance
routine is disabled.<wbr/> The application manually controls the white
balance by <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>
and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
<p>When set to any other modes,<wbr/> the camera device's auto-white
balance routine is disabled.<wbr/> The camera device uses each
particular illumination target for white balance
adjustment.<wbr/> The application's values for
<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/>
<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> are ignored.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.control.awbRegions">
            <td class="entry_name
             " rowspan="5">
              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 as meteringRectangle]</span>






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

            <td class="entry_description">
              <p>List of metering areas to use for auto-white-balance illuminant
estimation.<wbr/></p>
            </td>

            <td class="entry_units">
              Pixel coordinates within android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
            </td>

            <td class="entry_range">
              <p>Coordinates must be between <code>[(0,<wbr/>0),<wbr/> (width,<wbr/> height))</code> of
<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Not available if <a href="#static_android.control.maxRegionsAwb">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Awb</a> is 0.<wbr/>
Otherwise will always be present.<wbr/></p>
<p>The maximum number of regions supported by the device is determined by the value
of <a href="#static_android.control.maxRegionsAwb">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Awb</a>.<wbr/></p>
<p>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
(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
bottom-right pixel in the active pixel array.<wbr/></p>
<p>The weight must range from 0 to 1000,<wbr/> and represents a weight
for every pixel in the area.<wbr/> This means that a large metering area
with the same weight as a smaller area will have more effect in
the metering result.<wbr/> Metering areas can partially overlap and the
camera device will add the weights in the overlap region.<wbr/></p>
<p>The weights are relative to weights of other white balance metering regions,<wbr/> so if
only one region is used,<wbr/> all non-zero weights will have the same effect.<wbr/> A region with
0 weight is ignored.<wbr/></p>
<p>If all regions have 0 weight,<wbr/> then no specific metering area needs to be used by the
camera device.<wbr/></p>
<p>If the metering region is outside the used <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a> returned in
capture result metadata,<wbr/> the camera device will ignore the sections outside the crop
region and output only the intersection rectangle as the metering region in the result
metadata.<wbr/>  If the region is entirely outside the crop region,<wbr/> it will be ignored and
not reported in the result metadata.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The HAL level representation of MeteringRectangle[] is a
int[5 * area_<wbr/>count].<wbr/>
Every five elements represent a metering region of
(xmin,<wbr/> ymin,<wbr/> xmax,<wbr/> ymax,<wbr/> weight).<wbr/>
The rectangle is defined to be inclusive on xmin and ymin,<wbr/> but
exclusive on xmax and ymax.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.control.captureIntent">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">CUSTOM (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The goal of this request doesn't fall into the other
categories.<wbr/> The camera device will default to preview-like
behavior.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">PREVIEW (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>This request is for a preview-like use case.<wbr/></p>
<p>The precapture trigger may be used to start off a metering
w/<wbr/>flash sequence.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">STILL_CAPTURE (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>This request is for a still capture-type
use case.<wbr/></p>
<p>If the flash unit is under automatic control,<wbr/> it may fire as needed.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">VIDEO_RECORD (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>This request is for a video recording
use case.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">VIDEO_SNAPSHOT (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>This request is for a video snapshot (still
image while recording video) use case.<wbr/></p>
<p>The camera device should take the highest-quality image
possible (given the other settings) without disrupting the
frame rate of video recording.<wbr/>  </p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ZERO_SHUTTER_LAG (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>This request is for a ZSL usecase; the
application will stream full-resolution images and
reprocess one or several later for a final
capture.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">MANUAL (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>This request is for manual capture use case where
the applications want to directly control the capture parameters.<wbr/></p>
<p>For example,<wbr/> the application may wish to manually control
<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/> <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> etc.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">MOTION_TRACKING (v3.3)</span>
                    <span class="entry_type_enum_notes"><p>This request is for a motion tracking use case,<wbr/> where
the application will use camera and inertial sensor data to
locate and track objects in the world.<wbr/></p>
<p>The camera device auto-exposure routine will limit the exposure time
of the camera to no more than 20 milliseconds,<wbr/> to minimize motion blur.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>Information to the camera device 3A (auto-exposure,<wbr/>
auto-focus,<wbr/> auto-white balance) routines about the purpose
of this capture,<wbr/> to help the camera device to decide optimal 3A
strategy.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This control (except for MANUAL) is only effective if
<code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF</code> and any 3A routine is active.<wbr/></p>
<p>All intents are supported by all devices,<wbr/> except that:
  * ZERO_<wbr/>SHUTTER_<wbr/>LAG will be supported if <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains
PRIVATE_<wbr/>REPROCESSING or YUV_<wbr/>REPROCESSING.<wbr/>
  * MANUAL will be supported if <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains
MANUAL_<wbr/>SENSOR.<wbr/>
  * MOTION_<wbr/>TRACKING will be supported if <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains
MOTION_<wbr/>TRACKING.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.control.effectMode">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>No color effect will be applied.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">MONO (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>A "monocolor" effect where the image is mapped into
a single color.<wbr/></p>
<p>This will typically be grayscale.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">NEGATIVE (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>A "photo-negative" effect where the image's colors
are inverted.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">SOLARIZE (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>A "solarisation" effect (Sabattier effect) where the
image is wholly or partially reversed in
tone.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">SEPIA (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>A "sepia" effect where the image is mapped into warm
gray,<wbr/> red,<wbr/> and brown tones.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">POSTERIZE (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>A "posterization" effect where the image uses
discrete regions of tone rather than a continuous
gradient of tones.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">WHITEBOARD (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>A "whiteboard" effect where the image is typically displayed
as regions of white,<wbr/> with black or grey details.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">BLACKBOARD (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>A "blackboard" effect where the image is typically displayed
as regions of black,<wbr/> with white or grey details.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">AQUA (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>An "aqua" effect where a blue hue is added to the image.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>A special color effect to apply.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p><a href="#static_android.control.availableEffects">android.<wbr/>control.<wbr/>available<wbr/>Effects</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>When this mode is set,<wbr/> a color effect will be applied
to images produced by the camera device.<wbr/> The interpretation
and implementation of these color effects is left to the
implementor of the camera device,<wbr/> and should not be
depended on to be consistent (or present) across all
devices.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.control.mode">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/></p>
<p>All control by the device's metering and focusing (3A)
routines is disabled,<wbr/> and no other settings in
android.<wbr/>control.<wbr/>* have any effect,<wbr/> except that
<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> may be used by the camera
device to select post-processing values for processing
blocks that do not allow for manual control,<wbr/> or are not
exposed by the camera API.<wbr/></p>
<p>However,<wbr/> the camera device's 3A routines may continue to
collect statistics and update their internal state so that
when control is switched to AUTO mode,<wbr/> good control values
can be immediately applied.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">AUTO (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/></p>
<p>Manual control of capture parameters is disabled.<wbr/> All
controls in android.<wbr/>control.<wbr/>* besides sceneMode take
effect.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">USE_SCENE_MODE (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Use a specific scene mode.<wbr/></p>
<p>Enabling this disables control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and
control.<wbr/>afMode controls; the camera device will 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 scene mode is supported (i.<wbr/>e.<wbr/>
<a href="#static_android.control.availableSceneModes">android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes</a>
contain some modes other than DISABLED).<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">OFF_KEEP_STATE (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Same as OFF mode,<wbr/> except that this capture will not be
used by camera device background auto-exposure,<wbr/> auto-white balance and
auto-focus algorithms (3A) to update their statistics.<wbr/></p>
<p>Specifically,<wbr/> the 3A routines are locked to the last
values set from a request with AUTO,<wbr/> OFF,<wbr/> or
USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> and any statistics or state updates
collected from manual captures with OFF_<wbr/>KEEP_<wbr/>STATE will be
discarded by the camera device.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>Overall mode of 3A (auto-exposure,<wbr/> auto-white-balance,<wbr/> auto-focus) control
routines.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p><a href="#static_android.control.availableModes">android.<wbr/>control.<wbr/>available<wbr/>Modes</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This is a top-level 3A control switch.<wbr/> When set to OFF,<wbr/> all 3A control
by the camera device is disabled.<wbr/> The application must set the fields for
capture parameters itself.<wbr/></p>
<p>When set to AUTO,<wbr/> the individual algorithm controls in
android.<wbr/>control.<wbr/>* are in effect,<wbr/> such as <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>.<wbr/></p>
<p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device
implements one of the scene mode settings (such as ACTION,<wbr/>
SUNSET,<wbr/> or PARTY) as it wishes.<wbr/> The camera device scene mode
3A settings are provided by <a href="https://developer.android.com/reference/android/hardware/camera2/CaptureResult.html">capture results</a>.<wbr/></p>
<p>When set to OFF_<wbr/>KEEP_<wbr/>STATE,<wbr/> it is similar to OFF mode,<wbr/> the only difference
is that this frame will not be used by camera device background 3A statistics
update,<wbr/> as if this frame is never captured.<wbr/> This mode can be used in the scenario
where the application doesn't want a 3A manual control capture to affect
the subsequent auto 3A capture results.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.control.sceneMode">
            <td class="entry_name
             " rowspan="5">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">DISABLED (v3.2)</span>
                    <span class="entry_type_enum_value">0</span>
                    <span class="entry_type_enum_notes"><p>Indicates that no scene modes are set for a given capture request.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FACE_PRIORITY (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>If face detection support exists,<wbr/> use face
detection data for auto-focus,<wbr/> auto-white balance,<wbr/> and
auto-exposure routines.<wbr/></p>
<p>If face detection statistics are disabled
(i.<wbr/>e.<wbr/> <a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a> is set to OFF),<wbr/>
this should still operate correctly (but will not return
face detection statistics to the framework).<wbr/></p>
<p>Unlike the other scene modes,<wbr/> <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>
remain active when FACE_<wbr/>PRIORITY is set.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ACTION (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving objects.<wbr/></p>
<p>Similar to SPORTS.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">PORTRAIT (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Optimized for still photos of people.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">LANDSCAPE (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Optimized for photos of distant macroscopic objects.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">NIGHT (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Optimized for low-light settings.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">NIGHT_PORTRAIT (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Optimized for still photos of people in low-light
settings.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">THEATRE (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings where flash must
remain off.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">BEACH (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor beach settings.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">SNOW (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor settings containing snow.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">SUNSET (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Optimized for scenes of the setting sun.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">STEADYPHOTO (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Optimized to avoid blurry photos due to small amounts of
device motion (for example: due to hand shake).<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FIREWORKS (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Optimized for nighttime photos of fireworks.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">SPORTS (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving people.<wbr/></p>
<p>Similar to ACTION.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">PARTY (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings with multiple moving
people.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">CANDLELIGHT (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Optimized for dim settings where the main light source
is a flame.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">BARCODE (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Optimized for accurately capturing a photo of barcode
for use by camera applications that wish to read the
barcode value.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">HIGH_SPEED_VIDEO (v3.2)</span>
                    <span class="entry_type_enum_deprecated">[deprecated]</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>This is deprecated,<wbr/> please use <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createConstrainedHighSpeedCaptureSession">CameraDevice#createConstrainedHighSpeedCaptureSession</a>
and <a href="https://developer.android.com/reference/android/hardware/camera2/CameraConstrainedHighSpeedCaptureSession.html#createHighSpeedRequestList">CameraConstrainedHighSpeedCaptureSession#createHighSpeedRequestList</a>
for high speed video recording.<wbr/></p>
<p>Optimized for high speed video recording (frame rate &gt;=60fps) use case.<wbr/></p>
<p>The supported high speed video sizes and fps ranges are specified in
<a href="#static_android.control.availableHighSpeedVideoConfigurations">android.<wbr/>control.<wbr/>available<wbr/>High<wbr/>Speed<wbr/>Video<wbr/>Configurations</a>.<wbr/> To get desired
output frame rates,<wbr/> the application is only allowed to select video size
and fps range combinations listed in this static metadata.<wbr/> The fps range
can be control via <a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a>.<wbr/></p>
<p>In this mode,<wbr/> the camera device will override aeMode,<wbr/> awbMode,<wbr/> and afMode to
ON,<wbr/> ON,<wbr/> and CONTINUOUS_<wbr/>VIDEO,<wbr/> respectively.<wbr/> All post-processing block mode
controls will be overridden to be FAST.<wbr/> Therefore,<wbr/> no manual control of capture
and post-processing parameters is possible.<wbr/> All other controls operate the
same as when <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == AUTO.<wbr/> This means that all other
android.<wbr/>control.<wbr/>* fields continue to work,<wbr/> such as</p>
<ul>
<li><a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a></li>
<li><a href="#controls_android.control.aeExposureCompensation">android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation</a></li>
<li><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a></li>
<li><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a></li>
<li><a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a></li>
<li><a href="#controls_android.control.aeRegions">android.<wbr/>control.<wbr/>ae<wbr/>Regions</a></li>
<li><a href="#controls_android.control.afRegions">android.<wbr/>control.<wbr/>af<wbr/>Regions</a></li>
<li><a href="#controls_android.control.awbRegions">android.<wbr/>control.<wbr/>awb<wbr/>Regions</a></li>
<li><a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a></li>
<li><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a></li>
</ul>
<p>Outside of android.<wbr/>control.<wbr/>*,<wbr/> the following controls will work:</p>
<ul>
<li><a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> (automatic flash for still capture will not work since aeMode is ON)</li>
<li><a href="#controls_android.lens.opticalStabilizationMode">android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode</a> (if it is supported)</li>
<li><a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a></li>
<li><a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a></li>
</ul>
<p>For high speed recording use case,<wbr/> the actual maximum supported frame rate may
be lower than what camera can output,<wbr/> depending on the destination Surfaces for
the image data.<wbr/> For example,<wbr/> if the destination surface is from video encoder,<wbr/>
the application need check if the video encoder is capable of supporting the
high frame rate for a given video size,<wbr/> or it will end up with lower recording
frame rate.<wbr/> If the destination surface is from preview window,<wbr/> the preview frame
rate will be bounded by the screen refresh rate.<wbr/></p>
<p>The camera device will only support up to 2 output high speed streams
(processed non-stalling format defined in <a href="#static_android.request.maxNumOutputStreams">android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Streams</a>)
in this mode.<wbr/> This control will be effective only if all of below conditions are true:</p>
<ul>
<li>The application created no more than maxNumHighSpeedStreams processed non-stalling
format output streams,<wbr/> where maxNumHighSpeedStreams is calculated as
min(2,<wbr/> <a href="#static_android.request.maxNumOutputStreams">android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Streams</a>[Processed (but not-stalling)]).<wbr/></li>
<li>The stream sizes are selected from the sizes reported by
<a href="#static_android.control.availableHighSpeedVideoConfigurations">android.<wbr/>control.<wbr/>available<wbr/>High<wbr/>Speed<wbr/>Video<wbr/>Configurations</a>.<wbr/></li>
<li>No processed non-stalling or raw streams are configured.<wbr/></li>
</ul>
<p>When above conditions are NOT satistied,<wbr/> the controls of this mode and
<a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a> will be ignored by the camera device,<wbr/>
the camera device will fall back to <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> <code>==</code> AUTO,<wbr/>
and the returned capture result metadata will give the fps range choosen
by the camera device.<wbr/></p>
<p>Switching into or out of this mode may trigger some camera ISP/<wbr/>sensor
reconfigurations,<wbr/> which may introduce extra latency.<wbr/> It is recommended that
the application avoids unnecessary scene mode switch as much as possible.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">HDR (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Turn on a device-specific high dynamic range (HDR) mode.<wbr/></p>
<p>In this scene mode,<wbr/> the camera device captures images
that keep a larger range of scene illumination levels
visible in the final image.<wbr/> For example,<wbr/> when taking a
picture of a object in front of a bright window,<wbr/> both
the object and the scene through the window may be
visible when using HDR mode,<wbr/> while in normal AUTO mode,<wbr/>
one or the other may be poorly exposed.<wbr/> As a tradeoff,<wbr/>
HDR mode generally takes much longer to capture a single
image,<wbr/> has no user control,<wbr/> and may have other artifacts
depending on the HDR method used.<wbr/></p>
<p>Therefore,<wbr/> HDR captures operate at a much slower rate
than regular captures.<wbr/></p>
<p>In this mode,<wbr/> on LIMITED or FULL devices,<wbr/> when a request
is made with a <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> of
STILL_<wbr/>CAPTURE,<wbr/> the camera device will capture an image
using a high dynamic range capture technique.<wbr/>  On LEGACY
devices,<wbr/> captures that target a JPEG-format output will
be captured with HDR,<wbr/> and the capture intent is not
relevant.<wbr/></p>
<p>The HDR capture may involve the device capturing a burst
of images internally and combining them into one,<wbr/> or it
may involve the device using specialized high dynamic
range capture hardware.<wbr/> In all cases,<wbr/> a single image is
produced in response to a capture request submitted
while in HDR mode.<wbr/></p>
<p>Since substantial post-processing is generally needed to
produce an HDR image,<wbr/> only YUV,<wbr/> PRIVATE,<wbr/> and JPEG
outputs are supported for LIMITED/<wbr/>FULL device HDR
captures,<wbr/> and only JPEG outputs are supported for LEGACY
HDR captures.<wbr/> Using a RAW output for HDR capture is not
supported.<wbr/></p>
<p>Some devices may also support always-on HDR,<wbr/> which
applies HDR processing at full frame rate.<wbr/>  For these
devices,<wbr/> intents other than STILL_<wbr/>CAPTURE will also
produce an HDR output with no frame rate impact compared
to normal operation,<wbr/> though the quality may be lower
than for STILL_<wbr/>CAPTURE intents.<wbr/></p>
<p>If SCENE_<wbr/>MODE_<wbr/>HDR is used with unsupported output types
or capture intents,<wbr/> the images captured will be as if
the SCENE_<wbr/>MODE was not enabled at all.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FACE_PRIORITY_LOW_LIGHT (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_hidden">[hidden]</span>
                    <span class="entry_type_enum_notes"><p>Same as FACE_<wbr/>PRIORITY scene mode,<wbr/> except that the camera
device will choose higher sensitivity values (<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>)
under low light conditions.<wbr/></p>
<p>The camera device may be tuned to expose the images in a reduced
sensitivity range to produce the best quality images.<wbr/> For example,<wbr/>
if the <a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a> gives range of [100,<wbr/> 1600],<wbr/>
the camera device auto-exposure routine tuning process may limit the actual
exposure sensitivity range to [100,<wbr/> 1200] to ensure that the noise level isn't
exessive in order to preserve the image quality.<wbr/> Under this situation,<wbr/> the image under
low light may be under-exposed when the sensor max exposure time (bounded by the
<a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a> when <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of the
ON_<wbr/>* modes) and effective max sensitivity are reached.<wbr/> This scene mode allows the
camera device auto-exposure routine to increase the sensitivity up to the max
sensitivity specified by <a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a> when the scene is too
dark and the max exposure time is reached.<wbr/> The captured images may be noisier
compared with the images captured in normal FACE_<wbr/>PRIORITY mode; therefore,<wbr/> it is
recommended that the application only use this scene mode when it is capable of
reducing the noise level of the captured images.<wbr/></p>
<p>Unlike the other scene modes,<wbr/> <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>
remain active when FACE_<wbr/>PRIORITY_<wbr/>LOW_<wbr/>LIGHT is set.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">DEVICE_CUSTOM_START (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_hidden">[hidden]</span>
                    <span class="entry_type_enum_value">100</span>
                    <span class="entry_type_enum_notes"><p>Scene mode values within the range of
<code>[DEVICE_<wbr/>CUSTOM_<wbr/>START,<wbr/> DEVICE_<wbr/>CUSTOM_<wbr/>END]</code> are reserved for device specific
customized scene modes.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">DEVICE_CUSTOM_END (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_hidden">[hidden]</span>
                    <span class="entry_type_enum_value">127</span>
                    <span class="entry_type_enum_notes"><p>Scene mode values within the range of
<code>[DEVICE_<wbr/>CUSTOM_<wbr/>START,<wbr/> DEVICE_<wbr/>CUSTOM_<wbr/>END]</code> are reserved for device specific
customized scene modes.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>Control for which scene mode is currently active.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p><a href="#static_android.control.availableSceneModes">android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Scene modes are custom camera modes optimized for a certain set of conditions and
capture settings.<wbr/></p>
<p>This is the mode that that is active when
<code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == USE_<wbr/>SCENE_<wbr/>MODE</code>.<wbr/> Aside from FACE_<wbr/>PRIORITY,<wbr/> these modes will
disable <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/> <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>
while in use.<wbr/></p>
<p>The interpretation and implementation of these scene modes is left
to the implementor of the camera device.<wbr/> Their behavior will not be
consistent across all devices,<wbr/> and any given device may only implement
a subset of these modes.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>HAL implementations that include scene modes are expected to provide
the per-scene settings to use for <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> in
<a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
<p>For HIGH_<wbr/>SPEED_<wbr/>VIDEO mode,<wbr/> if it is included in <a href="#static_android.control.availableSceneModes">android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes</a>,<wbr/> the
HAL must list supported video size and fps range in
<a href="#static_android.control.availableHighSpeedVideoConfigurations">android.<wbr/>control.<wbr/>available<wbr/>High<wbr/>Speed<wbr/>Video<wbr/>Configurations</a>.<wbr/> For a given size,<wbr/> e.<wbr/>g.<wbr/>  1280x720,<wbr/>
if the HAL has two different sensor configurations for normal streaming mode and high
speed streaming,<wbr/> when this scene mode is set/<wbr/>reset in a sequence of capture requests,<wbr/> the
HAL may have to switch between different sensor modes.<wbr/>  This mode is deprecated in legacy
HAL3.<wbr/>3,<wbr/> to support high speed video recording,<wbr/> please implement
<a href="#static_android.control.availableHighSpeedVideoConfigurations">android.<wbr/>control.<wbr/>available<wbr/>High<wbr/>Speed<wbr/>Video<wbr/>Configurations</a> and CONSTRAINED_<wbr/>HIGH_<wbr/>SPEED_<wbr/>VIDEO
capbility defined in <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.control.videoStabilizationMode">
            <td class="entry_name
             " rowspan="3">
              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]</span>


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Video stabilization is disabled.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Video stabilization is enabled.<wbr/></p></span>
                  </li>
                </ul>

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

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

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Video stabilization automatically warps images from
the camera in order to stabilize motion between consecutive frames.<wbr/></p>
<p>If enabled,<wbr/> video stabilization can modify the
<a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a> to keep the video stream stabilized.<wbr/></p>
<p>Switching between different video stabilization modes may take several
frames to initialize,<wbr/> the camera device will report the current mode
in capture result metadata.<wbr/> For example,<wbr/> When "ON" mode is requested,<wbr/>
the video stabilization modes in the first several capture results may
still be "OFF",<wbr/> and it will become "ON" when the initialization is
done.<wbr/></p>
<p>In addition,<wbr/> not all recording sizes or frame rates may be supported for
stabilization by a device that reports stabilization support.<wbr/> It is guaranteed
that an output targeting a MediaRecorder or MediaCodec will be stabilized if
the recording resolution is less than or equal to 1920 x 1080 (width less than
or equal to 1920,<wbr/> height less than or equal to 1080),<wbr/> and the recording
frame rate is less than or equal to 30fps.<wbr/>  At other sizes,<wbr/> the CaptureResult
<a href="#controls_android.control.videoStabilizationMode">android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode</a> field will return
OFF if the recording output is not stabilized,<wbr/> or if there are no output
Surface types that can be stabilized.<wbr/></p>
<p>If a camera device supports both this mode and OIS
(<a href="#controls_android.lens.opticalStabilizationMode">android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode</a>),<wbr/> turning both modes on may
produce undesirable interaction,<wbr/> so it is recommended not to enable
both at the same time.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.control.postRawSensitivityBoost">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>control.<wbr/>post<wbr/>Raw<wbr/>Sensitivity<wbr/>Boost
            </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">
              <p>The amount of additional sensitivity boost applied to output images
after RAW sensor data is captured.<wbr/></p>
            </td>

            <td class="entry_units">
              ISO arithmetic units,<wbr/> the same as android.<wbr/>sensor.<wbr/>sensitivity
            </td>

            <td class="entry_range">
              <p><a href="#static_android.control.postRawSensitivityBoostRange">android.<wbr/>control.<wbr/>post<wbr/>Raw<wbr/>Sensitivity<wbr/>Boost<wbr/>Range</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Some camera devices support additional digital sensitivity boosting in the
camera processing pipeline after sensor RAW image is captured.<wbr/>
Such a boost will be applied to YUV/<wbr/>JPEG format output images but will not
have effect on RAW output formats like RAW_<wbr/>SENSOR,<wbr/> RAW10,<wbr/> RAW12 or RAW_<wbr/>OPAQUE.<wbr/></p>
<p>This key will be <code>null</code> for devices that do not support any RAW format
outputs.<wbr/> For devices that do support RAW format outputs,<wbr/> this key will always
present,<wbr/> and if a device does not support post RAW sensitivity boost,<wbr/> it will
list <code>100</code> in this key.<wbr/></p>
<p>If the camera device cannot apply the exact boost requested,<wbr/> it will reduce the
boost to the nearest supported value.<wbr/>
The final boost value used will be available in the output capture result.<wbr/></p>
<p>For devices that support post RAW sensitivity boost,<wbr/> the YUV/<wbr/>JPEG output images
of such device will have the total sensitivity of
<code><a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> * <a href="#controls_android.control.postRawSensitivityBoost">android.<wbr/>control.<wbr/>post<wbr/>Raw<wbr/>Sensitivity<wbr/>Boost</a> /<wbr/> 100</code>
The sensitivity of RAW format images will always be <code><a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a></code></p>
<p>This control is only effective if <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> or <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is set to
OFF; otherwise the auto-exposure algorithm will override this value.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.control.enableZsl">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>control.<wbr/>enable<wbr/>Zsl
            </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">FALSE (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Requests with <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> == STILL_<wbr/>CAPTURE must be captured
after previous requests.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">TRUE (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Requests with <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> == STILL_<wbr/>CAPTURE may or may not be
captured before previous requests.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>Allow camera device to enable zero-shutter-lag mode for requests with
<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> == STILL_<wbr/>CAPTURE.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>If enableZsl is <code>true</code>,<wbr/> the camera device may enable zero-shutter-lag mode for requests with
STILL_<wbr/>CAPTURE capture intent.<wbr/> The camera device may use images captured in the past to
produce output images for a zero-shutter-lag request.<wbr/> The result metadata including the
<a href="#dynamic_android.sensor.timestamp">android.<wbr/>sensor.<wbr/>timestamp</a> reflects the source frames used to produce output images.<wbr/>
Therefore,<wbr/> the contents of the output images and the result metadata may be out of order
compared to previous regular requests.<wbr/> enableZsl does not affect requests with other
capture intents.<wbr/></p>
<p>For example,<wbr/> when requests are submitted in the following order:
  Request A: enableZsl is ON,<wbr/> <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> is PREVIEW
  Request B: enableZsl is ON,<wbr/> <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> is STILL_<wbr/>CAPTURE</p>
<p>The output images for request B may have contents captured before the output images for
request A,<wbr/> and the result metadata for request B may be older than the result metadata for
request A.<wbr/></p>
<p>Note that when enableZsl is <code>true</code>,<wbr/> it is not guaranteed to get output images captured in
the past for requests with STILL_<wbr/>CAPTURE capture intent.<wbr/></p>
<p>For applications targeting SDK versions O and newer,<wbr/> the value of enableZsl in
TEMPLATE_<wbr/>STILL_<wbr/>CAPTURE template may be <code>true</code>.<wbr/> The value in other templates is always
<code>false</code> if present.<wbr/></p>
<p>For applications targeting SDK versions older than O,<wbr/> the value of enableZsl in all
capture templates is always <code>false</code> if present.<wbr/></p>
<p>For application-operated ZSL,<wbr/> use CAMERA3_<wbr/>TEMPLATE_<wbr/>ZERO_<wbr/>SHUTTER_<wbr/>LAG template.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>It is valid for HAL to produce regular output images for requests with STILL_<wbr/>CAPTURE
capture intent.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="static_android.control.aeAvailableAntibandingModes">
            <td class="entry_name
             " rowspan="3">
              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 as enumList]</span>


              <span class="entry_type_hwlevel">[legacy] </span>


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


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

            <td class="entry_description">
              <p>List of auto-exposure antibanding modes for <a href="#controls_android.control.aeAntibandingMode">android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode</a> that are
supported by this camera device.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>Any value listed in <a href="#controls_android.control.aeAntibandingMode">android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Not all of the auto-exposure anti-banding modes may be
supported by a given camera device.<wbr/> This field lists the
valid anti-banding modes that the application may request
for this camera device with the
<a href="#controls_android.control.aeAntibandingMode">android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode</a> control.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.control.aeAvailableModes">
            <td class="entry_name
             " rowspan="3">
              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"> [public as enumList]</span>


              <span class="entry_type_hwlevel">[legacy] </span>


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


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

            <td class="entry_description">
              <p>List of auto-exposure modes for <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> that are supported by this camera
device.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>Any value listed in <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Not all the auto-exposure modes may be supported by a
given camera device,<wbr/> especially if no flash unit is
available.<wbr/> This entry lists the valid modes for
<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> for this camera device.<wbr/></p>
<p>All camera devices support ON,<wbr/> and all camera devices with flash
units support ON_<wbr/>AUTO_<wbr/>FLASH and ON_<wbr/>ALWAYS_<wbr/>FLASH.<wbr/></p>
<p>FULL mode camera devices always support OFF mode,<wbr/>
which enables application control of camera exposure time,<wbr/>
sensitivity,<wbr/> and frame duration.<wbr/></p>
<p>LEGACY mode camera devices never support OFF mode.<wbr/>
LIMITED mode devices support OFF if they support the MANUAL_<wbr/>SENSOR
capability.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.control.aeAvailableTargetFpsRanges">
            <td class="entry_name
             " rowspan="3">
              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 as rangeInt]</span>


              <span class="entry_type_hwlevel">[legacy] </span>


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


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

            <td class="entry_description">
              <p>List of frame rate ranges for <a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a> supported by
this camera device.<wbr/></p>
            </td>

            <td class="entry_units">
              Frames per second (FPS)
            </td>

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>For devices at the LEGACY level or above:</p>
<ul>
<li>
<p>For constant-framerate recording,<wbr/> for each normal
<a href="https://developer.android.com/reference/android/media/CamcorderProfile.html">CamcorderProfile</a>,<wbr/> that is,<wbr/> a
<a href="https://developer.android.com/reference/android/media/CamcorderProfile.html">CamcorderProfile</a> that has
<a href="https://developer.android.com/reference/android/media/CamcorderProfile.html#quality">quality</a> in
the range [<a href="https://developer.android.com/reference/android/media/CamcorderProfile.html#QUALITY_LOW">QUALITY_<wbr/>LOW</a>,<wbr/>
<a href="https://developer.android.com/reference/android/media/CamcorderProfile.html#QUALITY_2160P">QUALITY_<wbr/>2160P</a>],<wbr/> if the profile is
supported by the device and has
<a href="https://developer.android.com/reference/android/media/CamcorderProfile.html#videoFrameRate">videoFrameRate</a> <code>x</code>,<wbr/> this list will
always include (<code>x</code>,<wbr/><code>x</code>).<wbr/></p>
</li>
<li>
<p>Also,<wbr/> a camera device must either not support any
<a href="https://developer.android.com/reference/android/media/CamcorderProfile.html">CamcorderProfile</a>,<wbr/>
or support at least one
normal <a href="https://developer.android.com/reference/android/media/CamcorderProfile.html">CamcorderProfile</a> that has
<a href="https://developer.android.com/reference/android/media/CamcorderProfile.html#videoFrameRate">videoFrameRate</a> <code>x</code> &gt;= 24.<wbr/></p>
</li>
</ul>
<p>For devices at the LIMITED level or above:</p>
<ul>
<li>For YUV_<wbr/>420_<wbr/>888 burst capture use case,<wbr/> this list will always include (<code>min</code>,<wbr/> <code>max</code>)
and (<code>max</code>,<wbr/> <code>max</code>) where <code>min</code> &lt;= 15 and <code>max</code> = the maximum output frame rate of the
maximum YUV_<wbr/>420_<wbr/>888 output size.<wbr/></li>
</ul>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.control.aeCompensationRange">
            <td class="entry_name
             " rowspan="1">
              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 as rangeInt]</span>


              <span class="entry_type_hwlevel">[legacy] </span>




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

            <td class="entry_description">
              <p>Maximum and minimum exposure compensation values for
<a href="#controls_android.control.aeExposureCompensation">android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation</a>,<wbr/> in counts of <a href="#static_android.control.aeCompensationStep">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step</a>,<wbr/>
that are supported by this camera device.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>Range [0,<wbr/>0] indicates that exposure compensation is not supported.<wbr/></p>
<p>For LIMITED and FULL devices,<wbr/> range must follow below requirements if exposure
compensation is supported (<code>range != [0,<wbr/> 0]</code>):</p>
<p><code>Min.<wbr/>exposure compensation * <a href="#static_android.control.aeCompensationStep">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step</a> &lt;= -2 EV</code></p>
<p><code>Max.<wbr/>exposure compensation * <a href="#static_android.control.aeCompensationStep">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step</a> &gt;= 2 EV</code></p>
<p>LEGACY devices may support a smaller range than this.<wbr/></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.control.aeCompensationStep">
            <td class="entry_name
             " rowspan="5">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>




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

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

            <td class="entry_units">
              Exposure Value (EV)
            </td>

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This is the unit for <a href="#controls_android.control.aeExposureCompensation">android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation</a>.<wbr/> For example,<wbr/> if this key has
a value of <code>1/<wbr/>2</code>,<wbr/> then a setting of <code>-2</code> for <a href="#controls_android.control.aeExposureCompensation">android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation</a> means
that the target EV offset for the auto-exposure routine is -1 EV.<wbr/></p>
<p>One unit of EV compensation changes the brightness of the captured image by a factor
of two.<wbr/> +1 EV doubles the image brightness,<wbr/> while -1 EV halves the image brightness.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This must be less than or equal to 1/<wbr/>2.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.control.afAvailableModes">
            <td class="entry_name
             " rowspan="3">
              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 as enumList]</span>


              <span class="entry_type_hwlevel">[legacy] </span>


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


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

            <td class="entry_description">
              <p>List of auto-focus (AF) modes for <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> that are
supported by this camera device.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>Any value listed in <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Not all the auto-focus modes may be supported by a
given camera device.<wbr/> This entry lists the valid modes for
<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> for this camera device.<wbr/></p>
<p>All LIMITED and FULL mode camera devices will support OFF mode,<wbr/> and all
camera devices with adjustable focuser units
(<code><a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> &gt; 0</code>) will support AUTO mode.<wbr/></p>
<p>LEGACY devices will support OFF mode only if they support
focusing to infinity (by also setting <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> to
<code>0.<wbr/>0f</code>).<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.control.availableEffects">
            <td class="entry_name
             " rowspan="3">
              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 as enumList]</span>


              <span class="entry_type_hwlevel">[legacy] </span>


                <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>effect<wbr/>Mode).<wbr/></div>


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

            <td class="entry_description">
              <p>List of color effects for <a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a> that are supported by this camera
device.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>Any value listed in <a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This list contains the color effect modes that can be applied to
images produced by the camera device.<wbr/>
Implementations are not expected to be consistent across all devices.<wbr/>
If no color effect modes are available for a device,<wbr/> this will only list
OFF.<wbr/></p>
<p>A color effect will only be applied if
<a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF.<wbr/>  OFF is always included in this list.<wbr/></p>
<p>This control has no effect on the operation of other control routines such
as auto-exposure,<wbr/> white balance,<wbr/> or focus.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.control.availableSceneModes">
            <td class="entry_name
             " rowspan="3">
              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 as enumList]</span>


              <span class="entry_type_hwlevel">[legacy] </span>


                <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>scene<wbr/>Mode).<wbr/></div>


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

            <td class="entry_description">
              <p>List of scene modes for <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a> that are supported by this camera
device.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>Any value listed in <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This list contains scene modes that can be set for the camera device.<wbr/>
Only scene modes that have been fully implemented for the
camera device may be included here.<wbr/> Implementations are not expected
to be consistent across all devices.<wbr/></p>
<p>If no scene modes are supported by the camera device,<wbr/> this
will be set to DISABLED.<wbr/> Otherwise DISABLED will not be listed.<wbr/></p>
<p>FACE_<wbr/>PRIORITY is always listed if face detection is
supported (i.<wbr/>e.<wbr/><code><a href="#static_android.statistics.info.maxFaceCount">android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Face<wbr/>Count</a> &gt;
0</code>).<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.control.availableVideoStabilizationModes">
            <td class="entry_name
             " rowspan="3">
              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 as enumList]</span>


              <span class="entry_type_hwlevel">[legacy] </span>


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


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

            <td class="entry_description">
              <p>List of video stabilization modes for <a href="#controls_android.control.videoStabilizationMode">android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode</a>
that are supported by this camera device.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>Any value listed in <a href="#controls_android.control.videoStabilizationMode">android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>OFF will always be listed.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.control.awbAvailableModes">
            <td class="entry_name
             " rowspan="3">
              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 as enumList]</span>


              <span class="entry_type_hwlevel">[legacy] </span>


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


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

            <td class="entry_description">
              <p>List of auto-white-balance modes for <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> that are supported by this
camera device.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>Any value listed in <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Not all the auto-white-balance modes may be supported by a
given camera device.<wbr/> This entry lists the valid modes for
<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> for this camera device.<wbr/></p>
<p>All camera devices will support ON mode.<wbr/></p>
<p>Camera devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability will always support OFF
mode,<wbr/> which enables application control of white balance,<wbr/> by using
<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>(<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> must be set to TRANSFORM_<wbr/>MATRIX).<wbr/> This includes all FULL
mode camera devices.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.control.maxRegions">
            <td class="entry_name
             " rowspan="1">
              android.<wbr/>control.<wbr/>max<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">
                  3
                </span>
              <span class="entry_type_visibility"> [ndk_public]</span>


              <span class="entry_type_hwlevel">[legacy] </span>




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

            <td class="entry_description">
              <p>List of the maximum number of regions that can be used for metering in
auto-exposure (AE),<wbr/> auto-white balance (AWB),<wbr/> and auto-focus (AF);
this corresponds to the the maximum number of elements in
<a href="#controls_android.control.aeRegions">android.<wbr/>control.<wbr/>ae<wbr/>Regions</a>,<wbr/> <a href="#controls_android.control.awbRegions">android.<wbr/>control.<wbr/>awb<wbr/>Regions</a>,<wbr/>
and <a href="#controls_android.control.afRegions">android.<wbr/>control.<wbr/>af<wbr/>Regions</a>.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>Value must be &gt;= 0 for each element.<wbr/> For full-capability devices
this value must be &gt;= 1 for AE and AF.<wbr/> The order of the elements is:
<code>(AE,<wbr/> AWB,<wbr/> AF)</code>.<wbr/></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.control.maxRegionsAe">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Ae
            </td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>

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

              <span class="entry_type_synthetic">[synthetic] </span>

              <span class="entry_type_hwlevel">[legacy] </span>




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

            <td class="entry_description">
              <p>The maximum number of metering regions that can be used by the auto-exposure (AE)
routine.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>Value will be &gt;= 0.<wbr/> For FULL-capability devices,<wbr/> this
value will be &gt;= 1.<wbr/></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This corresponds to the the maximum allowed number of elements in
<a href="#controls_android.control.aeRegions">android.<wbr/>control.<wbr/>ae<wbr/>Regions</a>.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This entry is private to the framework.<wbr/> Fill in
maxRegions to have this entry be automatically populated.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.control.maxRegionsAwb">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Awb
            </td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>

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

              <span class="entry_type_synthetic">[synthetic] </span>

              <span class="entry_type_hwlevel">[legacy] </span>




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

            <td class="entry_description">
              <p>The maximum number of metering regions that can be used by the auto-white balance (AWB)
routine.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>Value will be &gt;= 0.<wbr/></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This corresponds to the the maximum allowed number of elements in
<a href="#controls_android.control.awbRegions">android.<wbr/>control.<wbr/>awb<wbr/>Regions</a>.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This entry is private to the framework.<wbr/> Fill in
maxRegions to have this entry be automatically populated.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.control.maxRegionsAf">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Af
            </td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>

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

              <span class="entry_type_synthetic">[synthetic] </span>

              <span class="entry_type_hwlevel">[legacy] </span>




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

            <td class="entry_description">
              <p>The maximum number of metering regions that can be used by the auto-focus (AF) routine.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>Value will be &gt;= 0.<wbr/> For FULL-capability devices,<wbr/> this
value will be &gt;= 1.<wbr/></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This corresponds to the the maximum allowed number of elements in
<a href="#controls_android.control.afRegions">android.<wbr/>control.<wbr/>af<wbr/>Regions</a>.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This entry is private to the framework.<wbr/> Fill in
maxRegions to have this entry be automatically populated.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.control.sceneModeOverrides">
            <td class="entry_name
             " rowspan="5">
              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>


              <span class="entry_type_hwlevel">[limited] </span>




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

            <td class="entry_description">
              <p>Ordered list of auto-exposure,<wbr/> auto-white balance,<wbr/> and auto-focus
settings to use with each available scene mode.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>For each available scene mode,<wbr/> the list must contain three
entries containing the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> values used
by the camera device.<wbr/> The entry order is <code>(aeMode,<wbr/> awbMode,<wbr/> afMode)</code>
where aeMode has the lowest index position.<wbr/></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>When a scene mode is enabled,<wbr/> the camera device is expected
to override <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/> <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/>
and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> with its preferred settings for
that scene mode.<wbr/></p>
<p>The order of this list matches that of availableSceneModes,<wbr/>
with 3 entries for each mode.<wbr/>  The overrides listed
for FACE_<wbr/>PRIORITY and FACE_<wbr/>PRIORITY_<wbr/>LOW_<wbr/>LIGHT (if supported) are ignored,<wbr/>
since for that mode the application-set <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> values are
used instead,<wbr/> matching the behavior when <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>
is set to AUTO.<wbr/> It is recommended that the FACE_<wbr/>PRIORITY and
FACE_<wbr/>PRIORITY_<wbr/>LOW_<wbr/>LIGHT (if supported) overrides should be set to 0.<wbr/></p>
<p>For example,<wbr/> if availableSceneModes contains
<code>(FACE_<wbr/>PRIORITY,<wbr/> ACTION,<wbr/> NIGHT)</code>,<wbr/>  then the camera framework
expects sceneModeOverrides to have 9 entries formatted like:
<code>(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)</code>.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>To maintain backward compatibility,<wbr/> this list will be made available
in the static metadata of the camera service.<wbr/>  The camera service will
use these values to set <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> when using a scene
mode other than FACE_<wbr/>PRIORITY and FACE_<wbr/>PRIORITY_<wbr/>LOW_<wbr/>LIGHT (if supported).<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.control.availableHighSpeedVideoConfigurations">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>control.<wbr/>available<wbr/>High<wbr/>Speed<wbr/>Video<wbr/>Configurations
            </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 n
                </span>
              <span class="entry_type_visibility"> [hidden as highSpeedVideoConfiguration]</span>


              <span class="entry_type_hwlevel">[limited] </span>




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

            <td class="entry_description">
              <p>List of available high speed video size,<wbr/> fps range and max batch size configurations
supported by the camera device,<wbr/> in the format of (width,<wbr/> height,<wbr/> fps_<wbr/>min,<wbr/> fps_<wbr/>max,<wbr/> batch_<wbr/>size_<wbr/>max).<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>For each configuration,<wbr/> the fps_<wbr/>max &gt;= 120fps.<wbr/></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>When CONSTRAINED_<wbr/>HIGH_<wbr/>SPEED_<wbr/>VIDEO is supported in <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>,<wbr/>
this metadata will list the supported high speed video size,<wbr/> fps range and max batch size
configurations.<wbr/> All the sizes listed in this configuration will be a subset of the sizes
reported by <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputSizes">StreamConfigurationMap#getOutputSizes</a>
for processed non-stalling formats.<wbr/></p>
<p>For the high speed video use case,<wbr/> the application must
select the video size and fps range from this metadata to configure the recording and
preview streams and setup the recording requests.<wbr/> For example,<wbr/> if the application intends
to do high speed recording,<wbr/> it can select the maximum size reported by this metadata to
configure output streams.<wbr/> Once the size is selected,<wbr/> application can filter this metadata
by selected size and get the supported fps ranges,<wbr/> and use these fps ranges to setup the
recording requests.<wbr/> Note that for the use case of multiple output streams,<wbr/> application
must select one unique size from this metadata to use (e.<wbr/>g.,<wbr/> preview and recording streams
must have the same size).<wbr/> Otherwise,<wbr/> the high speed capture session creation will fail.<wbr/></p>
<p>The min and max fps will be multiple times of 30fps.<wbr/></p>
<p>High speed video streaming extends significant performance pressue to camera hardware,<wbr/>
to achieve efficient high speed streaming,<wbr/> the camera device may have to aggregate
multiple frames together and send to camera device for processing where the request
controls are same for all the frames in this batch.<wbr/> Max batch size indicates
the max possible number of frames the camera device will group together for this high
speed stream configuration.<wbr/> This max batch size will be used to generate a high speed
recording request list by
<a href="https://developer.android.com/reference/android/hardware/camera2/CameraConstrainedHighSpeedCaptureSession.html#createHighSpeedRequestList">CameraConstrainedHighSpeedCaptureSession#createHighSpeedRequestList</a>.<wbr/>
The max batch size for each configuration will satisfy below conditions:</p>
<ul>
<li>Each max batch size will be a divisor of its corresponding fps_<wbr/>max /<wbr/> 30.<wbr/> For example,<wbr/>
if max_<wbr/>fps is 300,<wbr/> max batch size will only be 1,<wbr/> 2,<wbr/> 5,<wbr/> or 10.<wbr/></li>
<li>The camera device may choose smaller internal batch size for each configuration,<wbr/> but
the actual batch size will be a divisor of max batch size.<wbr/> For example,<wbr/> if the max batch
size is 8,<wbr/> the actual batch size used by camera device will only be 1,<wbr/> 2,<wbr/> 4,<wbr/> or 8.<wbr/></li>
<li>The max batch size in each configuration entry must be no larger than 32.<wbr/></li>
</ul>
<p>The camera device doesn't have to support batch mode to achieve high speed video recording,<wbr/>
in such case,<wbr/> batch_<wbr/>size_<wbr/>max will be reported as 1 in each configuration entry.<wbr/></p>
<p>This fps ranges in this configuration list can only be used to create requests
that are submitted to a high speed camera capture session created by
<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createConstrainedHighSpeedCaptureSession">CameraDevice#createConstrainedHighSpeedCaptureSession</a>.<wbr/>
The fps ranges reported in this metadata must not be used to setup capture requests for
normal capture session,<wbr/> or it will cause request error.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>All the sizes listed in this configuration will be a subset of the sizes reported by
<a href="#static_android.scaler.availableStreamConfigurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stream<wbr/>Configurations</a> for processed non-stalling output formats.<wbr/>
Note that for all high speed video configurations,<wbr/> HAL must be able to support a minimum
of two streams,<wbr/> though the application might choose to configure just one stream.<wbr/></p>
<p>The HAL may support multiple sensor modes for high speed outputs,<wbr/> for example,<wbr/> 120fps
sensor mode and 120fps recording,<wbr/> 240fps sensor mode for 240fps recording.<wbr/> The application
usually starts preview first,<wbr/> then starts recording.<wbr/> To avoid sensor mode switch caused
stutter when starting recording as much as possible,<wbr/> the application may want to ensure
the same sensor mode is used for preview and recording.<wbr/> Therefore,<wbr/> The HAL must advertise
the variable fps range [30,<wbr/> fps_<wbr/>max] for each fixed fps range in this configuration list.<wbr/>
For example,<wbr/> if the HAL advertises [120,<wbr/> 120] and [240,<wbr/> 240],<wbr/> the HAL must also advertise
[30,<wbr/> 120] and [30,<wbr/> 240] for each configuration.<wbr/> In doing so,<wbr/> if the application intends to
do 120fps recording,<wbr/> it can select [30,<wbr/> 120] to start preview,<wbr/> and [120,<wbr/> 120] to start
recording.<wbr/> For these variable fps ranges,<wbr/> it's up to the HAL to decide the actual fps
values that are suitable for smooth preview streaming.<wbr/> If the HAL sees different max_<wbr/>fps
values that fall into different sensor modes in a sequence of requests,<wbr/> the HAL must
switch the sensor mode as quick as possible to minimize the mode switch caused stutter.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.control.aeLockAvailable">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>control.<wbr/>ae<wbr/>Lock<wbr/>Available
            </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>


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">FALSE (v3.2)</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">TRUE (v3.2)</span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>Whether the camera device supports <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Devices with MANUAL_<wbr/>SENSOR capability or BURST_<wbr/>CAPTURE capability will always
list <code>true</code>.<wbr/> This includes FULL devices.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.control.awbLockAvailable">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>control.<wbr/>awb<wbr/>Lock<wbr/>Available
            </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>


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">FALSE (v3.2)</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">TRUE (v3.2)</span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>Whether the camera device supports <a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Devices with MANUAL_<wbr/>POST_<wbr/>PROCESSING capability or BURST_<wbr/>CAPTURE capability will
always list <code>true</code>.<wbr/> This includes FULL devices.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.control.availableModes">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>control.<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 as enumList]</span>


              <span class="entry_type_hwlevel">[legacy] </span>


                <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>mode).<wbr/></div>


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

            <td class="entry_description">
              <p>List of control modes for <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> that are supported by this camera
device.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>Any value listed in <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This list contains control modes that can be set for the camera device.<wbr/>
LEGACY mode devices will always support AUTO mode.<wbr/> LIMITED and FULL
devices will always support OFF,<wbr/> AUTO modes.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.control.postRawSensitivityBoostRange">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>control.<wbr/>post<wbr/>Raw<wbr/>Sensitivity<wbr/>Boost<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 as rangeInt]</span>




                <div class="entry_type_notes">Range of supported post RAW sensitivitiy boosts</div>


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

            <td class="entry_description">
              <p>Range of boosts for <a href="#controls_android.control.postRawSensitivityBoost">android.<wbr/>control.<wbr/>post<wbr/>Raw<wbr/>Sensitivity<wbr/>Boost</a> supported
by this camera device.<wbr/></p>
            </td>

            <td class="entry_units">
              ISO arithmetic units,<wbr/> the same as android.<wbr/>sensor.<wbr/>sensitivity
            </td>

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Devices support post RAW sensitivity boost  will advertise
<a href="#controls_android.control.postRawSensitivityBoost">android.<wbr/>control.<wbr/>post<wbr/>Raw<wbr/>Sensitivity<wbr/>Boost</a> key for controling
post RAW sensitivity boost.<wbr/></p>
<p>This key will be <code>null</code> for devices that do not support any RAW format
outputs.<wbr/> For devices that do support RAW format outputs,<wbr/> this key will always
present,<wbr/> and if a device does not support post RAW sensitivity boost,<wbr/> it will
list <code>(100,<wbr/> 100)</code> in this key.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This key is added in legacy HAL3.<wbr/>4.<wbr/> For legacy HAL3.<wbr/>3 or earlier devices,<wbr/> camera
framework will generate this key as <code>(100,<wbr/> 100)</code> if device supports any of RAW output
formats.<wbr/>  All legacy HAL3.<wbr/>4 and above devices should list this key if device supports
any of RAW output formats.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="dynamic_android.control.aePrecaptureId">
            <td class="entry_name
                entry_name_deprecated
             " rowspan="3">
              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"> [system]</span>



              <span class="entry_type_deprecated">[deprecated] </span>



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

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

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

            <td class="entry_range">
              <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>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</p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.control.aeAntibandingMode">
            <td class="entry_name
             " rowspan="5">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The camera device will not adjust exposure duration to
avoid banding problems.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">50HZ (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
avoid banding problems with 50Hz illumination sources.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">60HZ (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
avoid banding problems with 60Hz illumination
sources.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">AUTO (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The camera device will automatically adapt its
antibanding routine to the current illumination
condition.<wbr/> This is the default mode if AUTO is
available on given camera device.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>The desired setting for the camera device's auto-exposure
algorithm's antibanding compensation.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p><a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Some kinds of lighting fixtures,<wbr/> such as some fluorescent
lights,<wbr/> flicker at the rate of the power supply frequency
(60Hz or 50Hz,<wbr/> depending on country).<wbr/> While this is
typically not noticeable to a person,<wbr/> it can be visible to
a camera device.<wbr/> If a camera sets its exposure time to the
wrong value,<wbr/> the flicker may become visible in the
viewfinder as flicker or in a final captured image,<wbr/> as a
set of variable-brightness bands across the image.<wbr/></p>
<p>Therefore,<wbr/> the auto-exposure routines of camera devices
include antibanding routines that ensure that the chosen
exposure value will not cause such banding.<wbr/> The choice of
exposure time depends on the rate of flicker,<wbr/> which the
camera device can detect automatically,<wbr/> or the expected
rate can be selected by the application using this
control.<wbr/></p>
<p>A given camera device may not support all of the possible
options for the antibanding mode.<wbr/> The
<a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a> key contains
the available modes for a given camera device.<wbr/></p>
<p>AUTO mode is the default if it is available on given
camera device.<wbr/> When AUTO mode is not available,<wbr/> the
default will be either 50HZ or 60HZ,<wbr/> and both 50HZ
and 60HZ will be available.<wbr/></p>
<p>If manual exposure control is enabled (by setting
<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> or <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> to OFF),<wbr/>
then this setting has no effect,<wbr/> and the application must
ensure it selects exposure times that do not cause banding
issues.<wbr/> The <a href="#dynamic_android.statistics.sceneFlicker">android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker</a> key can assist
the application in this.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>For all capture request templates,<wbr/> this field must be set
to AUTO if AUTO mode is available.<wbr/> If AUTO is not available,<wbr/>
the default must be either 50HZ or 60HZ,<wbr/> and both 50HZ and
60HZ must be available.<wbr/></p>
<p>If manual exposure control is enabled (by setting
<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> or <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> to OFF),<wbr/>
then the exposure values provided by the application must not be
adjusted for antibanding.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.control.aeExposureCompensation">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>




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

            <td class="entry_description">
              <p>Adjustment to auto-exposure (AE) target image
brightness.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p><a href="#static_android.control.aeCompensationRange">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The adjustment is measured as a count of steps,<wbr/> with the
step size defined by <a href="#static_android.control.aeCompensationStep">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step</a> and the
allowed range by <a href="#static_android.control.aeCompensationRange">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range</a>.<wbr/></p>
<p>For example,<wbr/> if the exposure value (EV) step is 0.<wbr/>333,<wbr/> '6'
will mean an exposure compensation of +2 EV; -3 will mean an
exposure compensation of -1 EV.<wbr/> One EV represents a doubling
of image brightness.<wbr/> Note that this control will only be
effective if <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> <code>!=</code> OFF.<wbr/> This control
will take effect even when <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> <code>== true</code>.<wbr/></p>
<p>In the event of exposure compensation value being changed,<wbr/> camera device
may take several frames to reach the newly requested exposure target.<wbr/>
During that time,<wbr/> <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> field will be in the SEARCHING
state.<wbr/> Once the new exposure target is reached,<wbr/> <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> will
change from SEARCHING to either CONVERGED,<wbr/> LOCKED (if AE lock is enabled),<wbr/> or
FLASH_<wbr/>REQUIRED (if the scene is too dark for still capture).<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.control.aeLock">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Auto-exposure lock is disabled; the AE algorithm
is free to update its parameters.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Auto-exposure lock is enabled; the AE algorithm
must not update the exposure and sensitivity parameters
while the lock is active.<wbr/></p>
<p><a href="#controls_android.control.aeExposureCompensation">android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation</a> setting changes
will still take effect while auto-exposure is locked.<wbr/></p>
<p>Some rare LEGACY devices may not support
this,<wbr/> in which case the value will always be overridden to OFF.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>Whether auto-exposure (AE) is currently locked to its latest
calculated values.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>When set to <code>true</code> (ON),<wbr/> the AE algorithm is locked to its latest parameters,<wbr/>
and will not change exposure settings until the lock is set to <code>false</code> (OFF).<wbr/></p>
<p>Note that even when AE is locked,<wbr/> the flash may be fired if
the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is ON_<wbr/>AUTO_<wbr/>FLASH /<wbr/>
ON_<wbr/>ALWAYS_<wbr/>FLASH /<wbr/> ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE.<wbr/></p>
<p>When <a href="#controls_android.control.aeExposureCompensation">android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation</a> is changed,<wbr/> even if the AE lock
is ON,<wbr/> the camera device will still adjust its exposure value.<wbr/></p>
<p>If AE precapture is triggered (see <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>)
when AE is already locked,<wbr/> the camera device will not change the exposure time
(<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>) and sensitivity (<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>)
parameters.<wbr/> The flash may be fired if the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>
is ON_<wbr/>AUTO_<wbr/>FLASH/<wbr/>ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE and the scene is too dark.<wbr/> If the
<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> the scene may become overexposed.<wbr/>
Similarly,<wbr/> AE precapture trigger CANCEL has no effect when AE is already locked.<wbr/></p>
<p>When an AE precapture sequence is triggered,<wbr/> AE unlock will not be able to unlock
the AE if AE is locked by the camera device internally during precapture metering
sequence In other words,<wbr/> submitting requests with AE unlock has no effect for an
ongoing precapture metering sequence.<wbr/> Otherwise,<wbr/> the precapture metering sequence
will never succeed in a sequence of preview requests where AE lock is always set
to <code>false</code>.<wbr/></p>
<p>Since the camera device has a pipeline of in-flight requests,<wbr/> the settings that
get locked do not necessarily correspond to the settings that were present in the
latest capture result received from the camera device,<wbr/> since additional captures
and AE updates may have occurred even before the result was sent out.<wbr/> If an
application is switching between automatic and manual control and wishes to eliminate
any flicker during the switch,<wbr/> the following procedure is recommended:</p>
<ol>
<li>Starting in auto-AE mode:</li>
<li>Lock AE</li>
<li>Wait for the first result to be output that has the AE locked</li>
<li>Copy exposure settings from that result into a request,<wbr/> set the request to manual AE</li>
<li>Submit the capture request,<wbr/> proceed to run manual AE as desired.<wbr/></li>
</ol>
<p>See <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> for AE lock related state transition details.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.control.aeMode">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled.<wbr/></p>
<p>The application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera
device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's
a flash unit for this camera device.<wbr/></p>
<p>Note that auto-white balance (AWB) and auto-focus (AF)
behavior is device dependent when AE is in OFF mode.<wbr/>
To have consistent behavior across different devices,<wbr/>
it is recommended to either set AWB and AF to OFF mode
or lock AWB and AF before setting AE to OFF.<wbr/>
See <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>,<wbr/>
<a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a>,<wbr/> and <a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a>
for more details.<wbr/></p>
<p>LEGACY devices do not support the OFF mode and will
override attempts to use this value to ON.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
with no flash control.<wbr/></p>
<p>The application's values for
<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The
application has control over the various
android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON_AUTO_FLASH (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
the camera's flash unit,<wbr/> firing it in low-light
conditions.<wbr/></p>
<p>The flash may be fired during a precapture sequence
(triggered by <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and
may be fired for captures for which the
<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
STILL_<wbr/>CAPTURE</p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON_ALWAYS_FLASH (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
the camera's flash unit,<wbr/> always firing it for still
captures.<wbr/></p>
<p>The flash may be fired during a precapture sequence
(triggered by <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and
will always be fired for captures for which the
<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
STILL_<wbr/>CAPTURE</p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
reduction.<wbr/></p>
<p>If deemed necessary by the camera device,<wbr/> a red eye
reduction flash will fire during the precapture
sequence.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON_EXTERNAL_FLASH (v3.3)</span>
                    <span class="entry_type_enum_notes"><p>An external flash has been turned on.<wbr/></p>
<p>It informs the camera device that an external flash has been turned on,<wbr/> and that
metering (and continuous focus if active) should be quickly recaculated to account
for the external flash.<wbr/> Otherwise,<wbr/> this mode acts like ON.<wbr/></p>
<p>When the external flash is turned off,<wbr/> AE mode should be changed to one of the
other available AE modes.<wbr/></p>
<p>If the camera device supports AE external flash mode,<wbr/> <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> must
be FLASH_<wbr/>REQUIRED after the camera device finishes AE scan and it's too dark without
flash.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>The desired mode for the camera device's
auto-exposure routine.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p><a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
AUTO.<wbr/></p>
<p>When set to any of the ON modes,<wbr/> the camera device's
auto-exposure routine is enabled,<wbr/> overriding the
application's selected exposure time,<wbr/> sensor sensitivity,<wbr/>
and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes
is selected,<wbr/> the camera device's flash unit controls are
also overridden.<wbr/></p>
<p>The FLASH modes are only available if the camera device
has a flash unit (<a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is <code>true</code>).<wbr/></p>
<p>If flash TORCH mode is desired,<wbr/> this field must be set to
ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p>
<p>When set to any of the ON modes,<wbr/> the values chosen by the
camera device auto-exposure routine for the overridden
fields for a given capture will be available in its
CaptureResult.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.control.aeRegions">
            <td class="entry_name
             " rowspan="5">
              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 as meteringRectangle]</span>






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

            <td class="entry_description">
              <p>List of metering areas to use for auto-exposure adjustment.<wbr/></p>
            </td>

            <td class="entry_units">
              Pixel coordinates within android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
            </td>

            <td class="entry_range">
              <p>Coordinates must be between <code>[(0,<wbr/>0),<wbr/> (width,<wbr/> height))</code> of
<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Not available if <a href="#static_android.control.maxRegionsAe">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Ae</a> is 0.<wbr/>
Otherwise will always be present.<wbr/></p>
<p>The maximum number of regions supported by the device is determined by the value
of <a href="#static_android.control.maxRegionsAe">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Ae</a>.<wbr/></p>
<p>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
(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
bottom-right pixel in the active pixel array.<wbr/></p>
<p>The weight must be within <code>[0,<wbr/> 1000]</code>,<wbr/> and represents a weight
for every pixel in the area.<wbr/> This means that a large metering area
with the same weight as a smaller area will have more effect in
the metering result.<wbr/> Metering areas can partially overlap and the
camera device will add the weights in the overlap region.<wbr/></p>
<p>The weights are relative to weights of other exposure metering regions,<wbr/> so if only one
region is used,<wbr/> all non-zero weights will have the same effect.<wbr/> A region with 0
weight is ignored.<wbr/></p>
<p>If all regions have 0 weight,<wbr/> then no specific metering area needs to be used by the
camera device.<wbr/></p>
<p>If the metering region is outside the used <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a> returned in
capture result metadata,<wbr/> the camera device will ignore the sections outside the crop
region and output only the intersection rectangle as the metering region in the result
metadata.<wbr/>  If the region is entirely outside the crop region,<wbr/> it will be ignored and
not reported in the result metadata.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The HAL level representation of MeteringRectangle[] is a
int[5 * area_<wbr/>count].<wbr/>
Every five elements represent a metering region of
(xmin,<wbr/> ymin,<wbr/> xmax,<wbr/> ymax,<wbr/> weight).<wbr/>
The rectangle is defined to be inclusive on xmin and ymin,<wbr/> but
exclusive on xmax and ymax.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.control.aeTargetFpsRange">
            <td class="entry_name
             " rowspan="3">
              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 as rangeInt]</span>


              <span class="entry_type_hwlevel">[legacy] </span>




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

            <td class="entry_description">
              <p>Range over which the auto-exposure routine can
adjust the capture frame rate to maintain good
exposure.<wbr/></p>
            </td>

            <td class="entry_units">
              Frames per second (FPS)
            </td>

            <td class="entry_range">
              <p>Any of the entries in <a href="#static_android.control.aeAvailableTargetFpsRanges">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Only constrains auto-exposure (AE) algorithm,<wbr/> not
manual control of <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a> and
<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.control.aePrecaptureTrigger">
            <td class="entry_name
             " rowspan="5">
              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>


              <span class="entry_type_hwlevel">[limited] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">IDLE (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">START (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The precapture metering sequence will be started
by the camera device.<wbr/></p>
<p>The exact effect of the precapture trigger depends on
the current AE mode and state.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">CANCEL (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The camera device will cancel any currently active or completed
precapture metering sequence,<wbr/> the auto-exposure routine will return to its
initial state.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>Whether the camera device will trigger a precapture
metering sequence when it processes this request.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>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 camera device will trigger the auto-exposure (AE)
precapture metering sequence.<wbr/></p>
<p>When set to CANCEL,<wbr/> the camera device will cancel any active
precapture metering trigger,<wbr/> and return to its initial AE state.<wbr/>
If a precapture metering sequence is already completed,<wbr/> and the camera
device has implicitly locked the AE for subsequent still capture,<wbr/> the
CANCEL trigger will unlock the AE and return to its initial AE state.<wbr/></p>
<p>The precapture sequence should be triggered before starting a
high-quality still capture for final metering decisions to
be made,<wbr/> and for firing pre-capture flash pulses to estimate
scene brightness and required final capture flash power,<wbr/> when
the flash is enabled.<wbr/></p>
<p>Normally,<wbr/> this entry should be set to START for only a
single request,<wbr/> and the application should wait until the
sequence completes before starting a new one.<wbr/></p>
<p>When a precapture metering sequence is finished,<wbr/> the camera device
may lock the auto-exposure routine internally to be able to accurately expose the
subsequent still capture image (<code><a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> == STILL_<wbr/>CAPTURE</code>).<wbr/>
For this case,<wbr/> the AE may not resume normal scan if no subsequent still capture is
submitted.<wbr/> To ensure that the AE routine restarts normal scan,<wbr/> the application should
submit a request with <code><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> == true</code>,<wbr/> followed by a request
with <code><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> == false</code>,<wbr/> if the application decides not to submit a
still capture request after the precapture sequence completes.<wbr/> Alternatively,<wbr/> for
API level 23 or newer devices,<wbr/> the CANCEL can be used to unlock the camera device
internally locked AE if the application doesn't submit a still capture request after
the AE precapture trigger.<wbr/> Note that,<wbr/> the CANCEL was added in API level 23,<wbr/> and must not
be used in devices that have earlier API levels.<wbr/></p>
<p>The exact effect of auto-exposure (AE) precapture trigger
depends on the current AE mode and state; see
<a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> for AE precapture state transition
details.<wbr/></p>
<p>On LEGACY-level devices,<wbr/> the precapture trigger is not supported;
capturing a high-resolution JPEG image will automatically trigger a
precapture sequence before the high-resolution capture,<wbr/> including
potentially firing a pre-capture flash.<wbr/></p>
<p>Using the precapture trigger and the auto-focus trigger <a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a>
simultaneously is allowed.<wbr/> However,<wbr/> since these triggers often require cooperation between
the auto-focus and auto-exposure routines (for example,<wbr/> the may need to be enabled for a
focus sweep),<wbr/> the camera device may delay acting on a later trigger until the previous
trigger has been fully handled.<wbr/> This may lead to longer intervals between the trigger and
changes to <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> indicating the start of the precapture sequence,<wbr/> for
example.<wbr/></p>
<p>If both the precapture and the auto-focus trigger are activated on the same request,<wbr/> then
the camera device will complete them in the optimal order for that device.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The HAL must support triggering the AE precapture trigger while an AF trigger is active
(and vice versa),<wbr/> or at the same time as the AF trigger.<wbr/>  It is acceptable for the HAL to
treat these as two consecutive triggers,<wbr/> for example handling the AF trigger and then the
AE trigger.<wbr/>  Or the HAL may choose to optimize the case with both triggers fired at once,<wbr/>
to minimize the latency for converging both focus and exposure/<wbr/>flash usage.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.control.aeState">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[limited] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">INACTIVE (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>AE is off or recently reset.<wbr/></p>
<p>When a camera device is opened,<wbr/> it starts in
this state.<wbr/> This is a transient state,<wbr/> the camera device may skip reporting
this state in capture result.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">SEARCHING (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>AE doesn't yet have a good set of control values
for the current scene.<wbr/></p>
<p>This is a transient state,<wbr/> the camera device may skip
reporting this state in capture result.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">CONVERGED (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>AE has a good set of control values for the
current scene.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">LOCKED (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>AE has been locked.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FLASH_REQUIRED (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>AE has a good set of control values,<wbr/> but flash
needs to be fired for good quality still
capture.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">PRECAPTURE (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>AE has been asked to do a precapture sequence
and is currently executing it.<wbr/></p>
<p>Precapture can be triggered through setting
<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> to START.<wbr/> Currently
active and completed (if it causes camera device internal AE lock) precapture
metering sequence can be canceled through setting
<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> to CANCEL.<wbr/></p>
<p>Once PRECAPTURE completes,<wbr/> AE will transition to CONVERGED
or FLASH_<wbr/>REQUIRED as appropriate.<wbr/> This is a transient
state,<wbr/> the camera device may skip reporting this state in
capture result.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>Current state of the auto-exposure (AE) algorithm.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Switching between or enabling AE modes (<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>) always
resets the AE state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
or <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a> if <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == USE_<wbr/>SCENE_<wbr/>MODE</code> resets all
the algorithm states to INACTIVE.<wbr/></p>
<p>The camera device can do several state transitions between two results,<wbr/> if it is
allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
seen in a result.<wbr/></p>
<p>The state in the result is the state for this image (in sync with this image): if
AE state becomes CONVERGED,<wbr/> then the image data associated with this result should
be good to use.<wbr/></p>
<p>Below are state transition tables for different AE modes.<wbr/></p>
<table>
<thead>
<tr>
<th align="center">State</th>
<th align="center">Transition Cause</th>
<th align="center">New State</th>
<th align="center">Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td align="center">INACTIVE</td>
<td align="center"></td>
<td align="center">INACTIVE</td>
<td align="center">Camera device auto exposure algorithm is disabled</td>
</tr>
</tbody>
</table>
<p>When <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is AE_<wbr/>MODE_<wbr/>ON*:</p>
<table>
<thead>
<tr>
<th align="center">State</th>
<th align="center">Transition Cause</th>
<th align="center">New State</th>
<th align="center">Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td align="center">INACTIVE</td>
<td align="center">Camera device initiates AE scan</td>
<td align="center">SEARCHING</td>
<td align="center">Values changing</td>
</tr>
<tr>
<td align="center">INACTIVE</td>
<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
<td align="center">LOCKED</td>
<td align="center">Values locked</td>
</tr>
<tr>
<td align="center">SEARCHING</td>
<td align="center">Camera device finishes AE scan</td>
<td align="center">CONVERGED</td>
<td align="center">Good values,<wbr/> not changing</td>
</tr>
<tr>
<td align="center">SEARCHING</td>
<td align="center">Camera device finishes AE scan</td>
<td align="center">FLASH_<wbr/>REQUIRED</td>
<td align="center">Converged but too dark w/<wbr/>o flash</td>
</tr>
<tr>
<td align="center">SEARCHING</td>
<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
<td align="center">LOCKED</td>
<td align="center">Values locked</td>
</tr>
<tr>
<td align="center">CONVERGED</td>
<td align="center">Camera device initiates AE scan</td>
<td align="center">SEARCHING</td>
<td align="center">Values changing</td>
</tr>
<tr>
<td align="center">CONVERGED</td>
<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
<td align="center">LOCKED</td>
<td align="center">Values locked</td>
</tr>
<tr>
<td align="center">FLASH_<wbr/>REQUIRED</td>
<td align="center">Camera device initiates AE scan</td>
<td align="center">SEARCHING</td>
<td align="center">Values changing</td>
</tr>
<tr>
<td align="center">FLASH_<wbr/>REQUIRED</td>
<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
<td align="center">LOCKED</td>
<td align="center">Values locked</td>
</tr>
<tr>
<td align="center">LOCKED</td>
<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
<td align="center">SEARCHING</td>
<td align="center">Values not good after unlock</td>
</tr>
<tr>
<td align="center">LOCKED</td>
<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
<td align="center">CONVERGED</td>
<td align="center">Values good after unlock</td>
</tr>
<tr>
<td align="center">LOCKED</td>
<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
<td align="center">FLASH_<wbr/>REQUIRED</td>
<td align="center">Exposure good,<wbr/> but too dark</td>
</tr>
<tr>
<td align="center">PRECAPTURE</td>
<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
<td align="center">CONVERGED</td>
<td align="center">Ready for high-quality capture</td>
</tr>
<tr>
<td align="center">PRECAPTURE</td>
<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
<td align="center">LOCKED</td>
<td align="center">Ready for high-quality capture</td>
</tr>
<tr>
<td align="center">LOCKED</td>
<td align="center">aeLock is ON and aePrecaptureTrigger is START</td>
<td align="center">LOCKED</td>
<td align="center">Precapture trigger is ignored when AE is already locked</td>
</tr>
<tr>
<td align="center">LOCKED</td>
<td align="center">aeLock is ON and aePrecaptureTrigger is CANCEL</td>
<td align="center">LOCKED</td>
<td align="center">Precapture trigger is ignored when AE is already locked</td>
</tr>
<tr>
<td align="center">Any state (excluding LOCKED)</td>
<td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is START</td>
<td align="center">PRECAPTURE</td>
<td align="center">Start AE precapture metering sequence</td>
</tr>
<tr>
<td align="center">Any state (excluding LOCKED)</td>
<td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is CANCEL</td>
<td align="center">INACTIVE</td>
<td align="center">Currently active precapture metering sequence is canceled</td>
</tr>
</tbody>
</table>
<p>If the camera device supports AE external flash mode (ON_<wbr/>EXTERNAL_<wbr/>FLASH is included in
<a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a>),<wbr/> <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> must be FLASH_<wbr/>REQUIRED after
the camera device finishes AE scan and it's too dark without flash.<wbr/></p>
<p>For the above table,<wbr/> the camera device may skip reporting any state changes that happen
without application intervention (i.<wbr/>e.<wbr/> mode switch,<wbr/> trigger,<wbr/> locking).<wbr/> Any state that
can be skipped in that manner is called a transient state.<wbr/></p>
<p>For example,<wbr/> for above AE modes (AE_<wbr/>MODE_<wbr/>ON*),<wbr/> in addition to the state transitions
listed in above table,<wbr/> it is also legal for the camera device to skip one or more
transient states between two results.<wbr/> See below table for examples:</p>
<table>
<thead>
<tr>
<th align="center">State</th>
<th align="center">Transition Cause</th>
<th align="center">New State</th>
<th align="center">Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td align="center">INACTIVE</td>
<td align="center">Camera device finished AE scan</td>
<td align="center">CONVERGED</td>
<td align="center">Values are already good,<wbr/> transient states are skipped by camera device.<wbr/></td>
</tr>
<tr>
<td align="center">Any state (excluding LOCKED)</td>
<td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is START,<wbr/> sequence done</td>
<td align="center">FLASH_<wbr/>REQUIRED</td>
<td align="center">Converged but too dark w/<wbr/>o flash after a precapture sequence,<wbr/> transient states are skipped by camera device.<wbr/></td>
</tr>
<tr>
<td align="center">Any state (excluding LOCKED)</td>
<td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is START,<wbr/> sequence done</td>
<td align="center">CONVERGED</td>
<td align="center">Converged after a precapture sequence,<wbr/> transient states are skipped by camera device.<wbr/></td>
</tr>
<tr>
<td align="center">Any state (excluding LOCKED)</td>
<td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is CANCEL,<wbr/> converged</td>
<td align="center">FLASH_<wbr/>REQUIRED</td>
<td align="center">Converged but too dark w/<wbr/>o flash after a precapture sequence is canceled,<wbr/> transient states are skipped by camera device.<wbr/></td>
</tr>
<tr>
<td align="center">Any state (excluding LOCKED)</td>
<td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is CANCEL,<wbr/> converged</td>
<td align="center">CONVERGED</td>
<td align="center">Converged after a precapture sequenceis canceled,<wbr/> transient states are skipped by camera device.<wbr/></td>
</tr>
<tr>
<td align="center">CONVERGED</td>
<td align="center">Camera device finished AE scan</td>
<td align="center">FLASH_<wbr/>REQUIRED</td>
<td align="center">Converged but too dark w/<wbr/>o flash after a new scan,<wbr/> transient states are skipped by camera device.<wbr/></td>
</tr>
<tr>
<td align="center">FLASH_<wbr/>REQUIRED</td>
<td align="center">Camera device finished AE scan</td>
<td align="center">CONVERGED</td>
<td align="center">Converged after a new scan,<wbr/> transient states are skipped by camera device.<wbr/></td>
</tr>
</tbody>
</table>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.control.afMode">
            <td class="entry_name
             " rowspan="5">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
application.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">AUTO (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Basic automatic focus mode.<wbr/></p>
<p>In this mode,<wbr/> the lens does not move unless
the autofocus trigger action is called.<wbr/> When that trigger
is activated,<wbr/> AF will transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
<p>Always supported if lens is not fixed focus.<wbr/></p>
<p>Use <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> to determine if lens
is fixed-focus.<wbr/></p>
<p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
and sets the AF state to INACTIVE.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">MACRO (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Close-up focusing mode.<wbr/></p>
<p>In this mode,<wbr/> the lens does not move unless the
autofocus trigger action is called.<wbr/> When that trigger is
activated,<wbr/> AF will transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/> This
mode is optimized for focusing on objects very close to
the camera.<wbr/></p>
<p>When that trigger is activated,<wbr/> AF will 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/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">CONTINUOUS_VIDEO (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
position continually to attempt to provide a
constantly-in-focus image stream.<wbr/></p>
<p>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/></p>
<p>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/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">CONTINUOUS_PICTURE (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
position continually to attempt to provide a
constantly-in-focus image stream.<wbr/></p>
<p>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/></p>
<p>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/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">EDOF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus) mode.<wbr/></p>
<p>The camera device will produce images with an extended
depth of field automatically; no special focusing
operations need to be done before taking a picture.<wbr/></p>
<p>AF triggers are ignored,<wbr/> and the AF state will always be
INACTIVE.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>Whether auto-focus (AF) is currently enabled,<wbr/> and what
mode it is set to.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p><a href="#static_android.control.afAvailableModes">android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> = AUTO and the lens is not fixed focus
(i.<wbr/>e.<wbr/> <code><a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> &gt; 0</code>).<wbr/> Also note that
when <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/> the behavior of AF is device
dependent.<wbr/> It is recommended to lock AF by using <a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a> before
setting <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> to OFF,<wbr/> or set AF mode to OFF when AE is OFF.<wbr/></p>
<p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
the camera device will report the current AF status in <a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a>
in result metadata.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>When afMode is AUTO or MACRO,<wbr/> the lens must not move until an AF trigger is sent in a
request (<a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a> <code>==</code> START).<wbr/> After an AF trigger,<wbr/> the afState will end
up with either FOCUSED_<wbr/>LOCKED or NOT_<wbr/>FOCUSED_<wbr/>LOCKED state (see
<a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a> for detailed state transitions),<wbr/> which indicates that the lens is
locked and will not move.<wbr/> If camera movement (e.<wbr/>g.<wbr/> tilting camera) causes the lens to move
after the lens is locked,<wbr/> the HAL must compensate this movement appropriately such that
the same focal plane remains in focus.<wbr/></p>
<p>When afMode is one of the continuous auto focus modes,<wbr/> the HAL is free to start a AF
scan whenever it's not locked.<wbr/> When the lens is locked after an AF trigger
(see <a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a> for detailed state transitions),<wbr/> the HAL should maintain the
same lock behavior as above.<wbr/></p>
<p>When afMode is OFF,<wbr/> the application controls focus manually.<wbr/> The accuracy of the
focus distance control depends on the <a href="#static_android.lens.info.focusDistanceCalibration">android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration</a>.<wbr/>
However,<wbr/> the lens must not move regardless of the camera movement for any focus distance
manual control.<wbr/></p>
<p>To put this in concrete terms,<wbr/> if the camera has lens elements which may move based on
camera orientation or motion (e.<wbr/>g.<wbr/> due to gravity),<wbr/> then the HAL must drive the lens to
remain in a fixed position invariant to the camera's orientation or motion,<wbr/> for example,<wbr/>
by using accelerometer measurements in the lens control logic.<wbr/> This is a typical issue
that will arise on camera modules with open-loop VCMs.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.control.afRegions">
            <td class="entry_name
             " rowspan="5">
              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 as meteringRectangle]</span>






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

            <td class="entry_description">
              <p>List of metering areas to use for auto-focus.<wbr/></p>
            </td>

            <td class="entry_units">
              Pixel coordinates within android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
            </td>

            <td class="entry_range">
              <p>Coordinates must be between <code>[(0,<wbr/>0),<wbr/> (width,<wbr/> height))</code> of
<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Not available if <a href="#static_android.control.maxRegionsAf">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Af</a> is 0.<wbr/>
Otherwise will always be present.<wbr/></p>
<p>The maximum number of focus areas supported by the device is determined by the value
of <a href="#static_android.control.maxRegionsAf">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Af</a>.<wbr/></p>
<p>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
(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
bottom-right pixel in the active pixel array.<wbr/></p>
<p>The weight must be within <code>[0,<wbr/> 1000]</code>,<wbr/> and represents a weight
for every pixel in the area.<wbr/> This means that a large metering area
with the same weight as a smaller area will have more effect in
the metering result.<wbr/> Metering areas can partially overlap and the
camera device will add the weights in the overlap region.<wbr/></p>
<p>The weights are relative to weights of other metering regions,<wbr/> so if only one region
is used,<wbr/> all non-zero weights will have the same effect.<wbr/> A region with 0 weight is
ignored.<wbr/></p>
<p>If all regions have 0 weight,<wbr/> then no specific metering area needs to be used by the
camera device.<wbr/> The capture result will either be a zero weight region as well,<wbr/> or
the region selected by the camera device as the focus area of interest.<wbr/></p>
<p>If the metering region is outside the used <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a> returned in
capture result metadata,<wbr/> the camera device will ignore the sections outside the crop
region and output only the intersection rectangle as the metering region in the result
metadata.<wbr/> If the region is entirely outside the crop region,<wbr/> it will be ignored and
not reported in the result metadata.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The HAL level representation of MeteringRectangle[] is a
int[5 * area_<wbr/>count].<wbr/>
Every five elements represent a metering region of
(xmin,<wbr/> ymin,<wbr/> xmax,<wbr/> ymax,<wbr/> weight).<wbr/>
The rectangle is defined to be inclusive on xmin and ymin,<wbr/> but
exclusive on xmax and ymax.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.control.afTrigger">
            <td class="entry_name
             " rowspan="5">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">IDLE (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">START (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Autofocus will trigger now.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">CANCEL (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Autofocus will return to its initial
state,<wbr/> and cancel any currently active trigger.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>Whether the camera device will trigger autofocus for this request.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This entry is normally set to IDLE,<wbr/> or is not
included at all in the request settings.<wbr/></p>
<p>When included and set to START,<wbr/> the camera device will trigger the
autofocus algorithm.<wbr/> If autofocus is disabled,<wbr/> this trigger has no effect.<wbr/></p>
<p>When set to CANCEL,<wbr/> the camera device will cancel any active trigger,<wbr/>
and return to its initial AF state.<wbr/></p>
<p>Generally,<wbr/> applications should set this entry to START or CANCEL for only a
single capture,<wbr/> and then return it to IDLE (or not set at all).<wbr/> Specifying
START for multiple captures in a row means restarting the AF operation over
and over again.<wbr/></p>
<p>See <a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a> for what the trigger means for each AF mode.<wbr/></p>
<p>Using the autofocus trigger and the precapture trigger <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>
simultaneously is allowed.<wbr/> However,<wbr/> since these triggers often require cooperation between
the auto-focus and auto-exposure routines (for example,<wbr/> the may need to be enabled for a
focus sweep),<wbr/> the camera device may delay acting on a later trigger until the previous
trigger has been fully handled.<wbr/> This may lead to longer intervals between the trigger and
changes to <a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a>,<wbr/> for example.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The HAL must support triggering the AF trigger while an AE precapture trigger is active
(and vice versa),<wbr/> or at the same time as the AE trigger.<wbr/>  It is acceptable for the HAL to
treat these as two consecutive triggers,<wbr/> for example handling the AF trigger and then the
AE trigger.<wbr/>  Or the HAL may choose to optimize the case with both triggers fired at once,<wbr/>
to minimize the latency for converging both focus and exposure/<wbr/>flash usage.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.control.afState">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">INACTIVE (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>AF is off or has not yet tried to scan/<wbr/>been asked
to scan.<wbr/></p>
<p>When a camera device is opened,<wbr/> it starts in this
state.<wbr/> This is a transient state,<wbr/> the camera device may
skip reporting this state in capture
result.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">PASSIVE_SCAN (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>AF is currently performing an AF scan initiated the
camera device in a continuous autofocus mode.<wbr/></p>
<p>Only used by CONTINUOUS_<wbr/>* AF modes.<wbr/> This is a transient
state,<wbr/> the camera device may skip reporting this state in
capture result.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">PASSIVE_FOCUSED (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>AF currently believes it is in focus,<wbr/> but may
restart scanning at any time.<wbr/></p>
<p>Only used by CONTINUOUS_<wbr/>* AF modes.<wbr/> This is a transient
state,<wbr/> the camera device may skip reporting this state in
capture result.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ACTIVE_SCAN (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>AF is performing an AF scan because it was
triggered by AF trigger.<wbr/></p>
<p>Only used by AUTO or MACRO AF modes.<wbr/> This is a transient
state,<wbr/> the camera device may skip reporting this state in
capture result.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FOCUSED_LOCKED (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>AF believes it is focused correctly and has locked
focus.<wbr/></p>
<p>This state is reached only after an explicit START AF trigger has been
sent (<a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a>),<wbr/> when good focus has been obtained.<wbr/></p>
<p>The lens will remain stationary until the AF mode (<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>) is changed or
a new AF trigger is sent to the camera device (<a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a>).<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">NOT_FOCUSED_LOCKED (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>AF has failed to focus successfully and has locked
focus.<wbr/></p>
<p>This state is reached only after an explicit START AF trigger has been
sent (<a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a>),<wbr/> when good focus cannot be obtained.<wbr/></p>
<p>The lens will remain stationary until the AF mode (<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>) is changed or
a new AF trigger is sent to the camera device (<a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a>).<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">PASSIVE_UNFOCUSED (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>AF finished a passive scan without finding focus,<wbr/>
and may restart scanning at any time.<wbr/></p>
<p>Only used by CONTINUOUS_<wbr/>* AF modes.<wbr/> This is a transient state,<wbr/> the camera
device may skip reporting this state in capture result.<wbr/></p>
<p>LEGACY camera devices do not support this state.<wbr/> When a passive
scan has finished,<wbr/> it will always go to PASSIVE_<wbr/>FOCUSED.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>Current state of auto-focus (AF) algorithm.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Switching between or enabling AF modes (<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>) always
resets the AF state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
or <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a> if <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == USE_<wbr/>SCENE_<wbr/>MODE</code> resets all
the algorithm states to INACTIVE.<wbr/></p>
<p>The camera device can do several state transitions between two results,<wbr/> if it is
allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
seen in a result.<wbr/></p>
<p>The state in the result is the state for this image (in sync with this image): if
AF state becomes FOCUSED,<wbr/> then the image data associated with this result should
be sharp.<wbr/></p>
<p>Below are state transition tables for different AF modes.<wbr/></p>
<p>When <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> is AF_<wbr/>MODE_<wbr/>OFF or AF_<wbr/>MODE_<wbr/>EDOF:</p>
<table>
<thead>
<tr>
<th align="center">State</th>
<th align="center">Transition Cause</th>
<th align="center">New State</th>
<th align="center">Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td align="center">INACTIVE</td>
<td align="center"></td>
<td align="center">INACTIVE</td>
<td align="center">Never changes</td>
</tr>
</tbody>
</table>
<p>When <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> is AF_<wbr/>MODE_<wbr/>AUTO or AF_<wbr/>MODE_<wbr/>MACRO:</p>
<table>
<thead>
<tr>
<th align="center">State</th>
<th align="center">Transition Cause</th>
<th align="center">New State</th>
<th align="center">Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td align="center">INACTIVE</td>
<td align="center">AF_<wbr/>TRIGGER</td>
<td align="center">ACTIVE_<wbr/>SCAN</td>
<td align="center">Start AF sweep,<wbr/> Lens now moving</td>
</tr>
<tr>
<td align="center">ACTIVE_<wbr/>SCAN</td>
<td align="center">AF sweep done</td>
<td align="center">FOCUSED_<wbr/>LOCKED</td>
<td align="center">Focused,<wbr/> Lens now locked</td>
</tr>
<tr>
<td align="center">ACTIVE_<wbr/>SCAN</td>
<td align="center">AF sweep done</td>
<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
<td align="center">Not focused,<wbr/> Lens now locked</td>
</tr>
<tr>
<td align="center">ACTIVE_<wbr/>SCAN</td>
<td align="center">AF_<wbr/>CANCEL</td>
<td align="center">INACTIVE</td>
<td align="center">Cancel/<wbr/>reset AF,<wbr/> Lens now locked</td>
</tr>
<tr>
<td align="center">FOCUSED_<wbr/>LOCKED</td>
<td align="center">AF_<wbr/>CANCEL</td>
<td align="center">INACTIVE</td>
<td align="center">Cancel/<wbr/>reset AF</td>
</tr>
<tr>
<td align="center">FOCUSED_<wbr/>LOCKED</td>
<td align="center">AF_<wbr/>TRIGGER</td>
<td align="center">ACTIVE_<wbr/>SCAN</td>
<td align="center">Start new sweep,<wbr/> Lens now moving</td>
</tr>
<tr>
<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
<td align="center">AF_<wbr/>CANCEL</td>
<td align="center">INACTIVE</td>
<td align="center">Cancel/<wbr/>reset AF</td>
</tr>
<tr>
<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
<td align="center">AF_<wbr/>TRIGGER</td>
<td align="center">ACTIVE_<wbr/>SCAN</td>
<td align="center">Start new sweep,<wbr/> Lens now moving</td>
</tr>
<tr>
<td align="center">Any state</td>
<td align="center">Mode change</td>
<td align="center">INACTIVE</td>
<td align="center"></td>
</tr>
</tbody>
</table>
<p>For the above table,<wbr/> the camera device may skip reporting any state changes that happen
without application intervention (i.<wbr/>e.<wbr/> mode switch,<wbr/> trigger,<wbr/> locking).<wbr/> Any state that
can be skipped in that manner is called a transient state.<wbr/></p>
<p>For example,<wbr/> for these AF modes (AF_<wbr/>MODE_<wbr/>AUTO and AF_<wbr/>MODE_<wbr/>MACRO),<wbr/> in addition to the
state transitions listed in above table,<wbr/> it is also legal for the camera device to skip
one or more transient states between two results.<wbr/> See below table for examples:</p>
<table>
<thead>
<tr>
<th align="center">State</th>
<th align="center">Transition Cause</th>
<th align="center">New State</th>
<th align="center">Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td align="center">INACTIVE</td>
<td align="center">AF_<wbr/>TRIGGER</td>
<td align="center">FOCUSED_<wbr/>LOCKED</td>
<td align="center">Focus is already good or good after a scan,<wbr/> lens is now locked.<wbr/></td>
</tr>
<tr>
<td align="center">INACTIVE</td>
<td align="center">AF_<wbr/>TRIGGER</td>
<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
<td align="center">Focus failed after a scan,<wbr/> lens is now locked.<wbr/></td>
</tr>
<tr>
<td align="center">FOCUSED_<wbr/>LOCKED</td>
<td align="center">AF_<wbr/>TRIGGER</td>
<td align="center">FOCUSED_<wbr/>LOCKED</td>
<td align="center">Focus is already good or good after a scan,<wbr/> lens is now locked.<wbr/></td>
</tr>
<tr>
<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
<td align="center">AF_<wbr/>TRIGGER</td>
<td align="center">FOCUSED_<wbr/>LOCKED</td>
<td align="center">Focus is good after a scan,<wbr/> lens is not locked.<wbr/></td>
</tr>
</tbody>
</table>
<p>When <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> is AF_<wbr/>MODE_<wbr/>CONTINUOUS_<wbr/>VIDEO:</p>
<table>
<thead>
<tr>
<th align="center">State</th>
<th align="center">Transition Cause</th>
<th align="center">New State</th>
<th align="center">Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td align="center">INACTIVE</td>
<td align="center">Camera device initiates new scan</td>
<td align="center">PASSIVE_<wbr/>SCAN</td>
<td align="center">Start AF scan,<wbr/> Lens now moving</td>
</tr>
<tr>
<td align="center">INACTIVE</td>
<td align="center">AF_<wbr/>TRIGGER</td>
<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
<td align="center">AF state query,<wbr/> Lens now locked</td>
</tr>
<tr>
<td align="center">PASSIVE_<wbr/>SCAN</td>
<td align="center">Camera device completes current scan</td>
<td align="center">PASSIVE_<wbr/>FOCUSED</td>
<td align="center">End AF scan,<wbr/> Lens now locked</td>
</tr>
<tr>
<td align="center">PASSIVE_<wbr/>SCAN</td>
<td align="center">Camera device fails current scan</td>
<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
<td align="center">End AF scan,<wbr/> Lens now locked</td>
</tr>
<tr>
<td align="center">PASSIVE_<wbr/>SCAN</td>
<td align="center">AF_<wbr/>TRIGGER</td>
<td align="center">FOCUSED_<wbr/>LOCKED</td>
<td align="center">Immediate transition,<wbr/> if focus is good.<wbr/> Lens now locked</td>
</tr>
<tr>
<td align="center">PASSIVE_<wbr/>SCAN</td>
<td align="center">AF_<wbr/>TRIGGER</td>
<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
<td align="center">Immediate transition,<wbr/> if focus is bad.<wbr/> Lens now locked</td>
</tr>
<tr>
<td align="center">PASSIVE_<wbr/>SCAN</td>
<td align="center">AF_<wbr/>CANCEL</td>
<td align="center">INACTIVE</td>
<td align="center">Reset lens position,<wbr/> Lens now locked</td>
</tr>
<tr>
<td align="center">PASSIVE_<wbr/>FOCUSED</td>
<td align="center">Camera device initiates new scan</td>
<td align="center">PASSIVE_<wbr/>SCAN</td>
<td align="center">Start AF scan,<wbr/> Lens now moving</td>
</tr>
<tr>
<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
<td align="center">Camera device initiates new scan</td>
<td align="center">PASSIVE_<wbr/>SCAN</td>
<td align="center">Start AF scan,<wbr/> Lens now moving</td>
</tr>
<tr>
<td align="center">PASSIVE_<wbr/>FOCUSED</td>
<td align="center">AF_<wbr/>TRIGGER</td>
<td align="center">FOCUSED_<wbr/>LOCKED</td>
<td align="center">Immediate transition,<wbr/> lens now locked</td>
</tr>
<tr>
<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
<td align="center">AF_<wbr/>TRIGGER</td>
<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
<td align="center">Immediate transition,<wbr/> lens now locked</td>
</tr>
<tr>
<td align="center">FOCUSED_<wbr/>LOCKED</td>
<td align="center">AF_<wbr/>TRIGGER</td>
<td align="center">FOCUSED_<wbr/>LOCKED</td>
<td align="center">No effect</td>
</tr>
<tr>
<td align="center">FOCUSED_<wbr/>LOCKED</td>
<td align="center">AF_<wbr/>CANCEL</td>
<td align="center">INACTIVE</td>
<td align="center">Restart AF scan</td>
</tr>
<tr>
<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
<td align="center">AF_<wbr/>TRIGGER</td>
<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
<td align="center">No effect</td>
</tr>
<tr>
<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
<td align="center">AF_<wbr/>CANCEL</td>
<td align="center">INACTIVE</td>
<td align="center">Restart AF scan</td>
</tr>
</tbody>
</table>
<p>When <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> is AF_<wbr/>MODE_<wbr/>CONTINUOUS_<wbr/>PICTURE:</p>
<table>
<thead>
<tr>
<th align="center">State</th>
<th align="center">Transition Cause</th>
<th align="center">New State</th>
<th align="center">Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td align="center">INACTIVE</td>
<td align="center">Camera device initiates new scan</td>
<td align="center">PASSIVE_<wbr/>SCAN</td>
<td align="center">Start AF scan,<wbr/> Lens now moving</td>
</tr>
<tr>
<td align="center">INACTIVE</td>
<td align="center">AF_<wbr/>TRIGGER</td>
<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
<td align="center">AF state query,<wbr/> Lens now locked</td>
</tr>
<tr>
<td align="center">PASSIVE_<wbr/>SCAN</td>
<td align="center">Camera device completes current scan</td>
<td align="center">PASSIVE_<wbr/>FOCUSED</td>
<td align="center">End AF scan,<wbr/> Lens now locked</td>
</tr>
<tr>
<td align="center">PASSIVE_<wbr/>SCAN</td>
<td align="center">Camera device fails current scan</td>
<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
<td align="center">End AF scan,<wbr/> Lens now locked</td>
</tr>
<tr>
<td align="center">PASSIVE_<wbr/>SCAN</td>
<td align="center">AF_<wbr/>TRIGGER</td>
<td align="center">FOCUSED_<wbr/>LOCKED</td>
<td align="center">Eventual transition once the focus is good.<wbr/> Lens now locked</td>
</tr>
<tr>
<td align="center">PASSIVE_<wbr/>SCAN</td>
<td align="center">AF_<wbr/>TRIGGER</td>
<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
<td align="center">Eventual transition if cannot find focus.<wbr/> Lens now locked</td>
</tr>
<tr>
<td align="center">PASSIVE_<wbr/>SCAN</td>
<td align="center">AF_<wbr/>CANCEL</td>
<td align="center">INACTIVE</td>
<td align="center">Reset lens position,<wbr/> Lens now locked</td>
</tr>
<tr>
<td align="center">PASSIVE_<wbr/>FOCUSED</td>
<td align="center">Camera device initiates new scan</td>
<td align="center">PASSIVE_<wbr/>SCAN</td>
<td align="center">Start AF scan,<wbr/> Lens now moving</td>
</tr>
<tr>
<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
<td align="center">Camera device initiates new scan</td>
<td align="center">PASSIVE_<wbr/>SCAN</td>
<td align="center">Start AF scan,<wbr/> Lens now moving</td>
</tr>
<tr>
<td align="center">PASSIVE_<wbr/>FOCUSED</td>
<td align="center">AF_<wbr/>TRIGGER</td>
<td align="center">FOCUSED_<wbr/>LOCKED</td>
<td align="center">Immediate trans.<wbr/> Lens now locked</td>
</tr>
<tr>
<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
<td align="center">AF_<wbr/>TRIGGER</td>
<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
<td align="center">Immediate trans.<wbr/> Lens now locked</td>
</tr>
<tr>
<td align="center">FOCUSED_<wbr/>LOCKED</td>
<td align="center">AF_<wbr/>TRIGGER</td>
<td align="center">FOCUSED_<wbr/>LOCKED</td>
<td align="center">No effect</td>
</tr>
<tr>
<td align="center">FOCUSED_<wbr/>LOCKED</td>
<td align="center">AF_<wbr/>CANCEL</td>
<td align="center">INACTIVE</td>
<td align="center">Restart AF scan</td>
</tr>
<tr>
<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
<td align="center">AF_<wbr/>TRIGGER</td>
<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
<td align="center">No effect</td>
</tr>
<tr>
<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
<td align="center">AF_<wbr/>CANCEL</td>
<td align="center">INACTIVE</td>
<td align="center">Restart AF scan</td>
</tr>
</tbody>
</table>
<p>When switch between AF_<wbr/>MODE_<wbr/>CONTINUOUS_<wbr/>* (CAF modes) and AF_<wbr/>MODE_<wbr/>AUTO/<wbr/>AF_<wbr/>MODE_<wbr/>MACRO
(AUTO modes),<wbr/> the initial INACTIVE or PASSIVE_<wbr/>SCAN states may be skipped by the
camera device.<wbr/> When a trigger is included in a mode switch request,<wbr/> the trigger
will be evaluated in the context of the new mode in the request.<wbr/>
See below table for examples:</p>
<table>
<thead>
<tr>
<th align="center">State</th>
<th align="center">Transition Cause</th>
<th align="center">New State</th>
<th align="center">Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td align="center">any state</td>
<td align="center">CAF--&gt;AUTO mode switch</td>
<td align="center">INACTIVE</td>
<td align="center">Mode switch without trigger,<wbr/> initial state must be INACTIVE</td>
</tr>
<tr>
<td align="center">any state</td>
<td align="center">CAF--&gt;AUTO mode switch with AF_<wbr/>TRIGGER</td>
<td align="center">trigger-reachable states from INACTIVE</td>
<td align="center">Mode switch with trigger,<wbr/> INACTIVE is skipped</td>
</tr>
<tr>
<td align="center">any state</td>
<td align="center">AUTO--&gt;CAF mode switch</td>
<td align="center">passively reachable states from INACTIVE</td>
<td align="center">Mode switch without trigger,<wbr/> passive transient state is skipped</td>
</tr>
</tbody>
</table>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.control.afTriggerId">
            <td class="entry_name
                entry_name_deprecated
             " rowspan="3">
              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"> [system]</span>



              <span class="entry_type_deprecated">[deprecated] </span>



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

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

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

            <td class="entry_range">
              <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>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</p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.control.awbLock">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Auto-white balance lock is disabled; the AWB
algorithm is free to update its parameters if in AUTO
mode.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Auto-white balance lock is enabled; the AWB
algorithm will not update its parameters while the lock
is active.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>Whether auto-white balance (AWB) is currently locked to its
latest calculated values.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>When set to <code>true</code> (ON),<wbr/> the AWB algorithm is locked to its latest parameters,<wbr/>
and will not change color balance settings until the lock is set to <code>false</code> (OFF).<wbr/></p>
<p>Since the camera device has a pipeline of in-flight requests,<wbr/> the settings that
get locked do not necessarily correspond to the settings that were present in the
latest capture result received from the camera device,<wbr/> since additional captures
and AWB updates may have occurred even before the result was sent out.<wbr/> If an
application is switching between automatic and manual control and wishes to eliminate
any flicker during the switch,<wbr/> the following procedure is recommended:</p>
<ol>
<li>Starting in auto-AWB mode:</li>
<li>Lock AWB</li>
<li>Wait for the first result to be output that has the AWB locked</li>
<li>Copy AWB settings from that result into a request,<wbr/> set the request to manual AWB</li>
<li>Submit the capture request,<wbr/> proceed to run manual AWB as desired.<wbr/></li>
</ol>
<p>Note that AWB lock is only meaningful when
<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> is in the AUTO mode; in other modes,<wbr/>
AWB is already fixed to a specific setting.<wbr/></p>
<p>Some LEGACY devices may not support ON; the value is then overridden to OFF.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.control.awbMode">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled.<wbr/></p>
<p>The application-selected color transform matrix
(<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
(<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
device for manual white balance control.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">AUTO (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is active.<wbr/></p>
<p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
values used by the camera device for the transform and gains
will be available in the capture result for this request.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">INCANDESCENT (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
the camera device uses incandescent light as the assumed scene
illumination for white balance.<wbr/></p>
<p>While the exact white balance transforms are up to the
camera device,<wbr/> they will approximately match the CIE
standard illuminant A.<wbr/></p>
<p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
values used by the camera device for the transform and gains
will be available in the capture result for this request.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FLUORESCENT (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
the camera device uses fluorescent light as the assumed scene
illumination for white balance.<wbr/></p>
<p>While the exact white balance transforms are up to the
camera device,<wbr/> they will approximately match the CIE
standard illuminant F2.<wbr/></p>
<p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
values used by the camera device for the transform and gains
will be available in the capture result for this request.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">WARM_FLUORESCENT (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
the camera device uses warm fluorescent light as the assumed scene
illumination for white balance.<wbr/></p>
<p>While the exact white balance transforms are up to the
camera device,<wbr/> they will approximately match the CIE
standard illuminant F4.<wbr/></p>
<p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
values used by the camera device for the transform and gains
will be available in the capture result for this request.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">DAYLIGHT (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
the camera device uses daylight light as the assumed scene
illumination for white balance.<wbr/></p>
<p>While the exact white balance transforms are up to the
camera device,<wbr/> they will approximately match the CIE
standard illuminant D65.<wbr/></p>
<p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
values used by the camera device for the transform and gains
will be available in the capture result for this request.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">CLOUDY_DAYLIGHT (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
the camera device uses cloudy daylight light as the assumed scene
illumination for white balance.<wbr/></p>
<p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
values used by the camera device for the transform and gains
will be available in the capture result for this request.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">TWILIGHT (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
the camera device uses twilight light as the assumed scene
illumination for white balance.<wbr/></p>
<p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
values used by the camera device for the transform and gains
will be available in the capture result for this request.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">SHADE (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
the camera device uses shade light as the assumed scene
illumination for white balance.<wbr/></p>
<p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
values used by the camera device for the transform and gains
will be available in the capture result for this request.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>Whether auto-white balance (AWB) is currently setting the color
transform fields,<wbr/> and what its illumination target
is.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p><a href="#static_android.control.awbAvailableModes">android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
<p>When set to the ON mode,<wbr/> the camera device's auto-white balance
routine is enabled,<wbr/> overriding the application's selected
<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/> Note that when <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>
is OFF,<wbr/> the behavior of AWB is device dependent.<wbr/> It is recommened to
also set AWB mode to OFF or lock AWB by using <a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> before
setting AE mode to OFF.<wbr/></p>
<p>When set to the OFF mode,<wbr/> the camera device's auto-white balance
routine is disabled.<wbr/> The application manually controls the white
balance by <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>
and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
<p>When set to any other modes,<wbr/> the camera device's auto-white
balance routine is disabled.<wbr/> The camera device uses each
particular illumination target for white balance
adjustment.<wbr/> The application's values for
<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/>
<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> are ignored.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.control.awbRegions">
            <td class="entry_name
             " rowspan="5">
              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 as meteringRectangle]</span>






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

            <td class="entry_description">
              <p>List of metering areas to use for auto-white-balance illuminant
estimation.<wbr/></p>
            </td>

            <td class="entry_units">
              Pixel coordinates within android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
            </td>

            <td class="entry_range">
              <p>Coordinates must be between <code>[(0,<wbr/>0),<wbr/> (width,<wbr/> height))</code> of
<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Not available if <a href="#static_android.control.maxRegionsAwb">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Awb</a> is 0.<wbr/>
Otherwise will always be present.<wbr/></p>
<p>The maximum number of regions supported by the device is determined by the value
of <a href="#static_android.control.maxRegionsAwb">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Awb</a>.<wbr/></p>
<p>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
(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
bottom-right pixel in the active pixel array.<wbr/></p>
<p>The weight must range from 0 to 1000,<wbr/> and represents a weight
for every pixel in the area.<wbr/> This means that a large metering area
with the same weight as a smaller area will have more effect in
the metering result.<wbr/> Metering areas can partially overlap and the
camera device will add the weights in the overlap region.<wbr/></p>
<p>The weights are relative to weights of other white balance metering regions,<wbr/> so if
only one region is used,<wbr/> all non-zero weights will have the same effect.<wbr/> A region with
0 weight is ignored.<wbr/></p>
<p>If all regions have 0 weight,<wbr/> then no specific metering area needs to be used by the
camera device.<wbr/></p>
<p>If the metering region is outside the used <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a> returned in
capture result metadata,<wbr/> the camera device will ignore the sections outside the crop
region and output only the intersection rectangle as the metering region in the result
metadata.<wbr/>  If the region is entirely outside the crop region,<wbr/> it will be ignored and
not reported in the result metadata.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The HAL level representation of MeteringRectangle[] is a
int[5 * area_<wbr/>count].<wbr/>
Every five elements represent a metering region of
(xmin,<wbr/> ymin,<wbr/> xmax,<wbr/> ymax,<wbr/> weight).<wbr/>
The rectangle is defined to be inclusive on xmin and ymin,<wbr/> but
exclusive on xmax and ymax.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.control.captureIntent">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">CUSTOM (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The goal of this request doesn't fall into the other
categories.<wbr/> The camera device will default to preview-like
behavior.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">PREVIEW (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>This request is for a preview-like use case.<wbr/></p>
<p>The precapture trigger may be used to start off a metering
w/<wbr/>flash sequence.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">STILL_CAPTURE (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>This request is for a still capture-type
use case.<wbr/></p>
<p>If the flash unit is under automatic control,<wbr/> it may fire as needed.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">VIDEO_RECORD (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>This request is for a video recording
use case.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">VIDEO_SNAPSHOT (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>This request is for a video snapshot (still
image while recording video) use case.<wbr/></p>
<p>The camera device should take the highest-quality image
possible (given the other settings) without disrupting the
frame rate of video recording.<wbr/>  </p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ZERO_SHUTTER_LAG (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>This request is for a ZSL usecase; the
application will stream full-resolution images and
reprocess one or several later for a final
capture.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">MANUAL (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>This request is for manual capture use case where
the applications want to directly control the capture parameters.<wbr/></p>
<p>For example,<wbr/> the application may wish to manually control
<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/> <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> etc.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">MOTION_TRACKING (v3.3)</span>
                    <span class="entry_type_enum_notes"><p>This request is for a motion tracking use case,<wbr/> where
the application will use camera and inertial sensor data to
locate and track objects in the world.<wbr/></p>
<p>The camera device auto-exposure routine will limit the exposure time
of the camera to no more than 20 milliseconds,<wbr/> to minimize motion blur.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>Information to the camera device 3A (auto-exposure,<wbr/>
auto-focus,<wbr/> auto-white balance) routines about the purpose
of this capture,<wbr/> to help the camera device to decide optimal 3A
strategy.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This control (except for MANUAL) is only effective if
<code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF</code> and any 3A routine is active.<wbr/></p>
<p>All intents are supported by all devices,<wbr/> except that:
  * ZERO_<wbr/>SHUTTER_<wbr/>LAG will be supported if <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains
PRIVATE_<wbr/>REPROCESSING or YUV_<wbr/>REPROCESSING.<wbr/>
  * MANUAL will be supported if <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains
MANUAL_<wbr/>SENSOR.<wbr/>
  * MOTION_<wbr/>TRACKING will be supported if <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains
MOTION_<wbr/>TRACKING.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.control.awbState">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[limited] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">INACTIVE (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>AWB is not in auto mode,<wbr/> or has not yet started metering.<wbr/></p>
<p>When a camera device is opened,<wbr/> it starts in this
state.<wbr/> This is a transient state,<wbr/> the camera device may
skip reporting this state in capture
result.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">SEARCHING (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>AWB doesn't yet have a good set of control
values for the current scene.<wbr/></p>
<p>This is a transient state,<wbr/> the camera device
may skip reporting this state in capture result.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">CONVERGED (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>AWB has a good set of control values for the
current scene.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">LOCKED (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>AWB has been locked.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>Current state of auto-white balance (AWB) algorithm.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Switching between or enabling AWB modes (<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>) always
resets the AWB state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
or <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a> if <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == USE_<wbr/>SCENE_<wbr/>MODE</code> resets all
the algorithm states to INACTIVE.<wbr/></p>
<p>The camera device can do several state transitions between two results,<wbr/> if it is
allowed by the state transition table.<wbr/> So INACTIVE may never actually be seen in
a result.<wbr/></p>
<p>The state in the result is the state for this image (in sync with this image): if
AWB state becomes CONVERGED,<wbr/> then the image data associated with this result should
be good to use.<wbr/></p>
<p>Below are state transition tables for different AWB modes.<wbr/></p>
<p>When <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != AWB_<wbr/>MODE_<wbr/>AUTO</code>:</p>
<table>
<thead>
<tr>
<th align="center">State</th>
<th align="center">Transition Cause</th>
<th align="center">New State</th>
<th align="center">Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td align="center">INACTIVE</td>
<td align="center"></td>
<td align="center">INACTIVE</td>
<td align="center">Camera device auto white balance algorithm is disabled</td>
</tr>
</tbody>
</table>
<p>When <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> is AWB_<wbr/>MODE_<wbr/>AUTO:</p>
<table>
<thead>
<tr>
<th align="center">State</th>
<th align="center">Transition Cause</th>
<th align="center">New State</th>
<th align="center">Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td align="center">INACTIVE</td>
<td align="center">Camera device initiates AWB scan</td>
<td align="center">SEARCHING</td>
<td align="center">Values changing</td>
</tr>
<tr>
<td align="center">INACTIVE</td>
<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
<td align="center">LOCKED</td>
<td align="center">Values locked</td>
</tr>
<tr>
<td align="center">SEARCHING</td>
<td align="center">Camera device finishes AWB scan</td>
<td align="center">CONVERGED</td>
<td align="center">Good values,<wbr/> not changing</td>
</tr>
<tr>
<td align="center">SEARCHING</td>
<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
<td align="center">LOCKED</td>
<td align="center">Values locked</td>
</tr>
<tr>
<td align="center">CONVERGED</td>
<td align="center">Camera device initiates AWB scan</td>
<td align="center">SEARCHING</td>
<td align="center">Values changing</td>
</tr>
<tr>
<td align="center">CONVERGED</td>
<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
<td align="center">LOCKED</td>
<td align="center">Values locked</td>
</tr>
<tr>
<td align="center">LOCKED</td>
<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
<td align="center">SEARCHING</td>
<td align="center">Values not good after unlock</td>
</tr>
</tbody>
</table>
<p>For the above table,<wbr/> the camera device may skip reporting any state changes that happen
without application intervention (i.<wbr/>e.<wbr/> mode switch,<wbr/> trigger,<wbr/> locking).<wbr/> Any state that
can be skipped in that manner is called a transient state.<wbr/></p>
<p>For example,<wbr/> for this AWB mode (AWB_<wbr/>MODE_<wbr/>AUTO),<wbr/> in addition to the state transitions
listed in above table,<wbr/> it is also legal for the camera device to skip one or more
transient states between two results.<wbr/> See below table for examples:</p>
<table>
<thead>
<tr>
<th align="center">State</th>
<th align="center">Transition Cause</th>
<th align="center">New State</th>
<th align="center">Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td align="center">INACTIVE</td>
<td align="center">Camera device finished AWB scan</td>
<td align="center">CONVERGED</td>
<td align="center">Values are already good,<wbr/> transient states are skipped by camera device.<wbr/></td>
</tr>
<tr>
<td align="center">LOCKED</td>
<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
<td align="center">CONVERGED</td>
<td align="center">Values good after unlock,<wbr/> transient states are skipped by camera device.<wbr/></td>
</tr>
</tbody>
</table>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.control.effectMode">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>No color effect will be applied.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">MONO (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>A "monocolor" effect where the image is mapped into
a single color.<wbr/></p>
<p>This will typically be grayscale.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">NEGATIVE (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>A "photo-negative" effect where the image's colors
are inverted.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">SOLARIZE (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>A "solarisation" effect (Sabattier effect) where the
image is wholly or partially reversed in
tone.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">SEPIA (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>A "sepia" effect where the image is mapped into warm
gray,<wbr/> red,<wbr/> and brown tones.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">POSTERIZE (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>A "posterization" effect where the image uses
discrete regions of tone rather than a continuous
gradient of tones.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">WHITEBOARD (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>A "whiteboard" effect where the image is typically displayed
as regions of white,<wbr/> with black or grey details.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">BLACKBOARD (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>A "blackboard" effect where the image is typically displayed
as regions of black,<wbr/> with white or grey details.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">AQUA (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>An "aqua" effect where a blue hue is added to the image.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>A special color effect to apply.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p><a href="#static_android.control.availableEffects">android.<wbr/>control.<wbr/>available<wbr/>Effects</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>When this mode is set,<wbr/> a color effect will be applied
to images produced by the camera device.<wbr/> The interpretation
and implementation of these color effects is left to the
implementor of the camera device,<wbr/> and should not be
depended on to be consistent (or present) across all
devices.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.control.mode">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/></p>
<p>All control by the device's metering and focusing (3A)
routines is disabled,<wbr/> and no other settings in
android.<wbr/>control.<wbr/>* have any effect,<wbr/> except that
<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> may be used by the camera
device to select post-processing values for processing
blocks that do not allow for manual control,<wbr/> or are not
exposed by the camera API.<wbr/></p>
<p>However,<wbr/> the camera device's 3A routines may continue to
collect statistics and update their internal state so that
when control is switched to AUTO mode,<wbr/> good control values
can be immediately applied.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">AUTO (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/></p>
<p>Manual control of capture parameters is disabled.<wbr/> All
controls in android.<wbr/>control.<wbr/>* besides sceneMode take
effect.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">USE_SCENE_MODE (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Use a specific scene mode.<wbr/></p>
<p>Enabling this disables control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and
control.<wbr/>afMode controls; the camera device will 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 scene mode is supported (i.<wbr/>e.<wbr/>
<a href="#static_android.control.availableSceneModes">android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes</a>
contain some modes other than DISABLED).<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">OFF_KEEP_STATE (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Same as OFF mode,<wbr/> except that this capture will not be
used by camera device background auto-exposure,<wbr/> auto-white balance and
auto-focus algorithms (3A) to update their statistics.<wbr/></p>
<p>Specifically,<wbr/> the 3A routines are locked to the last
values set from a request with AUTO,<wbr/> OFF,<wbr/> or
USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> and any statistics or state updates
collected from manual captures with OFF_<wbr/>KEEP_<wbr/>STATE will be
discarded by the camera device.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>Overall mode of 3A (auto-exposure,<wbr/> auto-white-balance,<wbr/> auto-focus) control
routines.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p><a href="#static_android.control.availableModes">android.<wbr/>control.<wbr/>available<wbr/>Modes</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This is a top-level 3A control switch.<wbr/> When set to OFF,<wbr/> all 3A control
by the camera device is disabled.<wbr/> The application must set the fields for
capture parameters itself.<wbr/></p>
<p>When set to AUTO,<wbr/> the individual algorithm controls in
android.<wbr/>control.<wbr/>* are in effect,<wbr/> such as <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>.<wbr/></p>
<p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device
implements one of the scene mode settings (such as ACTION,<wbr/>
SUNSET,<wbr/> or PARTY) as it wishes.<wbr/> The camera device scene mode
3A settings are provided by <a href="https://developer.android.com/reference/android/hardware/camera2/CaptureResult.html">capture results</a>.<wbr/></p>
<p>When set to OFF_<wbr/>KEEP_<wbr/>STATE,<wbr/> it is similar to OFF mode,<wbr/> the only difference
is that this frame will not be used by camera device background 3A statistics
update,<wbr/> as if this frame is never captured.<wbr/> This mode can be used in the scenario
where the application doesn't want a 3A manual control capture to affect
the subsequent auto 3A capture results.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.control.sceneMode">
            <td class="entry_name
             " rowspan="5">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">DISABLED (v3.2)</span>
                    <span class="entry_type_enum_value">0</span>
                    <span class="entry_type_enum_notes"><p>Indicates that no scene modes are set for a given capture request.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FACE_PRIORITY (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>If face detection support exists,<wbr/> use face
detection data for auto-focus,<wbr/> auto-white balance,<wbr/> and
auto-exposure routines.<wbr/></p>
<p>If face detection statistics are disabled
(i.<wbr/>e.<wbr/> <a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a> is set to OFF),<wbr/>
this should still operate correctly (but will not return
face detection statistics to the framework).<wbr/></p>
<p>Unlike the other scene modes,<wbr/> <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>
remain active when FACE_<wbr/>PRIORITY is set.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ACTION (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving objects.<wbr/></p>
<p>Similar to SPORTS.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">PORTRAIT (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Optimized for still photos of people.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">LANDSCAPE (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Optimized for photos of distant macroscopic objects.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">NIGHT (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Optimized for low-light settings.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">NIGHT_PORTRAIT (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Optimized for still photos of people in low-light
settings.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">THEATRE (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings where flash must
remain off.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">BEACH (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor beach settings.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">SNOW (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor settings containing snow.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">SUNSET (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Optimized for scenes of the setting sun.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">STEADYPHOTO (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Optimized to avoid blurry photos due to small amounts of
device motion (for example: due to hand shake).<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FIREWORKS (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Optimized for nighttime photos of fireworks.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">SPORTS (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving people.<wbr/></p>
<p>Similar to ACTION.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">PARTY (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings with multiple moving
people.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">CANDLELIGHT (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Optimized for dim settings where the main light source
is a flame.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">BARCODE (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Optimized for accurately capturing a photo of barcode
for use by camera applications that wish to read the
barcode value.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">HIGH_SPEED_VIDEO (v3.2)</span>
                    <span class="entry_type_enum_deprecated">[deprecated]</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>This is deprecated,<wbr/> please use <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createConstrainedHighSpeedCaptureSession">CameraDevice#createConstrainedHighSpeedCaptureSession</a>
and <a href="https://developer.android.com/reference/android/hardware/camera2/CameraConstrainedHighSpeedCaptureSession.html#createHighSpeedRequestList">CameraConstrainedHighSpeedCaptureSession#createHighSpeedRequestList</a>
for high speed video recording.<wbr/></p>
<p>Optimized for high speed video recording (frame rate &gt;=60fps) use case.<wbr/></p>
<p>The supported high speed video sizes and fps ranges are specified in
<a href="#static_android.control.availableHighSpeedVideoConfigurations">android.<wbr/>control.<wbr/>available<wbr/>High<wbr/>Speed<wbr/>Video<wbr/>Configurations</a>.<wbr/> To get desired
output frame rates,<wbr/> the application is only allowed to select video size
and fps range combinations listed in this static metadata.<wbr/> The fps range
can be control via <a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a>.<wbr/></p>
<p>In this mode,<wbr/> the camera device will override aeMode,<wbr/> awbMode,<wbr/> and afMode to
ON,<wbr/> ON,<wbr/> and CONTINUOUS_<wbr/>VIDEO,<wbr/> respectively.<wbr/> All post-processing block mode
controls will be overridden to be FAST.<wbr/> Therefore,<wbr/> no manual control of capture
and post-processing parameters is possible.<wbr/> All other controls operate the
same as when <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == AUTO.<wbr/> This means that all other
android.<wbr/>control.<wbr/>* fields continue to work,<wbr/> such as</p>
<ul>
<li><a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a></li>
<li><a href="#controls_android.control.aeExposureCompensation">android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation</a></li>
<li><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a></li>
<li><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a></li>
<li><a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a></li>
<li><a href="#controls_android.control.aeRegions">android.<wbr/>control.<wbr/>ae<wbr/>Regions</a></li>
<li><a href="#controls_android.control.afRegions">android.<wbr/>control.<wbr/>af<wbr/>Regions</a></li>
<li><a href="#controls_android.control.awbRegions">android.<wbr/>control.<wbr/>awb<wbr/>Regions</a></li>
<li><a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a></li>
<li><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a></li>
</ul>
<p>Outside of android.<wbr/>control.<wbr/>*,<wbr/> the following controls will work:</p>
<ul>
<li><a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> (automatic flash for still capture will not work since aeMode is ON)</li>
<li><a href="#controls_android.lens.opticalStabilizationMode">android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode</a> (if it is supported)</li>
<li><a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a></li>
<li><a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a></li>
</ul>
<p>For high speed recording use case,<wbr/> the actual maximum supported frame rate may
be lower than what camera can output,<wbr/> depending on the destination Surfaces for
the image data.<wbr/> For example,<wbr/> if the destination surface is from video encoder,<wbr/>
the application need check if the video encoder is capable of supporting the
high frame rate for a given video size,<wbr/> or it will end up with lower recording
frame rate.<wbr/> If the destination surface is from preview window,<wbr/> the preview frame
rate will be bounded by the screen refresh rate.<wbr/></p>
<p>The camera device will only support up to 2 output high speed streams
(processed non-stalling format defined in <a href="#static_android.request.maxNumOutputStreams">android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Streams</a>)
in this mode.<wbr/> This control will be effective only if all of below conditions are true:</p>
<ul>
<li>The application created no more than maxNumHighSpeedStreams processed non-stalling
format output streams,<wbr/> where maxNumHighSpeedStreams is calculated as
min(2,<wbr/> <a href="#static_android.request.maxNumOutputStreams">android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Streams</a>[Processed (but not-stalling)]).<wbr/></li>
<li>The stream sizes are selected from the sizes reported by
<a href="#static_android.control.availableHighSpeedVideoConfigurations">android.<wbr/>control.<wbr/>available<wbr/>High<wbr/>Speed<wbr/>Video<wbr/>Configurations</a>.<wbr/></li>
<li>No processed non-stalling or raw streams are configured.<wbr/></li>
</ul>
<p>When above conditions are NOT satistied,<wbr/> the controls of this mode and
<a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a> will be ignored by the camera device,<wbr/>
the camera device will fall back to <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> <code>==</code> AUTO,<wbr/>
and the returned capture result metadata will give the fps range choosen
by the camera device.<wbr/></p>
<p>Switching into or out of this mode may trigger some camera ISP/<wbr/>sensor
reconfigurations,<wbr/> which may introduce extra latency.<wbr/> It is recommended that
the application avoids unnecessary scene mode switch as much as possible.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">HDR (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Turn on a device-specific high dynamic range (HDR) mode.<wbr/></p>
<p>In this scene mode,<wbr/> the camera device captures images
that keep a larger range of scene illumination levels
visible in the final image.<wbr/> For example,<wbr/> when taking a
picture of a object in front of a bright window,<wbr/> both
the object and the scene through the window may be
visible when using HDR mode,<wbr/> while in normal AUTO mode,<wbr/>
one or the other may be poorly exposed.<wbr/> As a tradeoff,<wbr/>
HDR mode generally takes much longer to capture a single
image,<wbr/> has no user control,<wbr/> and may have other artifacts
depending on the HDR method used.<wbr/></p>
<p>Therefore,<wbr/> HDR captures operate at a much slower rate
than regular captures.<wbr/></p>
<p>In this mode,<wbr/> on LIMITED or FULL devices,<wbr/> when a request
is made with a <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> of
STILL_<wbr/>CAPTURE,<wbr/> the camera device will capture an image
using a high dynamic range capture technique.<wbr/>  On LEGACY
devices,<wbr/> captures that target a JPEG-format output will
be captured with HDR,<wbr/> and the capture intent is not
relevant.<wbr/></p>
<p>The HDR capture may involve the device capturing a burst
of images internally and combining them into one,<wbr/> or it
may involve the device using specialized high dynamic
range capture hardware.<wbr/> In all cases,<wbr/> a single image is
produced in response to a capture request submitted
while in HDR mode.<wbr/></p>
<p>Since substantial post-processing is generally needed to
produce an HDR image,<wbr/> only YUV,<wbr/> PRIVATE,<wbr/> and JPEG
outputs are supported for LIMITED/<wbr/>FULL device HDR
captures,<wbr/> and only JPEG outputs are supported for LEGACY
HDR captures.<wbr/> Using a RAW output for HDR capture is not
supported.<wbr/></p>
<p>Some devices may also support always-on HDR,<wbr/> which
applies HDR processing at full frame rate.<wbr/>  For these
devices,<wbr/> intents other than STILL_<wbr/>CAPTURE will also
produce an HDR output with no frame rate impact compared
to normal operation,<wbr/> though the quality may be lower
than for STILL_<wbr/>CAPTURE intents.<wbr/></p>
<p>If SCENE_<wbr/>MODE_<wbr/>HDR is used with unsupported output types
or capture intents,<wbr/> the images captured will be as if
the SCENE_<wbr/>MODE was not enabled at all.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FACE_PRIORITY_LOW_LIGHT (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_hidden">[hidden]</span>
                    <span class="entry_type_enum_notes"><p>Same as FACE_<wbr/>PRIORITY scene mode,<wbr/> except that the camera
device will choose higher sensitivity values (<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>)
under low light conditions.<wbr/></p>
<p>The camera device may be tuned to expose the images in a reduced
sensitivity range to produce the best quality images.<wbr/> For example,<wbr/>
if the <a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a> gives range of [100,<wbr/> 1600],<wbr/>
the camera device auto-exposure routine tuning process may limit the actual
exposure sensitivity range to [100,<wbr/> 1200] to ensure that the noise level isn't
exessive in order to preserve the image quality.<wbr/> Under this situation,<wbr/> the image under
low light may be under-exposed when the sensor max exposure time (bounded by the
<a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a> when <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of the
ON_<wbr/>* modes) and effective max sensitivity are reached.<wbr/> This scene mode allows the
camera device auto-exposure routine to increase the sensitivity up to the max
sensitivity specified by <a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a> when the scene is too
dark and the max exposure time is reached.<wbr/> The captured images may be noisier
compared with the images captured in normal FACE_<wbr/>PRIORITY mode; therefore,<wbr/> it is
recommended that the application only use this scene mode when it is capable of
reducing the noise level of the captured images.<wbr/></p>
<p>Unlike the other scene modes,<wbr/> <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>
remain active when FACE_<wbr/>PRIORITY_<wbr/>LOW_<wbr/>LIGHT is set.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">DEVICE_CUSTOM_START (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_hidden">[hidden]</span>
                    <span class="entry_type_enum_value">100</span>
                    <span class="entry_type_enum_notes"><p>Scene mode values within the range of
<code>[DEVICE_<wbr/>CUSTOM_<wbr/>START,<wbr/> DEVICE_<wbr/>CUSTOM_<wbr/>END]</code> are reserved for device specific
customized scene modes.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">DEVICE_CUSTOM_END (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_hidden">[hidden]</span>
                    <span class="entry_type_enum_value">127</span>
                    <span class="entry_type_enum_notes"><p>Scene mode values within the range of
<code>[DEVICE_<wbr/>CUSTOM_<wbr/>START,<wbr/> DEVICE_<wbr/>CUSTOM_<wbr/>END]</code> are reserved for device specific
customized scene modes.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>Control for which scene mode is currently active.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p><a href="#static_android.control.availableSceneModes">android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Scene modes are custom camera modes optimized for a certain set of conditions and
capture settings.<wbr/></p>
<p>This is the mode that that is active when
<code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == USE_<wbr/>SCENE_<wbr/>MODE</code>.<wbr/> Aside from FACE_<wbr/>PRIORITY,<wbr/> these modes will
disable <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/> <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>
while in use.<wbr/></p>
<p>The interpretation and implementation of these scene modes is left
to the implementor of the camera device.<wbr/> Their behavior will not be
consistent across all devices,<wbr/> and any given device may only implement
a subset of these modes.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>HAL implementations that include scene modes are expected to provide
the per-scene settings to use for <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> in
<a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
<p>For HIGH_<wbr/>SPEED_<wbr/>VIDEO mode,<wbr/> if it is included in <a href="#static_android.control.availableSceneModes">android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes</a>,<wbr/> the
HAL must list supported video size and fps range in
<a href="#static_android.control.availableHighSpeedVideoConfigurations">android.<wbr/>control.<wbr/>available<wbr/>High<wbr/>Speed<wbr/>Video<wbr/>Configurations</a>.<wbr/> For a given size,<wbr/> e.<wbr/>g.<wbr/>  1280x720,<wbr/>
if the HAL has two different sensor configurations for normal streaming mode and high
speed streaming,<wbr/> when this scene mode is set/<wbr/>reset in a sequence of capture requests,<wbr/> the
HAL may have to switch between different sensor modes.<wbr/>  This mode is deprecated in legacy
HAL3.<wbr/>3,<wbr/> to support high speed video recording,<wbr/> please implement
<a href="#static_android.control.availableHighSpeedVideoConfigurations">android.<wbr/>control.<wbr/>available<wbr/>High<wbr/>Speed<wbr/>Video<wbr/>Configurations</a> and CONSTRAINED_<wbr/>HIGH_<wbr/>SPEED_<wbr/>VIDEO
capbility defined in <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.control.videoStabilizationMode">
            <td class="entry_name
             " rowspan="3">
              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]</span>


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Video stabilization is disabled.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Video stabilization is enabled.<wbr/></p></span>
                  </li>
                </ul>

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

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

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Video stabilization automatically warps images from
the camera in order to stabilize motion between consecutive frames.<wbr/></p>
<p>If enabled,<wbr/> video stabilization can modify the
<a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a> to keep the video stream stabilized.<wbr/></p>
<p>Switching between different video stabilization modes may take several
frames to initialize,<wbr/> the camera device will report the current mode
in capture result metadata.<wbr/> For example,<wbr/> When "ON" mode is requested,<wbr/>
the video stabilization modes in the first several capture results may
still be "OFF",<wbr/> and it will become "ON" when the initialization is
done.<wbr/></p>
<p>In addition,<wbr/> not all recording sizes or frame rates may be supported for
stabilization by a device that reports stabilization support.<wbr/> It is guaranteed
that an output targeting a MediaRecorder or MediaCodec will be stabilized if
the recording resolution is less than or equal to 1920 x 1080 (width less than
or equal to 1920,<wbr/> height less than or equal to 1080),<wbr/> and the recording
frame rate is less than or equal to 30fps.<wbr/>  At other sizes,<wbr/> the CaptureResult
<a href="#controls_android.control.videoStabilizationMode">android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode</a> field will return
OFF if the recording output is not stabilized,<wbr/> or if there are no output
Surface types that can be stabilized.<wbr/></p>
<p>If a camera device supports both this mode and OIS
(<a href="#controls_android.lens.opticalStabilizationMode">android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode</a>),<wbr/> turning both modes on may
produce undesirable interaction,<wbr/> so it is recommended not to enable
both at the same time.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.control.postRawSensitivityBoost">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>control.<wbr/>post<wbr/>Raw<wbr/>Sensitivity<wbr/>Boost
            </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">
              <p>The amount of additional sensitivity boost applied to output images
after RAW sensor data is captured.<wbr/></p>
            </td>

            <td class="entry_units">
              ISO arithmetic units,<wbr/> the same as android.<wbr/>sensor.<wbr/>sensitivity
            </td>

            <td class="entry_range">
              <p><a href="#static_android.control.postRawSensitivityBoostRange">android.<wbr/>control.<wbr/>post<wbr/>Raw<wbr/>Sensitivity<wbr/>Boost<wbr/>Range</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Some camera devices support additional digital sensitivity boosting in the
camera processing pipeline after sensor RAW image is captured.<wbr/>
Such a boost will be applied to YUV/<wbr/>JPEG format output images but will not
have effect on RAW output formats like RAW_<wbr/>SENSOR,<wbr/> RAW10,<wbr/> RAW12 or RAW_<wbr/>OPAQUE.<wbr/></p>
<p>This key will be <code>null</code> for devices that do not support any RAW format
outputs.<wbr/> For devices that do support RAW format outputs,<wbr/> this key will always
present,<wbr/> and if a device does not support post RAW sensitivity boost,<wbr/> it will
list <code>100</code> in this key.<wbr/></p>
<p>If the camera device cannot apply the exact boost requested,<wbr/> it will reduce the
boost to the nearest supported value.<wbr/>
The final boost value used will be available in the output capture result.<wbr/></p>
<p>For devices that support post RAW sensitivity boost,<wbr/> the YUV/<wbr/>JPEG output images
of such device will have the total sensitivity of
<code><a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> * <a href="#controls_android.control.postRawSensitivityBoost">android.<wbr/>control.<wbr/>post<wbr/>Raw<wbr/>Sensitivity<wbr/>Boost</a> /<wbr/> 100</code>
The sensitivity of RAW format images will always be <code><a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a></code></p>
<p>This control is only effective if <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> or <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is set to
OFF; otherwise the auto-exposure algorithm will override this value.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.control.enableZsl">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>control.<wbr/>enable<wbr/>Zsl
            </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">FALSE (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Requests with <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> == STILL_<wbr/>CAPTURE must be captured
after previous requests.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">TRUE (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Requests with <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> == STILL_<wbr/>CAPTURE may or may not be
captured before previous requests.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>Allow camera device to enable zero-shutter-lag mode for requests with
<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> == STILL_<wbr/>CAPTURE.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>If enableZsl is <code>true</code>,<wbr/> the camera device may enable zero-shutter-lag mode for requests with
STILL_<wbr/>CAPTURE capture intent.<wbr/> The camera device may use images captured in the past to
produce output images for a zero-shutter-lag request.<wbr/> The result metadata including the
<a href="#dynamic_android.sensor.timestamp">android.<wbr/>sensor.<wbr/>timestamp</a> reflects the source frames used to produce output images.<wbr/>
Therefore,<wbr/> the contents of the output images and the result metadata may be out of order
compared to previous regular requests.<wbr/> enableZsl does not affect requests with other
capture intents.<wbr/></p>
<p>For example,<wbr/> when requests are submitted in the following order:
  Request A: enableZsl is ON,<wbr/> <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> is PREVIEW
  Request B: enableZsl is ON,<wbr/> <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> is STILL_<wbr/>CAPTURE</p>
<p>The output images for request B may have contents captured before the output images for
request A,<wbr/> and the result metadata for request B may be older than the result metadata for
request A.<wbr/></p>
<p>Note that when enableZsl is <code>true</code>,<wbr/> it is not guaranteed to get output images captured in
the past for requests with STILL_<wbr/>CAPTURE capture intent.<wbr/></p>
<p>For applications targeting SDK versions O and newer,<wbr/> the value of enableZsl in
TEMPLATE_<wbr/>STILL_<wbr/>CAPTURE template may be <code>true</code>.<wbr/> The value in other templates is always
<code>false</code> if present.<wbr/></p>
<p>For applications targeting SDK versions older than O,<wbr/> the value of enableZsl in all
capture templates is always <code>false</code> if present.<wbr/></p>
<p>For application-operated ZSL,<wbr/> use CAMERA3_<wbr/>TEMPLATE_<wbr/>ZERO_<wbr/>SHUTTER_<wbr/>LAG template.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>It is valid for HAL to produce regular output images for requests with STILL_<wbr/>CAPTURE
capture intent.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.control.afSceneChange">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>control.<wbr/>af<wbr/>Scene<wbr/>Change
            </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">NOT_DETECTED (v3.3)</span>
                    <span class="entry_type_enum_notes"><p>Scene change is not detected within the AF region(s).<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">DETECTED (v3.3)</span>
                    <span class="entry_type_enum_notes"><p>Scene change is detected within the AF region(s).<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>Whether a significant scene change is detected within the currently-set AF
region(s).<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>3</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>When the camera focus routine detects a change in the scene it is looking at,<wbr/>
such as a large shift in camera viewpoint,<wbr/> significant motion in the scene,<wbr/> or a
significant illumination change,<wbr/> this value will be set to DETECTED for a single capture
result.<wbr/> Otherwise the value will be NOT_<wbr/>DETECTED.<wbr/> The threshold for detection is similar
to what would trigger a new passive focus scan to begin in CONTINUOUS autofocus modes.<wbr/></p>
<p>This key will be available if the camera device advertises this key via <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#getAvailableCaptureResultKeys">CameraCharacteristics#getAvailableCaptureResultKeys</a>.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="controls_android.demosaic.mode">
            <td class="entry_name
             " rowspan="1">
              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 (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Minimal or no slowdown of frame rate compared to
Bayer RAW output.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Improved processing quality but the frame rate might be slowed down
relative to raw output.<wbr/></p></span>
                  </li>
                </ul>

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

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

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_FUTURE">FUTURE</a></li>
              </ul>
            </td>

          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="controls_android.edge.mode">
            <td class="entry_name
             " rowspan="5">
              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>


              <span class="entry_type_hwlevel">[full] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>No edge enhancement is applied.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FAST (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Apply edge enhancement at a quality level that does not slow down frame rate
relative to sensor output.<wbr/> It may be the same as OFF if edge enhancement will
slow down frame rate relative to sensor.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Apply high-quality edge enhancement,<wbr/> at a cost of possibly reduced output frame rate.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ZERO_SHUTTER_LAG (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Edge enhancement is applied at different
levels for different output streams,<wbr/> based on resolution.<wbr/> Streams at maximum recording
resolution (see <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureSession">CameraDevice#createCaptureSession</a>)
or below have edge enhancement applied,<wbr/> while higher-resolution streams have no edge
enhancement applied.<wbr/> The level of edge enhancement for low-resolution streams is tuned
so that frame rate is not impacted,<wbr/> and the quality is equal to or better than FAST
(since it is only applied to lower-resolution outputs,<wbr/> quality may improve from FAST).<wbr/></p>
<p>This mode is intended to be used by applications operating in a zero-shutter-lag mode
with YUV or PRIVATE reprocessing,<wbr/> where the application continuously captures
high-resolution intermediate buffers into a circular buffer,<wbr/> from which a final image is
produced via reprocessing when a user takes a picture.<wbr/>  For such a use case,<wbr/> the
high-resolution buffers must not have edge enhancement applied to maximize efficiency of
preview and to avoid double-applying enhancement when reprocessed,<wbr/> while low-resolution
buffers (used for recording or preview,<wbr/> generally) need edge enhancement applied for
reasonable preview quality.<wbr/></p>
<p>This mode is guaranteed to be supported by devices that support either the
YUV_<wbr/>REPROCESSING or PRIVATE_<wbr/>REPROCESSING capabilities
(<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> lists either of those capabilities) and it will
be the default mode for CAMERA3_<wbr/>TEMPLATE_<wbr/>ZERO_<wbr/>SHUTTER_<wbr/>LAG template.<wbr/></p></span>
                  </li>
                </ul>

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

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

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

            <td class="entry_range">
              <p><a href="#static_android.edge.availableEdgeModes">android.<wbr/>edge.<wbr/>available<wbr/>Edge<wbr/>Modes</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Edge enhancement improves sharpness and details in the captured image.<wbr/> OFF means
no enhancement will be applied by the camera device.<wbr/></p>
<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
camera device will use the highest-quality enhancement algorithms,<wbr/>
even if it slows down capture rate.<wbr/> FAST means the camera device will
not slow down capture rate when applying edge enhancement.<wbr/> FAST may be the same as OFF if
edge enhancement will slow down capture rate.<wbr/> Every output stream will have a similar
amount of enhancement applied.<wbr/></p>
<p>ZERO_<wbr/>SHUTTER_<wbr/>LAG is meant to be used by applications that maintain a continuous circular
buffer of high-resolution images during preview and reprocess image(s) from that buffer
into a final capture when triggered by the user.<wbr/> In this mode,<wbr/> the camera device applies
edge enhancement to low-resolution streams (below maximum recording resolution) to
maximize preview quality,<wbr/> but does not apply edge enhancement to high-resolution streams,<wbr/>
since those will be reprocessed later if necessary.<wbr/></p>
<p>For YUV_<wbr/>REPROCESSING,<wbr/> these FAST/<wbr/>HIGH_<wbr/>QUALITY modes both mean that the camera
device will apply FAST/<wbr/>HIGH_<wbr/>QUALITY YUV-domain edge enhancement,<wbr/> respectively.<wbr/>
The camera device may adjust its internal edge enhancement parameters for best
image quality based on the <a href="#controls_android.reprocess.effectiveExposureFactor">android.<wbr/>reprocess.<wbr/>effective<wbr/>Exposure<wbr/>Factor</a>,<wbr/> if it is set.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>For YUV_<wbr/>REPROCESSING The HAL can use <a href="#controls_android.reprocess.effectiveExposureFactor">android.<wbr/>reprocess.<wbr/>effective<wbr/>Exposure<wbr/>Factor</a> to
adjust the internal edge enhancement reduction parameters appropriately to get the best
quality images.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.edge.strength">
            <td class="entry_name
             " rowspan="1">
              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">
              <p>Control the amount of edge enhancement
applied to the images</p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_FUTURE">FUTURE</a></li>
              </ul>
            </td>

          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="static_android.edge.availableEdgeModes">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>edge.<wbr/>available<wbr/>Edge<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 as enumList]</span>


              <span class="entry_type_hwlevel">[full] </span>


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


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

            <td class="entry_description">
              <p>List of edge enhancement modes for <a href="#controls_android.edge.mode">android.<wbr/>edge.<wbr/>mode</a> that are supported by this camera
device.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>Any value listed in <a href="#controls_android.edge.mode">android.<wbr/>edge.<wbr/>mode</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Full-capability camera devices must always support OFF; camera devices that support
YUV_<wbr/>REPROCESSING or PRIVATE_<wbr/>REPROCESSING will list ZERO_<wbr/>SHUTTER_<wbr/>LAG; all devices will
list FAST.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>HAL must support both FAST and HIGH_<wbr/>QUALITY if edge enhancement control is available
on the camera device,<wbr/> but the underlying implementation can be the same for both modes.<wbr/>
That is,<wbr/> if the highest quality implementation on the camera device does not slow down
capture rate,<wbr/> then FAST and HIGH_<wbr/>QUALITY will generate the same output.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="dynamic_android.edge.mode">
            <td class="entry_name
             " rowspan="5">
              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>


              <span class="entry_type_hwlevel">[full] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>No edge enhancement is applied.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FAST (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Apply edge enhancement at a quality level that does not slow down frame rate
relative to sensor output.<wbr/> It may be the same as OFF if edge enhancement will
slow down frame rate relative to sensor.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Apply high-quality edge enhancement,<wbr/> at a cost of possibly reduced output frame rate.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ZERO_SHUTTER_LAG (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Edge enhancement is applied at different
levels for different output streams,<wbr/> based on resolution.<wbr/> Streams at maximum recording
resolution (see <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureSession">CameraDevice#createCaptureSession</a>)
or below have edge enhancement applied,<wbr/> while higher-resolution streams have no edge
enhancement applied.<wbr/> The level of edge enhancement for low-resolution streams is tuned
so that frame rate is not impacted,<wbr/> and the quality is equal to or better than FAST
(since it is only applied to lower-resolution outputs,<wbr/> quality may improve from FAST).<wbr/></p>
<p>This mode is intended to be used by applications operating in a zero-shutter-lag mode
with YUV or PRIVATE reprocessing,<wbr/> where the application continuously captures
high-resolution intermediate buffers into a circular buffer,<wbr/> from which a final image is
produced via reprocessing when a user takes a picture.<wbr/>  For such a use case,<wbr/> the
high-resolution buffers must not have edge enhancement applied to maximize efficiency of
preview and to avoid double-applying enhancement when reprocessed,<wbr/> while low-resolution
buffers (used for recording or preview,<wbr/> generally) need edge enhancement applied for
reasonable preview quality.<wbr/></p>
<p>This mode is guaranteed to be supported by devices that support either the
YUV_<wbr/>REPROCESSING or PRIVATE_<wbr/>REPROCESSING capabilities
(<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> lists either of those capabilities) and it will
be the default mode for CAMERA3_<wbr/>TEMPLATE_<wbr/>ZERO_<wbr/>SHUTTER_<wbr/>LAG template.<wbr/></p></span>
                  </li>
                </ul>

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

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

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

            <td class="entry_range">
              <p><a href="#static_android.edge.availableEdgeModes">android.<wbr/>edge.<wbr/>available<wbr/>Edge<wbr/>Modes</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Edge enhancement improves sharpness and details in the captured image.<wbr/> OFF means
no enhancement will be applied by the camera device.<wbr/></p>
<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
camera device will use the highest-quality enhancement algorithms,<wbr/>
even if it slows down capture rate.<wbr/> FAST means the camera device will
not slow down capture rate when applying edge enhancement.<wbr/> FAST may be the same as OFF if
edge enhancement will slow down capture rate.<wbr/> Every output stream will have a similar
amount of enhancement applied.<wbr/></p>
<p>ZERO_<wbr/>SHUTTER_<wbr/>LAG is meant to be used by applications that maintain a continuous circular
buffer of high-resolution images during preview and reprocess image(s) from that buffer
into a final capture when triggered by the user.<wbr/> In this mode,<wbr/> the camera device applies
edge enhancement to low-resolution streams (below maximum recording resolution) to
maximize preview quality,<wbr/> but does not apply edge enhancement to high-resolution streams,<wbr/>
since those will be reprocessed later if necessary.<wbr/></p>
<p>For YUV_<wbr/>REPROCESSING,<wbr/> these FAST/<wbr/>HIGH_<wbr/>QUALITY modes both mean that the camera
device will apply FAST/<wbr/>HIGH_<wbr/>QUALITY YUV-domain edge enhancement,<wbr/> respectively.<wbr/>
The camera device may adjust its internal edge enhancement parameters for best
image quality based on the <a href="#controls_android.reprocess.effectiveExposureFactor">android.<wbr/>reprocess.<wbr/>effective<wbr/>Exposure<wbr/>Factor</a>,<wbr/> if it is set.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>For YUV_<wbr/>REPROCESSING The HAL can use <a href="#controls_android.reprocess.effectiveExposureFactor">android.<wbr/>reprocess.<wbr/>effective<wbr/>Exposure<wbr/>Factor</a> to
adjust the internal edge enhancement reduction parameters appropriately to get the best
quality images.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="controls_android.flash.firingPower">
            <td class="entry_name
             " rowspan="3">
              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">
              <p>Power for flash firing/<wbr/>torch</p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_FUTURE">FUTURE</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Power for snapshot may use a different scale than
for torch mode.<wbr/> Only one entry for torch mode will be
used</p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.flash.firingTime">
            <td class="entry_name
             " rowspan="3">
              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">
              <p>Firing time of flash relative to start of
exposure</p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_FUTURE">FUTURE</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Clamped to (0,<wbr/> exposure time - flash
duration).<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.flash.mode">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Do not fire the flash for this capture.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">SINGLE (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
for this capture.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">TORCH (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>The desired mode for for the camera device's flash control.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This control is only effective when flash unit is available
(<code><a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> == true</code>).<wbr/></p>
<p>When this control is used,<wbr/> the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> must be set to ON or OFF.<wbr/>
Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
<p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
<p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
control should be used along with auto-exposure (AE) precapture metering sequence
(<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>),<wbr/> otherwise,<wbr/> the image may be incorrectly exposed.<wbr/></p>
<p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
for use cases such as preview,<wbr/> auto-focus assist,<wbr/> still capture,<wbr/> or video recording.<wbr/></p>
<p>The flash status will be reported by <a href="#dynamic_android.flash.state">android.<wbr/>flash.<wbr/>state</a> in the capture result metadata.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        
                
            

                
          <tr class="entry" id="static_android.flash.info.available">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>flash.<wbr/>info.<wbr/>available
            </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>


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">FALSE (v3.2)</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">TRUE (v3.2)</span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>Whether this camera device has a
flash unit.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Will be <code>false</code> if no flash is available.<wbr/></p>
<p>If there is no flash unit,<wbr/> none of the flash controls do
anything.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.flash.info.chargeDuration">
            <td class="entry_name
             " rowspan="3">
              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">
              <p>Time taken before flash can fire
again</p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_FUTURE">FUTURE</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>1 second too long/<wbr/>too short for recharge? Should
this be power-dependent?</p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
        
        

                
          <tr class="entry" id="static_android.flash.colorTemperature">
            <td class="entry_name
             " rowspan="1">
              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">
              <p>The x,<wbr/>y whitepoint of the
flash</p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_FUTURE">FUTURE</a></li>
              </ul>
            </td>

          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.flash.maxEnergy">
            <td class="entry_name
             " rowspan="1">
              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">
              <p>Max energy output of the flash for a full
power single flash</p>
            </td>

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

            <td class="entry_range">
              <p>&gt;= 0</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_FUTURE">FUTURE</a></li>
              </ul>
            </td>

          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="dynamic_android.flash.firingPower">
            <td class="entry_name
             " rowspan="3">
              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">
              <p>Power for flash firing/<wbr/>torch</p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_FUTURE">FUTURE</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Power for snapshot may use a different scale than
for torch mode.<wbr/> Only one entry for torch mode will be
used</p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.flash.firingTime">
            <td class="entry_name
             " rowspan="3">
              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">
              <p>Firing time of flash relative to start of
exposure</p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_FUTURE">FUTURE</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Clamped to (0,<wbr/> exposure time - flash
duration).<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.flash.mode">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Do not fire the flash for this capture.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">SINGLE (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
for this capture.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">TORCH (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>The desired mode for for the camera device's flash control.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This control is only effective when flash unit is available
(<code><a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> == true</code>).<wbr/></p>
<p>When this control is used,<wbr/> the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> must be set to ON or OFF.<wbr/>
Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
<p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
<p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
control should be used along with auto-exposure (AE) precapture metering sequence
(<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>),<wbr/> otherwise,<wbr/> the image may be incorrectly exposed.<wbr/></p>
<p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
for use cases such as preview,<wbr/> auto-focus assist,<wbr/> still capture,<wbr/> or video recording.<wbr/></p>
<p>The flash status will be reported by <a href="#dynamic_android.flash.state">android.<wbr/>flash.<wbr/>state</a> in the capture result metadata.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.flash.state">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[limited] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">UNAVAILABLE (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>No flash on camera.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">CHARGING (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Flash is charging and cannot be fired.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">READY (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Flash is ready to fire.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FIRED (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Flash fired for this capture.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">PARTIAL (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Flash partially illuminated this frame.<wbr/></p>
<p>This is usually due to the next or previous frame having
the flash fire,<wbr/> and the flash spilling into this capture
due to hardware limitations.<wbr/></p></span>
                  </li>
                </ul>

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

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

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>When the camera device doesn't have flash unit
(i.<wbr/>e.<wbr/> <code><a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> == false</code>),<wbr/> this state will always be UNAVAILABLE.<wbr/>
Other states indicate the current flash status.<wbr/></p>
<p>In certain conditions,<wbr/> this will be available on LEGACY devices:</p>
<ul>
<li>Flash-less cameras always return UNAVAILABLE.<wbr/></li>
<li>Using <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> <code>==</code> ON_<wbr/>ALWAYS_<wbr/>FLASH
   will always return FIRED.<wbr/></li>
<li>Using <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> <code>==</code> TORCH
   will always return FIRED.<wbr/></li>
</ul>
<p>In all other conditions the state will not be available on
LEGACY devices (i.<wbr/>e.<wbr/> it will be <code>null</code>).<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="controls_android.hotPixel.mode">
            <td class="entry_name
             " rowspan="3">
              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"> [public]</span>





                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>No hot pixel correction is applied.<wbr/></p>
<p>The frame rate must not be reduced relative to sensor raw output
for this option.<wbr/></p>
<p>The hotpixel map may be returned in <a href="#dynamic_android.statistics.hotPixelMap">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map</a>.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FAST (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Hot pixel correction is applied,<wbr/> without reducing frame
rate relative to sensor raw output.<wbr/></p>
<p>The hotpixel map may be returned in <a href="#dynamic_android.statistics.hotPixelMap">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map</a>.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>High-quality hot pixel correction is applied,<wbr/> at a cost
of possibly reduced frame rate relative to sensor raw output.<wbr/></p>
<p>The hotpixel map may be returned in <a href="#dynamic_android.statistics.hotPixelMap">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map</a>.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>Operational mode for hot pixel correction.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p><a href="#static_android.hotPixel.availableHotPixelModes">android.<wbr/>hot<wbr/>Pixel.<wbr/>available<wbr/>Hot<wbr/>Pixel<wbr/>Modes</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Hotpixel correction interpolates out,<wbr/> or otherwise removes,<wbr/> pixels
that do not accurately measure the incoming light (i.<wbr/>e.<wbr/> pixels that
are stuck at an arbitrary value or are oversensitive).<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="static_android.hotPixel.availableHotPixelModes">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>hot<wbr/>Pixel.<wbr/>available<wbr/>Hot<wbr/>Pixel<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 as enumList]</span>




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


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

            <td class="entry_description">
              <p>List of hot pixel correction modes for <a href="#controls_android.hotPixel.mode">android.<wbr/>hot<wbr/>Pixel.<wbr/>mode</a> that are supported by this
camera device.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>Any value listed in <a href="#controls_android.hotPixel.mode">android.<wbr/>hot<wbr/>Pixel.<wbr/>mode</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>FULL mode camera devices will always support FAST.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>To avoid performance issues,<wbr/> there will be significantly fewer hot
pixels than actual pixels on the camera sensor.<wbr/>
HAL must support both FAST and HIGH_<wbr/>QUALITY if hot pixel correction control is available
on the camera device,<wbr/> but the underlying implementation can be the same for both modes.<wbr/>
That is,<wbr/> if the highest quality implementation on the camera device does not slow down
capture rate,<wbr/> then FAST and HIGH_<wbr/>QUALITY will generate the same output.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="dynamic_android.hotPixel.mode">
            <td class="entry_name
             " rowspan="3">
              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"> [public]</span>





                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>No hot pixel correction is applied.<wbr/></p>
<p>The frame rate must not be reduced relative to sensor raw output
for this option.<wbr/></p>
<p>The hotpixel map may be returned in <a href="#dynamic_android.statistics.hotPixelMap">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map</a>.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FAST (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Hot pixel correction is applied,<wbr/> without reducing frame
rate relative to sensor raw output.<wbr/></p>
<p>The hotpixel map may be returned in <a href="#dynamic_android.statistics.hotPixelMap">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map</a>.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>High-quality hot pixel correction is applied,<wbr/> at a cost
of possibly reduced frame rate relative to sensor raw output.<wbr/></p>
<p>The hotpixel map may be returned in <a href="#dynamic_android.statistics.hotPixelMap">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map</a>.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>Operational mode for hot pixel correction.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p><a href="#static_android.hotPixel.availableHotPixelModes">android.<wbr/>hot<wbr/>Pixel.<wbr/>available<wbr/>Hot<wbr/>Pixel<wbr/>Modes</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Hotpixel correction interpolates out,<wbr/> or otherwise removes,<wbr/> pixels
that do not accurately measure the incoming light (i.<wbr/>e.<wbr/> pixels that
are stuck at an arbitrary value or are oversensitive).<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="controls_android.jpeg.gpsLocation">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>jpeg.<wbr/>gps<wbr/>Location
            </td>
            <td class="entry_type">
                <span class="entry_type_name">byte</span>

              <span class="entry_type_visibility"> [java_public as location]</span>

              <span class="entry_type_synthetic">[synthetic] </span>

              <span class="entry_type_hwlevel">[legacy] </span>




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

            <td class="entry_description">
              <p>A location object to use when generating image GPS metadata.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Setting a location object in a request will include the GPS coordinates of the location
into any JPEG images captured based on the request.<wbr/> These coordinates can then be
viewed by anyone who receives the JPEG image.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.jpeg.gpsCoordinates">
            <td class="entry_name
             " rowspan="1">
              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"> [ndk_public]</span>


              <span class="entry_type_hwlevel">[legacy] </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">
              <p>GPS coordinates to include in output JPEG
EXIF.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.jpeg.gpsProcessingMethod">
            <td class="entry_name
             " rowspan="1">
              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"> [ndk_public as string]</span>


              <span class="entry_type_hwlevel">[legacy] </span>




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

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

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>


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

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


              <span class="entry_type_hwlevel">[legacy] </span>




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

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

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>


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

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


              <span class="entry_type_hwlevel">[legacy] </span>




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

            <td class="entry_description">
              <p>The orientation for a JPEG image.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The clockwise rotation angle in degrees,<wbr/> relative to the orientation
to the camera,<wbr/> that the JPEG picture needs to be rotated by,<wbr/> to be viewed
upright.<wbr/></p>
<p>Camera devices may either encode this value into the JPEG EXIF header,<wbr/> or
rotate the image data to match this orientation.<wbr/> When the image data is rotated,<wbr/>
the thumbnail data will also be rotated.<wbr/></p>
<p>Note that this orientation is relative to the orientation of the camera sensor,<wbr/> given
by <a href="#static_android.sensor.orientation">android.<wbr/>sensor.<wbr/>orientation</a>.<wbr/></p>
<p>To translate from the device orientation given by the Android sensor APIs for camera
sensors which are not EXTERNAL,<wbr/> the following sample code may be used:</p>
<pre><code>private int getJpegOrientation(CameraCharacteristics c,<wbr/> int deviceOrientation) {
    if (deviceOrientation == android.<wbr/>view.<wbr/>Orientation<wbr/>Event<wbr/>Listener.<wbr/>ORIENTATION_<wbr/>UNKNOWN) return 0;
    int sensorOrientation = c.<wbr/>get(Camera<wbr/>Characteristics.<wbr/>SENSOR_<wbr/>ORIENTATION);

    //<wbr/> Round device orientation to a multiple of 90
    deviceOrientation = (deviceOrientation + 45) /<wbr/> 90 * 90;

    //<wbr/> Reverse device orientation for front-facing cameras
    boolean facingFront = c.<wbr/>get(Camera<wbr/>Characteristics.<wbr/>LENS_<wbr/>FACING) == Camera<wbr/>Characteristics.<wbr/>LENS_<wbr/>FACING_<wbr/>FRONT;
    if (facingFront) deviceOrientation = -deviceOrientation;

    //<wbr/> Calculate desired JPEG orientation relative to camera orientation to make
    //<wbr/> the image upright relative to the device orientation
    int jpegOrientation = (sensorOrientation + deviceOrientation + 360) % 360;

    return jpegOrientation;
}
</code></pre>
<p>For EXTERNAL cameras the sensor orientation will always be set to 0 and the facing will
also be set to EXTERNAL.<wbr/> The above code is not relevant in such case.<wbr/></p>
            </td>
          </tr>


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

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


              <span class="entry_type_hwlevel">[legacy] </span>




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

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

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>85-95 is typical usage range.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.jpeg.thumbnailQuality">
            <td class="entry_name
             " rowspan="1">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>




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

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

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.jpeg.thumbnailSize">
            <td class="entry_name
             " rowspan="5">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>




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

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

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

            <td class="entry_range">
              <p><a href="#static_android.jpeg.availableThumbnailSizes">android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
but the captured JPEG will still be a valid image.<wbr/></p>
<p>For best results,<wbr/> when issuing a request for a JPEG image,<wbr/> the thumbnail size selected
should have the same aspect ratio as the main JPEG output.<wbr/></p>
<p>If the thumbnail image aspect ratio differs from the JPEG primary image aspect
ratio,<wbr/> the camera device creates the thumbnail by cropping it from the primary image.<wbr/>
For example,<wbr/> if the primary image has 4:3 aspect ratio,<wbr/> the thumbnail image has
16:9 aspect ratio,<wbr/> the primary image will be cropped vertically (letterbox) to
generate the thumbnail image.<wbr/> The thumbnail image will always have a smaller Field
Of View (FOV) than the primary image when aspect ratios differ.<wbr/></p>
<p>When an <a href="#controls_android.jpeg.orientation">android.<wbr/>jpeg.<wbr/>orientation</a> of non-zero degree is requested,<wbr/>
the camera device will handle thumbnail rotation in one of the following ways:</p>
<ul>
<li>Set the <a href="https://developer.android.com/reference/android/media/ExifInterface.html#TAG_ORIENTATION">EXIF orientation flag</a>
  and keep jpeg and thumbnail image data unrotated.<wbr/></li>
<li>Rotate the jpeg and thumbnail image data and not set
  <a href="https://developer.android.com/reference/android/media/ExifInterface.html#TAG_ORIENTATION">EXIF orientation flag</a>.<wbr/> In this
  case,<wbr/> LIMITED or FULL hardware level devices will report rotated thumnail size in
  capture result,<wbr/> so the width and height will be interchanged if 90 or 270 degree
  orientation is requested.<wbr/> LEGACY device will always report unrotated thumbnail
  size.<wbr/></li>
</ul>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The HAL must not squeeze or stretch the downscaled primary image to generate thumbnail.<wbr/>
The cropping must be done on the primary jpeg image rather than the sensor active array.<wbr/>
The stream cropping rule specified by "S5.<wbr/> Cropping" in camera3.<wbr/>h doesn't apply to the
thumbnail image cropping.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="static_android.jpeg.availableThumbnailSizes">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>




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

            <td class="entry_description">
              <p>List of JPEG thumbnail sizes for <a href="#controls_android.jpeg.thumbnailSize">android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size</a> supported by this
camera device.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This list will include at least one non-zero resolution,<wbr/> plus <code>(0,<wbr/>0)</code> for indicating no
thumbnail should be generated.<wbr/></p>
<p>Below condiditions will be satisfied for this size list:</p>
<ul>
<li>The sizes will be sorted by increasing pixel area (width x height).<wbr/>
If several resolutions have the same area,<wbr/> they will be sorted by increasing width.<wbr/></li>
<li>The aspect ratio of the largest thumbnail size will be same as the
aspect ratio of largest JPEG output size in <a href="#static_android.scaler.availableStreamConfigurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stream<wbr/>Configurations</a>.<wbr/>
The largest size is defined as the size that has the largest pixel area
in a given size list.<wbr/></li>
<li>Each output JPEG size in <a href="#static_android.scaler.availableStreamConfigurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stream<wbr/>Configurations</a> will have at least
one corresponding size that has the same aspect ratio in availableThumbnailSizes,<wbr/>
and vice versa.<wbr/></li>
<li>All non-<code>(0,<wbr/> 0)</code> sizes will have non-zero widths and heights.<wbr/></li>
</ul>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.jpeg.maxSize">
            <td class="entry_name
             " rowspan="3">
              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">
              <p>Maximum size in bytes for the compressed
JPEG buffer</p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This is used for sizing the gralloc buffers for
JPEG</p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="dynamic_android.jpeg.gpsLocation">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>jpeg.<wbr/>gps<wbr/>Location
            </td>
            <td class="entry_type">
                <span class="entry_type_name">byte</span>

              <span class="entry_type_visibility"> [java_public as location]</span>

              <span class="entry_type_synthetic">[synthetic] </span>

              <span class="entry_type_hwlevel">[legacy] </span>




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

            <td class="entry_description">
              <p>A location object to use when generating image GPS metadata.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Setting a location object in a request will include the GPS coordinates of the location
into any JPEG images captured based on the request.<wbr/> These coordinates can then be
viewed by anyone who receives the JPEG image.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.jpeg.gpsCoordinates">
            <td class="entry_name
             " rowspan="1">
              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"> [ndk_public]</span>


              <span class="entry_type_hwlevel">[legacy] </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">
              <p>GPS coordinates to include in output JPEG
EXIF.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.jpeg.gpsProcessingMethod">
            <td class="entry_name
             " rowspan="1">
              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"> [ndk_public as string]</span>


              <span class="entry_type_hwlevel">[legacy] </span>




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

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

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>


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

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


              <span class="entry_type_hwlevel">[legacy] </span>




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

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

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>


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

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


              <span class="entry_type_hwlevel">[legacy] </span>




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

            <td class="entry_description">
              <p>The orientation for a JPEG image.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The clockwise rotation angle in degrees,<wbr/> relative to the orientation
to the camera,<wbr/> that the JPEG picture needs to be rotated by,<wbr/> to be viewed
upright.<wbr/></p>
<p>Camera devices may either encode this value into the JPEG EXIF header,<wbr/> or
rotate the image data to match this orientation.<wbr/> When the image data is rotated,<wbr/>
the thumbnail data will also be rotated.<wbr/></p>
<p>Note that this orientation is relative to the orientation of the camera sensor,<wbr/> given
by <a href="#static_android.sensor.orientation">android.<wbr/>sensor.<wbr/>orientation</a>.<wbr/></p>
<p>To translate from the device orientation given by the Android sensor APIs for camera
sensors which are not EXTERNAL,<wbr/> the following sample code may be used:</p>
<pre><code>private int getJpegOrientation(CameraCharacteristics c,<wbr/> int deviceOrientation) {
    if (deviceOrientation == android.<wbr/>view.<wbr/>Orientation<wbr/>Event<wbr/>Listener.<wbr/>ORIENTATION_<wbr/>UNKNOWN) return 0;
    int sensorOrientation = c.<wbr/>get(Camera<wbr/>Characteristics.<wbr/>SENSOR_<wbr/>ORIENTATION);

    //<wbr/> Round device orientation to a multiple of 90
    deviceOrientation = (deviceOrientation + 45) /<wbr/> 90 * 90;

    //<wbr/> Reverse device orientation for front-facing cameras
    boolean facingFront = c.<wbr/>get(Camera<wbr/>Characteristics.<wbr/>LENS_<wbr/>FACING) == Camera<wbr/>Characteristics.<wbr/>LENS_<wbr/>FACING_<wbr/>FRONT;
    if (facingFront) deviceOrientation = -deviceOrientation;

    //<wbr/> Calculate desired JPEG orientation relative to camera orientation to make
    //<wbr/> the image upright relative to the device orientation
    int jpegOrientation = (sensorOrientation + deviceOrientation + 360) % 360;

    return jpegOrientation;
}
</code></pre>
<p>For EXTERNAL cameras the sensor orientation will always be set to 0 and the facing will
also be set to EXTERNAL.<wbr/> The above code is not relevant in such case.<wbr/></p>
            </td>
          </tr>


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

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


              <span class="entry_type_hwlevel">[legacy] </span>




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

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

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>85-95 is typical usage range.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.jpeg.size">
            <td class="entry_name
             " rowspan="3">
              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">
              <p>The size of the compressed JPEG image,<wbr/> in
bytes</p>
            </td>

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

            <td class="entry_range">
              <p>&gt;= 0</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_FUTURE">FUTURE</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>If no JPEG output is produced for the request,<wbr/>
this must be 0.<wbr/></p>
<p>Otherwise,<wbr/> this describes the real size of the compressed
JPEG image placed in the output stream.<wbr/>  More specifically,<wbr/>
if <a href="#static_android.jpeg.maxSize">android.<wbr/>jpeg.<wbr/>max<wbr/>Size</a> = 1000000,<wbr/> and a specific capture
has <a href="#dynamic_android.jpeg.size">android.<wbr/>jpeg.<wbr/>size</a> = 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/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.jpeg.thumbnailQuality">
            <td class="entry_name
             " rowspan="1">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>




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

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

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.jpeg.thumbnailSize">
            <td class="entry_name
             " rowspan="5">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>




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

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

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

            <td class="entry_range">
              <p><a href="#static_android.jpeg.availableThumbnailSizes">android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
but the captured JPEG will still be a valid image.<wbr/></p>
<p>For best results,<wbr/> when issuing a request for a JPEG image,<wbr/> the thumbnail size selected
should have the same aspect ratio as the main JPEG output.<wbr/></p>
<p>If the thumbnail image aspect ratio differs from the JPEG primary image aspect
ratio,<wbr/> the camera device creates the thumbnail by cropping it from the primary image.<wbr/>
For example,<wbr/> if the primary image has 4:3 aspect ratio,<wbr/> the thumbnail image has
16:9 aspect ratio,<wbr/> the primary image will be cropped vertically (letterbox) to
generate the thumbnail image.<wbr/> The thumbnail image will always have a smaller Field
Of View (FOV) than the primary image when aspect ratios differ.<wbr/></p>
<p>When an <a href="#controls_android.jpeg.orientation">android.<wbr/>jpeg.<wbr/>orientation</a> of non-zero degree is requested,<wbr/>
the camera device will handle thumbnail rotation in one of the following ways:</p>
<ul>
<li>Set the <a href="https://developer.android.com/reference/android/media/ExifInterface.html#TAG_ORIENTATION">EXIF orientation flag</a>
  and keep jpeg and thumbnail image data unrotated.<wbr/></li>
<li>Rotate the jpeg and thumbnail image data and not set
  <a href="https://developer.android.com/reference/android/media/ExifInterface.html#TAG_ORIENTATION">EXIF orientation flag</a>.<wbr/> In this
  case,<wbr/> LIMITED or FULL hardware level devices will report rotated thumnail size in
  capture result,<wbr/> so the width and height will be interchanged if 90 or 270 degree
  orientation is requested.<wbr/> LEGACY device will always report unrotated thumbnail
  size.<wbr/></li>
</ul>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The HAL must not squeeze or stretch the downscaled primary image to generate thumbnail.<wbr/>
The cropping must be done on the primary jpeg image rather than the sensor active array.<wbr/>
The stream cropping rule specified by "S5.<wbr/> Cropping" in camera3.<wbr/>h doesn't apply to the
thumbnail image cropping.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

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

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


              <span class="entry_type_hwlevel">[full] </span>




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

            <td class="entry_description">
              <p>The desired lens aperture size,<wbr/> as a ratio of lens focal length to the
effective aperture diameter.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p><a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Setting this value is only supported on the camera devices that have a variable
aperture lens.<wbr/></p>
<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>
to achieve manual exposure control.<wbr/></p>
<p>The requested aperture value may take several frames to reach the
requested value; the camera device will report the current (intermediate)
aperture size in capture result metadata while the aperture is changing.<wbr/>
While the aperture is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
the ON modes,<wbr/> this will be overridden by the camera device
auto-exposure algorithm,<wbr/> the overridden values are then provided
back to the user in the corresponding result.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.lens.filterDensity">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[full] </span>




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

            <td class="entry_description">
              <p>The desired setting for the lens neutral density filter(s).<wbr/></p>
            </td>

            <td class="entry_units">
              Exposure Value (EV)
            </td>

            <td class="entry_range">
              <p><a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This control will not be supported on most camera devices.<wbr/></p>
<p>Lens filters are typically used to lower the amount of light the
sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
step is the standard logarithmic representation,<wbr/> which are
non-negative,<wbr/> and inversely proportional to the amount of light
hitting the sensor.<wbr/>  For example,<wbr/> setting this to 0 would result
in no reduction of the incoming light,<wbr/> and setting this to 2 would
mean that the filter is set to reduce incoming light by two stops
(allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
<p>It may take several frames before the lens filter density changes
to the requested value.<wbr/> While the filter density is still changing,<wbr/>
<a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.lens.focalLength">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>




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

            <td class="entry_description">
              <p>The desired lens focal length; used for optical zoom.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p><a href="#static_android.lens.info.availableFocalLengths">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This setting controls the physical focal length of the camera
device's lens.<wbr/> Changing the focal length changes the field of
view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
<p>Like <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> and <a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a>,<wbr/> this
setting won't be applied instantaneously,<wbr/> and it may take several
frames before the lens can change to the requested focal length.<wbr/>
While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
be set to MOVING.<wbr/></p>
<p>Optical zoom will not be supported on most devices.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.lens.focusDistance">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[full] </span>




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

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

            <td class="entry_units">
              See android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details
            </td>

            <td class="entry_range">
              <p>&gt;= 0</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </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>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This control can be used for setting manual focus,<wbr/> on devices that support
the MANUAL_<wbr/>SENSOR capability and have a variable-focus lens (see
<a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a>).<wbr/></p>
<p>A value of <code>0.<wbr/>0f</code> means infinity focus.<wbr/> The value set will be clamped to
<code>[0.<wbr/>0f,<wbr/> <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a>]</code>.<wbr/></p>
<p>Like <a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>,<wbr/> this setting won't be applied
instantaneously,<wbr/> and it may take several frames before the lens
can move to the requested focus distance.<wbr/> While the lens is still moving,<wbr/>
<a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
<p>LEGACY devices support at most setting this to <code>0.<wbr/>0f</code>
for infinity focus.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.lens.opticalStabilizationMode">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[limited] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>Sets whether the camera device uses optical image stabilization (OIS)
when capturing images.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p><a href="#static_android.lens.info.availableOpticalStabilization">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>OIS is used to compensate for motion blur due to small
movements of the camera during capture.<wbr/> Unlike digital image
stabilization (<a href="#controls_android.control.videoStabilizationMode">android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode</a>),<wbr/> OIS
makes use of mechanical elements to stabilize the camera
sensor,<wbr/> and thus allows for longer exposure times before
camera shake becomes apparent.<wbr/></p>
<p>Switching between different optical stabilization modes may take several
frames to initialize,<wbr/> the camera device will report the current mode in
capture result metadata.<wbr/> For example,<wbr/> When "ON" mode is requested,<wbr/> the
optical stabilization modes in the first several capture results may still
be "OFF",<wbr/> and it will become "ON" when the initialization is done.<wbr/></p>
<p>If a camera device supports both OIS and digital image stabilization
(<a href="#controls_android.control.videoStabilizationMode">android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode</a>),<wbr/> turning both modes on may produce undesirable
interaction,<wbr/> so it is recommended not to enable both at the same time.<wbr/></p>
<p>Not all devices will support OIS; see
<a href="#static_android.lens.info.availableOpticalStabilization">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization</a> for
available controls.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        
                
            

                
          <tr class="entry" id="static_android.lens.info.availableApertures">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[full] </span>




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

            <td class="entry_description">
              <p>List of aperture size values for <a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a> that are
supported by this camera device.<wbr/></p>
            </td>

            <td class="entry_units">
              The aperture f-number
            </td>

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>If the camera device doesn't support a variable lens aperture,<wbr/>
this list will contain only one value,<wbr/> which is the fixed aperture size.<wbr/></p>
<p>If the camera device supports a variable aperture,<wbr/> the aperture values
in this list will be sorted in ascending order.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.lens.info.availableFilterDensities">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[full] </span>




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

            <td class="entry_description">
              <p>List of neutral density filter values for
<a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a> that are supported by this camera device.<wbr/></p>
            </td>

            <td class="entry_units">
              Exposure value (EV)
            </td>

            <td class="entry_range">
              <p>Values are &gt;= 0</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>If a neutral density filter is not supported by this camera device,<wbr/>
this list will contain only 0.<wbr/> Otherwise,<wbr/> this list will include every
filter density supported by the camera device,<wbr/> in ascending order.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.lens.info.availableFocalLengths">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>


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


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

            <td class="entry_description">
              <p>List of focal lengths for <a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a> that are supported by this camera
device.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>Values are &gt; 0</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </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>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>If optical zoom is not supported,<wbr/> this list will only contain
a single value corresponding to the fixed focal length of the
device.<wbr/> Otherwise,<wbr/> this list will include every focal length supported
by the camera device,<wbr/> in ascending order.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.lens.info.availableOpticalStabilization">
            <td class="entry_name
             " rowspan="3">
              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 as enumList]</span>


              <span class="entry_type_hwlevel">[limited] </span>


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


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

            <td class="entry_description">
              <p>List of optical image stabilization (OIS) modes for
<a href="#controls_android.lens.opticalStabilizationMode">android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode</a> that are supported by this camera device.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>Any value listed in <a href="#controls_android.lens.opticalStabilizationMode">android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>If OIS is not supported by a given camera device,<wbr/> this list will
contain only OFF.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.lens.info.hyperfocalDistance">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[limited] </span>




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

            <td class="entry_description">
              <p>Hyperfocal distance for this lens.<wbr/></p>
            </td>

            <td class="entry_units">
              See android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details
            </td>

            <td class="entry_range">
              <p>If lens is fixed focus,<wbr/> &gt;= 0.<wbr/> If lens has focuser unit,<wbr/> the value is
within <code>(0.<wbr/>0f,<wbr/> <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a>]</code></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>If the lens is not fixed focus,<wbr/> the camera device will report this
field when <a href="#static_android.lens.info.focusDistanceCalibration">android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration</a> is APPROXIMATE or CALIBRATED.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.lens.info.minimumFocusDistance">
            <td class="entry_name
             " rowspan="5">
              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>


              <span class="entry_type_hwlevel">[limited] </span>




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

            <td class="entry_description">
              <p>Shortest distance from frontmost surface
of the lens that can be brought into sharp focus.<wbr/></p>
            </td>

            <td class="entry_units">
              See android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details
            </td>

            <td class="entry_range">
              <p>&gt;= 0</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>If the lens is fixed-focus,<wbr/> this will be
0.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Mandatory for FULL devices; LIMITED devices
must always set this value to 0 for fixed-focus; and may omit
the minimum focus distance otherwise.<wbr/></p>
<p>This field is also mandatory for all devices advertising
the MANUAL_<wbr/>SENSOR capability.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.lens.info.shadingMapSize">
            <td class="entry_name
             " rowspan="3">
              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"> [ndk_public as size]</span>


              <span class="entry_type_hwlevel">[full] </span>


                <div class="entry_type_notes">width and height (N,<wbr/> M) of lens shading map provided by the camera device.<wbr/></div>


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

            <td class="entry_description">
              <p>Dimensions of lens shading map.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>Both values &gt;= 1</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The map should be on the order of 30-40 rows and columns,<wbr/> and
must be smaller than 64x64.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.lens.info.focusDistanceCalibration">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration
            </td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>

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


              <span class="entry_type_hwlevel">[limited] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">UNCALIBRATED (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The lens focus distance is not accurate,<wbr/> and the units used for
<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> do not correspond to any physical units.<wbr/></p>
<p>Setting the lens to the same focus distance on separate occasions may
result in a different real focus distance,<wbr/> depending on factors such
as the orientation of the device,<wbr/> the age of the focusing mechanism,<wbr/>
and the device temperature.<wbr/> The focus distance value will still be
in the range of <code>[0,<wbr/> <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a>]</code>,<wbr/> where 0
represents the farthest focus.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">APPROXIMATE (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The lens focus distance is measured in diopters.<wbr/></p>
<p>However,<wbr/> setting the lens to the same focus distance
on separate occasions may result in a different real
focus distance,<wbr/> depending on factors such as the
orientation of the device,<wbr/> the age of the focusing
mechanism,<wbr/> and the device temperature.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">CALIBRATED (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The lens focus distance is measured in diopters,<wbr/> and
is calibrated.<wbr/></p>
<p>The lens mechanism is calibrated so that setting the
same focus distance is repeatable on multiple
occasions with good accuracy,<wbr/> and the focus distance
corresponds to the real physical distance to the plane
of best focus.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>The lens focus distance calibration quality.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The lens focus distance calibration quality determines the reliability of
focus related metadata entries,<wbr/> i.<wbr/>e.<wbr/> <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a>,<wbr/>
<a href="#dynamic_android.lens.focusRange">android.<wbr/>lens.<wbr/>focus<wbr/>Range</a>,<wbr/> <a href="#static_android.lens.info.hyperfocalDistance">android.<wbr/>lens.<wbr/>info.<wbr/>hyperfocal<wbr/>Distance</a>,<wbr/> and
<a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a>.<wbr/></p>
<p>APPROXIMATE and CALIBRATED devices report the focus metadata in
units of diopters (1/<wbr/>meter),<wbr/> so <code>0.<wbr/>0f</code> represents focusing at infinity,<wbr/>
and increasing positive numbers represent focusing closer and closer
to the camera device.<wbr/> The focus distance control also uses diopters
on these devices.<wbr/></p>
<p>UNCALIBRATED devices do not use units that are directly comparable
to any real physical measurement,<wbr/> but <code>0.<wbr/>0f</code> still represents farthest
focus,<wbr/> and <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> represents the
nearest focus the device can achieve.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>For devices advertise APPROXIMATE quality or higher,<wbr/> diopters 0 (infinity
focus) must work.<wbr/> When autofocus is disabled (<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> == OFF)
and the lens focus distance is set to 0 diopters
(<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> == 0),<wbr/> the lens will move to focus at infinity
and is stably focused at infinity even if the device tilts.<wbr/> It may take the
lens some time to move; during the move the lens state should be MOVING and
the output diopter value should be changing toward 0.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
        
        

                
          <tr class="entry" id="static_android.lens.facing">
            <td class="entry_name
             " rowspan="1">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">FRONT (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The camera device faces the same direction as the device's screen.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">BACK (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The camera device faces the opposite direction as the device's screen.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">EXTERNAL (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The camera device is an external camera,<wbr/> and has no fixed facing relative to the
device's screen.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>Direction the camera faces relative to
device screen.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.lens.poseRotation">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>lens.<wbr/>pose<wbr/>Rotation
            </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>






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

            <td class="entry_description">
              <p>The orientation of the camera relative to the sensor
coordinate system.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_DEPTH">DEPTH</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The four coefficients that describe the quaternion
rotation from the Android sensor coordinate system to a
camera-aligned coordinate system where the X-axis is
aligned with the long side of the image sensor,<wbr/> the Y-axis
is aligned with the short side of the image sensor,<wbr/> and
the Z-axis is aligned with the optical axis of the sensor.<wbr/></p>
<p>To convert from the quaternion coefficients <code>(x,<wbr/>y,<wbr/>z,<wbr/>w)</code>
to the axis of rotation <code>(a_<wbr/>x,<wbr/> a_<wbr/>y,<wbr/> a_<wbr/>z)</code> and rotation
amount <code>theta</code>,<wbr/> the following formulas can be used:</p>
<pre><code> theta = 2 * acos(w)
a_<wbr/>x = x /<wbr/> sin(theta/<wbr/>2)
a_<wbr/>y = y /<wbr/> sin(theta/<wbr/>2)
a_<wbr/>z = z /<wbr/> sin(theta/<wbr/>2)
</code></pre>
<p>To create a 3x3 rotation matrix that applies the rotation
defined by this quaternion,<wbr/> the following matrix can be
used:</p>
<pre><code>R = [ 1 - 2y^2 - 2z^2,<wbr/>       2xy - 2zw,<wbr/>       2xz + 2yw,<wbr/>
           2xy + 2zw,<wbr/> 1 - 2x^2 - 2z^2,<wbr/>       2yz - 2xw,<wbr/>
           2xz - 2yw,<wbr/>       2yz + 2xw,<wbr/> 1 - 2x^2 - 2y^2 ]
</code></pre>
<p>This matrix can then be used to apply the rotation to a
 column vector point with</p>
<p><code>p' = Rp</code></p>
<p>where <code>p</code> is in the device sensor coordinate system,<wbr/> and
 <code>p'</code> is in the camera-oriented coordinate system.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.lens.poseTranslation">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>lens.<wbr/>pose<wbr/>Translation
            </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
                </span>
              <span class="entry_type_visibility"> [public]</span>






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

            <td class="entry_description">
              <p>Position of the camera optical center.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_DEPTH">DEPTH</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The position of the camera device's lens optical center,<wbr/>
as a three-dimensional vector <code>(x,<wbr/>y,<wbr/>z)</code>.<wbr/></p>
<p>Prior to Android P,<wbr/> or when <a href="#static_android.lens.poseReference">android.<wbr/>lens.<wbr/>pose<wbr/>Reference</a> is PRIMARY_<wbr/>CAMERA,<wbr/> this position
is relative to the optical center of the largest camera device facing in the same
direction as this camera,<wbr/> in the <a href="https://developer.android.com/reference/android/hardware/SensorEvent.html">Android sensor
coordinate axes</a>.<wbr/> Note that only the axis definitions are shared with the sensor
coordinate system,<wbr/> but not the origin.<wbr/></p>
<p>If this device is the largest or only camera device with a given facing,<wbr/> then this
position will be <code>(0,<wbr/> 0,<wbr/> 0)</code>; a camera device with a lens optical center located 3 cm
from the main sensor along the +X axis (to the right from the user's perspective) will
report <code>(0.<wbr/>03,<wbr/> 0,<wbr/> 0)</code>.<wbr/></p>
<p>To transform a pixel coordinates between two cameras facing the same direction,<wbr/> first
the source camera <a href="#static_android.lens.distortion">android.<wbr/>lens.<wbr/>distortion</a> must be corrected for.<wbr/>  Then the source
camera <a href="#static_android.lens.intrinsicCalibration">android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration</a> needs to be applied,<wbr/> followed by the
<a href="#static_android.lens.poseRotation">android.<wbr/>lens.<wbr/>pose<wbr/>Rotation</a> of the source camera,<wbr/> the translation of the source camera
relative to the destination camera,<wbr/> the <a href="#static_android.lens.poseRotation">android.<wbr/>lens.<wbr/>pose<wbr/>Rotation</a> of the destination
camera,<wbr/> and finally the inverse of <a href="#static_android.lens.intrinsicCalibration">android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration</a> of the destination
camera.<wbr/> This obtains a radial-distortion-free coordinate in the destination camera pixel
coordinates.<wbr/></p>
<p>To compare this against a real image from the destination camera,<wbr/> the destination camera
image then needs to be corrected for radial distortion before comparison or sampling.<wbr/></p>
<p>When <a href="#static_android.lens.poseReference">android.<wbr/>lens.<wbr/>pose<wbr/>Reference</a> is GYROSCOPE,<wbr/> then this position is relative to
the center of the primary gyroscope on the device.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.lens.intrinsicCalibration">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration
            </td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>
                <span class="entry_type_container">x</span>

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






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

            <td class="entry_description">
              <p>The parameters for this camera device's intrinsic
calibration.<wbr/></p>
            </td>

            <td class="entry_units">
              
            Pixels in the
            android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<wbr/>Active<wbr/>Array<wbr/>Size
            coordinate system.<wbr/>
          
            </td>

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_DEPTH">DEPTH</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The five calibration parameters that describe the
transform from camera-centric 3D coordinates to sensor
pixel coordinates:</p>
<pre><code>[f_<wbr/>x,<wbr/> f_<wbr/>y,<wbr/> c_<wbr/>x,<wbr/> c_<wbr/>y,<wbr/> s]
</code></pre>
<p>Where <code>f_<wbr/>x</code> and <code>f_<wbr/>y</code> are the horizontal and vertical
focal lengths,<wbr/> <code>[c_<wbr/>x,<wbr/> c_<wbr/>y]</code> is the position of the optical
axis,<wbr/> and <code>s</code> is a skew parameter for the sensor plane not
being aligned with the lens plane.<wbr/></p>
<p>These are typically used within a transformation matrix K:</p>
<pre><code>K = [ f_<wbr/>x,<wbr/>   s,<wbr/> c_<wbr/>x,<wbr/>
       0,<wbr/> f_<wbr/>y,<wbr/> c_<wbr/>y,<wbr/>
       0    0,<wbr/>   1 ]
</code></pre>
<p>which can then be combined with the camera pose rotation
<code>R</code> and translation <code>t</code> (<a href="#static_android.lens.poseRotation">android.<wbr/>lens.<wbr/>pose<wbr/>Rotation</a> and
<a href="#static_android.lens.poseTranslation">android.<wbr/>lens.<wbr/>pose<wbr/>Translation</a>,<wbr/> respective) to calculate the
complete transform from world coordinates to pixel
coordinates:</p>
<pre><code>P = [ K 0   * [ R t
     0 1 ]     0 1 ]
</code></pre>
<p>and with <code>p_<wbr/>w</code> being a point in the world coordinate system
and <code>p_<wbr/>s</code> being a point in the camera active pixel array
coordinate system,<wbr/> and with the mapping including the
homogeneous division by z:</p>
<pre><code> p_<wbr/>h = (x_<wbr/>h,<wbr/> y_<wbr/>h,<wbr/> z_<wbr/>h) = P p_<wbr/>w
p_<wbr/>s = p_<wbr/>h /<wbr/> z_<wbr/>h
</code></pre>
<p>so <code>[x_<wbr/>s,<wbr/> y_<wbr/>s]</code> is the pixel coordinates of the world
point,<wbr/> <code>z_<wbr/>s = 1</code>,<wbr/> and <code>w_<wbr/>s</code> is a measurement of disparity
(depth) in pixel coordinates.<wbr/></p>
<p>Note that the coordinate system for this transform is the
<a href="#static_android.sensor.info.preCorrectionActiveArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<wbr/>Active<wbr/>Array<wbr/>Size</a> system,<wbr/>
where <code>(0,<wbr/>0)</code> is the top-left of the
preCorrectionActiveArraySize rectangle.<wbr/> Once the pose and
intrinsic calibration transforms have been applied to a
world point,<wbr/> then the <a href="#static_android.lens.distortion">android.<wbr/>lens.<wbr/>distortion</a>
transform needs to be applied,<wbr/> and the result adjusted to
be in the <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a> coordinate
system (where <code>(0,<wbr/> 0)</code> is the top-left of the
activeArraySize rectangle),<wbr/> to determine the final pixel
coordinate of the world point for processed (non-RAW)
output buffers.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.lens.radialDistortion">
            <td class="entry_name
                entry_name_deprecated
             " rowspan="3">
              android.<wbr/>lens.<wbr/>radial<wbr/>Distortion
            </td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>
                <span class="entry_type_container">x</span>

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



              <span class="entry_type_deprecated">[deprecated] </span>



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

            <td class="entry_description">
              <p>The correction coefficients to correct for this camera device's
radial and tangential lens distortion.<wbr/></p>
            </td>

            <td class="entry_units">
              
            Unitless coefficients.<wbr/>
          
            </td>

            <td class="entry_range">
              <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_DEPTH">DEPTH</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Four radial distortion coefficients <code>[kappa_<wbr/>0,<wbr/> kappa_<wbr/>1,<wbr/> kappa_<wbr/>2,<wbr/>
kappa_<wbr/>3]</code> and two tangential distortion coefficients
<code>[kappa_<wbr/>4,<wbr/> kappa_<wbr/>5]</code> that can be used to correct the
lens's geometric distortion with the mapping equations:</p>
<pre><code> x_<wbr/>c = x_<wbr/>i * ( kappa_<wbr/>0 + kappa_<wbr/>1 * r^2 + kappa_<wbr/>2 * r^4 + kappa_<wbr/>3 * r^6 ) +
       kappa_<wbr/>4 * (2 * x_<wbr/>i * y_<wbr/>i) + kappa_<wbr/>5 * ( r^2 + 2 * x_<wbr/>i^2 )
 y_<wbr/>c = y_<wbr/>i * ( kappa_<wbr/>0 + kappa_<wbr/>1 * r^2 + kappa_<wbr/>2 * r^4 + kappa_<wbr/>3 * r^6 ) +
       kappa_<wbr/>5 * (2 * x_<wbr/>i * y_<wbr/>i) + kappa_<wbr/>4 * ( r^2 + 2 * y_<wbr/>i^2 )
</code></pre>
<p>Here,<wbr/> <code>[x_<wbr/>c,<wbr/> y_<wbr/>c]</code> are the coordinates to sample in the
input image that correspond to the pixel values in the
corrected image at the coordinate <code>[x_<wbr/>i,<wbr/> y_<wbr/>i]</code>:</p>
<pre><code> correctedImage(x_<wbr/>i,<wbr/> y_<wbr/>i) = sample_<wbr/>at(x_<wbr/>c,<wbr/> y_<wbr/>c,<wbr/> inputImage)
</code></pre>
<p>The pixel coordinates are defined in a normalized
coordinate system related to the
<a href="#static_android.lens.intrinsicCalibration">android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration</a> calibration fields.<wbr/>
Both <code>[x_<wbr/>i,<wbr/> y_<wbr/>i]</code> and <code>[x_<wbr/>c,<wbr/> y_<wbr/>c]</code> have <code>(0,<wbr/>0)</code> at the
lens optical center <code>[c_<wbr/>x,<wbr/> c_<wbr/>y]</code>.<wbr/> The maximum magnitudes
of both x and y coordinates are normalized to be 1 at the
edge further from the optical center,<wbr/> so the range
for both dimensions is <code>-1 &lt;= x &lt;= 1</code>.<wbr/></p>
<p>Finally,<wbr/> <code>r</code> represents the radial distance from the
optical center,<wbr/> <code>r^2 = x_<wbr/>i^2 + y_<wbr/>i^2</code>,<wbr/> and its magnitude
is therefore no larger than <code>|<wbr/>r|<wbr/> &lt;= sqrt(2)</code>.<wbr/></p>
<p>The distortion model used is the Brown-Conrady model.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.lens.poseReference">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>lens.<wbr/>pose<wbr/>Reference
            </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">PRIMARY_CAMERA (v3.3)</span>
                    <span class="entry_type_enum_notes"><p>The value of <a href="#static_android.lens.poseTranslation">android.<wbr/>lens.<wbr/>pose<wbr/>Translation</a> is relative to the optical center of
the largest camera device facing the same direction as this camera.<wbr/></p>
<p>This is the default value for API levels before Android P.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">GYROSCOPE (v3.3)</span>
                    <span class="entry_type_enum_notes"><p>The value of <a href="#static_android.lens.poseTranslation">android.<wbr/>lens.<wbr/>pose<wbr/>Translation</a> is relative to the position of the
primary gyroscope of this Android device.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>The origin for <a href="#static_android.lens.poseTranslation">android.<wbr/>lens.<wbr/>pose<wbr/>Translation</a>.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>3</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Different calibration methods and use cases can produce better or worse results
depending on the selected coordinate origin.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.lens.distortion">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>lens.<wbr/>distortion
            </td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>
                <span class="entry_type_container">x</span>

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






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

            <td class="entry_description">
              <p>The correction coefficients to correct for this camera device's
radial and tangential lens distortion.<wbr/></p>
<p>Replaces the deprecated <a href="#static_android.lens.radialDistortion">android.<wbr/>lens.<wbr/>radial<wbr/>Distortion</a> field,<wbr/> which was
inconsistently defined.<wbr/></p>
            </td>

            <td class="entry_units">
              
            Unitless coefficients.<wbr/>
          
            </td>

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

            <td class="entry_hal_version">
              <p>3.<wbr/>3</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_DEPTH">DEPTH</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Three radial distortion coefficients <code>[kappa_<wbr/>1,<wbr/> kappa_<wbr/>2,<wbr/>
kappa_<wbr/>3]</code> and two tangential distortion coefficients
<code>[kappa_<wbr/>4,<wbr/> kappa_<wbr/>5]</code> that can be used to correct the
lens's geometric distortion with the mapping equations:</p>
<pre><code> x_<wbr/>c = x_<wbr/>i * ( 1 + kappa_<wbr/>1 * r^2 + kappa_<wbr/>2 * r^4 + kappa_<wbr/>3 * r^6 ) +
       kappa_<wbr/>4 * (2 * x_<wbr/>i * y_<wbr/>i) + kappa_<wbr/>5 * ( r^2 + 2 * x_<wbr/>i^2 )
 y_<wbr/>c = y_<wbr/>i * ( 1 + kappa_<wbr/>1 * r^2 + kappa_<wbr/>2 * r^4 + kappa_<wbr/>3 * r^6 ) +
       kappa_<wbr/>5 * (2 * x_<wbr/>i * y_<wbr/>i) + kappa_<wbr/>4 * ( r^2 + 2 * y_<wbr/>i^2 )
</code></pre>
<p>Here,<wbr/> <code>[x_<wbr/>c,<wbr/> y_<wbr/>c]</code> are the coordinates to sample in the
input image that correspond to the pixel values in the
corrected image at the coordinate <code>[x_<wbr/>i,<wbr/> y_<wbr/>i]</code>:</p>
<pre><code> correctedImage(x_<wbr/>i,<wbr/> y_<wbr/>i) = sample_<wbr/>at(x_<wbr/>c,<wbr/> y_<wbr/>c,<wbr/> inputImage)
</code></pre>
<p>The pixel coordinates are defined in a coordinate system
related to the <a href="#static_android.lens.intrinsicCalibration">android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration</a>
calibration fields; see that entry for details of the mapping stages.<wbr/>
Both <code>[x_<wbr/>i,<wbr/> y_<wbr/>i]</code> and <code>[x_<wbr/>c,<wbr/> y_<wbr/>c]</code>
have <code>(0,<wbr/>0)</code> at the lens optical center <code>[c_<wbr/>x,<wbr/> c_<wbr/>y]</code>,<wbr/> and
the range of the coordinates depends on the focal length
terms of the intrinsic calibration.<wbr/></p>
<p>Finally,<wbr/> <code>r</code> represents the radial distance from the
optical center,<wbr/> <code>r^2 = x_<wbr/>i^2 + y_<wbr/>i^2</code>.<wbr/></p>
<p>The distortion model used is the Brown-Conrady model.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

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

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


              <span class="entry_type_hwlevel">[full] </span>




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

            <td class="entry_description">
              <p>The desired lens aperture size,<wbr/> as a ratio of lens focal length to the
effective aperture diameter.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p><a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Setting this value is only supported on the camera devices that have a variable
aperture lens.<wbr/></p>
<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>
to achieve manual exposure control.<wbr/></p>
<p>The requested aperture value may take several frames to reach the
requested value; the camera device will report the current (intermediate)
aperture size in capture result metadata while the aperture is changing.<wbr/>
While the aperture is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
the ON modes,<wbr/> this will be overridden by the camera device
auto-exposure algorithm,<wbr/> the overridden values are then provided
back to the user in the corresponding result.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.lens.filterDensity">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[full] </span>




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

            <td class="entry_description">
              <p>The desired setting for the lens neutral density filter(s).<wbr/></p>
            </td>

            <td class="entry_units">
              Exposure Value (EV)
            </td>

            <td class="entry_range">
              <p><a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This control will not be supported on most camera devices.<wbr/></p>
<p>Lens filters are typically used to lower the amount of light the
sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
step is the standard logarithmic representation,<wbr/> which are
non-negative,<wbr/> and inversely proportional to the amount of light
hitting the sensor.<wbr/>  For example,<wbr/> setting this to 0 would result
in no reduction of the incoming light,<wbr/> and setting this to 2 would
mean that the filter is set to reduce incoming light by two stops
(allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
<p>It may take several frames before the lens filter density changes
to the requested value.<wbr/> While the filter density is still changing,<wbr/>
<a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.lens.focalLength">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>




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

            <td class="entry_description">
              <p>The desired lens focal length; used for optical zoom.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p><a href="#static_android.lens.info.availableFocalLengths">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This setting controls the physical focal length of the camera
device's lens.<wbr/> Changing the focal length changes the field of
view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
<p>Like <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> and <a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a>,<wbr/> this
setting won't be applied instantaneously,<wbr/> and it may take several
frames before the lens can change to the requested focal length.<wbr/>
While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
be set to MOVING.<wbr/></p>
<p>Optical zoom will not be supported on most devices.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.lens.focusDistance">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[full] </span>




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

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

            <td class="entry_units">
              See android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details
            </td>

            <td class="entry_range">
              <p>&gt;= 0</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Should be zero for fixed-focus cameras</p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.lens.focusRange">
            <td class="entry_name
             " rowspan="3">
              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 as pairFloatFloat]</span>


              <span class="entry_type_hwlevel">[limited] </span>


                <div class="entry_type_notes">Range of scene distances that are in focus</div>


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

            <td class="entry_description">
              <p>The range of scene distances that are in
sharp focus (depth of field).<wbr/></p>
            </td>

            <td class="entry_units">
              A pair of focus distances in diopters: (near,<wbr/>
          far); see android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details.<wbr/>
            </td>

            <td class="entry_range">
              <p>&gt;=0</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>If variable focus not supported,<wbr/> can still report
fixed depth of field range</p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.lens.opticalStabilizationMode">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[limited] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>Sets whether the camera device uses optical image stabilization (OIS)
when capturing images.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p><a href="#static_android.lens.info.availableOpticalStabilization">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>OIS is used to compensate for motion blur due to small
movements of the camera during capture.<wbr/> Unlike digital image
stabilization (<a href="#controls_android.control.videoStabilizationMode">android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode</a>),<wbr/> OIS
makes use of mechanical elements to stabilize the camera
sensor,<wbr/> and thus allows for longer exposure times before
camera shake becomes apparent.<wbr/></p>
<p>Switching between different optical stabilization modes may take several
frames to initialize,<wbr/> the camera device will report the current mode in
capture result metadata.<wbr/> For example,<wbr/> When "ON" mode is requested,<wbr/> the
optical stabilization modes in the first several capture results may still
be "OFF",<wbr/> and it will become "ON" when the initialization is done.<wbr/></p>
<p>If a camera device supports both OIS and digital image stabilization
(<a href="#controls_android.control.videoStabilizationMode">android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode</a>),<wbr/> turning both modes on may produce undesirable
interaction,<wbr/> so it is recommended not to enable both at the same time.<wbr/></p>
<p>Not all devices will support OIS; see
<a href="#static_android.lens.info.availableOpticalStabilization">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization</a> for
available controls.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.lens.state">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[limited] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">STATIONARY (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The lens parameters (<a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>,<wbr/> <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a>,<wbr/>
<a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a> and <a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a>) are not changing.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">MOVING (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>One or several of the lens parameters
(<a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>,<wbr/> <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a>,<wbr/>
<a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a> or <a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a>) is
currently changing.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>Current lens status.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>For lens parameters <a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>,<wbr/> <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a>,<wbr/>
<a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a> and <a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a>,<wbr/> when changes are requested,<wbr/>
they may take several frames to reach the requested values.<wbr/> This state indicates
the current status of the lens parameters.<wbr/></p>
<p>When the state is STATIONARY,<wbr/> the lens parameters are not changing.<wbr/> This could be
either because the parameters are all fixed,<wbr/> or because the lens has had enough
time to reach the most recently-requested values.<wbr/>
If all these lens parameters are not changable for a camera device,<wbr/> as listed below:</p>
<ul>
<li>Fixed focus (<code><a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> == 0</code>),<wbr/> which means
<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> parameter will always be 0.<wbr/></li>
<li>Fixed focal length (<a href="#static_android.lens.info.availableFocalLengths">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths</a> contains single value),<wbr/>
which means the optical zoom is not supported.<wbr/></li>
<li>No ND filter (<a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a> contains only 0).<wbr/></li>
<li>Fixed aperture (<a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a> contains single value).<wbr/></li>
</ul>
<p>Then this state will always be STATIONARY.<wbr/></p>
<p>When the state is MOVING,<wbr/> it indicates that at least one of the lens parameters
is changing.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.lens.poseRotation">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>lens.<wbr/>pose<wbr/>Rotation
            </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>






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

            <td class="entry_description">
              <p>The orientation of the camera relative to the sensor
coordinate system.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_DEPTH">DEPTH</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The four coefficients that describe the quaternion
rotation from the Android sensor coordinate system to a
camera-aligned coordinate system where the X-axis is
aligned with the long side of the image sensor,<wbr/> the Y-axis
is aligned with the short side of the image sensor,<wbr/> and
the Z-axis is aligned with the optical axis of the sensor.<wbr/></p>
<p>To convert from the quaternion coefficients <code>(x,<wbr/>y,<wbr/>z,<wbr/>w)</code>
to the axis of rotation <code>(a_<wbr/>x,<wbr/> a_<wbr/>y,<wbr/> a_<wbr/>z)</code> and rotation
amount <code>theta</code>,<wbr/> the following formulas can be used:</p>
<pre><code> theta = 2 * acos(w)
a_<wbr/>x = x /<wbr/> sin(theta/<wbr/>2)
a_<wbr/>y = y /<wbr/> sin(theta/<wbr/>2)
a_<wbr/>z = z /<wbr/> sin(theta/<wbr/>2)
</code></pre>
<p>To create a 3x3 rotation matrix that applies the rotation
defined by this quaternion,<wbr/> the following matrix can be
used:</p>
<pre><code>R = [ 1 - 2y^2 - 2z^2,<wbr/>       2xy - 2zw,<wbr/>       2xz + 2yw,<wbr/>
           2xy + 2zw,<wbr/> 1 - 2x^2 - 2z^2,<wbr/>       2yz - 2xw,<wbr/>
           2xz - 2yw,<wbr/>       2yz + 2xw,<wbr/> 1 - 2x^2 - 2y^2 ]
</code></pre>
<p>This matrix can then be used to apply the rotation to a
 column vector point with</p>
<p><code>p' = Rp</code></p>
<p>where <code>p</code> is in the device sensor coordinate system,<wbr/> and
 <code>p'</code> is in the camera-oriented coordinate system.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.lens.poseTranslation">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>lens.<wbr/>pose<wbr/>Translation
            </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
                </span>
              <span class="entry_type_visibility"> [public]</span>






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

            <td class="entry_description">
              <p>Position of the camera optical center.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_DEPTH">DEPTH</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The position of the camera device's lens optical center,<wbr/>
as a three-dimensional vector <code>(x,<wbr/>y,<wbr/>z)</code>.<wbr/></p>
<p>Prior to Android P,<wbr/> or when <a href="#static_android.lens.poseReference">android.<wbr/>lens.<wbr/>pose<wbr/>Reference</a> is PRIMARY_<wbr/>CAMERA,<wbr/> this position
is relative to the optical center of the largest camera device facing in the same
direction as this camera,<wbr/> in the <a href="https://developer.android.com/reference/android/hardware/SensorEvent.html">Android sensor
coordinate axes</a>.<wbr/> Note that only the axis definitions are shared with the sensor
coordinate system,<wbr/> but not the origin.<wbr/></p>
<p>If this device is the largest or only camera device with a given facing,<wbr/> then this
position will be <code>(0,<wbr/> 0,<wbr/> 0)</code>; a camera device with a lens optical center located 3 cm
from the main sensor along the +X axis (to the right from the user's perspective) will
report <code>(0.<wbr/>03,<wbr/> 0,<wbr/> 0)</code>.<wbr/></p>
<p>To transform a pixel coordinates between two cameras facing the same direction,<wbr/> first
the source camera <a href="#static_android.lens.distortion">android.<wbr/>lens.<wbr/>distortion</a> must be corrected for.<wbr/>  Then the source
camera <a href="#static_android.lens.intrinsicCalibration">android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration</a> needs to be applied,<wbr/> followed by the
<a href="#static_android.lens.poseRotation">android.<wbr/>lens.<wbr/>pose<wbr/>Rotation</a> of the source camera,<wbr/> the translation of the source camera
relative to the destination camera,<wbr/> the <a href="#static_android.lens.poseRotation">android.<wbr/>lens.<wbr/>pose<wbr/>Rotation</a> of the destination
camera,<wbr/> and finally the inverse of <a href="#static_android.lens.intrinsicCalibration">android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration</a> of the destination
camera.<wbr/> This obtains a radial-distortion-free coordinate in the destination camera pixel
coordinates.<wbr/></p>
<p>To compare this against a real image from the destination camera,<wbr/> the destination camera
image then needs to be corrected for radial distortion before comparison or sampling.<wbr/></p>
<p>When <a href="#static_android.lens.poseReference">android.<wbr/>lens.<wbr/>pose<wbr/>Reference</a> is GYROSCOPE,<wbr/> then this position is relative to
the center of the primary gyroscope on the device.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.lens.intrinsicCalibration">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration
            </td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>
                <span class="entry_type_container">x</span>

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






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

            <td class="entry_description">
              <p>The parameters for this camera device's intrinsic
calibration.<wbr/></p>
            </td>

            <td class="entry_units">
              
            Pixels in the
            android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<wbr/>Active<wbr/>Array<wbr/>Size
            coordinate system.<wbr/>
          
            </td>

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_DEPTH">DEPTH</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The five calibration parameters that describe the
transform from camera-centric 3D coordinates to sensor
pixel coordinates:</p>
<pre><code>[f_<wbr/>x,<wbr/> f_<wbr/>y,<wbr/> c_<wbr/>x,<wbr/> c_<wbr/>y,<wbr/> s]
</code></pre>
<p>Where <code>f_<wbr/>x</code> and <code>f_<wbr/>y</code> are the horizontal and vertical
focal lengths,<wbr/> <code>[c_<wbr/>x,<wbr/> c_<wbr/>y]</code> is the position of the optical
axis,<wbr/> and <code>s</code> is a skew parameter for the sensor plane not
being aligned with the lens plane.<wbr/></p>
<p>These are typically used within a transformation matrix K:</p>
<pre><code>K = [ f_<wbr/>x,<wbr/>   s,<wbr/> c_<wbr/>x,<wbr/>
       0,<wbr/> f_<wbr/>y,<wbr/> c_<wbr/>y,<wbr/>
       0    0,<wbr/>   1 ]
</code></pre>
<p>which can then be combined with the camera pose rotation
<code>R</code> and translation <code>t</code> (<a href="#static_android.lens.poseRotation">android.<wbr/>lens.<wbr/>pose<wbr/>Rotation</a> and
<a href="#static_android.lens.poseTranslation">android.<wbr/>lens.<wbr/>pose<wbr/>Translation</a>,<wbr/> respective) to calculate the
complete transform from world coordinates to pixel
coordinates:</p>
<pre><code>P = [ K 0   * [ R t
     0 1 ]     0 1 ]
</code></pre>
<p>and with <code>p_<wbr/>w</code> being a point in the world coordinate system
and <code>p_<wbr/>s</code> being a point in the camera active pixel array
coordinate system,<wbr/> and with the mapping including the
homogeneous division by z:</p>
<pre><code> p_<wbr/>h = (x_<wbr/>h,<wbr/> y_<wbr/>h,<wbr/> z_<wbr/>h) = P p_<wbr/>w
p_<wbr/>s = p_<wbr/>h /<wbr/> z_<wbr/>h
</code></pre>
<p>so <code>[x_<wbr/>s,<wbr/> y_<wbr/>s]</code> is the pixel coordinates of the world
point,<wbr/> <code>z_<wbr/>s = 1</code>,<wbr/> and <code>w_<wbr/>s</code> is a measurement of disparity
(depth) in pixel coordinates.<wbr/></p>
<p>Note that the coordinate system for this transform is the
<a href="#static_android.sensor.info.preCorrectionActiveArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<wbr/>Active<wbr/>Array<wbr/>Size</a> system,<wbr/>
where <code>(0,<wbr/>0)</code> is the top-left of the
preCorrectionActiveArraySize rectangle.<wbr/> Once the pose and
intrinsic calibration transforms have been applied to a
world point,<wbr/> then the <a href="#static_android.lens.distortion">android.<wbr/>lens.<wbr/>distortion</a>
transform needs to be applied,<wbr/> and the result adjusted to
be in the <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a> coordinate
system (where <code>(0,<wbr/> 0)</code> is the top-left of the
activeArraySize rectangle),<wbr/> to determine the final pixel
coordinate of the world point for processed (non-RAW)
output buffers.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.lens.radialDistortion">
            <td class="entry_name
                entry_name_deprecated
             " rowspan="3">
              android.<wbr/>lens.<wbr/>radial<wbr/>Distortion
            </td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>
                <span class="entry_type_container">x</span>

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



              <span class="entry_type_deprecated">[deprecated] </span>



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

            <td class="entry_description">
              <p>The correction coefficients to correct for this camera device's
radial and tangential lens distortion.<wbr/></p>
            </td>

            <td class="entry_units">
              
            Unitless coefficients.<wbr/>
          
            </td>

            <td class="entry_range">
              <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_DEPTH">DEPTH</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Four radial distortion coefficients <code>[kappa_<wbr/>0,<wbr/> kappa_<wbr/>1,<wbr/> kappa_<wbr/>2,<wbr/>
kappa_<wbr/>3]</code> and two tangential distortion coefficients
<code>[kappa_<wbr/>4,<wbr/> kappa_<wbr/>5]</code> that can be used to correct the
lens's geometric distortion with the mapping equations:</p>
<pre><code> x_<wbr/>c = x_<wbr/>i * ( kappa_<wbr/>0 + kappa_<wbr/>1 * r^2 + kappa_<wbr/>2 * r^4 + kappa_<wbr/>3 * r^6 ) +
       kappa_<wbr/>4 * (2 * x_<wbr/>i * y_<wbr/>i) + kappa_<wbr/>5 * ( r^2 + 2 * x_<wbr/>i^2 )
 y_<wbr/>c = y_<wbr/>i * ( kappa_<wbr/>0 + kappa_<wbr/>1 * r^2 + kappa_<wbr/>2 * r^4 + kappa_<wbr/>3 * r^6 ) +
       kappa_<wbr/>5 * (2 * x_<wbr/>i * y_<wbr/>i) + kappa_<wbr/>4 * ( r^2 + 2 * y_<wbr/>i^2 )
</code></pre>
<p>Here,<wbr/> <code>[x_<wbr/>c,<wbr/> y_<wbr/>c]</code> are the coordinates to sample in the
input image that correspond to the pixel values in the
corrected image at the coordinate <code>[x_<wbr/>i,<wbr/> y_<wbr/>i]</code>:</p>
<pre><code> correctedImage(x_<wbr/>i,<wbr/> y_<wbr/>i) = sample_<wbr/>at(x_<wbr/>c,<wbr/> y_<wbr/>c,<wbr/> inputImage)
</code></pre>
<p>The pixel coordinates are defined in a normalized
coordinate system related to the
<a href="#static_android.lens.intrinsicCalibration">android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration</a> calibration fields.<wbr/>
Both <code>[x_<wbr/>i,<wbr/> y_<wbr/>i]</code> and <code>[x_<wbr/>c,<wbr/> y_<wbr/>c]</code> have <code>(0,<wbr/>0)</code> at the
lens optical center <code>[c_<wbr/>x,<wbr/> c_<wbr/>y]</code>.<wbr/> The maximum magnitudes
of both x and y coordinates are normalized to be 1 at the
edge further from the optical center,<wbr/> so the range
for both dimensions is <code>-1 &lt;= x &lt;= 1</code>.<wbr/></p>
<p>Finally,<wbr/> <code>r</code> represents the radial distance from the
optical center,<wbr/> <code>r^2 = x_<wbr/>i^2 + y_<wbr/>i^2</code>,<wbr/> and its magnitude
is therefore no larger than <code>|<wbr/>r|<wbr/> &lt;= sqrt(2)</code>.<wbr/></p>
<p>The distortion model used is the Brown-Conrady model.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.lens.distortion">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>lens.<wbr/>distortion
            </td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>
                <span class="entry_type_container">x</span>

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






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

            <td class="entry_description">
              <p>The correction coefficients to correct for this camera device's
radial and tangential lens distortion.<wbr/></p>
<p>Replaces the deprecated <a href="#static_android.lens.radialDistortion">android.<wbr/>lens.<wbr/>radial<wbr/>Distortion</a> field,<wbr/> which was
inconsistently defined.<wbr/></p>
            </td>

            <td class="entry_units">
              
            Unitless coefficients.<wbr/>
          
            </td>

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

            <td class="entry_hal_version">
              <p>3.<wbr/>3</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_DEPTH">DEPTH</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Three radial distortion coefficients <code>[kappa_<wbr/>1,<wbr/> kappa_<wbr/>2,<wbr/>
kappa_<wbr/>3]</code> and two tangential distortion coefficients
<code>[kappa_<wbr/>4,<wbr/> kappa_<wbr/>5]</code> that can be used to correct the
lens's geometric distortion with the mapping equations:</p>
<pre><code> x_<wbr/>c = x_<wbr/>i * ( 1 + kappa_<wbr/>1 * r^2 + kappa_<wbr/>2 * r^4 + kappa_<wbr/>3 * r^6 ) +
       kappa_<wbr/>4 * (2 * x_<wbr/>i * y_<wbr/>i) + kappa_<wbr/>5 * ( r^2 + 2 * x_<wbr/>i^2 )
 y_<wbr/>c = y_<wbr/>i * ( 1 + kappa_<wbr/>1 * r^2 + kappa_<wbr/>2 * r^4 + kappa_<wbr/>3 * r^6 ) +
       kappa_<wbr/>5 * (2 * x_<wbr/>i * y_<wbr/>i) + kappa_<wbr/>4 * ( r^2 + 2 * y_<wbr/>i^2 )
</code></pre>
<p>Here,<wbr/> <code>[x_<wbr/>c,<wbr/> y_<wbr/>c]</code> are the coordinates to sample in the
input image that correspond to the pixel values in the
corrected image at the coordinate <code>[x_<wbr/>i,<wbr/> y_<wbr/>i]</code>:</p>
<pre><code> correctedImage(x_<wbr/>i,<wbr/> y_<wbr/>i) = sample_<wbr/>at(x_<wbr/>c,<wbr/> y_<wbr/>c,<wbr/> inputImage)
</code></pre>
<p>The pixel coordinates are defined in a coordinate system
related to the <a href="#static_android.lens.intrinsicCalibration">android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration</a>
calibration fields; see that entry for details of the mapping stages.<wbr/>
Both <code>[x_<wbr/>i,<wbr/> y_<wbr/>i]</code> and <code>[x_<wbr/>c,<wbr/> y_<wbr/>c]</code>
have <code>(0,<wbr/>0)</code> at the lens optical center <code>[c_<wbr/>x,<wbr/> c_<wbr/>y]</code>,<wbr/> and
the range of the coordinates depends on the focal length
terms of the intrinsic calibration.<wbr/></p>
<p>Finally,<wbr/> <code>r</code> represents the radial distance from the
optical center,<wbr/> <code>r^2 = x_<wbr/>i^2 + y_<wbr/>i^2</code>.<wbr/></p>
<p>The distortion model used is the Brown-Conrady model.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="controls_android.noiseReduction.mode">
            <td class="entry_name
             " rowspan="5">
              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>


              <span class="entry_type_hwlevel">[full] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>No noise reduction is applied.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FAST (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Noise reduction is applied without reducing frame rate relative to sensor
output.<wbr/> It may be the same as OFF if noise reduction will reduce frame rate
relative to sensor.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>High-quality noise reduction is applied,<wbr/> at the cost of possibly reduced frame
rate relative to sensor output.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">MINIMAL (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>MINIMAL noise reduction is applied without reducing frame rate relative to
sensor output.<wbr/> </p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ZERO_SHUTTER_LAG (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Noise reduction is applied at different levels for different output streams,<wbr/>
based on resolution.<wbr/> Streams at maximum recording resolution (see <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureSession">CameraDevice#createCaptureSession</a>)
or below have noise reduction applied,<wbr/> while higher-resolution streams have MINIMAL (if
supported) or no noise reduction applied (if MINIMAL is not supported.<wbr/>) The degree of
noise reduction for low-resolution streams is tuned so that frame rate is not impacted,<wbr/>
and the quality is equal to or better than FAST (since it is only applied to
lower-resolution outputs,<wbr/> quality may improve from FAST).<wbr/></p>
<p>This mode is intended to be used by applications operating in a zero-shutter-lag mode
with YUV or PRIVATE reprocessing,<wbr/> where the application continuously captures
high-resolution intermediate buffers into a circular buffer,<wbr/> from which a final image is
produced via reprocessing when a user takes a picture.<wbr/>  For such a use case,<wbr/> the
high-resolution buffers must not have noise reduction applied to maximize efficiency of
preview and to avoid over-applying noise filtering when reprocessing,<wbr/> while
low-resolution buffers (used for recording or preview,<wbr/> generally) need noise reduction
applied for reasonable preview quality.<wbr/></p>
<p>This mode is guaranteed to be supported by devices that support either the
YUV_<wbr/>REPROCESSING or PRIVATE_<wbr/>REPROCESSING capabilities
(<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> lists either of those capabilities) and it will
be the default mode for CAMERA3_<wbr/>TEMPLATE_<wbr/>ZERO_<wbr/>SHUTTER_<wbr/>LAG template.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>Mode of operation for the noise reduction algorithm.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p><a href="#static_android.noiseReduction.availableNoiseReductionModes">android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Noise<wbr/>Reduction<wbr/>Modes</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The noise reduction algorithm attempts to improve image quality by removing
excessive noise added by the capture process,<wbr/> especially in dark conditions.<wbr/></p>
<p>OFF means no noise reduction will be applied by the camera device,<wbr/> for both raw and
YUV domain.<wbr/></p>
<p>MINIMAL means that only sensor raw domain basic noise reduction is enabled ,<wbr/>to remove
demosaicing or other processing artifacts.<wbr/> For YUV_<wbr/>REPROCESSING,<wbr/> MINIMAL is same as OFF.<wbr/>
This mode is optional,<wbr/> may not be support by all devices.<wbr/> The application should check
<a href="#static_android.noiseReduction.availableNoiseReductionModes">android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Noise<wbr/>Reduction<wbr/>Modes</a> before using it.<wbr/></p>
<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
will use the highest-quality noise filtering algorithms,<wbr/>
even if it slows down capture rate.<wbr/> FAST means the camera device will not
slow down capture rate when applying noise filtering.<wbr/> FAST may be the same as MINIMAL if
MINIMAL is listed,<wbr/> or the same as OFF if any noise filtering will slow down capture rate.<wbr/>
Every output stream will have a similar amount of enhancement applied.<wbr/></p>
<p>ZERO_<wbr/>SHUTTER_<wbr/>LAG is meant to be used by applications that maintain a continuous circular
buffer of high-resolution images during preview and reprocess image(s) from that buffer
into a final capture when triggered by the user.<wbr/> In this mode,<wbr/> the camera device applies
noise reduction to low-resolution streams (below maximum recording resolution) to maximize
preview quality,<wbr/> but does not apply noise reduction to high-resolution streams,<wbr/> since
those will be reprocessed later if necessary.<wbr/></p>
<p>For YUV_<wbr/>REPROCESSING,<wbr/> these FAST/<wbr/>HIGH_<wbr/>QUALITY modes both mean that the camera device
will apply FAST/<wbr/>HIGH_<wbr/>QUALITY YUV domain noise reduction,<wbr/> respectively.<wbr/> The camera device
may adjust the noise reduction parameters for best image quality based on the
<a href="#controls_android.reprocess.effectiveExposureFactor">android.<wbr/>reprocess.<wbr/>effective<wbr/>Exposure<wbr/>Factor</a> if it is set.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>For YUV_<wbr/>REPROCESSING The HAL can use <a href="#controls_android.reprocess.effectiveExposureFactor">android.<wbr/>reprocess.<wbr/>effective<wbr/>Exposure<wbr/>Factor</a> to
adjust the internal noise reduction parameters appropriately to get the best quality
images.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.noiseReduction.strength">
            <td class="entry_name
             " rowspan="1">
              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">
              <p>Control the amount of noise reduction
applied to the images</p>
            </td>

            <td class="entry_units">
              1-10; 10 is max noise reduction
            </td>

            <td class="entry_range">
              <p>1 - 10</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_FUTURE">FUTURE</a></li>
              </ul>
            </td>

          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="static_android.noiseReduction.availableNoiseReductionModes">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Noise<wbr/>Reduction<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 as enumList]</span>


              <span class="entry_type_hwlevel">[limited] </span>


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


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

            <td class="entry_description">
              <p>List of noise reduction modes for <a href="#controls_android.noiseReduction.mode">android.<wbr/>noise<wbr/>Reduction.<wbr/>mode</a> that are supported
by this camera device.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>Any value listed in <a href="#controls_android.noiseReduction.mode">android.<wbr/>noise<wbr/>Reduction.<wbr/>mode</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Full-capability camera devices will always support OFF and FAST.<wbr/></p>
<p>Camera devices that support YUV_<wbr/>REPROCESSING or PRIVATE_<wbr/>REPROCESSING will support
ZERO_<wbr/>SHUTTER_<wbr/>LAG.<wbr/></p>
<p>Legacy-capability camera devices will only support FAST mode.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>HAL must support both FAST and HIGH_<wbr/>QUALITY if noise reduction control is available
on the camera device,<wbr/> but the underlying implementation can be the same for both modes.<wbr/>
That is,<wbr/> if the highest quality implementation on the camera device does not slow down
capture rate,<wbr/> then FAST and HIGH_<wbr/>QUALITY will generate the same output.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="dynamic_android.noiseReduction.mode">
            <td class="entry_name
             " rowspan="5">
              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>


              <span class="entry_type_hwlevel">[full] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>No noise reduction is applied.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FAST (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Noise reduction is applied without reducing frame rate relative to sensor
output.<wbr/> It may be the same as OFF if noise reduction will reduce frame rate
relative to sensor.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>High-quality noise reduction is applied,<wbr/> at the cost of possibly reduced frame
rate relative to sensor output.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">MINIMAL (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>MINIMAL noise reduction is applied without reducing frame rate relative to
sensor output.<wbr/> </p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ZERO_SHUTTER_LAG (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Noise reduction is applied at different levels for different output streams,<wbr/>
based on resolution.<wbr/> Streams at maximum recording resolution (see <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureSession">CameraDevice#createCaptureSession</a>)
or below have noise reduction applied,<wbr/> while higher-resolution streams have MINIMAL (if
supported) or no noise reduction applied (if MINIMAL is not supported.<wbr/>) The degree of
noise reduction for low-resolution streams is tuned so that frame rate is not impacted,<wbr/>
and the quality is equal to or better than FAST (since it is only applied to
lower-resolution outputs,<wbr/> quality may improve from FAST).<wbr/></p>
<p>This mode is intended to be used by applications operating in a zero-shutter-lag mode
with YUV or PRIVATE reprocessing,<wbr/> where the application continuously captures
high-resolution intermediate buffers into a circular buffer,<wbr/> from which a final image is
produced via reprocessing when a user takes a picture.<wbr/>  For such a use case,<wbr/> the
high-resolution buffers must not have noise reduction applied to maximize efficiency of
preview and to avoid over-applying noise filtering when reprocessing,<wbr/> while
low-resolution buffers (used for recording or preview,<wbr/> generally) need noise reduction
applied for reasonable preview quality.<wbr/></p>
<p>This mode is guaranteed to be supported by devices that support either the
YUV_<wbr/>REPROCESSING or PRIVATE_<wbr/>REPROCESSING capabilities
(<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> lists either of those capabilities) and it will
be the default mode for CAMERA3_<wbr/>TEMPLATE_<wbr/>ZERO_<wbr/>SHUTTER_<wbr/>LAG template.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>Mode of operation for the noise reduction algorithm.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p><a href="#static_android.noiseReduction.availableNoiseReductionModes">android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Noise<wbr/>Reduction<wbr/>Modes</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The noise reduction algorithm attempts to improve image quality by removing
excessive noise added by the capture process,<wbr/> especially in dark conditions.<wbr/></p>
<p>OFF means no noise reduction will be applied by the camera device,<wbr/> for both raw and
YUV domain.<wbr/></p>
<p>MINIMAL means that only sensor raw domain basic noise reduction is enabled ,<wbr/>to remove
demosaicing or other processing artifacts.<wbr/> For YUV_<wbr/>REPROCESSING,<wbr/> MINIMAL is same as OFF.<wbr/>
This mode is optional,<wbr/> may not be support by all devices.<wbr/> The application should check
<a href="#static_android.noiseReduction.availableNoiseReductionModes">android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Noise<wbr/>Reduction<wbr/>Modes</a> before using it.<wbr/></p>
<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
will use the highest-quality noise filtering algorithms,<wbr/>
even if it slows down capture rate.<wbr/> FAST means the camera device will not
slow down capture rate when applying noise filtering.<wbr/> FAST may be the same as MINIMAL if
MINIMAL is listed,<wbr/> or the same as OFF if any noise filtering will slow down capture rate.<wbr/>
Every output stream will have a similar amount of enhancement applied.<wbr/></p>
<p>ZERO_<wbr/>SHUTTER_<wbr/>LAG is meant to be used by applications that maintain a continuous circular
buffer of high-resolution images during preview and reprocess image(s) from that buffer
into a final capture when triggered by the user.<wbr/> In this mode,<wbr/> the camera device applies
noise reduction to low-resolution streams (below maximum recording resolution) to maximize
preview quality,<wbr/> but does not apply noise reduction to high-resolution streams,<wbr/> since
those will be reprocessed later if necessary.<wbr/></p>
<p>For YUV_<wbr/>REPROCESSING,<wbr/> these FAST/<wbr/>HIGH_<wbr/>QUALITY modes both mean that the camera device
will apply FAST/<wbr/>HIGH_<wbr/>QUALITY YUV domain noise reduction,<wbr/> respectively.<wbr/> The camera device
may adjust the noise reduction parameters for best image quality based on the
<a href="#controls_android.reprocess.effectiveExposureFactor">android.<wbr/>reprocess.<wbr/>effective<wbr/>Exposure<wbr/>Factor</a> if it is set.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>For YUV_<wbr/>REPROCESSING The HAL can use <a href="#controls_android.reprocess.effectiveExposureFactor">android.<wbr/>reprocess.<wbr/>effective<wbr/>Exposure<wbr/>Factor</a> to
adjust the internal noise reduction parameters appropriately to get the best quality
images.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="static_android.quirks.meteringCropRegion">
            <td class="entry_name
                entry_name_deprecated
             " rowspan="3">
              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>



              <span class="entry_type_deprecated">[deprecated] </span>



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

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

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

            <td class="entry_range">
              <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Normalized coordinates refer to those in the
(-1000,<wbr/>1000) range mentioned in the
android.<wbr/>hardware.<wbr/>Camera API.<wbr/></p>
<p>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/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.quirks.triggerAfWithAuto">
            <td class="entry_name
                entry_name_deprecated
             " rowspan="3">
              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>



              <span class="entry_type_deprecated">[deprecated] </span>



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

            <td class="entry_description">
              <p>If set to 1,<wbr/> then the camera service always
switches to FOCUS_<wbr/>MODE_<wbr/>AUTO before issuing a AF
trigger.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>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</p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.quirks.useZslFormat">
            <td class="entry_name
                entry_name_deprecated
             " rowspan="3">
              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>



              <span class="entry_type_deprecated">[deprecated] </span>



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

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

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

            <td class="entry_range">
              <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>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/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.quirks.usePartialResult">
            <td class="entry_name
                entry_name_deprecated
             " rowspan="5">
              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"> [hidden]</span>



              <span class="entry_type_deprecated">[deprecated] </span>



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

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

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

            <td class="entry_range">
              <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>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/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Refer to <code>camera3_<wbr/>capture_<wbr/>result::partial_<wbr/>result</code>
for information on how to implement partial results.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="dynamic_android.quirks.partialResult">
            <td class="entry_name
                entry_name_deprecated
             " rowspan="5">
              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"> [hidden as boolean]</span>



              <span class="entry_type_deprecated">[deprecated] </span>


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

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

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

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

            <td class="entry_range">
              <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
              <p>Optional.<wbr/> Default value is FINAL.<wbr/></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>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 camera device if quirks.<wbr/>usePartialResult is set to 1.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Refer to <code>camera3_<wbr/>capture_<wbr/>result::partial_<wbr/>result</code>
for information on how to implement partial results.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="controls_android.request.frameCount">
            <td class="entry_name
                entry_name_deprecated
             " rowspan="1">
              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>



              <span class="entry_type_deprecated">[deprecated] </span>



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

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

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

            <td class="entry_range">
              <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
              <p>Any int.<wbr/></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.request.id">
            <td class="entry_name
             " rowspan="1">
              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">
              <p>An application-specified ID for the current
request.<wbr/> Must be maintained unchanged in output
frame</p>
            </td>

            <td class="entry_units">
              arbitrary integer assigned by application
            </td>

            <td class="entry_range">
              <p>Any int</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.request.inputStreams">
            <td class="entry_name
                entry_name_deprecated
             " rowspan="3">
              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>



              <span class="entry_type_deprecated">[deprecated] </span>



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

            <td class="entry_description">
              <p>List which camera reprocess stream is used
for the source of reprocessing data.<wbr/></p>
            </td>

            <td class="entry_units">
              List of camera reprocess stream IDs
            </td>

            <td class="entry_range">
              <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
              <p>Typically,<wbr/> only one entry allowed,<wbr/> must be a valid reprocess stream ID.<wbr/></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Only meaningful when <a href="#controls_android.request.type">android.<wbr/>request.<wbr/>type</a> ==
REPROCESS.<wbr/> Ignored otherwise</p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.request.metadataMode">
            <td class="entry_name
             " rowspan="1">
              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 (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>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</p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FULL (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
only be produced if they are separately
enabled</p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>How much metadata to produce on
output</p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_FUTURE">FUTURE</a></li>
              </ul>
            </td>

          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.request.outputStreams">
            <td class="entry_name
                entry_name_deprecated
             " rowspan="3">
              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>



              <span class="entry_type_deprecated">[deprecated] </span>



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

            <td class="entry_description">
              <p>Lists which camera output streams image data
from this capture must be sent to</p>
            </td>

            <td class="entry_units">
              List of camera stream IDs
            </td>

            <td class="entry_range">
              <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
              <p>List must only include streams that have been
created</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>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/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.request.type">
            <td class="entry_name
                entry_name_deprecated
             " rowspan="1">
              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>



              <span class="entry_type_deprecated">[deprecated] </span>


                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">CAPTURE (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Capture a new image from the imaging hardware,<wbr/>
and process it according to the
settings</p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">REPROCESS (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Process previously captured data; the
<a href="#controls_android.request.inputStreams">android.<wbr/>request.<wbr/>input<wbr/>Streams</a> parameter determines the
source reprocessing stream.<wbr/> TODO: Mark dynamic metadata
needed for reprocessing with [RP]</p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>The type of the request; either CAPTURE or
REPROCESS.<wbr/> For legacy HAL3,<wbr/> this tag is redundant.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="static_android.request.maxNumOutputStreams">
            <td class="entry_name
             " rowspan="3">
              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"> [ndk_public]</span>


              <span class="entry_type_hwlevel">[legacy] </span>




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

            <td class="entry_description">
              <p>The maximum numbers of different types of output streams
that can be configured and used simultaneously by a camera device.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>For processed (and stalling) format streams,<wbr/> &gt;= 1.<wbr/></p>
<p>For Raw format (either stalling or non-stalling) streams,<wbr/> &gt;= 0.<wbr/></p>
<p>For processed (but not stalling) format streams,<wbr/> &gt;= 3
for FULL mode devices (<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL</code>);
&gt;= 2 for LIMITED mode devices (<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == LIMITED</code>).<wbr/></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This is a 3 element tuple that contains the max number of output simultaneous
streams for raw sensor,<wbr/> processed (but not stalling),<wbr/> and processed (and stalling)
formats respectively.<wbr/> For example,<wbr/> assuming that JPEG is typically a processed and
stalling stream,<wbr/> if max raw sensor format output stream number is 1,<wbr/> max YUV streams
number is 3,<wbr/> and max JPEG stream number is 2,<wbr/> then this tuple should be <code>(1,<wbr/> 3,<wbr/> 2)</code>.<wbr/></p>
<p>This lists the upper bound of the number of output streams supported by
the camera device.<wbr/> Using more streams simultaneously may require more hardware and
CPU resources that will consume more power.<wbr/> The image format for an output stream can
be any supported format provided by <a href="#static_android.scaler.availableStreamConfigurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stream<wbr/>Configurations</a>.<wbr/>
The formats defined in <a href="#static_android.scaler.availableStreamConfigurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stream<wbr/>Configurations</a> can be catergorized
into the 3 stream types as below:</p>
<ul>
<li>Processed (but stalling): any non-RAW format with a stallDurations &gt; 0.<wbr/>
  Typically <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">JPEG format</a>.<wbr/></li>
<li>Raw formats: <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#RAW_SENSOR">RAW_<wbr/>SENSOR</a>,<wbr/> <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#RAW10">RAW10</a>,<wbr/> or
  <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#RAW12">RAW12</a>.<wbr/></li>
<li>Processed (but not-stalling): any non-RAW format without a stall duration.<wbr/>  Typically
  <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">YUV_<wbr/>420_<wbr/>888</a>,<wbr/>
  <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#NV21">NV21</a>,<wbr/> or <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YV12">YV12</a>.<wbr/></li>
</ul>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.request.maxNumOutputRaw">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Raw
            </td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>

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

              <span class="entry_type_synthetic">[synthetic] </span>

              <span class="entry_type_hwlevel">[legacy] </span>




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

            <td class="entry_description">
              <p>The maximum numbers of different types of output streams
that can be configured and used simultaneously by a camera device
for any <code>RAW</code> formats.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>&gt;= 0</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This value contains the max number of output simultaneous
streams from the raw sensor.<wbr/></p>
<p>This lists the upper bound of the number of output streams supported by
the camera device.<wbr/> Using more streams simultaneously may require more hardware and
CPU resources that will consume more power.<wbr/> The image format for this kind of an output stream can
be any <code>RAW</code> and supported format provided by <a href="#static_android.scaler.streamConfigurationMap">android.<wbr/>scaler.<wbr/>stream<wbr/>Configuration<wbr/>Map</a>.<wbr/></p>
<p>In particular,<wbr/> a <code>RAW</code> format is typically one of:</p>
<ul>
<li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#RAW_SENSOR">RAW_<wbr/>SENSOR</a></li>
<li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#RAW10">RAW10</a></li>
<li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#RAW12">RAW12</a></li>
</ul>
<p>LEGACY mode devices (<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> <code>==</code> LEGACY)
never support raw streams.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.request.maxNumOutputProc">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Proc
            </td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>

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

              <span class="entry_type_synthetic">[synthetic] </span>

              <span class="entry_type_hwlevel">[legacy] </span>




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

            <td class="entry_description">
              <p>The maximum numbers of different types of output streams
that can be configured and used simultaneously by a camera device
for any processed (but not-stalling) formats.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>&gt;= 3
for FULL mode devices (<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL</code>);
&gt;= 2 for LIMITED mode devices (<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == LIMITED</code>).<wbr/></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This value contains the max number of output simultaneous
streams for any processed (but not-stalling) formats.<wbr/></p>
<p>This lists the upper bound of the number of output streams supported by
the camera device.<wbr/> Using more streams simultaneously may require more hardware and
CPU resources that will consume more power.<wbr/> The image format for this kind of an output stream can
be any non-<code>RAW</code> and supported format provided by <a href="#static_android.scaler.streamConfigurationMap">android.<wbr/>scaler.<wbr/>stream<wbr/>Configuration<wbr/>Map</a>.<wbr/></p>
<p>Processed (but not-stalling) is defined as any non-RAW format without a stall duration.<wbr/>
Typically:</p>
<ul>
<li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">YUV_<wbr/>420_<wbr/>888</a></li>
<li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#NV21">NV21</a></li>
<li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YV12">YV12</a></li>
<li>Implementation-defined formats,<wbr/> i.<wbr/>e.<wbr/> <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#isOutputSupportedFor(Class)">StreamConfigurationMap#isOutputSupportedFor(Class)</a></li>
</ul>
<p>For full guarantees,<wbr/> query <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputStallDuration">StreamConfigurationMap#getOutputStallDuration</a> with a
processed format -- it will return 0 for a non-stalling stream.<wbr/></p>
<p>LEGACY devices will support at least 2 processing/<wbr/>non-stalling streams.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.request.maxNumOutputProcStalling">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Proc<wbr/>Stalling
            </td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>

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

              <span class="entry_type_synthetic">[synthetic] </span>

              <span class="entry_type_hwlevel">[legacy] </span>




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

            <td class="entry_description">
              <p>The maximum numbers of different types of output streams
that can be configured and used simultaneously by a camera device
for any processed (and stalling) formats.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>&gt;= 1</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This value contains the max number of output simultaneous
streams for any processed (but not-stalling) formats.<wbr/></p>
<p>This lists the upper bound of the number of output streams supported by
the camera device.<wbr/> Using more streams simultaneously may require more hardware and
CPU resources that will consume more power.<wbr/> The image format for this kind of an output stream can
be any non-<code>RAW</code> and supported format provided by <a href="#static_android.scaler.streamConfigurationMap">android.<wbr/>scaler.<wbr/>stream<wbr/>Configuration<wbr/>Map</a>.<wbr/></p>
<p>A processed and stalling format is defined as any non-RAW format with a stallDurations
&gt; 0.<wbr/>  Typically only the <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">JPEG format</a> is a stalling format.<wbr/></p>
<p>For full guarantees,<wbr/> query <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputStallDuration">StreamConfigurationMap#getOutputStallDuration</a> with a
processed format -- it will return a non-0 value for a stalling stream.<wbr/></p>
<p>LEGACY devices will support up to 1 processing/<wbr/>stalling stream.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.request.maxNumReprocessStreams">
            <td class="entry_name
                entry_name_deprecated
             " rowspan="3">
              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>



              <span class="entry_type_deprecated">[deprecated] </span>



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

            <td class="entry_description">
              <p>How many reprocessing streams of any type
can be allocated at the same time.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
              <p>&gt;= 0</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Only used by HAL2.<wbr/>x.<wbr/></p>
<p>When set to 0,<wbr/> it means no reprocess stream is supported.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.request.maxNumInputStreams">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Input<wbr/>Streams
            </td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>

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


              <span class="entry_type_hwlevel">[full] </span>




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

            <td class="entry_description">
              <p>The maximum numbers of any type of input streams
that can be configured and used simultaneously by a camera device.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>0 or 1.<wbr/></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_REPROC">REPROC</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>When set to 0,<wbr/> it means no input stream is supported.<wbr/></p>
<p>The image format for a input stream can be any supported format returned by <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getInputFormats">StreamConfigurationMap#getInputFormats</a>.<wbr/> When using an
input stream,<wbr/> there must be at least one output stream configured to to receive the
reprocessed images.<wbr/></p>
<p>When an input stream and some output streams are used in a reprocessing request,<wbr/>
only the input buffer will be used to produce these output stream buffers,<wbr/> and a
new sensor image will not be captured.<wbr/></p>
<p>For example,<wbr/> for Zero Shutter Lag (ZSL) still capture use case,<wbr/> the input
stream image format will be PRIVATE,<wbr/> the associated output stream image format
should be JPEG.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>For the reprocessing flow and controls,<wbr/> see
hardware/<wbr/>libhardware/<wbr/>include/<wbr/>hardware/<wbr/>camera3.<wbr/>h Section 10 for more details.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.request.pipelineMaxDepth">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth
            </td>
            <td class="entry_type">
                <span class="entry_type_name">byte</span>

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


              <span class="entry_type_hwlevel">[legacy] </span>




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

            <td class="entry_description">
              <p>Specifies the number of maximum pipeline stages a frame
has to go through from when it's exposed to when it's available
to the framework.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>A typical minimum value for this is 2 (one stage to expose,<wbr/>
one stage to readout) from the sensor.<wbr/> The ISP then usually adds
its own stages to do custom HW processing.<wbr/> Further stages may be
added by SW processing.<wbr/></p>
<p>Depending on what settings are used (e.<wbr/>g.<wbr/> YUV,<wbr/> JPEG) and what
processing is enabled (e.<wbr/>g.<wbr/> face detection),<wbr/> the actual pipeline
depth (specified by <a href="#dynamic_android.request.pipelineDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Depth</a>) may be less than
the max pipeline depth.<wbr/></p>
<p>A pipeline depth of X stages is equivalent to a pipeline latency of
X frame intervals.<wbr/></p>
<p>This value will normally be 8 or less,<wbr/> however,<wbr/> for high speed capture session,<wbr/>
the max pipeline depth will be up to 8 x size of high speed capture request list.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This value should be 4 or less,<wbr/> expect for the high speed recording session,<wbr/> where the
max batch sizes may be larger than 1.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.request.partialResultCount">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>request.<wbr/>partial<wbr/>Result<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">
              <p>Defines how many sub-components
a result will be composed of.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>&gt;= 1</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>In order to combat the pipeline latency,<wbr/> partial results
may be delivered to the application layer from the camera device as
soon as they are available.<wbr/></p>
<p>Optional; defaults to 1.<wbr/> A value of 1 means that partial
results are not supported,<wbr/> and only the final TotalCaptureResult will
be produced by the camera device.<wbr/></p>
<p>A typical use case for this might be: after requesting an
auto-focus (AF) lock the new AF state might be available 50%
of the way through the pipeline.<wbr/>  The camera device could
then immediately dispatch this state via a partial result to
the application,<wbr/> and the rest of the metadata via later
partial results.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.request.availableCapabilities">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>request.<wbr/>available<wbr/>Capabilities
            </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"> [public]</span>


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">BACKWARD_COMPATIBLE (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The minimal set of capabilities that every camera
device (regardless of <a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a>)
supports.<wbr/></p>
<p>This capability is listed by all normal devices,<wbr/> and
indicates that the camera device has a feature set
that's comparable to the baseline requirements for the
older android.<wbr/>hardware.<wbr/>Camera API.<wbr/></p>
<p>Devices with the DEPTH_<wbr/>OUTPUT capability might not list this
capability,<wbr/> indicating that they support only depth measurement,<wbr/>
not standard color output.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">MANUAL_SENSOR (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>The camera device can be manually controlled (3A algorithms such
as auto-exposure,<wbr/> and auto-focus can be bypassed).<wbr/>
The camera device supports basic manual control of the sensor image
acquisition related stages.<wbr/> This means the following controls are
guaranteed to be supported:</p>
<ul>
<li>Manual frame duration control<ul>
<li><a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a></li>
<li><a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a></li>
</ul>
</li>
<li>Manual exposure control<ul>
<li><a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a></li>
<li><a href="#static_android.sensor.info.exposureTimeRange">android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range</a></li>
</ul>
</li>
<li>Manual sensitivity control<ul>
<li><a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a></li>
<li><a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a></li>
</ul>
</li>
<li>Manual lens control (if the lens is adjustable)<ul>
<li>android.<wbr/>lens.<wbr/>*</li>
</ul>
</li>
<li>Manual flash control (if a flash unit is present)<ul>
<li>android.<wbr/>flash.<wbr/>*</li>
</ul>
</li>
<li>Manual black level locking<ul>
<li><a href="#controls_android.blackLevel.lock">android.<wbr/>black<wbr/>Level.<wbr/>lock</a></li>
</ul>
</li>
<li>Auto exposure lock<ul>
<li><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a></li>
</ul>
</li>
</ul>
<p>If any of the above 3A algorithms are enabled,<wbr/> then the camera
device will accurately report the values applied by 3A in the
result.<wbr/></p>
<p>A given camera device may also support additional manual sensor controls,<wbr/>
but this capability only covers the above list of controls.<wbr/></p>
<p>If this is supported,<wbr/> <a href="#static_android.scaler.streamConfigurationMap">android.<wbr/>scaler.<wbr/>stream<wbr/>Configuration<wbr/>Map</a> will
additionally return a min frame duration that is greater than
zero for each supported size-format combination.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">MANUAL_POST_PROCESSING (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>The camera device post-processing stages can be manually controlled.<wbr/>
The camera device supports basic manual control of the image post-processing
stages.<wbr/> This means the following controls are guaranteed to be supported:</p>
<ul>
<li>
<p>Manual tonemap control</p>
<ul>
<li><a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a></li>
<li><a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a></li>
<li><a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></li>
<li><a href="#controls_android.tonemap.gamma">android.<wbr/>tonemap.<wbr/>gamma</a></li>
<li><a href="#controls_android.tonemap.presetCurve">android.<wbr/>tonemap.<wbr/>preset<wbr/>Curve</a></li>
</ul>
</li>
<li>
<p>Manual white balance control</p>
<ul>
<li><a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a></li>
<li><a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a></li>
</ul>
</li>
<li>Manual lens shading map control<ul>
<li><a href="#controls_android.shading.mode">android.<wbr/>shading.<wbr/>mode</a></li>
<li><a href="#controls_android.statistics.lensShadingMapMode">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode</a></li>
<li><a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a></li>
<li><a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a></li>
</ul>
</li>
<li>Manual aberration correction control (if aberration correction is supported)<ul>
<li><a href="#controls_android.colorCorrection.aberrationMode">android.<wbr/>color<wbr/>Correction.<wbr/>aberration<wbr/>Mode</a></li>
<li><a href="#static_android.colorCorrection.availableAberrationModes">android.<wbr/>color<wbr/>Correction.<wbr/>available<wbr/>Aberration<wbr/>Modes</a></li>
</ul>
</li>
<li>Auto white balance lock<ul>
<li><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a></li>
</ul>
</li>
</ul>
<p>If auto white balance is enabled,<wbr/> then the camera device
will accurately report the values applied by AWB in the result.<wbr/></p>
<p>A given camera device may also support additional post-processing
controls,<wbr/> but this capability only covers the above list of controls.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">RAW (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>The camera device supports outputting RAW buffers and
metadata for interpreting them.<wbr/></p>
<p>Devices supporting the RAW capability allow both for
saving DNG files,<wbr/> and for direct application processing of
raw sensor images.<wbr/></p>
<ul>
<li>RAW_<wbr/>SENSOR is supported as an output format.<wbr/></li>
<li>The maximum available resolution for RAW_<wbr/>SENSOR streams
  will match either the value in
  <a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a> or
  <a href="#static_android.sensor.info.preCorrectionActiveArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<wbr/>Active<wbr/>Array<wbr/>Size</a>.<wbr/></li>
<li>All DNG-related optional metadata entries are provided
  by the camera device.<wbr/></li>
</ul></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">PRIVATE_REPROCESSING (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>The camera device supports the Zero Shutter Lag reprocessing use case.<wbr/></p>
<ul>
<li>One input stream is supported,<wbr/> that is,<wbr/> <code><a href="#static_android.request.maxNumInputStreams">android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Input<wbr/>Streams</a> == 1</code>.<wbr/></li>
<li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#PRIVATE">ImageFormat#PRIVATE</a> is supported as an output/<wbr/>input format,<wbr/>
  that is,<wbr/> <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#PRIVATE">ImageFormat#PRIVATE</a> is included in the lists of
  formats returned by <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getInputFormats">StreamConfigurationMap#getInputFormats</a> and <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputFormats">StreamConfigurationMap#getOutputFormats</a>.<wbr/></li>
<li><a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getValidOutputFormatsForInput">StreamConfigurationMap#getValidOutputFormatsForInput</a>
  returns non empty int[] for each supported input format returned by <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getInputFormats">StreamConfigurationMap#getInputFormats</a>.<wbr/></li>
<li>Each size returned by <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getInputSizes">getInputSizes(ImageFormat.<wbr/>PRIVATE)</a> is also included in <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputSizes">getOutputSizes(ImageFormat.<wbr/>PRIVATE)</a></li>
<li>Using <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#PRIVATE">ImageFormat#PRIVATE</a> does not cause a frame rate drop
  relative to the sensor's maximum capture rate (at that resolution).<wbr/></li>
<li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#PRIVATE">ImageFormat#PRIVATE</a> will be reprocessable into both
  <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a> and
  <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a> formats.<wbr/></li>
<li>The maximum available resolution for PRIVATE streams
  (both input/<wbr/>output) will match the maximum available
  resolution of JPEG streams.<wbr/></li>
<li>Static metadata <a href="#static_android.reprocess.maxCaptureStall">android.<wbr/>reprocess.<wbr/>max<wbr/>Capture<wbr/>Stall</a>.<wbr/></li>
<li>Only below controls are effective for reprocessing requests and
  will be present in capture results,<wbr/> other controls in reprocess
  requests will be ignored by the camera device.<wbr/><ul>
<li>android.<wbr/>jpeg.<wbr/>*</li>
<li><a href="#controls_android.noiseReduction.mode">android.<wbr/>noise<wbr/>Reduction.<wbr/>mode</a></li>
<li><a href="#controls_android.edge.mode">android.<wbr/>edge.<wbr/>mode</a></li>
</ul>
</li>
<li><a href="#static_android.noiseReduction.availableNoiseReductionModes">android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Noise<wbr/>Reduction<wbr/>Modes</a> and
  <a href="#static_android.edge.availableEdgeModes">android.<wbr/>edge.<wbr/>available<wbr/>Edge<wbr/>Modes</a> will both list ZERO_<wbr/>SHUTTER_<wbr/>LAG as a supported mode.<wbr/></li>
</ul></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">READ_SENSOR_SETTINGS (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>The camera device supports accurately reporting the sensor settings for many of
the sensor controls while the built-in 3A algorithm is running.<wbr/>  This allows
reporting of sensor settings even when these settings cannot be manually changed.<wbr/></p>
<p>The values reported for the following controls are guaranteed to be available
in the CaptureResult,<wbr/> including when 3A is enabled:</p>
<ul>
<li>Exposure control<ul>
<li><a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a></li>
</ul>
</li>
<li>Sensitivity control<ul>
<li><a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a></li>
</ul>
</li>
<li>Lens controls (if the lens is adjustable)<ul>
<li><a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a></li>
<li><a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a></li>
</ul>
</li>
</ul>
<p>This capability is a subset of the MANUAL_<wbr/>SENSOR control capability,<wbr/> and will
always be included if the MANUAL_<wbr/>SENSOR capability is available.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">BURST_CAPTURE (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>The camera device supports capturing high-resolution images at &gt;= 20 frames per
second,<wbr/> in at least the uncompressed YUV format,<wbr/> when post-processing settings are set
to FAST.<wbr/> Additionally,<wbr/> maximum-resolution images can be captured at &gt;= 10 frames
per second.<wbr/>  Here,<wbr/> 'high resolution' means at least 8 megapixels,<wbr/> or the maximum
resolution of the device,<wbr/> whichever is smaller.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">YUV_REPROCESSING (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>The camera device supports the YUV_<wbr/>420_<wbr/>888 reprocessing use case,<wbr/> similar as
PRIVATE_<wbr/>REPROCESSING,<wbr/> This capability requires the camera device to support the
following:</p>
<ul>
<li>One input stream is supported,<wbr/> that is,<wbr/> <code><a href="#static_android.request.maxNumInputStreams">android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Input<wbr/>Streams</a> == 1</code>.<wbr/></li>
<li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a> is supported as an output/<wbr/>input
  format,<wbr/> that is,<wbr/> YUV_<wbr/>420_<wbr/>888 is included in the lists of formats returned by <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getInputFormats">StreamConfigurationMap#getInputFormats</a> and <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputFormats">StreamConfigurationMap#getOutputFormats</a>.<wbr/></li>
<li><a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getValidOutputFormatsForInput">StreamConfigurationMap#getValidOutputFormatsForInput</a>
  returns non-empty int[] for each supported input format returned by <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getInputFormats">StreamConfigurationMap#getInputFormats</a>.<wbr/></li>
<li>Each size returned by <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getInputSizes">get<wbr/>Input<wbr/>Sizes(YUV_<wbr/>420_<wbr/>888)</a> is also included in <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputSizes">get<wbr/>Output<wbr/>Sizes(YUV_<wbr/>420_<wbr/>888)</a></li>
<li>Using <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a> does not cause a frame rate
  drop relative to the sensor's maximum capture rate (at that resolution).<wbr/></li>
<li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a> will be reprocessable into both
  <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a> and <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a> formats.<wbr/></li>
<li>The maximum available resolution for <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a> streams (both input/<wbr/>output) will match the
  maximum available resolution of <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a> streams.<wbr/></li>
<li>Static metadata <a href="#static_android.reprocess.maxCaptureStall">android.<wbr/>reprocess.<wbr/>max<wbr/>Capture<wbr/>Stall</a>.<wbr/></li>
<li>Only the below controls are effective for reprocessing requests and will be present
  in capture results.<wbr/> The reprocess requests are from the original capture results
  that are associated with the intermediate <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a> output buffers.<wbr/>  All other controls in the
  reprocess requests will be ignored by the camera device.<wbr/><ul>
<li>android.<wbr/>jpeg.<wbr/>*</li>
<li><a href="#controls_android.noiseReduction.mode">android.<wbr/>noise<wbr/>Reduction.<wbr/>mode</a></li>
<li><a href="#controls_android.edge.mode">android.<wbr/>edge.<wbr/>mode</a></li>
<li><a href="#controls_android.reprocess.effectiveExposureFactor">android.<wbr/>reprocess.<wbr/>effective<wbr/>Exposure<wbr/>Factor</a></li>
</ul>
</li>
<li><a href="#static_android.noiseReduction.availableNoiseReductionModes">android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Noise<wbr/>Reduction<wbr/>Modes</a> and
  <a href="#static_android.edge.availableEdgeModes">android.<wbr/>edge.<wbr/>available<wbr/>Edge<wbr/>Modes</a> will both list ZERO_<wbr/>SHUTTER_<wbr/>LAG as a supported mode.<wbr/></li>
</ul></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">DEPTH_OUTPUT (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>The camera device can produce depth measurements from its field of view.<wbr/></p>
<p>This capability requires the camera device to support the following:</p>
<ul>
<li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#DEPTH16">ImageFormat#DEPTH16</a> is supported as
  an output format.<wbr/></li>
<li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#DEPTH_POINT_CLOUD">Image<wbr/>Format#DEPTH_<wbr/>POINT_<wbr/>CLOUD</a> is
  optionally supported as an output format.<wbr/></li>
<li>This camera device,<wbr/> and all camera devices with the same <a href="#static_android.lens.facing">android.<wbr/>lens.<wbr/>facing</a>,<wbr/> will
  list the following calibration metadata entries in both <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html">CameraCharacteristics</a>
  and <a href="https://developer.android.com/reference/android/hardware/camera2/CaptureResult.html">CaptureResult</a>:<ul>
<li><a href="#static_android.lens.poseTranslation">android.<wbr/>lens.<wbr/>pose<wbr/>Translation</a></li>
<li><a href="#static_android.lens.poseRotation">android.<wbr/>lens.<wbr/>pose<wbr/>Rotation</a></li>
<li><a href="#static_android.lens.intrinsicCalibration">android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration</a></li>
<li><a href="#static_android.lens.distortion">android.<wbr/>lens.<wbr/>distortion</a></li>
</ul>
</li>
<li>The <a href="#static_android.depth.depthIsExclusive">android.<wbr/>depth.<wbr/>depth<wbr/>Is<wbr/>Exclusive</a> entry is listed by this device.<wbr/></li>
<li>As of Android P,<wbr/> the <a href="#static_android.lens.poseReference">android.<wbr/>lens.<wbr/>pose<wbr/>Reference</a> entry is listed by this device.<wbr/></li>
<li>A LIMITED camera with only the DEPTH_<wbr/>OUTPUT capability does not have to support
  normal YUV_<wbr/>420_<wbr/>888,<wbr/> JPEG,<wbr/> and PRIV-format outputs.<wbr/> It only has to support the DEPTH16
  format.<wbr/></li>
</ul>
<p>Generally,<wbr/> depth output operates at a slower frame rate than standard color capture,<wbr/>
so the DEPTH16 and DEPTH_<wbr/>POINT_<wbr/>CLOUD formats will commonly have a stall duration that
should be accounted for (see <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputStallDuration">StreamConfigurationMap#getOutputStallDuration</a>).<wbr/>
On a device that supports both depth and color-based output,<wbr/> to enable smooth preview,<wbr/>
using a repeating burst is recommended,<wbr/> where a depth-output target is only included
once every N frames,<wbr/> where N is the ratio between preview output rate and depth output
rate,<wbr/> including depth stall time.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">CONSTRAINED_HIGH_SPEED_VIDEO (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>The device supports constrained high speed video recording (frame rate &gt;=120fps) use
case.<wbr/> The camera device will support high speed capture session created by <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createConstrainedHighSpeedCaptureSession">CameraDevice#createConstrainedHighSpeedCaptureSession</a>,<wbr/> which
only accepts high speed request lists created by <a href="https://developer.android.com/reference/android/hardware/camera2/CameraConstrainedHighSpeedCaptureSession.html#createHighSpeedRequestList">CameraConstrainedHighSpeedCaptureSession#createHighSpeedRequestList</a>.<wbr/></p>
<p>A camera device can still support high speed video streaming by advertising the high
speed FPS ranges in <a href="#static_android.control.aeAvailableTargetFpsRanges">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges</a>.<wbr/> For this case,<wbr/> all
normal capture request per frame control and synchronization requirements will apply
to the high speed fps ranges,<wbr/> the same as all other fps ranges.<wbr/> This capability
describes the capability of a specialized operating mode with many limitations (see
below),<wbr/> which is only targeted at high speed video recording.<wbr/></p>
<p>The supported high speed video sizes and fps ranges are specified in <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getHighSpeedVideoFpsRanges">StreamConfigurationMap#getHighSpeedVideoFpsRanges</a>.<wbr/>
To get desired output frame rates,<wbr/> the application is only allowed to select video
size and FPS range combinations provided by <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getHighSpeedVideoSizes">StreamConfigurationMap#getHighSpeedVideoSizes</a>.<wbr/>  The
fps range can be controlled via <a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a>.<wbr/></p>
<p>In this capability,<wbr/> the camera device will override aeMode,<wbr/> awbMode,<wbr/> and afMode to
ON,<wbr/> AUTO,<wbr/> and CONTINUOUS_<wbr/>VIDEO,<wbr/> respectively.<wbr/> All post-processing block mode
controls will be overridden to be FAST.<wbr/> Therefore,<wbr/> no manual control of capture
and post-processing parameters is possible.<wbr/> All other controls operate the
same as when <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == AUTO.<wbr/> This means that all other
android.<wbr/>control.<wbr/>* fields continue to work,<wbr/> such as</p>
<ul>
<li><a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a></li>
<li><a href="#controls_android.control.aeExposureCompensation">android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation</a></li>
<li><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a></li>
<li><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a></li>
<li><a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a></li>
<li><a href="#controls_android.control.aeRegions">android.<wbr/>control.<wbr/>ae<wbr/>Regions</a></li>
<li><a href="#controls_android.control.afRegions">android.<wbr/>control.<wbr/>af<wbr/>Regions</a></li>
<li><a href="#controls_android.control.awbRegions">android.<wbr/>control.<wbr/>awb<wbr/>Regions</a></li>
<li><a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a></li>
<li><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a></li>
</ul>
<p>Outside of android.<wbr/>control.<wbr/>*,<wbr/> the following controls will work:</p>
<ul>
<li><a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> (TORCH mode only,<wbr/> automatic flash for still capture will not
work since aeMode is ON)</li>
<li><a href="#controls_android.lens.opticalStabilizationMode">android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode</a> (if it is supported)</li>
<li><a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a></li>
<li><a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a> (if it is supported)</li>
</ul>
<p>For high speed recording use case,<wbr/> the actual maximum supported frame rate may
be lower than what camera can output,<wbr/> depending on the destination Surfaces for
the image data.<wbr/> For example,<wbr/> if the destination surface is from video encoder,<wbr/>
the application need check if the video encoder is capable of supporting the
high frame rate for a given video size,<wbr/> or it will end up with lower recording
frame rate.<wbr/> If the destination surface is from preview window,<wbr/> the actual preview frame
rate will be bounded by the screen refresh rate.<wbr/></p>
<p>The camera device will only support up to 2 high speed simultaneous output surfaces
(preview and recording surfaces) in this mode.<wbr/> Above controls will be effective only
if all of below conditions are true:</p>
<ul>
<li>The application creates a camera capture session with no more than 2 surfaces via
<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createConstrainedHighSpeedCaptureSession">CameraDevice#createConstrainedHighSpeedCaptureSession</a>.<wbr/> The
targeted surfaces must be preview surface (either from <a href="https://developer.android.com/reference/android/view/SurfaceView.html">SurfaceView</a> or <a href="https://developer.android.com/reference/android/graphics/SurfaceTexture.html">SurfaceTexture</a>) or recording
surface(either from <a href="https://developer.android.com/reference/android/media/MediaRecorder.html#getSurface">MediaRecorder#getSurface</a> or <a href="https://developer.android.com/reference/android/media/MediaCodec.html#createInputSurface">MediaCodec#createInputSurface</a>).<wbr/></li>
<li>The stream sizes are selected from the sizes reported by
<a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getHighSpeedVideoSizes">StreamConfigurationMap#getHighSpeedVideoSizes</a>.<wbr/></li>
<li>The FPS ranges are selected from <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getHighSpeedVideoFpsRanges">StreamConfigurationMap#getHighSpeedVideoFpsRanges</a>.<wbr/></li>
</ul>
<p>When above conditions are NOT satistied,<wbr/>
<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createConstrainedHighSpeedCaptureSession">CameraDevice#createConstrainedHighSpeedCaptureSession</a>
will fail.<wbr/></p>
<p>Switching to a FPS range that has different maximum FPS may trigger some camera device
reconfigurations,<wbr/> which may introduce extra latency.<wbr/> It is recommended that
the application avoids unnecessary maximum target FPS changes as much as possible
during high speed streaming.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">MOTION_TRACKING (v3.3)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>The camera device supports the MOTION_<wbr/>TRACKING value for
<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a>,<wbr/> which limits maximum exposure time to 20 ms.<wbr/></p>
<p>This limits the motion blur of capture images,<wbr/> resulting in better image tracking
results for use cases such as image stabilization or augmented reality.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">LOGICAL_MULTI_CAMERA (v3.3)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>The camera device is a logical camera backed by two or more physical cameras that are
also exposed to the application.<wbr/></p>
<p>Camera application shouldn't assume that there are at most 1 rear camera and 1 front
camera in the system.<wbr/> For an application that switches between front and back cameras,<wbr/>
the recommendation is to switch between the first rear camera and the first front
camera in the list of supported camera devices.<wbr/></p>
<p>This capability requires the camera device to support the following:</p>
<ul>
<li>This camera device must list the following static metadata entries in <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html">CameraCharacteristics</a>:<ul>
<li><a href="#static_android.logicalMultiCamera.physicalIds">android.<wbr/>logical<wbr/>Multi<wbr/>Camera.<wbr/>physical<wbr/>Ids</a></li>
<li><a href="#static_android.logicalMultiCamera.sensorSyncType">android.<wbr/>logical<wbr/>Multi<wbr/>Camera.<wbr/>sensor<wbr/>Sync<wbr/>Type</a></li>
</ul>
</li>
<li>The underlying physical cameras' static metadata must list the following entries,<wbr/>
  so that the application can correlate pixels from the physical streams:<ul>
<li><a href="#static_android.lens.poseReference">android.<wbr/>lens.<wbr/>pose<wbr/>Reference</a></li>
<li><a href="#static_android.lens.poseRotation">android.<wbr/>lens.<wbr/>pose<wbr/>Rotation</a></li>
<li><a href="#static_android.lens.poseTranslation">android.<wbr/>lens.<wbr/>pose<wbr/>Translation</a></li>
<li><a href="#static_android.lens.intrinsicCalibration">android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration</a></li>
<li><a href="#static_android.lens.distortion">android.<wbr/>lens.<wbr/>distortion</a></li>
</ul>
</li>
<li>The SENSOR_<wbr/>INFO_<wbr/>TIMESTAMP_<wbr/>SOURCE of the logical device and physical devices must be
  the same.<wbr/></li>
<li>The logical camera device must be LIMITED or higher device.<wbr/></li>
</ul>
<p>Both the logical camera device and its underlying physical devices support the
mandatory stream combinations required for their device levels.<wbr/></p>
<p>Additionally,<wbr/> for each guaranteed stream combination,<wbr/> the logical camera supports:</p>
<ul>
<li>For each guaranteed stream combination,<wbr/> the logical camera supports replacing one
  logical <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">YUV_<wbr/>420_<wbr/>888</a>
  or raw stream with two physical streams of the same size and format,<wbr/> each from a
  separate physical camera,<wbr/> given that the size and format are supported by both
  physical cameras.<wbr/></li>
<li>If the logical camera doesn't advertise RAW capability,<wbr/> but the underlying physical
  cameras do,<wbr/> the logical camera will support guaranteed stream combinations for RAW
  capability,<wbr/> except that the RAW streams will be physical streams,<wbr/> each from a separate
  physical camera.<wbr/> This is usually the case when the physical cameras have different
  sensor sizes.<wbr/></li>
</ul>
<p>Using physical streams in place of a logical stream of the same size and format will
not slow down the frame rate of the capture,<wbr/> as long as the minimum frame duration
of the physical and logical streams are the same.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">MONOCHROME (v3.3)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>The camera device is a monochrome camera that doesn't contain a color filter array,<wbr/>
and the pixel values on U and V planes are all 128.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>List of capabilities that this camera device
advertises as fully supporting.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>A capability is a contract that the camera device makes in order
to be able to satisfy one or more use cases.<wbr/></p>
<p>Listing a capability guarantees that the whole set of features
required to support a common use will all be available.<wbr/></p>
<p>Using a subset of the functionality provided by an unsupported
capability may be possible on a specific camera device implementation;
to do this query each of <a href="#static_android.request.availableRequestKeys">android.<wbr/>request.<wbr/>available<wbr/>Request<wbr/>Keys</a>,<wbr/>
<a href="#static_android.request.availableResultKeys">android.<wbr/>request.<wbr/>available<wbr/>Result<wbr/>Keys</a>,<wbr/>
<a href="#static_android.request.availableCharacteristicsKeys">android.<wbr/>request.<wbr/>available<wbr/>Characteristics<wbr/>Keys</a>.<wbr/></p>
<p>The following capabilities are guaranteed to be available on
<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> <code>==</code> FULL devices:</p>
<ul>
<li>MANUAL_<wbr/>SENSOR</li>
<li>MANUAL_<wbr/>POST_<wbr/>PROCESSING</li>
</ul>
<p>Other capabilities may be available on either FULL or LIMITED
devices,<wbr/> but the application should query this key to be sure.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Additional constraint details per-capability will be available
in the Compatibility Test Suite.<wbr/></p>
<p>Minimum baseline requirements required for the
BACKWARD_<wbr/>COMPATIBLE capability are not explicitly listed.<wbr/>
Instead refer to "BC" tags and the camera CTS tests in the
android.<wbr/>hardware.<wbr/>camera2.<wbr/>cts package.<wbr/></p>
<p>Listed controls that can be either request or result (e.<wbr/>g.<wbr/>
<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>) must be available both in the
request and the result in order to be considered to be
capability-compliant.<wbr/></p>
<p>For example,<wbr/> if the HAL claims to support MANUAL control,<wbr/>
then exposure time must be configurable via the request <em>and</em>
the actual exposure applied must be available via
the result.<wbr/></p>
<p>If MANUAL_<wbr/>SENSOR is omitted,<wbr/> the HAL may choose to omit the
<a href="#static_android.scaler.availableMinFrameDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Min<wbr/>Frame<wbr/>Durations</a> static property entirely.<wbr/></p>
<p>For PRIVATE_<wbr/>REPROCESSING and YUV_<wbr/>REPROCESSING capabilities,<wbr/> see
hardware/<wbr/>libhardware/<wbr/>include/<wbr/>hardware/<wbr/>camera3.<wbr/>h Section 10 for more information.<wbr/></p>
<p>Devices that support the MANUAL_<wbr/>SENSOR capability must support the
CAMERA3_<wbr/>TEMPLATE_<wbr/>MANUAL template defined in camera3.<wbr/>h.<wbr/></p>
<p>Devices that support the PRIVATE_<wbr/>REPROCESSING capability or the
YUV_<wbr/>REPROCESSING capability must support the
CAMERA3_<wbr/>TEMPLATE_<wbr/>ZERO_<wbr/>SHUTTER_<wbr/>LAG template defined in camera3.<wbr/>h.<wbr/></p>
<p>For DEPTH_<wbr/>OUTPUT,<wbr/> the depth-format keys
<a href="#static_android.depth.availableDepthStreamConfigurations">android.<wbr/>depth.<wbr/>available<wbr/>Depth<wbr/>Stream<wbr/>Configurations</a>,<wbr/>
<a href="#static_android.depth.availableDepthMinFrameDurations">android.<wbr/>depth.<wbr/>available<wbr/>Depth<wbr/>Min<wbr/>Frame<wbr/>Durations</a>,<wbr/>
<a href="#static_android.depth.availableDepthStallDurations">android.<wbr/>depth.<wbr/>available<wbr/>Depth<wbr/>Stall<wbr/>Durations</a> must be available,<wbr/> in
addition to the other keys explicitly mentioned in the DEPTH_<wbr/>OUTPUT
enum notes.<wbr/> The entry <a href="#static_android.depth.maxDepthSamples">android.<wbr/>depth.<wbr/>max<wbr/>Depth<wbr/>Samples</a> must be available
if the DEPTH_<wbr/>POINT_<wbr/>CLOUD format is supported (HAL pixel format BLOB,<wbr/> dataspace
DEPTH).<wbr/></p>
<p>For a camera device with LOGICAL_<wbr/>MULTI_<wbr/>CAMERA capability,<wbr/> it should operate in the
same way as a physical camera device based on its hardware level and capabilities.<wbr/>
It's recommended that its feature set is superset of that of individual physical cameras.<wbr/></p>
<ul>
<li>
<p>In camera1 API,<wbr/> to maintain application compatibility,<wbr/> for each {logical_<wbr/>camera_<wbr/>id,<wbr/>
physical_<wbr/>camera_<wbr/>1_<wbr/>id,<wbr/> physical_<wbr/>camera_<wbr/>2_<wbr/>id,<wbr/> ...<wbr/>} combination,<wbr/> where logical_<wbr/>camera_<wbr/>id
is composed of physical_<wbr/>camera_<wbr/>N_<wbr/>id,<wbr/> camera framework will only advertise one camera id
(within the combination) that is frontmost in the HAL published camera id list.<wbr/></p>
</li>
<li>
<p>Camera HAL is strongly recommended to advertise camera devices with best feature,<wbr/>
power,<wbr/> performance,<wbr/> and latency tradeoffs at the front of the camera id list.<wbr/></p>
</li>
</ul>
<p>For MONOCHROME,<wbr/> the camera device must also advertise BACKWARD_<wbr/>COMPATIBLE capability,<wbr/> and
it is exclusive of both RAW and MANUAL_<wbr/>POST_<wbr/>PROCESSING capabilities:</p>
<ul>
<li>
<p>To maintain backward compatibility,<wbr/> the camera device must support all
BACKWARD_<wbr/>COMPATIBLE required keys.<wbr/> The <a href="#static_android.control.awbAvailableModes">android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes</a> key only contains
AUTO,<wbr/> and <a href="#dynamic_android.control.awbState">android.<wbr/>control.<wbr/>awb<wbr/>State</a> are either CONVERGED or LOCKED depending on
<a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a>.<wbr/></p>
</li>
<li>
<p>A monochrome device doesn't need to advertise DNG related optional metadata tags.<wbr/></p>
</li>
<li>
<p><a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>,<wbr/> <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> and
<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are not applicable.<wbr/> So the camera device cannot
be a FULL device.<wbr/> However,<wbr/> the HAL can still advertise other individual capabilites.<wbr/></p>
</li>
<li>
<p>If the device supports tonemap control,<wbr/> only <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> is used.<wbr/>
CurveGreen and curveBlue are no-ops.<wbr/></p>
</li>
</ul>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.request.availableRequestKeys">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>request.<wbr/>available<wbr/>Request<wbr/>Keys
            </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"> [ndk_public]</span>


              <span class="entry_type_hwlevel">[legacy] </span>




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

            <td class="entry_description">
              <p>A list of all keys that the camera device has available
to use with <a href="https://developer.android.com/reference/android/hardware/camera2/CaptureRequest.html">CaptureRequest</a>.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Attempting to set a key into a CaptureRequest that is not
listed here will result in an invalid request and will be rejected
by the camera device.<wbr/></p>
<p>This field can be used to query the feature set of a camera device
at a more granular level than capabilities.<wbr/> This is especially
important for optional keys that are not listed under any capability
in <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Vendor tags can be listed here.<wbr/> Vendor tag metadata should also
use the extensions C api (refer to camera3.<wbr/>h for more details).<wbr/></p>
<p>Setting/<wbr/>getting vendor tags will be checked against the metadata
vendor extensions API and not against this field.<wbr/></p>
<p>The HAL must not consume any request tags that are not listed either
here or in the vendor tag list.<wbr/></p>
<p>The public camera2 API will always make the vendor tags visible
via
<a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#getAvailableCaptureRequestKeys">CameraCharacteristics#getAvailableCaptureRequestKeys</a>.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.request.availableResultKeys">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>request.<wbr/>available<wbr/>Result<wbr/>Keys
            </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"> [ndk_public]</span>


              <span class="entry_type_hwlevel">[legacy] </span>




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

            <td class="entry_description">
              <p>A list of all keys that the camera device has available to use with <a href="https://developer.android.com/reference/android/hardware/camera2/CaptureResult.html">CaptureResult</a>.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Attempting to get a key from a CaptureResult that is not
listed here will always return a <code>null</code> value.<wbr/> Getting a key from
a CaptureResult that is listed here will generally never return a <code>null</code>
value.<wbr/></p>
<p>The following keys may return <code>null</code> unless they are enabled:</p>
<ul>
<li><a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> (non-null iff <a href="#controls_android.statistics.lensShadingMapMode">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode</a> == ON)</li>
</ul>
<p>(Those sometimes-null keys will nevertheless be listed here
if they are available.<wbr/>)</p>
<p>This field can be used to query the feature set of a camera device
at a more granular level than capabilities.<wbr/> This is especially
important for optional keys that are not listed under any capability
in <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Tags listed here must always have an entry in the result metadata,<wbr/>
even if that size is 0 elements.<wbr/> Only array-type tags (e.<wbr/>g.<wbr/> lists,<wbr/>
matrices,<wbr/> strings) are allowed to have 0 elements.<wbr/></p>
<p>Vendor tags can be listed here.<wbr/> Vendor tag metadata should also
use the extensions C api (refer to camera3.<wbr/>h for more details).<wbr/></p>
<p>Setting/<wbr/>getting vendor tags will be checked against the metadata
vendor extensions API and not against this field.<wbr/></p>
<p>The HAL must not produce any result tags that are not listed either
here or in the vendor tag list.<wbr/></p>
<p>The public camera2 API will always make the vendor tags visible via <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#getAvailableCaptureResultKeys">CameraCharacteristics#getAvailableCaptureResultKeys</a>.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.request.availableCharacteristicsKeys">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>request.<wbr/>available<wbr/>Characteristics<wbr/>Keys
            </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"> [ndk_public]</span>


              <span class="entry_type_hwlevel">[legacy] </span>




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

            <td class="entry_description">
              <p>A list of all keys that the camera device has available to use with <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html">CameraCharacteristics</a>.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This entry follows the same rules as
<a href="#static_android.request.availableResultKeys">android.<wbr/>request.<wbr/>available<wbr/>Result<wbr/>Keys</a> (except that it applies for
CameraCharacteristics instead of CaptureResult).<wbr/> See above for more
details.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Keys listed here must always have an entry in the static info metadata,<wbr/>
even if that size is 0 elements.<wbr/> Only array-type tags (e.<wbr/>g.<wbr/> lists,<wbr/>
matrices,<wbr/> strings) are allowed to have 0 elements.<wbr/></p>
<p>Vendor tags can listed here.<wbr/> Vendor tag metadata should also use
the extensions C api (refer to camera3.<wbr/>h for more details).<wbr/></p>
<p>Setting/<wbr/>getting vendor tags will be checked against the metadata
vendor extensions API and not against this field.<wbr/></p>
<p>The HAL must not have any tags in its static info that are not listed
either here or in the vendor tag list.<wbr/></p>
<p>The public camera2 API will always make the vendor tags visible
via <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#getKeys">CameraCharacteristics#getKeys</a>.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.request.availableSessionKeys">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>request.<wbr/>available<wbr/>Session<wbr/>Keys
            </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"> [ndk_public]</span>


              <span class="entry_type_hwlevel">[legacy] </span>




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

            <td class="entry_description">
              <p>A subset of the available request keys that the camera device
can pass as part of the capture session initialization.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>3</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This is a subset of <a href="#static_android.request.availableRequestKeys">android.<wbr/>request.<wbr/>available<wbr/>Request<wbr/>Keys</a> which
contains a list of keys that are difficult to apply per-frame and
can result in unexpected delays when modified during the capture session
lifetime.<wbr/> Typical examples include parameters that require a
time-consuming hardware re-configuration or internal camera pipeline
change.<wbr/> For performance reasons we advise clients to pass their initial
values as part of
<a href="https://developer.android.com/reference/SessionConfiguration.html#setSessionParameters">SessionConfiguration#setSessionParameters</a>.<wbr/>
Once the camera capture session is enabled it is also recommended to avoid
changing them from their initial values set in
<a href="https://developer.android.com/reference/SessionConfiguration.html#setSessionParameters">SessionConfiguration#setSessionParameters</a>.<wbr/>
Control over session parameters can still be exerted in capture requests
but clients should be aware and expect delays during their application.<wbr/>
An example usage scenario could look like this:</p>
<ul>
<li>The camera client starts by quering the session parameter key list via
  <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#getAvailableSessionKeys">CameraCharacteristics#getAvailableSessionKeys</a>.<wbr/></li>
<li>Before triggering the capture session create sequence,<wbr/> a capture request
  must be built via
  <a href="https://developer.android.com/reference/CameraDevice.html#createCaptureRequest">CameraDevice#createCaptureRequest</a>
  using an appropriate template matching the particular use case.<wbr/></li>
<li>The client should go over the list of session parameters and check
  whether some of the keys listed matches with the parameters that
  they intend to modify as part of the first capture request.<wbr/></li>
<li>If there is no such match,<wbr/> the capture request can be  passed
  unmodified to
  <a href="https://developer.android.com/reference/SessionConfiguration.html#setSessionParameters">SessionConfiguration#setSessionParameters</a>.<wbr/></li>
<li>If matches do exist,<wbr/> the client should update the respective values
  and pass the request to
  <a href="https://developer.android.com/reference/SessionConfiguration.html#setSessionParameters">SessionConfiguration#setSessionParameters</a>.<wbr/></li>
<li>After the capture session initialization completes the session parameter
  key list can continue to serve as reference when posting or updating
  further requests.<wbr/> As mentioned above further changes to session
  parameters should ideally be avoided,<wbr/> if updates are necessary
  however clients could expect a delay/<wbr/>glitch during the
  parameter switch.<wbr/></li>
</ul>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>If <a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a> is part of the session parameters and constrained high
speed mode is enabled,<wbr/> then only modifications of the maximum framerate value will be
monitored by the framework and can trigger camera re-configuration.<wbr/> For more information
about framerate ranges during constrained high speed sessions see
<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createConstrainedHighSpeedCaptureSession">CameraDevice#createConstrainedHighSpeedCaptureSession</a>.<wbr/>
Vendor tags can be listed here.<wbr/> Vendor tag metadata should also
use the extensions C api (refer to
android.<wbr/>hardware.<wbr/>camera.<wbr/>device.<wbr/>V3_<wbr/>4.<wbr/>Stream<wbr/>Configuration.<wbr/>session<wbr/>Params for more details).<wbr/></p>
<p>Setting/<wbr/>getting vendor tags will be checked against the metadata
vendor extensions API and not against this field.<wbr/></p>
<p>The HAL must not consume any request tags in the session parameters that
are not listed either here or in the vendor tag list.<wbr/></p>
<p>The public camera2 API will always make the vendor tags visible
via
<a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#getAvailableSessionKeys">CameraCharacteristics#getAvailableSessionKeys</a>.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.request.availablePhysicalCameraRequestKeys">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>request.<wbr/>available<wbr/>Physical<wbr/>Camera<wbr/>Request<wbr/>Keys
            </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"> [hidden]</span>


              <span class="entry_type_hwlevel">[limited] </span>




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

            <td class="entry_description">
              <p>A subset of the available request keys that can be overriden for
physical devices backing a logical multi-camera.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>3</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This is a subset of <a href="#static_android.request.availableRequestKeys">android.<wbr/>request.<wbr/>available<wbr/>Request<wbr/>Keys</a> which contains a list
of keys that can be overriden using <a href="https://developer.android.com/reference/CaptureRequest/Builder.html#setPhysicalCameraKey">Builder#setPhysicalCameraKey</a>.<wbr/>
The respective value of such request key can be obtained by calling
<a href="https://developer.android.com/reference/CaptureRequest/Builder.html#getPhysicalCameraKey">Builder#getPhysicalCameraKey</a>.<wbr/> Capture requests that contain
individual physical device requests must be built via
<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureRequest(int,">Set)</a>.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Vendor tags can be listed here.<wbr/> Vendor tag metadata should also
use the extensions C api (refer to
android.<wbr/>hardware.<wbr/>camera.<wbr/>device.<wbr/>V3_<wbr/>4.<wbr/>Capture<wbr/>Request.<wbr/>physical<wbr/>Camera<wbr/>Settings for more
details).<wbr/></p>
<p>Setting/<wbr/>getting vendor tags will be checked against the metadata
vendor extensions API and not against this field.<wbr/></p>
<p>The HAL must not consume any request tags in the session parameters that
are not listed either here or in the vendor tag list.<wbr/></p>
<p>There should be no overlap between this set of keys and the available session keys
<a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#getAvailableSessionKeys">CameraCharacteristics#getAvailableSessionKeys</a> along
with any other controls that can have impact on the dual-camera sync.<wbr/></p>
<p>The public camera2 API will always make the vendor tags visible
via
<a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#getAvailablePhysicalCameraRequestKeys">CameraCharacteristics#getAvailablePhysicalCameraRequestKeys</a>.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="dynamic_android.request.frameCount">
            <td class="entry_name
                entry_name_deprecated
             " rowspan="3">
              android.<wbr/>request.<wbr/>frame<wbr/>Count
            </td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>

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



              <span class="entry_type_deprecated">[deprecated] </span>



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

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

            <td class="entry_units">
              count of frames
            </td>

            <td class="entry_range">
              <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
              <p>&gt; 0</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Reset on release()</p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.request.id">
            <td class="entry_name
             " rowspan="1">
              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">
              <p>An application-specified ID for the current
request.<wbr/> Must be maintained unchanged in output
frame</p>
            </td>

            <td class="entry_units">
              arbitrary integer assigned by application
            </td>

            <td class="entry_range">
              <p>Any int</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.request.metadataMode">
            <td class="entry_name
             " rowspan="1">
              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 (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>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</p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FULL (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
only be produced if they are separately
enabled</p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>How much metadata to produce on
output</p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_FUTURE">FUTURE</a></li>
              </ul>
            </td>

          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.request.outputStreams">
            <td class="entry_name
                entry_name_deprecated
             " rowspan="3">
              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>



              <span class="entry_type_deprecated">[deprecated] </span>



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

            <td class="entry_description">
              <p>Lists which camera output streams image data
from this capture must be sent to</p>
            </td>

            <td class="entry_units">
              List of camera stream IDs
            </td>

            <td class="entry_range">
              <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
              <p>List must only include streams that have been
created</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>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/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.request.pipelineDepth">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>request.<wbr/>pipeline<wbr/>Depth
            </td>
            <td class="entry_type">
                <span class="entry_type_name">byte</span>

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


              <span class="entry_type_hwlevel">[legacy] </span>




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

            <td class="entry_description">
              <p>Specifies the number of pipeline stages the frame went
through from when it was exposed to when the final completed result
was available to the framework.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>&lt;= <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Depending on what settings are used in the request,<wbr/> and
what streams are configured,<wbr/> the data may undergo less processing,<wbr/>
and some pipeline stages skipped.<wbr/></p>
<p>See <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> for more details.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This value must always represent the accurate count of how many
pipeline stages were actually used.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="controls_android.scaler.cropRegion">
            <td class="entry_name
             " rowspan="5">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>




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

            <td class="entry_description">
              <p>The desired region of the sensor to read out for this capture.<wbr/></p>
            </td>

            <td class="entry_units">
              Pixel coordinates relative to
          android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
            </td>

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This control can be used to implement digital zoom.<wbr/></p>
<p>The crop region coordinate system is based off
<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>,<wbr/> with <code>(0,<wbr/> 0)</code> being the
top-left corner of the sensor active array.<wbr/></p>
<p>Output streams use this rectangle to produce their output,<wbr/>
cropping to a smaller region if necessary to maintain the
stream's aspect ratio,<wbr/> then scaling the sensor input to
match the output's configured resolution.<wbr/></p>
<p>The crop region is applied after the RAW to other color
space (e.<wbr/>g.<wbr/> YUV) conversion.<wbr/> Since raw streams
(e.<wbr/>g.<wbr/> RAW16) don't have the conversion stage,<wbr/> they are not
croppable.<wbr/> The crop region will be ignored by raw streams.<wbr/></p>
<p>For non-raw streams,<wbr/> any additional per-stream cropping will
be done to maximize the final pixel area of the stream.<wbr/></p>
<p>For example,<wbr/> if the crop region is set to a 4:3 aspect
ratio,<wbr/> then 4:3 streams will use the exact crop
region.<wbr/> 16:9 streams will further crop vertically
(letterbox).<wbr/></p>
<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
outputs will crop horizontally (pillarbox),<wbr/> and 16:9
streams will match exactly.<wbr/> These additional crops will
be centered within the crop region.<wbr/></p>
<p>The width and height of the crop region cannot
be set to be smaller than
<code>floor( activeArraySize.<wbr/>width /<wbr/> <a href="#static_android.scaler.availableMaxDigitalZoom">android.<wbr/>scaler.<wbr/>available<wbr/>Max<wbr/>Digital<wbr/>Zoom</a> )</code> and
<code>floor( activeArraySize.<wbr/>height /<wbr/> <a href="#static_android.scaler.availableMaxDigitalZoom">android.<wbr/>scaler.<wbr/>available<wbr/>Max<wbr/>Digital<wbr/>Zoom</a> )</code>,<wbr/> respectively.<wbr/></p>
<p>The camera device may adjust the crop region to account
for rounding and other hardware requirements; the final
crop region used will be included in the output capture
result.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>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/></p>
<p>For a set of output streams configured,<wbr/> if the sensor output is cropped to a smaller
size than active array size,<wbr/> the HAL need follow below cropping rules:</p>
<ul>
<li>
<p>The HAL need handle the cropRegion as if the sensor crop size is the effective active
array size.<wbr/>More specifically,<wbr/> the HAL must transform the request cropRegion from
<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a> to the sensor cropped pixel area size in this way:</p>
<ol>
<li>Translate the requested cropRegion w.<wbr/>r.<wbr/>t.,<wbr/> the left top corner of the sensor
cropped pixel area by (tx,<wbr/> ty),<wbr/>
where <code>tx = sensorCrop.<wbr/>top * (sensorCrop.<wbr/>height /<wbr/> activeArraySize.<wbr/>height)</code>
and <code>tx = sensorCrop.<wbr/>left * (sensorCrop.<wbr/>width /<wbr/> activeArraySize.<wbr/>width)</code>.<wbr/> The
(sensorCrop.<wbr/>top,<wbr/> sensorCrop.<wbr/>left) is the coordinate based off the
<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/></li>
<li>Scale the width and height of requested cropRegion with scaling factor of
sensor<wbr/>Crop.<wbr/>width/<wbr/>active<wbr/>Array<wbr/>Size.<wbr/>width and sensor<wbr/>Crop.<wbr/>height/<wbr/>active<wbr/>Array<wbr/>Size.<wbr/>height
respectively.<wbr/>
Once this new cropRegion is calculated,<wbr/> the HAL must use this region to crop the image
with regard to the sensor crop size (effective active array size).<wbr/> The HAL still need
follow the general cropping rule for this new cropRegion and effective active
array size.<wbr/></li>
</ol>
</li>
<li>
<p>The HAL must report the cropRegion with regard to <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>
The HAL need convert the new cropRegion generated above w.<wbr/>r.<wbr/>t.,<wbr/> full active array size.<wbr/>
The reported cropRegion may be slightly different with the requested cropRegion since
the HAL may adjust the crop region to account for rounding,<wbr/> conversion error,<wbr/> or other
hardware limitations.<wbr/></p>
</li>
</ul>
<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="static_android.scaler.availableFormats">
            <td class="entry_name
                entry_name_deprecated
             " rowspan="5">
              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"> [hidden as imageFormat]</span>



              <span class="entry_type_deprecated">[deprecated] </span>


                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">RAW16 (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_value">0x20</span>
                    <span class="entry_type_enum_notes"><p>RAW16 is a standard,<wbr/> cross-platform format for raw image
buffers with 16-bit pixels.<wbr/></p>
<p>Buffers of this format are typically expected to have a
Bayer Color Filter Array (CFA) layout,<wbr/> which is given in
<a href="#static_android.sensor.info.colorFilterArrangement">android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement</a>.<wbr/> Sensors with
CFAs that are not representable by a format in
<a href="#static_android.sensor.info.colorFilterArrangement">android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement</a> should not
use this format.<wbr/></p>
<p>Buffers of this format will also follow the constraints given for
RAW_<wbr/>OPAQUE buffers,<wbr/> but with relaxed performance constraints.<wbr/></p>
<p>This format is intended to give users access to the full contents
of the buffers coming directly from the image sensor prior to any
cropping or scaling operations,<wbr/> and all coordinate systems for
metadata used for this format are relative to the size of the
active region of the image sensor before any geometric distortion
correction has been applied (i.<wbr/>e.<wbr/>
<a href="#static_android.sensor.info.preCorrectionActiveArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<wbr/>Active<wbr/>Array<wbr/>Size</a>).<wbr/> Supported
dimensions for this format are limited to the full dimensions of
the sensor (e.<wbr/>g.<wbr/> either <a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a> or
<a href="#static_android.sensor.info.preCorrectionActiveArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<wbr/>Active<wbr/>Array<wbr/>Size</a> will be the
only supported output size).<wbr/></p>
<p>See <a href="#static_android.scaler.availableInputOutputFormatsMap">android.<wbr/>scaler.<wbr/>available<wbr/>Input<wbr/>Output<wbr/>Formats<wbr/>Map</a> for
the full set of performance guarantees.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">RAW_OPAQUE (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_value">0x24</span>
                    <span class="entry_type_enum_notes"><p>RAW_<wbr/>OPAQUE (or
<a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#RAW_PRIVATE">RAW_<wbr/>PRIVATE</a>
as referred in public API) is a format for raw image buffers
coming from an image sensor.<wbr/></p>
<p>The actual structure of buffers of this format is
platform-specific,<wbr/> but must follow several constraints:</p>
<ol>
<li>No image post-processing operations may have been applied to
buffers of this type.<wbr/> These buffers contain raw image data coming
directly from the image sensor.<wbr/></li>
<li>If a buffer of this format is passed to the camera device for
reprocessing,<wbr/> the resulting images will be identical to the images
produced if the buffer had come directly from the sensor and was
processed with the same settings.<wbr/></li>
</ol>
<p>The intended use for this format is to allow access to the native
raw format buffers coming directly from the camera sensor without
any additional conversions or decrease in framerate.<wbr/></p>
<p>See <a href="#static_android.scaler.availableInputOutputFormatsMap">android.<wbr/>scaler.<wbr/>available<wbr/>Input<wbr/>Output<wbr/>Formats<wbr/>Map</a> for the full set of
performance guarantees.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">YV12 (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_value">0x32315659</span>
                    <span class="entry_type_enum_notes"><p>YCrCb 4:2:0 Planar</p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">YCrCb_420_SP (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_value">0x11</span>
                    <span class="entry_type_enum_notes"><p>NV21</p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">IMPLEMENTATION_DEFINED (v3.2)</span>
                    <span class="entry_type_enum_value">0x22</span>
                    <span class="entry_type_enum_notes"><p>System internal format,<wbr/> not application-accessible</p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">YCbCr_420_888 (v3.2)</span>
                    <span class="entry_type_enum_value">0x23</span>
                    <span class="entry_type_enum_notes"><p>Flexible YUV420 Format</p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">BLOB (v3.2)</span>
                    <span class="entry_type_enum_value">0x21</span>
                    <span class="entry_type_enum_notes"><p>JPEG format</p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>The list of image formats that are supported by this
camera device for output streams.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>All camera devices will support JPEG and YUV_<wbr/>420_<wbr/>888 formats.<wbr/></p>
<p>When set to YUV_<wbr/>420_<wbr/>888,<wbr/> application can access the YUV420 data directly.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>These format values are from HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>* in
system/<wbr/>core/<wbr/>include/<wbr/>system/<wbr/>graphics.<wbr/>h.<wbr/></p>
<p>When IMPLEMENTATION_<wbr/>DEFINED is used,<wbr/> the platform
gralloc module will select a format based on the usage flags provided
by the camera HAL device and the other endpoint of the stream.<wbr/> It is
usually used by preview and recording streams,<wbr/> where the application doesn't
need access the image data.<wbr/></p>
<p>YCb<wbr/>Cr_<wbr/>420_<wbr/>888 format must be supported by the HAL.<wbr/> When an image stream
needs CPU/<wbr/>application direct access,<wbr/> this format will be used.<wbr/></p>
<p>The BLOB format must be supported by the HAL.<wbr/> This is used for the JPEG stream.<wbr/></p>
<p>A RAW_<wbr/>OPAQUE buffer should contain only pixel data.<wbr/> It is strongly
recommended that any information used by the camera device when
processing images is fully expressed by the result metadata
for that image buffer.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.scaler.availableJpegMinDurations">
            <td class="entry_name
                entry_name_deprecated
             " rowspan="3">
              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"> [hidden]</span>



              <span class="entry_type_deprecated">[deprecated] </span>



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

            <td class="entry_description">
              <p>The minimum frame duration that is supported
for each resolution in <a href="#static_android.scaler.availableJpegSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes</a>.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
              <p>TODO: Remove property.<wbr/></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This corresponds to the minimum steady-state frame duration when only
that JPEG stream is active and captured in a burst,<wbr/> with all
processing (typically in android.<wbr/>*.<wbr/>mode) set to FAST.<wbr/></p>
<p>When multiple streams are configured,<wbr/> the minimum
frame duration will be &gt;= max(individual stream min
durations)</p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.scaler.availableJpegSizes">
            <td class="entry_name
                entry_name_deprecated
             " rowspan="5">
              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"> [hidden as size]</span>



              <span class="entry_type_deprecated">[deprecated] </span>



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

            <td class="entry_description">
              <p>The JPEG resolutions that are supported by this camera device.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
              <p>TODO: Remove property.<wbr/></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/> All camera devices will support
sensor maximum resolution (defined by <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>).<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The HAL must include sensor maximum resolution
(defined by <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>),<wbr/>
and should include half/<wbr/>quarter of sensor maximum resolution.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.scaler.availableMaxDigitalZoom">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>




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

            <td class="entry_description">
              <p>The maximum ratio between both active area width
and crop region width,<wbr/> and active area height and
crop region height,<wbr/> for <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>.<wbr/></p>
            </td>

            <td class="entry_units">
              Zoom scale factor
            </td>

            <td class="entry_range">
              <p>&gt;=1</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This represents the maximum amount of zooming possible by
the camera device,<wbr/> or equivalently,<wbr/> the minimum cropping
window size.<wbr/></p>
<p>Crop regions that have a width or height that is smaller
than this ratio allows will be rounded up to the minimum
allowed size by the camera device.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.scaler.availableProcessedMinDurations">
            <td class="entry_name
                entry_name_deprecated
             " rowspan="3">
              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"> [hidden]</span>



              <span class="entry_type_deprecated">[deprecated] </span>



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

            <td class="entry_description">
              <p>For each available processed output size (defined in
<a href="#static_android.scaler.availableProcessedSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes</a>),<wbr/> this property lists the
minimum supportable frame duration for that size.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This should correspond to the frame duration when only that processed
stream is active,<wbr/> with all processing (typically in android.<wbr/>*.<wbr/>mode)
set to FAST.<wbr/></p>
<p>When multiple streams are configured,<wbr/> the minimum frame duration will
be &gt;= max(individual stream min durations).<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.scaler.availableProcessedSizes">
            <td class="entry_name
                entry_name_deprecated
             " rowspan="5">
              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"> [hidden as size]</span>



              <span class="entry_type_deprecated">[deprecated] </span>



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

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

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

            <td class="entry_range">
              <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/></p>
<p>For a given use case,<wbr/> the actual maximum supported resolution
may be lower than what is listed here,<wbr/> depending on the destination
Surface for the image data.<wbr/> For example,<wbr/> for recording video,<wbr/>
the video encoder chosen may have a maximum size limit (e.<wbr/>g.<wbr/> 1080p)
smaller than what the camera (e.<wbr/>g.<wbr/> maximum resolution is 3264x2448)
can provide.<wbr/></p>
<p>Please reference the documentation for the image data destination to
check if it limits the maximum size for image data.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>For FULL capability devices (<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL</code>),<wbr/>
the HAL must include all JPEG sizes listed in <a href="#static_android.scaler.availableJpegSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes</a>
and each below resolution if it is smaller than or equal to the sensor
maximum resolution (if they are not listed in JPEG sizes already):</p>
<ul>
<li>240p (320 x 240)</li>
<li>480p (640 x 480)</li>
<li>720p (1280 x 720)</li>
<li>1080p (1920 x 1080)</li>
</ul>
<p>For LIMITED capability devices (<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == LIMITED</code>),<wbr/>
the HAL only has to list up to the maximum video size supported by the devices.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.scaler.availableRawMinDurations">
            <td class="entry_name
                entry_name_deprecated
             " rowspan="3">
              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>



              <span class="entry_type_deprecated">[deprecated] </span>



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

            <td class="entry_description">
              <p>For each available raw output size (defined in
<a href="#static_android.scaler.availableRawSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes</a>),<wbr/> this property lists the minimum
supportable frame duration for that size.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Should correspond to the frame duration when only the raw stream is
active.<wbr/></p>
<p>When multiple streams are configured,<wbr/> the minimum
frame duration will be &gt;= max(individual stream min
durations)</p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.scaler.availableRawSizes">
            <td class="entry_name
                entry_name_deprecated
             " rowspan="1">
              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>



              <span class="entry_type_deprecated">[deprecated] </span>



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

            <td class="entry_description">
              <p>The resolutions available for use with raw
sensor output streams,<wbr/> listed as width,<wbr/>
height</p>
            </td>

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

            <td class="entry_range">
              <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.scaler.availableInputOutputFormatsMap">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>scaler.<wbr/>available<wbr/>Input<wbr/>Output<wbr/>Formats<wbr/>Map
            </td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>

              <span class="entry_type_visibility"> [hidden as reprocessFormatsMap]</span>






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

            <td class="entry_description">
              <p>The mapping of image formats that are supported by this
camera device for input streams,<wbr/> to their corresponding output formats.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_REPROC">REPROC</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>All camera devices with at least 1
<a href="#static_android.request.maxNumInputStreams">android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Input<wbr/>Streams</a> will have at least one
available input format.<wbr/></p>
<p>The camera device will support the following map of formats,<wbr/>
if its dependent capability (<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>) is supported:</p>
<table>
<thead>
<tr>
<th align="left">Input Format</th>
<th align="left">Output Format</th>
<th align="left">Capability</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#PRIVATE">ImageFormat#PRIVATE</a></td>
<td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a></td>
<td align="left">PRIVATE_<wbr/>REPROCESSING</td>
</tr>
<tr>
<td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#PRIVATE">ImageFormat#PRIVATE</a></td>
<td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
<td align="left">PRIVATE_<wbr/>REPROCESSING</td>
</tr>
<tr>
<td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
<td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a></td>
<td align="left">YUV_<wbr/>REPROCESSING</td>
</tr>
<tr>
<td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
<td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
<td align="left">YUV_<wbr/>REPROCESSING</td>
</tr>
</tbody>
</table>
<p>PRIVATE refers to a device-internal format that is not directly application-visible.<wbr/>  A
PRIVATE input surface can be acquired by <a href="https://developer.android.com/reference/android/media/ImageReader.html#newInstance">ImageReader#newInstance</a>
with <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#PRIVATE">ImageFormat#PRIVATE</a> as the format.<wbr/></p>
<p>For a PRIVATE_<wbr/>REPROCESSING-capable camera device,<wbr/> using the PRIVATE format as either input
or output will never hurt maximum frame rate (i.<wbr/>e.<wbr/>  <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputStallDuration">getOutputStallDuration(ImageFormat.<wbr/>PRIVATE,<wbr/> size)</a> is always 0),<wbr/></p>
<p>Attempting to configure an input stream with output streams not
listed as available in this map is not valid.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>For the formats,<wbr/> see <code>system/<wbr/>core/<wbr/>include/<wbr/>system/<wbr/>graphics.<wbr/>h</code> for a definition
of the image format enumerations.<wbr/> The PRIVATE format refers to the
HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>IMPLEMENTATION_<wbr/>DEFINED format.<wbr/> The HAL could determine
the actual format by using the gralloc usage flags.<wbr/>
For ZSL use case in particular,<wbr/> the HAL could choose appropriate format (partially
processed YUV or RAW based format) by checking the format and GRALLOC_<wbr/>USAGE_<wbr/>HW_<wbr/>CAMERA_<wbr/>ZSL.<wbr/>
See camera3.<wbr/>h for more details.<wbr/></p>
<p>This value is encoded as a variable-size array-of-arrays.<wbr/>
The inner array always contains <code>[format,<wbr/> length,<wbr/> ...<wbr/>]</code> where
<code>...<wbr/></code> has <code>length</code> elements.<wbr/> An inner array is followed by another
inner array if the total metadata entry size hasn't yet been exceeded.<wbr/></p>
<p>A code sample to read/<wbr/>write this encoding (with a device that
supports reprocessing IMPLEMENTATION_<wbr/>DEFINED to YUV_<wbr/>420_<wbr/>888,<wbr/> and JPEG,<wbr/>
and reprocessing YUV_<wbr/>420_<wbr/>888 to YUV_<wbr/>420_<wbr/>888 and JPEG):</p>
<pre><code>//<wbr/> reading
int32_<wbr/>t* contents = &amp;entry.<wbr/>i32[0];
for (size_<wbr/>t i = 0; i &lt; entry.<wbr/>count; ) {
    int32_<wbr/>t format = contents[i++];
    int32_<wbr/>t length = contents[i++];
    int32_<wbr/>t output_<wbr/>formats[length];
    memcpy(&amp;output_<wbr/>formats[0],<wbr/> &amp;contents[i],<wbr/>
           length * sizeof(int32_<wbr/>t));
    i += length;
}

//<wbr/> writing (static example,<wbr/> PRIVATE_<wbr/>REPROCESSING + YUV_<wbr/>REPROCESSING)
int32_<wbr/>t[] contents = {
  IMPLEMENTATION_<wbr/>DEFINED,<wbr/> 2,<wbr/> YUV_<wbr/>420_<wbr/>888,<wbr/> BLOB,<wbr/>
  YUV_<wbr/>420_<wbr/>888,<wbr/> 2,<wbr/> YUV_<wbr/>420_<wbr/>888,<wbr/> BLOB,<wbr/>
};
update_<wbr/>camera_<wbr/>metadata_<wbr/>entry(metadata,<wbr/> index,<wbr/> &amp;contents[0],<wbr/>
      sizeof(contents)/<wbr/>sizeof(contents[0]),<wbr/> &amp;updated_<wbr/>entry);
</code></pre>
<p>If the HAL claims to support any of the capabilities listed in the
above details,<wbr/> then it must also support all the input-output
combinations listed for that capability.<wbr/> It can optionally support
additional formats if it so chooses.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.scaler.availableStreamConfigurations">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>scaler.<wbr/>available<wbr/>Stream<wbr/>Configurations
            </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 x 4
                </span>
              <span class="entry_type_visibility"> [ndk_public as streamConfiguration]</span>


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OUTPUT (v3.2)</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">INPUT (v3.2)</span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>The available stream configurations that this
camera device supports
(i.<wbr/>e.<wbr/> format,<wbr/> width,<wbr/> height,<wbr/> output/<wbr/>input stream).<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The configurations are listed as <code>(format,<wbr/> width,<wbr/> height,<wbr/> input?)</code>
tuples.<wbr/></p>
<p>For a given use case,<wbr/> the actual maximum supported resolution
may be lower than what is listed here,<wbr/> depending on the destination
Surface for the image data.<wbr/> For example,<wbr/> for recording video,<wbr/>
the video encoder chosen may have a maximum size limit (e.<wbr/>g.<wbr/> 1080p)
smaller than what the camera (e.<wbr/>g.<wbr/> maximum resolution is 3264x2448)
can provide.<wbr/></p>
<p>Please reference the documentation for the image data destination to
check if it limits the maximum size for image data.<wbr/></p>
<p>Not all output formats may be supported in a configuration with
an input stream of a particular format.<wbr/> For more details,<wbr/> see
<a href="#static_android.scaler.availableInputOutputFormatsMap">android.<wbr/>scaler.<wbr/>available<wbr/>Input<wbr/>Output<wbr/>Formats<wbr/>Map</a>.<wbr/></p>
<p>The following table describes the minimum required output stream
configurations based on the hardware level
(<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a>):</p>
<table>
<thead>
<tr>
<th align="center">Format</th>
<th align="center">Size</th>
<th align="center">Hardware Level</th>
<th align="center">Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td align="center">JPEG</td>
<td align="center"><a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></td>
<td align="center">Any</td>
<td align="center"></td>
</tr>
<tr>
<td align="center">JPEG</td>
<td align="center">1920x1080 (1080p)</td>
<td align="center">Any</td>
<td align="center">if 1080p &lt;= activeArraySize</td>
</tr>
<tr>
<td align="center">JPEG</td>
<td align="center">1280x720 (720)</td>
<td align="center">Any</td>
<td align="center">if 720p &lt;= activeArraySize</td>
</tr>
<tr>
<td align="center">JPEG</td>
<td align="center">640x480 (480p)</td>
<td align="center">Any</td>
<td align="center">if 480p &lt;= activeArraySize</td>
</tr>
<tr>
<td align="center">JPEG</td>
<td align="center">320x240 (240p)</td>
<td align="center">Any</td>
<td align="center">if 240p &lt;= activeArraySize</td>
</tr>
<tr>
<td align="center">YUV_<wbr/>420_<wbr/>888</td>
<td align="center">all output sizes available for JPEG</td>
<td align="center">FULL</td>
<td align="center"></td>
</tr>
<tr>
<td align="center">YUV_<wbr/>420_<wbr/>888</td>
<td align="center">all output sizes available for JPEG,<wbr/> up to the maximum video size</td>
<td align="center">LIMITED</td>
<td align="center"></td>
</tr>
<tr>
<td align="center">IMPLEMENTATION_<wbr/>DEFINED</td>
<td align="center">same as YUV_<wbr/>420_<wbr/>888</td>
<td align="center">Any</td>
<td align="center"></td>
</tr>
</tbody>
</table>
<p>Refer to <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> for additional
mandatory stream configurations on a per-capability basis.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>It is recommended (but not mandatory) to also include half/<wbr/>quarter
of sensor maximum resolution for JPEG formats (regardless of hardware
level).<wbr/></p>
<p>(The following is a rewording of the above required table):</p>
<p>For JPEG format,<wbr/> the sizes may be restricted by below conditions:</p>
<ul>
<li>The HAL may choose the aspect ratio of each Jpeg size to be one of well known ones
(e.<wbr/>g.<wbr/> 4:3,<wbr/> 16:9,<wbr/> 3:2 etc.<wbr/>).<wbr/> If the sensor maximum resolution
(defined by <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>) has an aspect ratio other than these,<wbr/>
it does not have to be included in the supported JPEG sizes.<wbr/></li>
<li>Some hardware JPEG encoders may have pixel boundary alignment requirements,<wbr/> such as
the dimensions being a multiple of 16.<wbr/></li>
</ul>
<p>Therefore,<wbr/> the maximum JPEG size may be smaller than sensor maximum resolution.<wbr/>
However,<wbr/> the largest JPEG size must be as close as possible to the sensor maximum
resolution given above constraints.<wbr/> It is required that after aspect ratio adjustments,<wbr/>
additional size reduction due to other issues must be less than 3% in area.<wbr/> For example,<wbr/>
if the sensor maximum resolution is 3280x2464,<wbr/> if the maximum JPEG size has aspect
ratio 4:3,<wbr/> the JPEG encoder alignment requirement is 16,<wbr/> the maximum JPEG size will be
3264x2448.<wbr/></p>
<p>For FULL capability devices (<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL</code>),<wbr/>
the HAL must include all YUV_<wbr/>420_<wbr/>888 sizes that have JPEG sizes listed
here as output streams.<wbr/></p>
<p>It must also include each below resolution if it is smaller than or
equal to the sensor maximum resolution (for both YUV_<wbr/>420_<wbr/>888 and JPEG
formats),<wbr/> as output streams:</p>
<ul>
<li>240p (320 x 240)</li>
<li>480p (640 x 480)</li>
<li>720p (1280 x 720)</li>
<li>1080p (1920 x 1080)</li>
</ul>
<p>For LIMITED capability devices
(<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == LIMITED</code>),<wbr/>
the HAL only has to list up to the maximum video size
supported by the device.<wbr/></p>
<p>Regardless of hardware level,<wbr/> every output resolution available for
YUV_<wbr/>420_<wbr/>888 must also be available for IMPLEMENTATION_<wbr/>DEFINED.<wbr/></p>
<p>This supercedes the following fields,<wbr/> which are now deprecated:</p>
<ul>
<li>availableFormats</li>
<li>available[Processed,<wbr/>Raw,<wbr/>Jpeg]Sizes</li>
</ul>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.scaler.availableMinFrameDurations">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>scaler.<wbr/>available<wbr/>Min<wbr/>Frame<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">
                  4 x n
                </span>
              <span class="entry_type_visibility"> [ndk_public as streamConfigurationDuration]</span>


              <span class="entry_type_hwlevel">[legacy] </span>




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

            <td class="entry_description">
              <p>This lists the minimum frame duration for each
format/<wbr/>size combination.<wbr/></p>
            </td>

            <td class="entry_units">
              (format,<wbr/> width,<wbr/> height,<wbr/> ns) x n
            </td>

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This should correspond to the frame duration when only that
stream is active,<wbr/> with all processing (typically in android.<wbr/>*.<wbr/>mode)
set to either OFF or FAST.<wbr/></p>
<p>When multiple streams are used in a request,<wbr/> the minimum frame
duration will be max(individual stream min durations).<wbr/></p>
<p>The minimum frame duration of a stream (of a particular format,<wbr/> size)
is the same regardless of whether the stream is input or output.<wbr/></p>
<p>See <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> and
<a href="#static_android.scaler.availableStallDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stall<wbr/>Durations</a> for more details about
calculating the max frame rate.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.scaler.availableStallDurations">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>scaler.<wbr/>available<wbr/>Stall<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">
                  4 x n
                </span>
              <span class="entry_type_visibility"> [ndk_public as streamConfigurationDuration]</span>


              <span class="entry_type_hwlevel">[legacy] </span>




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

            <td class="entry_description">
              <p>This lists the maximum stall duration for each
output format/<wbr/>size combination.<wbr/></p>
            </td>

            <td class="entry_units">
              (format,<wbr/> width,<wbr/> height,<wbr/> ns) x n
            </td>

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>A stall duration is how much extra time would get added
to the normal minimum frame duration for a repeating request
that has streams with non-zero stall.<wbr/></p>
<p>For example,<wbr/> consider JPEG captures which have the following
characteristics:</p>
<ul>
<li>JPEG streams act like processed YUV streams in requests for which
they are not included; in requests in which they are directly
referenced,<wbr/> they act as JPEG streams.<wbr/> This is because supporting a
JPEG stream requires the underlying YUV data to always be ready for
use by a JPEG encoder,<wbr/> but the encoder will only be used (and impact
frame duration) on requests that actually reference a JPEG stream.<wbr/></li>
<li>The JPEG processor can run concurrently to the rest of the camera
pipeline,<wbr/> but cannot process more than 1 capture at a time.<wbr/></li>
</ul>
<p>In other words,<wbr/> using a repeating YUV request would result
in a steady frame rate (let's say it's 30 FPS).<wbr/> If a single
JPEG request is submitted periodically,<wbr/> the frame rate will stay
at 30 FPS (as long as we wait for the previous JPEG to return each
time).<wbr/> If we try to submit a repeating YUV + JPEG request,<wbr/> then
the frame rate will drop from 30 FPS.<wbr/></p>
<p>In general,<wbr/> submitting a new request with a non-0 stall time
stream will <em>not</em> cause a frame rate drop unless there are still
outstanding buffers for that stream from previous requests.<wbr/></p>
<p>Submitting a repeating request with streams (call this <code>S</code>)
is the same as setting the minimum frame duration from
the normal minimum frame duration corresponding to <code>S</code>,<wbr/> added with
the maximum stall duration for <code>S</code>.<wbr/></p>
<p>If interleaving requests with and without a stall duration,<wbr/>
a request will stall by the maximum of the remaining times
for each can-stall stream with outstanding buffers.<wbr/></p>
<p>This means that a stalling request will not have an exposure start
until the stall has completed.<wbr/></p>
<p>This should correspond to the stall duration when only that stream is
active,<wbr/> with all processing (typically in android.<wbr/>*.<wbr/>mode) set to FAST
or OFF.<wbr/> Setting any of the processing modes to HIGH_<wbr/>QUALITY
effectively results in an indeterminate stall duration for all
streams in a request (the regular stall calculation rules are
ignored).<wbr/></p>
<p>The following formats may always have a stall duration:</p>
<ul>
<li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a></li>
<li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#RAW_SENSOR">ImageFormat#RAW_<wbr/>SENSOR</a></li>
</ul>
<p>The following formats will never have a stall duration:</p>
<ul>
<li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></li>
<li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#RAW10">ImageFormat#RAW10</a></li>
<li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#RAW12">ImageFormat#RAW12</a></li>
</ul>
<p>All other formats may or may not have an allowed stall duration on
a per-capability basis; refer to <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>
for more details.<wbr/></p>
<p>See <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> for more information about
calculating the max frame rate (absent stalls).<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>If possible,<wbr/> it is recommended that all non-JPEG formats
(such as RAW16) should not have a stall duration.<wbr/> RAW10,<wbr/> RAW12,<wbr/> RAW_<wbr/>OPAQUE
and IMPLEMENTATION_<wbr/>DEFINED must not have stall durations.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.scaler.streamConfigurationMap">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>scaler.<wbr/>stream<wbr/>Configuration<wbr/>Map
            </td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>

              <span class="entry_type_visibility"> [java_public as streamConfigurationMap]</span>

              <span class="entry_type_synthetic">[synthetic] </span>

              <span class="entry_type_hwlevel">[legacy] </span>




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

            <td class="entry_description">
              <p>The available stream configurations that this
camera device supports; also includes the minimum frame durations
and the stall durations for each format/<wbr/>size combination.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>All camera devices will support sensor maximum resolution (defined by
<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>) for the JPEG format.<wbr/></p>
<p>For a given use case,<wbr/> the actual maximum supported resolution
may be lower than what is listed here,<wbr/> depending on the destination
Surface for the image data.<wbr/> For example,<wbr/> for recording video,<wbr/>
the video encoder chosen may have a maximum size limit (e.<wbr/>g.<wbr/> 1080p)
smaller than what the camera (e.<wbr/>g.<wbr/> maximum resolution is 3264x2448)
can provide.<wbr/></p>
<p>Please reference the documentation for the image data destination to
check if it limits the maximum size for image data.<wbr/></p>
<p>The following table describes the minimum required output stream
configurations based on the hardware level
(<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a>):</p>
<table>
<thead>
<tr>
<th align="center">Format</th>
<th align="center">Size</th>
<th align="center">Hardware Level</th>
<th align="center">Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td align="center"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a></td>
<td align="center"><a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a> (*1)</td>
<td align="center">Any</td>
<td align="center"></td>
</tr>
<tr>
<td align="center"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a></td>
<td align="center">1920x1080 (1080p)</td>
<td align="center">Any</td>
<td align="center">if 1080p &lt;= activeArraySize</td>
</tr>
<tr>
<td align="center"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a></td>
<td align="center">1280x720 (720p)</td>
<td align="center">Any</td>
<td align="center">if 720p &lt;= activeArraySize</td>
</tr>
<tr>
<td align="center"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a></td>
<td align="center">640x480 (480p)</td>
<td align="center">Any</td>
<td align="center">if 480p &lt;= activeArraySize</td>
</tr>
<tr>
<td align="center"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a></td>
<td align="center">320x240 (240p)</td>
<td align="center">Any</td>
<td align="center">if 240p &lt;= activeArraySize</td>
</tr>
<tr>
<td align="center"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
<td align="center">all output sizes available for JPEG</td>
<td align="center">FULL</td>
<td align="center"></td>
</tr>
<tr>
<td align="center"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
<td align="center">all output sizes available for JPEG,<wbr/> up to the maximum video size</td>
<td align="center">LIMITED</td>
<td align="center"></td>
</tr>
<tr>
<td align="center"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#PRIVATE">ImageFormat#PRIVATE</a></td>
<td align="center">same as YUV_<wbr/>420_<wbr/>888</td>
<td align="center">Any</td>
<td align="center"></td>
</tr>
</tbody>
</table>
<p>Refer to <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> and <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureSession">CameraDevice#createCaptureSession</a> for additional mandatory
stream configurations on a per-capability basis.<wbr/></p>
<p>*1: For JPEG format,<wbr/> the sizes may be restricted by below conditions:</p>
<ul>
<li>The HAL may choose the aspect ratio of each Jpeg size to be one of well known ones
(e.<wbr/>g.<wbr/> 4:3,<wbr/> 16:9,<wbr/> 3:2 etc.<wbr/>).<wbr/> If the sensor maximum resolution
(defined by <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>) has an aspect ratio other than these,<wbr/>
it does not have to be included in the supported JPEG sizes.<wbr/></li>
<li>Some hardware JPEG encoders may have pixel boundary alignment requirements,<wbr/> such as
the dimensions being a multiple of 16.<wbr/>
Therefore,<wbr/> the maximum JPEG size may be smaller than sensor maximum resolution.<wbr/>
However,<wbr/> the largest JPEG size will be as close as possible to the sensor maximum
resolution given above constraints.<wbr/> It is required that after aspect ratio adjustments,<wbr/>
additional size reduction due to other issues must be less than 3% in area.<wbr/> For example,<wbr/>
if the sensor maximum resolution is 3280x2464,<wbr/> if the maximum JPEG size has aspect
ratio 4:3,<wbr/> and the JPEG encoder alignment requirement is 16,<wbr/> the maximum JPEG size will be
3264x2448.<wbr/></li>
</ul>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Do not set this property directly
(it is synthetic and will not be available at the HAL layer);
set the <a href="#static_android.scaler.availableStreamConfigurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stream<wbr/>Configurations</a> instead.<wbr/></p>
<p>Not all output formats may be supported in a configuration with
an input stream of a particular format.<wbr/> For more details,<wbr/> see
<a href="#static_android.scaler.availableInputOutputFormatsMap">android.<wbr/>scaler.<wbr/>available<wbr/>Input<wbr/>Output<wbr/>Formats<wbr/>Map</a>.<wbr/></p>
<p>It is recommended (but not mandatory) to also include half/<wbr/>quarter
of sensor maximum resolution for JPEG formats (regardless of hardware
level).<wbr/></p>
<p>(The following is a rewording of the above required table):</p>
<p>The HAL must include sensor maximum resolution (defined by
<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>).<wbr/></p>
<p>For FULL capability devices (<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL</code>),<wbr/>
the HAL must include all YUV_<wbr/>420_<wbr/>888 sizes that have JPEG sizes listed
here as output streams.<wbr/></p>
<p>It must also include each below resolution if it is smaller than or
equal to the sensor maximum resolution (for both YUV_<wbr/>420_<wbr/>888 and JPEG
formats),<wbr/> as output streams:</p>
<ul>
<li>240p (320 x 240)</li>
<li>480p (640 x 480)</li>
<li>720p (1280 x 720)</li>
<li>1080p (1920 x 1080)</li>
</ul>
<p>For LIMITED capability devices
(<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == LIMITED</code>),<wbr/>
the HAL only has to list up to the maximum video size
supported by the device.<wbr/></p>
<p>Regardless of hardware level,<wbr/> every output resolution available for
YUV_<wbr/>420_<wbr/>888 must also be available for IMPLEMENTATION_<wbr/>DEFINED.<wbr/></p>
<p>This supercedes the following fields,<wbr/> which are now deprecated:</p>
<ul>
<li>availableFormats</li>
<li>available[Processed,<wbr/>Raw,<wbr/>Jpeg]Sizes</li>
</ul>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.scaler.croppingType">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>scaler.<wbr/>cropping<wbr/>Type
            </td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>

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


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">CENTER_ONLY (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The camera device only supports centered crop regions.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FREEFORM (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The camera device supports arbitrarily chosen crop regions.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>The crop type that this camera device supports.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>When passing a non-centered crop region (<a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>) to a camera
device that only supports CENTER_<wbr/>ONLY cropping,<wbr/> the camera device will move the
crop region to the center of the sensor active array (<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>)
and keep the crop region width and height unchanged.<wbr/> The camera device will return the
final used crop region in metadata result <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>.<wbr/></p>
<p>Camera devices that support FREEFORM cropping will support any crop region that
is inside of the active array.<wbr/> The camera device will apply the same crop region and
return the final used crop region in capture result metadata <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>.<wbr/></p>
<p>LEGACY capability devices will only support CENTER_<wbr/>ONLY cropping.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="dynamic_android.scaler.cropRegion">
            <td class="entry_name
             " rowspan="5">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>




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

            <td class="entry_description">
              <p>The desired region of the sensor to read out for this capture.<wbr/></p>
            </td>

            <td class="entry_units">
              Pixel coordinates relative to
          android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
            </td>

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This control can be used to implement digital zoom.<wbr/></p>
<p>The crop region coordinate system is based off
<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>,<wbr/> with <code>(0,<wbr/> 0)</code> being the
top-left corner of the sensor active array.<wbr/></p>
<p>Output streams use this rectangle to produce their output,<wbr/>
cropping to a smaller region if necessary to maintain the
stream's aspect ratio,<wbr/> then scaling the sensor input to
match the output's configured resolution.<wbr/></p>
<p>The crop region is applied after the RAW to other color
space (e.<wbr/>g.<wbr/> YUV) conversion.<wbr/> Since raw streams
(e.<wbr/>g.<wbr/> RAW16) don't have the conversion stage,<wbr/> they are not
croppable.<wbr/> The crop region will be ignored by raw streams.<wbr/></p>
<p>For non-raw streams,<wbr/> any additional per-stream cropping will
be done to maximize the final pixel area of the stream.<wbr/></p>
<p>For example,<wbr/> if the crop region is set to a 4:3 aspect
ratio,<wbr/> then 4:3 streams will use the exact crop
region.<wbr/> 16:9 streams will further crop vertically
(letterbox).<wbr/></p>
<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
outputs will crop horizontally (pillarbox),<wbr/> and 16:9
streams will match exactly.<wbr/> These additional crops will
be centered within the crop region.<wbr/></p>
<p>The width and height of the crop region cannot
be set to be smaller than
<code>floor( activeArraySize.<wbr/>width /<wbr/> <a href="#static_android.scaler.availableMaxDigitalZoom">android.<wbr/>scaler.<wbr/>available<wbr/>Max<wbr/>Digital<wbr/>Zoom</a> )</code> and
<code>floor( activeArraySize.<wbr/>height /<wbr/> <a href="#static_android.scaler.availableMaxDigitalZoom">android.<wbr/>scaler.<wbr/>available<wbr/>Max<wbr/>Digital<wbr/>Zoom</a> )</code>,<wbr/> respectively.<wbr/></p>
<p>The camera device may adjust the crop region to account
for rounding and other hardware requirements; the final
crop region used will be included in the output capture
result.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>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/></p>
<p>For a set of output streams configured,<wbr/> if the sensor output is cropped to a smaller
size than active array size,<wbr/> the HAL need follow below cropping rules:</p>
<ul>
<li>
<p>The HAL need handle the cropRegion as if the sensor crop size is the effective active
array size.<wbr/>More specifically,<wbr/> the HAL must transform the request cropRegion from
<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a> to the sensor cropped pixel area size in this way:</p>
<ol>
<li>Translate the requested cropRegion w.<wbr/>r.<wbr/>t.,<wbr/> the left top corner of the sensor
cropped pixel area by (tx,<wbr/> ty),<wbr/>
where <code>tx = sensorCrop.<wbr/>top * (sensorCrop.<wbr/>height /<wbr/> activeArraySize.<wbr/>height)</code>
and <code>tx = sensorCrop.<wbr/>left * (sensorCrop.<wbr/>width /<wbr/> activeArraySize.<wbr/>width)</code>.<wbr/> The
(sensorCrop.<wbr/>top,<wbr/> sensorCrop.<wbr/>left) is the coordinate based off the
<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/></li>
<li>Scale the width and height of requested cropRegion with scaling factor of
sensor<wbr/>Crop.<wbr/>width/<wbr/>active<wbr/>Array<wbr/>Size.<wbr/>width and sensor<wbr/>Crop.<wbr/>height/<wbr/>active<wbr/>Array<wbr/>Size.<wbr/>height
respectively.<wbr/>
Once this new cropRegion is calculated,<wbr/> the HAL must use this region to crop the image
with regard to the sensor crop size (effective active array size).<wbr/> The HAL still need
follow the general cropping rule for this new cropRegion and effective active
array size.<wbr/></li>
</ol>
</li>
<li>
<p>The HAL must report the cropRegion with regard to <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>
The HAL need convert the new cropRegion generated above w.<wbr/>r.<wbr/>t.,<wbr/> full active array size.<wbr/>
The reported cropRegion may be slightly different with the requested cropRegion since
the HAL may adjust the crop region to account for rounding,<wbr/> conversion error,<wbr/> or other
hardware limitations.<wbr/></p>
</li>
</ul>
<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="controls_android.sensor.exposureTime">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[full] </span>




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

            <td class="entry_description">
              <p>Duration each pixel is exposed to
light.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p><a href="#static_android.sensor.info.exposureTimeRange">android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>If the sensor can't expose this exact duration,<wbr/> it will shorten the
duration exposed to the nearest possible value (rather than expose longer).<wbr/>
The final exposure time used will be available in the output capture result.<wbr/></p>
<p>This control is only effective if <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> or <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is set to
OFF; otherwise the auto-exposure algorithm will override this value.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.sensor.frameDuration">
            <td class="entry_name
             " rowspan="5">
              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>


              <span class="entry_type_hwlevel">[full] </span>




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

            <td class="entry_description">
              <p>Duration from start of frame exposure to
start of next frame exposure.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/> <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html">StreamConfigurationMap</a>.<wbr/>
The duration is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The maximum frame rate that can be supported by a camera subsystem is
a function of many factors:</p>
<ul>
<li>Requested resolutions of output image streams</li>
<li>Availability of binning /<wbr/> skipping modes on the imager</li>
<li>The bandwidth of the imager interface</li>
<li>The bandwidth of the various ISP processing blocks</li>
</ul>
<p>Since these factors can vary greatly between different ISPs and
sensors,<wbr/> the camera abstraction tries to represent the bandwidth
restrictions with as simple a model as possible.<wbr/></p>
<p>The model presented has the following characteristics:</p>
<ul>
<li>The image sensor is always configured to output the smallest
resolution possible given the application's requested output stream
sizes.<wbr/>  The smallest resolution is defined as being at least as large
as the largest requested output stream size; the camera pipeline must
never digitally upsample sensor data when the crop region covers the
whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
resolutions are configured,<wbr/> the sensor can provide a higher frame
rate.<wbr/></li>
<li>Since any request may use any or all the currently configured
output streams,<wbr/> the sensor and ISP must be configured to support
scaling a single capture to all the streams at the same time.<wbr/>  This
means the camera pipeline must be ready to produce the largest
requested output size without any delay.<wbr/>  Therefore,<wbr/> the overall
frame rate of a given configured stream set is governed only by the
largest requested stream resolution.<wbr/></li>
<li>Using more than one output stream in a request does not affect the
frame duration.<wbr/></li>
<li>Certain format-streams may need to do additional background processing
before data is consumed/<wbr/>produced by that stream.<wbr/> These processors
can run concurrently to the rest of the camera pipeline,<wbr/> but
cannot process more than 1 capture at a time.<wbr/></li>
</ul>
<p>The necessary information for the application,<wbr/> given the model above,<wbr/> is provided via
<a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputMinFrameDuration">StreamConfigurationMap#getOutputMinFrameDuration</a>.<wbr/>
These are used to determine the maximum frame rate /<wbr/> minimum frame duration that is
possible for a given stream configuration.<wbr/></p>
<p>Specifically,<wbr/> the application can use the following rules to
determine the minimum frame duration it can request from the camera
device:</p>
<ol>
<li>Let the set of currently configured input/<wbr/>output streams be called <code>S</code>.<wbr/></li>
<li>Find the minimum frame durations for each stream in <code>S</code>,<wbr/> by looking it up in <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputMinFrameDuration">StreamConfigurationMap#getOutputMinFrameDuration</a>
(with its respective size/<wbr/>format).<wbr/> Let this set of frame durations be called <code>F</code>.<wbr/></li>
<li>For any given request <code>R</code>,<wbr/> the minimum frame duration allowed for <code>R</code> is the maximum
out of all values in <code>F</code>.<wbr/> Let the streams used in <code>R</code> be called <code>S_<wbr/>r</code>.<wbr/></li>
</ol>
<p>If none of the streams in <code>S_<wbr/>r</code> have a stall time (listed in <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputStallDuration">StreamConfigurationMap#getOutputStallDuration</a>
using its respective size/<wbr/>format),<wbr/> then the frame duration in <code>F</code> determines the steady
state frame rate that the application will get if it uses <code>R</code> as a repeating request.<wbr/> Let
this special kind of request be called <code>Rsimple</code>.<wbr/></p>
<p>A repeating request <code>Rsimple</code> can be <em>occasionally</em> interleaved by a single capture of a
new request <code>Rstall</code> (which has at least one in-use stream with a non-0 stall time) and if
<code>Rstall</code> has the same minimum frame duration this will not cause a frame rate loss if all
buffers from the previous <code>Rstall</code> have already been delivered.<wbr/></p>
<p>For more details about stalling,<wbr/> see <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputStallDuration">StreamConfigurationMap#getOutputStallDuration</a>.<wbr/></p>
<p>This control is only effective if <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> or <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is set to
OFF; otherwise the auto-exposure algorithm will override this value.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>For more details about stalling,<wbr/> see
<a href="#static_android.scaler.availableStallDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stall<wbr/>Durations</a>.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.sensor.sensitivity">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>sensor.<wbr/>sensitivity
            </td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>

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


              <span class="entry_type_hwlevel">[full] </span>




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

            <td class="entry_description">
              <p>The amount of gain applied to sensor data
before processing.<wbr/></p>
            </td>

            <td class="entry_units">
              ISO arithmetic units
            </td>

            <td class="entry_range">
              <p><a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The sensitivity is the standard ISO sensitivity value,<wbr/>
as defined in ISO 12232:2006.<wbr/></p>
<p>The sensitivity must be within <a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a>,<wbr/> and
if if it less than <a href="#static_android.sensor.maxAnalogSensitivity">android.<wbr/>sensor.<wbr/>max<wbr/>Analog<wbr/>Sensitivity</a>,<wbr/> the camera device
is guaranteed to use only analog amplification for applying the gain.<wbr/></p>
<p>If the camera device cannot apply the exact sensitivity
requested,<wbr/> it will reduce the gain to the nearest supported
value.<wbr/> The final sensitivity used will be available in the
output capture result.<wbr/></p>
<p>This control is only effective if <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> or <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is set to
OFF; otherwise the auto-exposure algorithm will override this value.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>ISO 12232:2006 REI method is acceptable.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.sensor.testPatternData">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data
            </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]</span>






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

            <td class="entry_description">
              <p>A pixel <code>[R,<wbr/> G_<wbr/>even,<wbr/> G_<wbr/>odd,<wbr/> B]</code> that supplies the test pattern
when <a href="#controls_android.sensor.testPatternMode">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode</a> is SOLID_<wbr/>COLOR.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Each color channel is treated as an unsigned 32-bit integer.<wbr/>
The camera device then uses the most significant X bits
that correspond to how many bits are in its Bayer raw sensor
output.<wbr/></p>
<p>For example,<wbr/> a sensor with RAW10 Bayer output would use the
10 most significant bits from each color channel.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.sensor.testPatternMode">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
            </td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">int32</span>

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





                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>No test pattern mode is used,<wbr/> and the camera
device returns captures from the image sensor.<wbr/></p>
<p>This is the default if the key is not set.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">SOLID_COLOR (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Each pixel in <code>[R,<wbr/> G_<wbr/>even,<wbr/> G_<wbr/>odd,<wbr/> B]</code> is replaced by its
respective color channel provided in
<a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
<p>For example:</p>
<pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
</code></pre>
<p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
<pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
</code></pre>
<p>All red pixels are 100% red.<wbr/> Only the odd green pixels
are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">COLOR_BARS (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
<p>The vertical bars (left-to-right) are as follows:</p>
<ul>
<li>100% white</li>
<li>yellow</li>
<li>cyan</li>
<li>green</li>
<li>magenta</li>
<li>red</li>
<li>blue</li>
<li>black</li>
</ul>
<p>In general the image would look like the following:</p>
<pre><code>W Y C G M R B K
W Y C G M R B K
W Y C G M R B K
W Y C G M R B K
W Y C G M R B K
.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>

(B = Blue,<wbr/> K = Black)
</code></pre>
<p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
When this is not possible,<wbr/> the bar size should be rounded
down to the nearest integer and the pattern can repeat
on the right side.<wbr/></p>
<p>Each bar's height must always take up the full sensor
pixel array height.<wbr/></p>
<p>Each pixel in this test pattern must be set to either
0% intensity or 100% intensity.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
each bar should start at its specified color at the top,<wbr/>
and fade to gray at the bottom.<wbr/></p>
<p>Furthermore each bar is further subdivided into a left and
right half.<wbr/> The left half should have a smooth gradient,<wbr/>
and the right half should have a quantized gradient.<wbr/></p>
<p>In particular,<wbr/> the right half's should consist of blocks of the
same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
<p>The least significant bits in the quantized gradient should
be copied from the most significant bits of the smooth gradient.<wbr/></p>
<p>The height of each bar should always be a multiple of 128.<wbr/>
When this is not the case,<wbr/> the pattern should repeat at the bottom
of the image.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">PN9 (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
generated from a PN9 512-bit sequence (typically implemented
in hardware with a linear feedback shift register).<wbr/></p>
<p>The generator should be reset at the beginning of each frame,<wbr/>
and thus each subsequent raw frame with this test pattern should
be exactly the same as the last.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">CUSTOM1 (v3.2)</span>
                    <span class="entry_type_enum_value">256</span>
                    <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
available only on this camera device are at least this numeric
value.<wbr/></p>
<p>All of the custom test patterns will be static
(that is the raw image must not vary from frame to frame).<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>When enabled,<wbr/> the sensor sends a test pattern instead of
doing a real exposure from the camera.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p><a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
by android.<wbr/>sensor.<wbr/>* will be ignored.<wbr/> All other controls should
work as normal.<wbr/></p>
<p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
occur (and that the test pattern remain unmodified,<wbr/> since the flash
would not actually affect it).<wbr/></p>
<p>Defaults to OFF.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>All test patterns are specified in the Bayer domain.<wbr/></p>
<p>The HAL may choose to substitute test patterns from the sensor
with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
indistinguishable to the ISP whether the data came from the
sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        
                
            

                
          <tr class="entry" id="static_android.sensor.info.activeArraySize">
            <td class="entry_name
             " rowspan="5">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>


                <div class="entry_type_notes">Four ints defining the active pixel rectangle</div>


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

            <td class="entry_description">
              <p>The area of the image sensor which corresponds to active pixels after any geometric
distortion correction has been applied.<wbr/></p>
            </td>

            <td class="entry_units">
              Pixel coordinates on the image sensor
            </td>

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_RAW">RAW</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This is the rectangle representing the size of the active region of the sensor (i.<wbr/>e.<wbr/>
the region that actually receives light from the scene) after any geometric correction
has been applied,<wbr/> and should be treated as the maximum size in pixels of any of the
image output formats aside from the raw formats.<wbr/></p>
<p>This rectangle is defined relative to the full pixel array; (0,<wbr/>0) is the top-left of
the full pixel array,<wbr/> and the size of the full pixel array is given by
<a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a>.<wbr/></p>
<p>The coordinate system for most other keys that list pixel coordinates,<wbr/> including
<a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> is defined relative to the active array rectangle given in
this field,<wbr/> with <code>(0,<wbr/> 0)</code> being the top-left of this rectangle.<wbr/></p>
<p>The active array may be smaller than the full pixel array,<wbr/> since the full array may
include black calibration pixels or other inactive regions,<wbr/> and geometric correction
resulting in scaling or cropping may have been applied.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This array contains <code>(xmin,<wbr/> ymin,<wbr/> width,<wbr/> height)</code>.<wbr/> The <code>(xmin,<wbr/> ymin)</code> must be
&gt;= <code>(0,<wbr/>0)</code>.<wbr/>
The <code>(width,<wbr/> height)</code> must be &lt;= <code><a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a></code>.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.info.sensitivityRange">
            <td class="entry_name
             " rowspan="3">
              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 as rangeInt]</span>


              <span class="entry_type_hwlevel">[full] </span>


                <div class="entry_type_notes">Range of supported sensitivities</div>


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

            <td class="entry_description">
              <p>Range of sensitivities for <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> supported by this
camera device.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>Min &lt;= 100,<wbr/> Max &gt;= 800</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </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>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The values are the standard ISO sensitivity values,<wbr/>
as defined in ISO 12232:2006.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.info.colorFilterArrangement">
            <td class="entry_name
             " rowspan="1">
              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"> [public]</span>


              <span class="entry_type_hwlevel">[full] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">RGGB (v3.2)</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">GRBG (v3.2)</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">GBRG (v3.2)</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">BGGR (v3.2)</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">RGB (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Sensor is not Bayer; output has 3 16-bit
values for each pixel,<wbr/> instead of just 1 16-bit value
per pixel.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>The arrangement of color filters on sensor;
represents the colors in the top-left 2x2 section of
the sensor,<wbr/> in reading order.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_RAW">RAW</a></li>
              </ul>
            </td>

          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.info.exposureTimeRange">
            <td class="entry_name
             " rowspan="3">
              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 as rangeLong]</span>


              <span class="entry_type_hwlevel">[full] </span>


                <div class="entry_type_notes">nanoseconds</div>


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

            <td class="entry_description">
              <p>The range of image exposure times for <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a> supported
by this camera device.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>The minimum exposure time will be less than 100 us.<wbr/> For FULL
capability devices (<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL),<wbr/>
the maximum exposure time will be greater than 100ms.<wbr/></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>For FULL capability devices (<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL),<wbr/>
The maximum of the range SHOULD be at least 1 second (1e9),<wbr/> MUST be at least
100ms.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.info.maxFrameDuration">
            <td class="entry_name
             " rowspan="5">
              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>


              <span class="entry_type_hwlevel">[full] </span>




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

            <td class="entry_description">
              <p>The maximum possible frame duration (minimum frame rate) for
<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> that is supported this camera device.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>For FULL capability devices
(<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL),<wbr/> at least 100ms.<wbr/></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Attempting to use frame durations beyond the maximum will result in the frame
duration being clipped to the maximum.<wbr/> See that control for a full definition of frame
durations.<wbr/></p>
<p>Refer to <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputMinFrameDuration">StreamConfigurationMap#getOutputMinFrameDuration</a>
for the minimum frame duration values.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>For FULL capability devices (<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL),<wbr/>
The maximum of the range SHOULD be at least
1 second (1e9),<wbr/> MUST be at least 100ms (100e6).<wbr/></p>
<p><a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a> must be greater or
equal to the <a href="#static_android.sensor.info.exposureTimeRange">android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range</a> max
value (since exposure time overrides frame duration).<wbr/></p>
<p>Available minimum frame durations for JPEG must be no greater
than that of the YUV_<wbr/>420_<wbr/>888/<wbr/>IMPLEMENTATION_<wbr/>DEFINED
minimum frame durations (for that respective size).<wbr/></p>
<p>Since JPEG processing is considered offline and can take longer than
a single uncompressed capture,<wbr/> refer to
<a href="#static_android.scaler.availableStallDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stall<wbr/>Durations</a>
for details about encoding this scenario.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.info.physicalSize">
            <td class="entry_name
             " rowspan="5">
              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 as sizeF]</span>


              <span class="entry_type_hwlevel">[legacy] </span>


                <div class="entry_type_notes">width x height</div>


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

            <td class="entry_description">
              <p>The physical dimensions of the full pixel
array.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </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>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This is the physical size of the sensor pixel
array defined by <a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a>.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Needed for FOV calculation for old API</p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.info.pixelArraySize">
            <td class="entry_name
             " rowspan="3">
              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"> [public as size]</span>


              <span class="entry_type_hwlevel">[legacy] </span>




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

            <td class="entry_description">
              <p>Dimensions of the full pixel array,<wbr/> possibly
including black calibration pixels.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The pixel count of the full pixel array of the image sensor,<wbr/> which covers
<a href="#static_android.sensor.info.physicalSize">android.<wbr/>sensor.<wbr/>info.<wbr/>physical<wbr/>Size</a> area.<wbr/>  This represents the full pixel dimensions of
the raw buffers produced by this sensor.<wbr/></p>
<p>If a camera device supports raw sensor formats,<wbr/> either this or
<a href="#static_android.sensor.info.preCorrectionActiveArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<wbr/>Active<wbr/>Array<wbr/>Size</a> is the maximum dimensions for the raw
output formats listed in <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html">StreamConfigurationMap</a>
(this depends on whether or not the image sensor returns buffers containing pixels that
are not part of the active array region for blacklevel calibration or other purposes).<wbr/></p>
<p>Some parts of the full pixel array may not receive light from the scene,<wbr/>
or be otherwise inactive.<wbr/>  The <a href="#static_android.sensor.info.preCorrectionActiveArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<wbr/>Active<wbr/>Array<wbr/>Size</a> key
defines the rectangle of active pixels that will be included in processed image
formats.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.info.whiteLevel">
            <td class="entry_name
             " rowspan="5">
              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"> [public]</span>






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

            <td class="entry_description">
              <p>Maximum raw value output by sensor.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>&gt; 255 (8-bit output)</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_RAW">RAW</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This specifies the fully-saturated encoding level for the raw
sample values from the sensor.<wbr/>  This is typically caused by the
sensor becoming highly non-linear or clipping.<wbr/> The minimum for
each channel is specified by the offset in the
<a href="#static_android.sensor.blackLevelPattern">android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern</a> key.<wbr/></p>
<p>The white level is typically determined either by sensor bit depth
(8-14 bits is expected),<wbr/> or by the point where the sensor response
becomes too non-linear to be useful.<wbr/>  The default value for this is
maximum representable value for a 16-bit raw sample (2^16 - 1).<wbr/></p>
<p>The white level values of captured images may vary for different
capture settings (e.<wbr/>g.,<wbr/> <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>).<wbr/> This key
represents a coarse approximation for such case.<wbr/> It is recommended
to use <a href="#dynamic_android.sensor.dynamicWhiteLevel">android.<wbr/>sensor.<wbr/>dynamic<wbr/>White<wbr/>Level</a> for captures when supported
by the camera device,<wbr/> which provides more accurate white level values.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The full bit depth of the sensor must be available in the raw data,<wbr/>
so the value for linear sensors should not be significantly lower
than maximum raw value supported,<wbr/> i.<wbr/>e.<wbr/> 2^(sensor bits per pixel).<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.info.timestampSource">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>sensor.<wbr/>info.<wbr/>timestamp<wbr/>Source
            </td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>

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


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">UNKNOWN (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Timestamps from <a href="#dynamic_android.sensor.timestamp">android.<wbr/>sensor.<wbr/>timestamp</a> are in nanoseconds and monotonic,<wbr/>
but can not be compared to timestamps from other subsystems
(e.<wbr/>g.<wbr/> accelerometer,<wbr/> gyro etc.<wbr/>),<wbr/> or other instances of the same or different
camera devices in the same system.<wbr/> Timestamps between streams and results for
a single camera instance are comparable,<wbr/> and the timestamps for all buffers
and the result metadata generated by a single capture are identical.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">REALTIME (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Timestamps from <a href="#dynamic_android.sensor.timestamp">android.<wbr/>sensor.<wbr/>timestamp</a> are in the same timebase as
<a href="https://developer.android.com/reference/android/os/SystemClock.html#elapsedRealtimeNanos">SystemClock#elapsedRealtimeNanos</a>,<wbr/>
and they can be compared to other timestamps using that base.<wbr/></p></span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>The time base source for sensor capture start timestamps.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The timestamps provided for captures are always in nanoseconds and monotonic,<wbr/> but
may not based on a time source that can be compared to other system time sources.<wbr/></p>
<p>This characteristic defines the source for the timestamps,<wbr/> and therefore whether they
can be compared against other system time sources/<wbr/>timestamps.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>For camera devices implement UNKNOWN,<wbr/> the camera framework expects that the timestamp
source to be SYSTEM_<wbr/>TIME_<wbr/>MONOTONIC.<wbr/> For camera devices implement REALTIME,<wbr/> the camera
framework expects that the timestamp source to be SYSTEM_<wbr/>TIME_<wbr/>BOOTTIME.<wbr/> See
system/<wbr/>core/<wbr/>include/<wbr/>utils/<wbr/>Timers.<wbr/>h for the definition of SYSTEM_<wbr/>TIME_<wbr/>MONOTONIC and
SYSTEM_<wbr/>TIME_<wbr/>BOOTTIME.<wbr/> Note that HAL must follow above expectation; otherwise video
recording might suffer unexpected behavior.<wbr/></p>
<p>Also,<wbr/> camera devices which implement REALTIME must pass the ITS sensor fusion test which
tests the alignment between camera timestamps and gyro sensor timestamps.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.info.lensShadingApplied">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>sensor.<wbr/>info.<wbr/>lens<wbr/>Shading<wbr/>Applied
            </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">FALSE (v3.2)</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">TRUE (v3.2)</span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>Whether the RAW images output from this camera device are subject to
lens shading correction.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>If TRUE,<wbr/> all images produced by the camera device in the RAW image formats will
have lens shading correction already applied to it.<wbr/> If FALSE,<wbr/> the images will
not be adjusted for lens shading correction.<wbr/>
See <a href="#static_android.request.maxNumOutputRaw">android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Raw</a> for a list of RAW image formats.<wbr/></p>
<p>This key will be <code>null</code> for all devices do not report this information.<wbr/>
Devices with RAW capability will always report this information in this key.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.info.preCorrectionActiveArraySize">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<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>


              <span class="entry_type_hwlevel">[legacy] </span>


                <div class="entry_type_notes">Four ints defining the active pixel rectangle</div>


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

            <td class="entry_description">
              <p>The area of the image sensor which corresponds to active pixels prior to the
application of any geometric distortion correction.<wbr/></p>
            </td>

            <td class="entry_units">
              Pixel coordinates on the image sensor
            </td>

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_RAW">RAW</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This is the rectangle representing the size of the active region of the sensor (i.<wbr/>e.<wbr/>
the region that actually receives light from the scene) before any geometric correction
has been applied,<wbr/> and should be treated as the active region rectangle for any of the
raw formats.<wbr/>  All metadata associated with raw processing (e.<wbr/>g.<wbr/> the lens shading
correction map,<wbr/> and radial distortion fields) treats the top,<wbr/> left of this rectangle as
the origin,<wbr/> (0,<wbr/>0).<wbr/></p>
<p>The size of this region determines the maximum field of view and the maximum number of
pixels that an image from this sensor can contain,<wbr/> prior to the application of
geometric distortion correction.<wbr/> The effective maximum pixel dimensions of a
post-distortion-corrected image is given by the <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>
field,<wbr/> and the effective maximum field of view for a post-distortion-corrected image
can be calculated by applying the geometric distortion correction fields to this
rectangle,<wbr/> and cropping to the rectangle given in <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/></p>
<p>E.<wbr/>g.<wbr/> to calculate position of a pixel,<wbr/> (x,<wbr/>y),<wbr/> in a processed YUV output image with the
dimensions in <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a> given the position of a pixel,<wbr/>
(x',<wbr/> y'),<wbr/> in the raw pixel array with dimensions give in
<a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a>:</p>
<ol>
<li>Choose a pixel (x',<wbr/> y') within the active array region of the raw buffer given in
<a href="#static_android.sensor.info.preCorrectionActiveArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<wbr/>Active<wbr/>Array<wbr/>Size</a>,<wbr/> otherwise this pixel is considered
to be outside of the FOV,<wbr/> and will not be shown in the processed output image.<wbr/></li>
<li>Apply geometric distortion correction to get the post-distortion pixel coordinate,<wbr/>
(x_<wbr/>i,<wbr/> y_<wbr/>i).<wbr/> When applying geometric correction metadata,<wbr/> note that metadata for raw
buffers is defined relative to the top,<wbr/> left of the
<a href="#static_android.sensor.info.preCorrectionActiveArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<wbr/>Active<wbr/>Array<wbr/>Size</a> rectangle.<wbr/></li>
<li>If the resulting corrected pixel coordinate is within the region given in
<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>,<wbr/> then the position of this pixel in the
processed output image buffer is <code>(x_<wbr/>i - activeArray.<wbr/>left,<wbr/> y_<wbr/>i - activeArray.<wbr/>top)</code>,<wbr/>
when the top,<wbr/> left coordinate of that buffer is treated as (0,<wbr/> 0).<wbr/></li>
</ol>
<p>Thus,<wbr/> for pixel x',<wbr/>y' = (25,<wbr/> 25) on a sensor where <a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a>
is (100,<wbr/>100),<wbr/> <a href="#static_android.sensor.info.preCorrectionActiveArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<wbr/>Active<wbr/>Array<wbr/>Size</a> is (10,<wbr/> 10,<wbr/> 100,<wbr/> 100),<wbr/>
<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a> is (20,<wbr/> 20,<wbr/> 80,<wbr/> 80),<wbr/> and the geometric distortion
correction doesn't change the pixel coordinate,<wbr/> the resulting pixel selected in
pixel coordinates would be x,<wbr/>y = (25,<wbr/> 25) relative to the top,<wbr/>left of the raw buffer
with dimensions given in <a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a>,<wbr/> and would be (5,<wbr/> 5)
relative to the top,<wbr/>left of post-processed YUV output buffer with dimensions given in
<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/></p>
<p>The currently supported fields that correct for geometric distortion are:</p>
<ol>
<li><a href="#static_android.lens.distortion">android.<wbr/>lens.<wbr/>distortion</a>.<wbr/></li>
</ol>
<p>If all of the geometric distortion fields are no-ops,<wbr/> this rectangle will be the same
as the post-distortion-corrected rectangle given in
<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/></p>
<p>This rectangle is defined relative to the full pixel array; (0,<wbr/>0) is the top-left of
the full pixel array,<wbr/> and the size of the full pixel array is given by
<a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a>.<wbr/></p>
<p>The pre-correction active array may be smaller than the full pixel array,<wbr/> since the
full array may include black calibration pixels or other inactive regions.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This array contains <code>(xmin,<wbr/> ymin,<wbr/> width,<wbr/> height)</code>.<wbr/> The <code>(xmin,<wbr/> ymin)</code> must be
&gt;= <code>(0,<wbr/>0)</code>.<wbr/>
The <code>(width,<wbr/> height)</code> must be &lt;= <code><a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a></code>.<wbr/></p>
<p>If omitted by the HAL implementation,<wbr/> the camera framework will assume that this is
the same as the post-correction active array region given in
<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
        
        

                
          <tr class="entry" id="static_android.sensor.referenceIlluminant1">
            <td class="entry_name
             " rowspan="5">
              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"> [public]</span>





                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">DAYLIGHT (v3.2)</span>
                    <span class="entry_type_enum_value">1</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FLUORESCENT (v3.2)</span>
                    <span class="entry_type_enum_value">2</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">TUNGSTEN (v3.2)</span>
                    <span class="entry_type_enum_value">3</span>
                    <span class="entry_type_enum_notes"><p>Incandescent light</p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FLASH (v3.2)</span>
                    <span class="entry_type_enum_value">4</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FINE_WEATHER (v3.2)</span>
                    <span class="entry_type_enum_value">9</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">CLOUDY_WEATHER (v3.2)</span>
                    <span class="entry_type_enum_value">10</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">SHADE (v3.2)</span>
                    <span class="entry_type_enum_value">11</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">DAYLIGHT_FLUORESCENT (v3.2)</span>
                    <span class="entry_type_enum_value">12</span>
                    <span class="entry_type_enum_notes"><p>D 5700 - 7100K</p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">DAY_WHITE_FLUORESCENT (v3.2)</span>
                    <span class="entry_type_enum_value">13</span>
                    <span class="entry_type_enum_notes"><p>N 4600 - 5400K</p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">COOL_WHITE_FLUORESCENT (v3.2)</span>
                    <span class="entry_type_enum_value">14</span>
                    <span class="entry_type_enum_notes"><p>W 3900 - 4500K</p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">WHITE_FLUORESCENT (v3.2)</span>
                    <span class="entry_type_enum_value">15</span>
                    <span class="entry_type_enum_notes"><p>WW 3200 - 3700K</p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">STANDARD_A (v3.2)</span>
                    <span class="entry_type_enum_value">17</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">STANDARD_B (v3.2)</span>
                    <span class="entry_type_enum_value">18</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">STANDARD_C (v3.2)</span>
                    <span class="entry_type_enum_value">19</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">D55 (v3.2)</span>
                    <span class="entry_type_enum_value">20</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">D65 (v3.2)</span>
                    <span class="entry_type_enum_value">21</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">D75 (v3.2)</span>
                    <span class="entry_type_enum_value">22</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">D50 (v3.2)</span>
                    <span class="entry_type_enum_value">23</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ISO_STUDIO_TUNGSTEN (v3.2)</span>
                    <span class="entry_type_enum_value">24</span>
                  </li>
                </ul>

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

            <td class="entry_description">
              <p>The standard reference illuminant used as the scene light source when
calculating the <a href="#static_android.sensor.colorTransform1">android.<wbr/>sensor.<wbr/>color<wbr/>Transform1</a>,<wbr/>
<a href="#static_android.sensor.calibrationTransform1">android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform1</a>,<wbr/> and
<a href="#static_android.sensor.forwardMatrix1">android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix1</a> matrices.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_RAW">RAW</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The values in this key correspond to the values defined for the
EXIF LightSource tag.<wbr/> These illuminants are standard light sources
that are often used calibrating camera devices.<wbr/></p>
<p>If this key is present,<wbr/> then <a href="#static_android.sensor.colorTransform1">android.<wbr/>sensor.<wbr/>color<wbr/>Transform1</a>,<wbr/>
<a href="#static_android.sensor.calibrationTransform1">android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform1</a>,<wbr/> and
<a href="#static_android.sensor.forwardMatrix1">android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix1</a> will also be present.<wbr/></p>
<p>Some devices may choose to provide a second set of calibration
information for improved quality,<wbr/> including
<a href="#static_android.sensor.referenceIlluminant2">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2</a> and its corresponding matrices.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The first reference illuminant (<a href="#static_android.sensor.referenceIlluminant1">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1</a>)
and corresponding matrices must be present to support the RAW capability
and DNG output.<wbr/></p>
<p>When producing raw images with a color profile that has only been
calibrated against a single light source,<wbr/> it is valid to omit
<a href="#static_android.sensor.referenceIlluminant2">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2</a> along with the
<a href="#static_android.sensor.colorTransform2">android.<wbr/>sensor.<wbr/>color<wbr/>Transform2</a>,<wbr/> <a href="#static_android.sensor.calibrationTransform2">android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform2</a>,<wbr/>
and <a href="#static_android.sensor.forwardMatrix2">android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix2</a> matrices.<wbr/></p>
<p>If only <a href="#static_android.sensor.referenceIlluminant1">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1</a> is included,<wbr/> it should be
chosen so that it is representative of typical scene lighting.<wbr/>  In
general,<wbr/> D50 or DAYLIGHT will be chosen for this case.<wbr/></p>
<p>If both <a href="#static_android.sensor.referenceIlluminant1">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1</a> and
<a href="#static_android.sensor.referenceIlluminant2">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2</a> are included,<wbr/> they should be
chosen to represent the typical range of scene lighting conditions.<wbr/>
In general,<wbr/> low color temperature illuminant such as Standard-A will
be chosen for the first reference illuminant and a higher color
temperature illuminant such as D65 will be chosen for the second
reference illuminant.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.referenceIlluminant2">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2
            </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">
              <p>The standard reference illuminant used as the scene light source when
calculating the <a href="#static_android.sensor.colorTransform2">android.<wbr/>sensor.<wbr/>color<wbr/>Transform2</a>,<wbr/>
<a href="#static_android.sensor.calibrationTransform2">android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform2</a>,<wbr/> and
<a href="#static_android.sensor.forwardMatrix2">android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix2</a> matrices.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>Any value listed in <a href="#static_android.sensor.referenceIlluminant1">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_RAW">RAW</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>See <a href="#static_android.sensor.referenceIlluminant1">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1</a> for more details.<wbr/></p>
<p>If this key is present,<wbr/> then <a href="#static_android.sensor.colorTransform2">android.<wbr/>sensor.<wbr/>color<wbr/>Transform2</a>,<wbr/>
<a href="#static_android.sensor.calibrationTransform2">android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform2</a>,<wbr/> and
<a href="#static_android.sensor.forwardMatrix2">android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix2</a> will also be present.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.calibrationTransform1">
            <td class="entry_name
             " rowspan="3">
              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">
                  3 x 3
                </span>
              <span class="entry_type_visibility"> [public as colorSpaceTransform]</span>




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


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

            <td class="entry_description">
              <p>A per-device calibration transform matrix that maps from the
reference sensor colorspace to the actual device sensor colorspace.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_RAW">RAW</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This matrix is used to correct for per-device variations in the
sensor colorspace,<wbr/> and is used for processing raw buffer data.<wbr/></p>
<p>The matrix is expressed as a 3x3 matrix in row-major-order,<wbr/> and
contains a per-device calibration transform that maps colors
from reference sensor color space (i.<wbr/>e.<wbr/> the "golden module"
colorspace) into this camera device's native sensor color
space under the first reference illuminant
(<a href="#static_android.sensor.referenceIlluminant1">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1</a>).<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.calibrationTransform2">
            <td class="entry_name
             " rowspan="3">
              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">
                  3 x 3
                </span>
              <span class="entry_type_visibility"> [public as colorSpaceTransform]</span>




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


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

            <td class="entry_description">
              <p>A per-device calibration transform matrix that maps from the
reference sensor colorspace to the actual device sensor colorspace
(this is the colorspace of the raw buffer data).<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_RAW">RAW</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This matrix is used to correct for per-device variations in the
sensor colorspace,<wbr/> and is used for processing raw buffer data.<wbr/></p>
<p>The matrix is expressed as a 3x3 matrix in row-major-order,<wbr/> and
contains a per-device calibration transform that maps colors
from reference sensor color space (i.<wbr/>e.<wbr/> the "golden module"
colorspace) into this camera device's native sensor color
space under the second reference illuminant
(<a href="#static_android.sensor.referenceIlluminant2">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2</a>).<wbr/></p>
<p>This matrix will only be present if the second reference
illuminant is present.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.colorTransform1">
            <td class="entry_name
             " rowspan="3">
              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">
                  3 x 3
                </span>
              <span class="entry_type_visibility"> [public as colorSpaceTransform]</span>




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


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

            <td class="entry_description">
              <p>A matrix that transforms color values from CIE XYZ color space to
reference sensor color space.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_RAW">RAW</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This matrix is used to convert from the standard CIE XYZ color
space to the reference sensor colorspace,<wbr/> and is used when processing
raw buffer data.<wbr/></p>
<p>The matrix is expressed as a 3x3 matrix in row-major-order,<wbr/> and
contains a color transform matrix that maps colors from the CIE
XYZ color space to the reference sensor color space (i.<wbr/>e.<wbr/> the
"golden module" colorspace) under the first reference illuminant
(<a href="#static_android.sensor.referenceIlluminant1">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1</a>).<wbr/></p>
<p>The white points chosen in both the reference sensor color space
and the CIE XYZ colorspace when calculating this transform will
match the standard white point for the first reference illuminant
(i.<wbr/>e.<wbr/> no chromatic adaptation will be applied by this transform).<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.colorTransform2">
            <td class="entry_name
             " rowspan="3">
              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">
                  3 x 3
                </span>
              <span class="entry_type_visibility"> [public as colorSpaceTransform]</span>




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


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

            <td class="entry_description">
              <p>A matrix that transforms color values from CIE XYZ color space to
reference sensor color space.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_RAW">RAW</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This matrix is used to convert from the standard CIE XYZ color
space to the reference sensor colorspace,<wbr/> and is used when processing
raw buffer data.<wbr/></p>
<p>The matrix is expressed as a 3x3 matrix in row-major-order,<wbr/> and
contains a color transform matrix that maps colors from the CIE
XYZ color space to the reference sensor color space (i.<wbr/>e.<wbr/> the
"golden module" colorspace) under the second reference illuminant
(<a href="#static_android.sensor.referenceIlluminant2">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2</a>).<wbr/></p>
<p>The white points chosen in both the reference sensor color space
and the CIE XYZ colorspace when calculating this transform will
match the standard white point for the second reference illuminant
(i.<wbr/>e.<wbr/> no chromatic adaptation will be applied by this transform).<wbr/></p>
<p>This matrix will only be present if the second reference
illuminant is present.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.forwardMatrix1">
            <td class="entry_name
             " rowspan="3">
              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">
                  3 x 3
                </span>
              <span class="entry_type_visibility"> [public as colorSpaceTransform]</span>




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


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

            <td class="entry_description">
              <p>A matrix that transforms white balanced camera colors from the reference
sensor colorspace to the CIE XYZ colorspace with a D50 whitepoint.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_RAW">RAW</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This matrix is used to convert to the standard CIE XYZ colorspace,<wbr/> and
is used when processing raw buffer data.<wbr/></p>
<p>This matrix is expressed as a 3x3 matrix in row-major-order,<wbr/> and contains
a color transform matrix that maps white balanced colors from the
reference sensor color space to the CIE XYZ color space with a D50 white
point.<wbr/></p>
<p>Under the first reference illuminant (<a href="#static_android.sensor.referenceIlluminant1">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1</a>)
this matrix is chosen so that the standard white point for this reference
illuminant in the reference sensor colorspace is mapped to D50 in the
CIE XYZ colorspace.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.forwardMatrix2">
            <td class="entry_name
             " rowspan="3">
              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">
                  3 x 3
                </span>
              <span class="entry_type_visibility"> [public as colorSpaceTransform]</span>




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


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

            <td class="entry_description">
              <p>A matrix that transforms white balanced camera colors from the reference
sensor colorspace to the CIE XYZ colorspace with a D50 whitepoint.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_RAW">RAW</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This matrix is used to convert to the standard CIE XYZ colorspace,<wbr/> and
is used when processing raw buffer data.<wbr/></p>
<p>This matrix is expressed as a 3x3 matrix in row-major-order,<wbr/> and contains
a color transform matrix that maps white balanced colors from the
reference sensor color space to the CIE XYZ color space with a D50 white
point.<wbr/></p>
<p>Under the second reference illuminant (<a href="#static_android.sensor.referenceIlluminant2">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2</a>)
this matrix is chosen so that the standard white point for this reference
illuminant in the reference sensor colorspace is mapped to D50 in the
CIE XYZ colorspace.<wbr/></p>
<p>This matrix will only be present if the second reference
illuminant is present.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.baseGainFactor">
            <td class="entry_name
             " rowspan="1">
              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"> [system]</span>






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

            <td class="entry_description">
              <p>Gain factor from electrons to raw units when
ISO=100</p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_FUTURE">FUTURE</a></li>
              </ul>
            </td>

          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.blackLevelPattern">
            <td class="entry_name
             " rowspan="5">
              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"> [public as blackLevelPattern]</span>




                <div class="entry_type_notes">2x2 raw count block</div>


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

            <td class="entry_description">
              <p>A fixed black level offset for each of the color filter arrangement
(CFA) mosaic channels.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>&gt;= 0 for each.<wbr/></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_RAW">RAW</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This key specifies the zero light value for each of the CFA mosaic
channels in the camera sensor.<wbr/>  The maximal value output by the
sensor is represented by the value in <a href="#static_android.sensor.info.whiteLevel">android.<wbr/>sensor.<wbr/>info.<wbr/>white<wbr/>Level</a>.<wbr/></p>
<p>The values are given in the same order as channels listed for the CFA
layout key (see <a href="#static_android.sensor.info.colorFilterArrangement">android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement</a>),<wbr/> i.<wbr/>e.<wbr/> the
nth value given corresponds to the black level offset for the nth
color channel listed in the CFA.<wbr/></p>
<p>The black level values of captured images may vary for different
capture settings (e.<wbr/>g.,<wbr/> <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>).<wbr/> This key
represents a coarse approximation for such case.<wbr/> It is recommended to
use <a href="#dynamic_android.sensor.dynamicBlackLevel">android.<wbr/>sensor.<wbr/>dynamic<wbr/>Black<wbr/>Level</a> or use pixels from
<a href="#static_android.sensor.opticalBlackRegions">android.<wbr/>sensor.<wbr/>optical<wbr/>Black<wbr/>Regions</a> directly for captures when
supported by the camera device,<wbr/> which provides more accurate black
level values.<wbr/> For raw capture in particular,<wbr/> it is recommended to use
pixels from <a href="#static_android.sensor.opticalBlackRegions">android.<wbr/>sensor.<wbr/>optical<wbr/>Black<wbr/>Regions</a> to calculate black
level values for each frame.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The values are given in row-column scan order,<wbr/> with the first value
corresponding to the element of the CFA in row=0,<wbr/> column=0.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.maxAnalogSensitivity">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[full] </span>




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

            <td class="entry_description">
              <p>Maximum sensitivity that is implemented
purely through analog gain.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </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>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>For <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> values less than or
equal to this,<wbr/> all applied gain must be analog.<wbr/> For
values above this,<wbr/> the gain applied can be a mix of analog and
digital.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.orientation">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>sensor.<wbr/>orientation
            </td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>

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


              <span class="entry_type_hwlevel">[legacy] </span>




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

            <td class="entry_description">
              <p>Clockwise angle through which the output image needs to be rotated to be
upright on the device screen in its native orientation.<wbr/></p>
            </td>

            <td class="entry_units">
              Degrees of clockwise rotation; always a multiple of
          90
            </td>

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Also defines the direction of rolling shutter readout,<wbr/> which is from top to bottom in
the sensor's coordinate system.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.profileHueSatMapDimensions">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>sensor.<wbr/>profile<wbr/>Hue<wbr/>Sat<wbr/>Map<wbr/>Dimensions
            </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"> [system]</span>




                <div class="entry_type_notes">Number of samples for hue,<wbr/> saturation,<wbr/> and value</div>


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

            <td class="entry_description">
              <p>The number of input samples for each dimension of
<a href="#dynamic_android.sensor.profileHueSatMap">android.<wbr/>sensor.<wbr/>profile<wbr/>Hue<wbr/>Sat<wbr/>Map</a>.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>Hue &gt;= 1,<wbr/>
Saturation &gt;= 2,<wbr/>
Value &gt;= 1</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_RAW">RAW</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The number of input samples for the hue,<wbr/> saturation,<wbr/> and value
dimension of <a href="#dynamic_android.sensor.profileHueSatMap">android.<wbr/>sensor.<wbr/>profile<wbr/>Hue<wbr/>Sat<wbr/>Map</a>.<wbr/> The order of the
dimensions given is hue,<wbr/> saturation,<wbr/> value; where hue is the 0th
element.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.availableTestPatternModes">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes
            </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>




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


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

            <td class="entry_description">
              <p>List of sensor test pattern modes for <a href="#controls_android.sensor.testPatternMode">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode</a>
supported by this camera device.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>Any value listed in <a href="#controls_android.sensor.testPatternMode">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Defaults to OFF,<wbr/> and always includes OFF if defined.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>All custom modes must be &gt;= CUSTOM1.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.opticalBlackRegions">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>sensor.<wbr/>optical<wbr/>Black<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">
                  4 x num_regions
                </span>
              <span class="entry_type_visibility"> [public as rectangle]</span>






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

            <td class="entry_description">
              <p>List of disjoint rectangles indicating the sensor
optically shielded black pixel regions.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>In most camera sensors,<wbr/> the active array is surrounded by some
optically shielded pixel areas.<wbr/> By blocking light,<wbr/> these pixels
provides a reliable black reference for black level compensation
in active array region.<wbr/></p>
<p>This key provides a list of disjoint rectangles specifying the
regions of optically shielded (with metal shield) black pixel
regions if the camera device is capable of reading out these black
pixels in the output raw images.<wbr/> In comparison to the fixed black
level values reported by <a href="#static_android.sensor.blackLevelPattern">android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern</a>,<wbr/> this key
may provide a more accurate way for the application to calculate
black level of each captured raw images.<wbr/></p>
<p>When this key is reported,<wbr/> the <a href="#dynamic_android.sensor.dynamicBlackLevel">android.<wbr/>sensor.<wbr/>dynamic<wbr/>Black<wbr/>Level</a> and
<a href="#dynamic_android.sensor.dynamicWhiteLevel">android.<wbr/>sensor.<wbr/>dynamic<wbr/>White<wbr/>Level</a> will also be reported.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This array contains (xmin,<wbr/> ymin,<wbr/> width,<wbr/> height).<wbr/> The (xmin,<wbr/> ymin)
must be &gt;= (0,<wbr/>0) and &lt;=
<a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a>.<wbr/> The (width,<wbr/> height) must be
&lt;= <a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a>.<wbr/> Each region must be
outside the region reported by
<a href="#static_android.sensor.info.preCorrectionActiveArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<wbr/>Active<wbr/>Array<wbr/>Size</a>.<wbr/></p>
<p>The HAL must report minimal number of disjoint regions for the
optically shielded back pixel regions.<wbr/> For example,<wbr/> if a region can
be covered by one rectangle,<wbr/> the HAL must not split this region into
multiple rectangles.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.sensor.opaqueRawSize">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>sensor.<wbr/>opaque<wbr/>Raw<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">
                  n x 3
                </span>
              <span class="entry_type_visibility"> [system]</span>






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

            <td class="entry_description">
              <p>Size in bytes for all the listed opaque RAW buffer sizes</p>
            </td>

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

            <td class="entry_range">
              <p>Must be large enough to fit the opaque RAW of corresponding size produced by
the camera</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This configurations are listed as <code>(width,<wbr/> height,<wbr/> size_<wbr/>in_<wbr/>bytes)</code> tuples.<wbr/>
This is used for sizing the gralloc buffers for opaque RAW buffers.<wbr/>
All RAW_<wbr/>OPAQUE output stream configuration listed in
<a href="#static_android.scaler.availableStreamConfigurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stream<wbr/>Configurations</a> will have a corresponding tuple in
this key.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This key is added in legacy HAL3.<wbr/>4.<wbr/></p>
<p>For legacy HAL3.<wbr/>4 or above: devices advertising RAW_<wbr/>OPAQUE format output must list this
key.<wbr/>  For legacy HAL3.<wbr/>3 or earlier devices: if RAW_<wbr/>OPAQUE ouput is advertised,<wbr/> camera
framework will derive this key by assuming each pixel takes two bytes and no padding bytes
between rows.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="dynamic_android.sensor.exposureTime">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[full] </span>




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

            <td class="entry_description">
              <p>Duration each pixel is exposed to
light.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p><a href="#static_android.sensor.info.exposureTimeRange">android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>If the sensor can't expose this exact duration,<wbr/> it will shorten the
duration exposed to the nearest possible value (rather than expose longer).<wbr/>
The final exposure time used will be available in the output capture result.<wbr/></p>
<p>This control is only effective if <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> or <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is set to
OFF; otherwise the auto-exposure algorithm will override this value.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.sensor.frameDuration">
            <td class="entry_name
             " rowspan="5">
              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>


              <span class="entry_type_hwlevel">[full] </span>




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

            <td class="entry_description">
              <p>Duration from start of frame exposure to
start of next frame exposure.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/> <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html">StreamConfigurationMap</a>.<wbr/>
The duration is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The maximum frame rate that can be supported by a camera subsystem is
a function of many factors:</p>
<ul>
<li>Requested resolutions of output image streams</li>
<li>Availability of binning /<wbr/> skipping modes on the imager</li>
<li>The bandwidth of the imager interface</li>
<li>The bandwidth of the various ISP processing blocks</li>
</ul>
<p>Since these factors can vary greatly between different ISPs and
sensors,<wbr/> the camera abstraction tries to represent the bandwidth
restrictions with as simple a model as possible.<wbr/></p>
<p>The model presented has the following characteristics:</p>
<ul>
<li>The image sensor is always configured to output the smallest
resolution possible given the application's requested output stream
sizes.<wbr/>  The smallest resolution is defined as being at least as large
as the largest requested output stream size; the camera pipeline must
never digitally upsample sensor data when the crop region covers the
whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
resolutions are configured,<wbr/> the sensor can provide a higher frame
rate.<wbr/></li>
<li>Since any request may use any or all the currently configured
output streams,<wbr/> the sensor and ISP must be configured to support
scaling a single capture to all the streams at the same time.<wbr/>  This
means the camera pipeline must be ready to produce the largest
requested output size without any delay.<wbr/>  Therefore,<wbr/> the overall
frame rate of a given configured stream set is governed only by the
largest requested stream resolution.<wbr/></li>
<li>Using more than one output stream in a request does not affect the
frame duration.<wbr/></li>
<li>Certain format-streams may need to do additional background processing
before data is consumed/<wbr/>produced by that stream.<wbr/> These processors
can run concurrently to the rest of the camera pipeline,<wbr/> but
cannot process more than 1 capture at a time.<wbr/></li>
</ul>
<p>The necessary information for the application,<wbr/> given the model above,<wbr/> is provided via
<a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputMinFrameDuration">StreamConfigurationMap#getOutputMinFrameDuration</a>.<wbr/>
These are used to determine the maximum frame rate /<wbr/> minimum frame duration that is
possible for a given stream configuration.<wbr/></p>
<p>Specifically,<wbr/> the application can use the following rules to
determine the minimum frame duration it can request from the camera
device:</p>
<ol>
<li>Let the set of currently configured input/<wbr/>output streams be called <code>S</code>.<wbr/></li>
<li>Find the minimum frame durations for each stream in <code>S</code>,<wbr/> by looking it up in <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputMinFrameDuration">StreamConfigurationMap#getOutputMinFrameDuration</a>
(with its respective size/<wbr/>format).<wbr/> Let this set of frame durations be called <code>F</code>.<wbr/></li>
<li>For any given request <code>R</code>,<wbr/> the minimum frame duration allowed for <code>R</code> is the maximum
out of all values in <code>F</code>.<wbr/> Let the streams used in <code>R</code> be called <code>S_<wbr/>r</code>.<wbr/></li>
</ol>
<p>If none of the streams in <code>S_<wbr/>r</code> have a stall time (listed in <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputStallDuration">StreamConfigurationMap#getOutputStallDuration</a>
using its respective size/<wbr/>format),<wbr/> then the frame duration in <code>F</code> determines the steady
state frame rate that the application will get if it uses <code>R</code> as a repeating request.<wbr/> Let
this special kind of request be called <code>Rsimple</code>.<wbr/></p>
<p>A repeating request <code>Rsimple</code> can be <em>occasionally</em> interleaved by a single capture of a
new request <code>Rstall</code> (which has at least one in-use stream with a non-0 stall time) and if
<code>Rstall</code> has the same minimum frame duration this will not cause a frame rate loss if all
buffers from the previous <code>Rstall</code> have already been delivered.<wbr/></p>
<p>For more details about stalling,<wbr/> see <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputStallDuration">StreamConfigurationMap#getOutputStallDuration</a>.<wbr/></p>
<p>This control is only effective if <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> or <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is set to
OFF; otherwise the auto-exposure algorithm will override this value.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>For more details about stalling,<wbr/> see
<a href="#static_android.scaler.availableStallDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stall<wbr/>Durations</a>.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.sensor.sensitivity">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>sensor.<wbr/>sensitivity
            </td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>

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


              <span class="entry_type_hwlevel">[full] </span>




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

            <td class="entry_description">
              <p>The amount of gain applied to sensor data
before processing.<wbr/></p>
            </td>

            <td class="entry_units">
              ISO arithmetic units
            </td>

            <td class="entry_range">
              <p><a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The sensitivity is the standard ISO sensitivity value,<wbr/>
as defined in ISO 12232:2006.<wbr/></p>
<p>The sensitivity must be within <a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a>,<wbr/> and
if if it less than <a href="#static_android.sensor.maxAnalogSensitivity">android.<wbr/>sensor.<wbr/>max<wbr/>Analog<wbr/>Sensitivity</a>,<wbr/> the camera device
is guaranteed to use only analog amplification for applying the gain.<wbr/></p>
<p>If the camera device cannot apply the exact sensitivity
requested,<wbr/> it will reduce the gain to the nearest supported
value.<wbr/> The final sensitivity used will be available in the
output capture result.<wbr/></p>
<p>This control is only effective if <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> or <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is set to
OFF; otherwise the auto-exposure algorithm will override this value.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>ISO 12232:2006 REI method is acceptable.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.sensor.timestamp">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>sensor.<wbr/>timestamp
            </td>
            <td class="entry_type">
                <span class="entry_type_name">int64</span>

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


              <span class="entry_type_hwlevel">[legacy] </span>




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

            <td class="entry_description">
              <p>Time at start of exposure of first
row of the image sensor active array,<wbr/> in nanoseconds.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>&gt; 0</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The timestamps are also included in all image
buffers produced for the same capture,<wbr/> and will be identical
on all the outputs.<wbr/></p>
<p>When <a href="#static_android.sensor.info.timestampSource">android.<wbr/>sensor.<wbr/>info.<wbr/>timestamp<wbr/>Source</a> <code>==</code> UNKNOWN,<wbr/>
the timestamps measure time since an unspecified starting point,<wbr/>
and are monotonically increasing.<wbr/> They can be compared with the
timestamps for other captures from the same camera device,<wbr/> but are
not guaranteed to be comparable to any other time source.<wbr/></p>
<p>When <a href="#static_android.sensor.info.timestampSource">android.<wbr/>sensor.<wbr/>info.<wbr/>timestamp<wbr/>Source</a> <code>==</code> REALTIME,<wbr/> the
timestamps measure time in the same timebase as <a href="https://developer.android.com/reference/android/os/SystemClock.html#elapsedRealtimeNanos">SystemClock#elapsedRealtimeNanos</a>,<wbr/> and they can
be compared to other timestamps from other subsystems that
are using that base.<wbr/></p>
<p>For reprocessing,<wbr/> the timestamp will match the start of exposure of
the input image,<wbr/> i.<wbr/>e.<wbr/> <a href="https://developer.android.com/reference/CaptureResult.html#SENSOR_TIMESTAMP">the
timestamp</a> in the TotalCaptureResult that was used to create the
reprocess capture request.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>All timestamps must be in reference to the kernel's
CLOCK_<wbr/>BOOTTIME monotonic clock,<wbr/> which properly accounts for
time spent asleep.<wbr/> This allows for synchronization with
sensors that continue to operate while the system is
otherwise asleep.<wbr/></p>
<p>If <a href="#static_android.sensor.info.timestampSource">android.<wbr/>sensor.<wbr/>info.<wbr/>timestamp<wbr/>Source</a> <code>==</code> REALTIME,<wbr/>
The timestamp must be synchronized with the timestamps from other
sensor subsystems that are using the same timebase.<wbr/></p>
<p>For reprocessing,<wbr/> the input image's start of exposure can be looked up
with <a href="#dynamic_android.sensor.timestamp">android.<wbr/>sensor.<wbr/>timestamp</a> from the metadata included in the
capture request.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.sensor.temperature">
            <td class="entry_name
             " rowspan="1">
              android.<wbr/>sensor.<wbr/>temperature
            </td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>

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






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

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

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_FUTURE">FUTURE</a></li>
              </ul>
            </td>

          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.sensor.neutralColorPoint">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>sensor.<wbr/>neutral<wbr/>Color<wbr/>Point
            </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
                </span>
              <span class="entry_type_visibility"> [public]</span>






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

            <td class="entry_description">
              <p>The estimated camera neutral color in the native sensor colorspace at
the time of capture.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_RAW">RAW</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This value gives the neutral color point encoded as an RGB value in the
native sensor color space.<wbr/>  The neutral color point indicates the
currently estimated white point of the scene illumination.<wbr/>  It can be
used to interpolate between the provided color transforms when
processing raw sensor data.<wbr/></p>
<p>The order of the values is R,<wbr/> G,<wbr/> B; where R is in the lowest index.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.sensor.noiseProfile">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>sensor.<wbr/>noise<wbr/>Profile
            </td>
            <td class="entry_type">
                <span class="entry_type_name">double</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  2 x CFA Channels
                </span>
              <span class="entry_type_visibility"> [public as pairDoubleDouble]</span>




                <div class="entry_type_notes">Pairs of noise model coefficients</div>


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

            <td class="entry_description">
              <p>Noise model coefficients for each CFA mosaic channel.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_RAW">RAW</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This key contains two noise model coefficients for each CFA channel
corresponding to the sensor amplification (S) and sensor readout
noise (O).<wbr/>  These are given as pairs of coefficients for each channel
in the same order as channels listed for the CFA layout key
(see <a href="#static_android.sensor.info.colorFilterArrangement">android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement</a>).<wbr/>  This is
represented as an array of Pair&lt;Double,<wbr/> Double&gt;,<wbr/> where
the first member of the Pair at index n is the S coefficient and the
second member is the O coefficient for the nth color channel in the CFA.<wbr/></p>
<p>These coefficients are used in a two parameter noise model to describe
the amount of noise present in the image for each CFA channel.<wbr/>  The
noise model used here is:</p>
<p>N(x) = sqrt(Sx + O)</p>
<p>Where x represents the recorded signal of a CFA channel normalized to
the range [0,<wbr/> 1],<wbr/> and S and O are the noise model coeffiecients for
that channel.<wbr/></p>
<p>A more detailed description of the noise model can be found in the
Adobe DNG specification for the NoiseProfile tag.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>For a CFA layout of RGGB,<wbr/> the list of coefficients would be given as
an array of doubles S0,<wbr/>O0,<wbr/>S1,<wbr/>O1,...,<wbr/> where S0 and O0 are the coefficients
for the red channel,<wbr/> S1 and O1 are the coefficients for the first green
channel,<wbr/> etc.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.sensor.profileHueSatMap">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>sensor.<wbr/>profile<wbr/>Hue<wbr/>Sat<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">
                  hue_samples x saturation_samples x value_samples x 3
                </span>
              <span class="entry_type_visibility"> [system]</span>




                <div class="entry_type_notes">Mapping for hue,<wbr/> saturation,<wbr/> and value</div>


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

            <td class="entry_description">
              <p>A mapping containing a hue shift,<wbr/> saturation scale,<wbr/> and value scale
for each pixel.<wbr/></p>
            </td>

            <td class="entry_units">
              
          The hue shift is given in degrees; saturation and value scale factors are
          unitless and are between 0 and 1 inclusive
          
            </td>

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_RAW">RAW</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>hue_<wbr/>samples,<wbr/> saturation_<wbr/>samples,<wbr/> and value_<wbr/>samples are given in
<a href="#static_android.sensor.profileHueSatMapDimensions">android.<wbr/>sensor.<wbr/>profile<wbr/>Hue<wbr/>Sat<wbr/>Map<wbr/>Dimensions</a>.<wbr/></p>
<p>Each entry of this map contains three floats corresponding to the
hue shift,<wbr/> saturation scale,<wbr/> and value scale,<wbr/> respectively; where the
hue shift has the lowest index.<wbr/> The map entries are stored in the key
in nested loop order,<wbr/> with the value divisions in the outer loop,<wbr/> the
hue divisions in the middle loop,<wbr/> and the saturation divisions in the
inner loop.<wbr/> All zero input saturation entries are required to have a
value scale factor of 1.<wbr/>0.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.sensor.profileToneCurve">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>sensor.<wbr/>profile<wbr/>Tone<wbr/>Curve
            </td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>
                <span class="entry_type_container">x</span>

                <span class="entry_type_array">
                  samples x 2
                </span>
              <span class="entry_type_visibility"> [system]</span>




                <div class="entry_type_notes">Samples defining a spline for a tone-mapping curve</div>


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

            <td class="entry_description">
              <p>A list of x,<wbr/>y samples defining a tone-mapping curve for gamma adjustment.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>Each sample has an input range of <code>[0,<wbr/> 1]</code> and an output range of
<code>[0,<wbr/> 1]</code>.<wbr/>  The first sample is required to be <code>(0,<wbr/> 0)</code>,<wbr/> and the last
sample is required to be <code>(1,<wbr/> 1)</code>.<wbr/></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_RAW">RAW</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This key contains a default tone curve that can be applied while
processing the image as a starting point for user adjustments.<wbr/>
The curve is specified as a list of value pairs in linear gamma.<wbr/>
The curve is interpolated using a cubic spline.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.sensor.greenSplit">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>sensor.<wbr/>green<wbr/>Split
            </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">
              <p>The worst-case divergence between Bayer green channels.<wbr/></p>
            </td>

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

            <td class="entry_range">
              <p>&gt;= 0</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_RAW">RAW</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This value is an estimate of the worst case split between the
Bayer green channels in the red and blue rows in the sensor color
filter array.<wbr/></p>
<p>The green split is calculated as follows:</p>
<ol>
<li>A 5x5 pixel (or larger) window W within the active sensor array is
chosen.<wbr/> The term 'pixel' here is taken to mean a group of 4 Bayer
mosaic channels (R,<wbr/> Gr,<wbr/> Gb,<wbr/> B).<wbr/>  The location and size of the window
chosen is implementation defined,<wbr/> and should be chosen to provide a
green split estimate that is both representative of the entire image
for this camera sensor,<wbr/> and can be calculated quickly.<wbr/></li>
<li>The arithmetic mean of the green channels from the red
rows (mean_<wbr/>Gr) within W is computed.<wbr/></li>
<li>The arithmetic mean of the green channels from the blue
rows (mean_<wbr/>Gb) within W is computed.<wbr/></li>
<li>The maximum ratio R of the two means is computed as follows:
<code>R = max((mean_<wbr/>Gr + 1)/<wbr/>(mean_<wbr/>Gb + 1),<wbr/> (mean_<wbr/>Gb + 1)/<wbr/>(mean_<wbr/>Gr + 1))</code></li>
</ol>
<p>The ratio R is the green split divergence reported for this property,<wbr/>
which represents how much the green channels differ in the mosaic
pattern.<wbr/>  This value is typically used to determine the treatment of
the green mosaic channels when demosaicing.<wbr/></p>
<p>The green split value can be roughly interpreted as follows:</p>
<ul>
<li>R &lt; 1.<wbr/>03 is a negligible split (&lt;3% divergence).<wbr/></li>
<li>1.<wbr/>20 &lt;= R &gt;= 1.<wbr/>03 will require some software
correction to avoid demosaic errors (3-20% divergence).<wbr/></li>
<li>R &gt; 1.<wbr/>20 will require strong software correction to produce
a usuable image (&gt;20% divergence).<wbr/></li>
</ul>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The green split given may be a static value based on prior
characterization of the camera sensor using the green split
calculation method given here over a large,<wbr/> representative,<wbr/> sample
set of images.<wbr/>  Other methods of calculation that produce equivalent
results,<wbr/> and can be interpreted in the same manner,<wbr/> may be used.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.sensor.testPatternData">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data
            </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]</span>






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

            <td class="entry_description">
              <p>A pixel <code>[R,<wbr/> G_<wbr/>even,<wbr/> G_<wbr/>odd,<wbr/> B]</code> that supplies the test pattern
when <a href="#controls_android.sensor.testPatternMode">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode</a> is SOLID_<wbr/>COLOR.<wbr/></p>
            </td>

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

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

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

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

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Each color channel is treated as an unsigned 32-bit integer.<wbr/>
The camera device then uses the most significant X bits
that correspond to how many bits are in its Bayer raw sensor
output.<wbr/></p>
<p>For example,<wbr/> a sensor with RAW10 Bayer output would use the
10 most significant bits from each color channel.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.sensor.testPatternMode">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
            </td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">int32</span>

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





                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>No test pattern mode is used,<wbr/> and the camera
device returns captures from the image sensor.<wbr/></p>
<p>This is the default if the key is not set.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">SOLID_COLOR (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Each pixel in <code>[R,<wbr/> G_<wbr/>even,<wbr/> G_<wbr/>odd,<wbr/> B]</code> is replaced by its
respective color channel provided in
<a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
<p>For example:</p>
<pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
</code></pre>
<p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
<pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
</code></pre>
<p>All red pixels are 100% red.<wbr/> Only the odd green pixels
are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">COLOR_BARS (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
<p>The vertical bars (left-to-right) are as follows:</p>
<ul>
<li>100% white</li>
<li>yellow</li>
<li>cyan</li>
<li>green</li>
<li>magenta</li>
<li>red</li>
<li>blue</li>
<li>black</li>
</ul>
<p>In general the image would look like the following:</p>
<pre><code>W Y C G M R B K
W Y C G M R B K
W Y C G M R B K
W Y C G M R B K
W Y C G M R B K
.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>

(B = Blue,<wbr/> K = Black)
</code></pre>
<p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
When this is not possible,<wbr/> the bar size should be rounded
down to the nearest integer and the pattern can repeat
on the right side.<wbr/></p>
<p>Each bar's height must always take up the full sensor
pixel array height.<wbr/></p>
<p>Each pixel in this test pattern must be set to either
0% intensity or 100% intensity.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
each bar should start at its specified color at the top,<wbr/>
and fade to gray at the bottom.<wbr/></p>
<p>Furthermore each bar is further subdivided into a left and
right half.<wbr/> The left half should have a smooth gradient,<wbr/>
and the right half should have a quantized gradient.<wbr/></p>
<p>In particular,<wbr/> the right half's should consist of blocks of the
same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
<p>The least significant bits in the quantized gradient should
be copied from the most significant bits of the smooth gradient.<wbr/></p>
<p>The height of each bar should always be a multiple of 128.<wbr/>
When this is not the case,<wbr/> the pattern should repeat at the bottom
of the image.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">PN9 (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
generated from a PN9 512-bit sequence (typically implemented
in hardware with a linear feedback shift register).<wbr/></p>
<p>The generator should be reset at the beginning of each frame,<wbr/>
and thus each subsequent raw frame with this test pattern should
be exactly the same as the last.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">CUSTOM1 (v3.2)</span>
                    <span class="entry_type_enum_value">256</span>
                    <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
available only on this camera device are at least this numeric
value.<wbr/></p>
<p>All of the custom test patterns will be static
(that is the raw image must not vary from frame to frame).<wbr/></p></span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>When enabled,<wbr/> the sensor sends a test pattern instead of
doing a real exposure from the camera.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              <p><a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
by android.<wbr/>sensor.<wbr/>* will be ignored.<wbr/> All other controls should
work as normal.<wbr/></p>
<p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
occur (and that the test pattern remain unmodified,<wbr/> since the flash
would not actually affect it).<wbr/></p>
<p>Defaults to OFF.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>All test patterns are specified in the Bayer domain.<wbr/></p>
<p>The HAL may choose to substitute test patterns from the sensor
with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
indistinguishable to the ISP whether the data came from the
sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.sensor.rollingShutterSkew">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>sensor.<wbr/>rolling<wbr/>Shutter<wbr/>Skew
            </td>
            <td class="entry_type">
                <span class="entry_type_name">int64</span>

              <span class="entry_type_visibility"> [public]</span>


              <span class="entry_type_hwlevel">[limited] </span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>Duration between the start of first row exposure
and the start of last row exposure.<wbr/></p>
            </td>

            <td class="entry_units">
              Nanoseconds
            </td>

            <td class="entry_range">
              <p>&gt;= 0 and &lt;
<a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputMinFrameDuration">StreamConfigurationMap#getOutputMinFrameDuration</a>.<wbr/></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This is the exposure time skew between the first and last
row exposure start times.<wbr/> The first row and the last row are
the first and last rows inside of the
<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/></p>
<p>For typical camera sensors that use rolling shutters,<wbr/> this is also equivalent
to the frame readout time.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The HAL must report <code>0</code> if the sensor is using global shutter,<wbr/> where all pixels begin
exposure at the same time.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.sensor.dynamicBlackLevel">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>sensor.<wbr/>dynamic<wbr/>Black<wbr/>Level
            </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">2x2 raw count block</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>A per-frame dynamic black level offset for each of the color filter
arrangement (CFA) mosaic channels.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              <p>&gt;= 0 for each.<wbr/></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_RAW">RAW</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Camera sensor black levels may vary dramatically for different
capture settings (e.<wbr/>g.<wbr/> <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>).<wbr/> The fixed black
level reported by <a href="#static_android.sensor.blackLevelPattern">android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern</a> may be too
inaccurate to represent the actual value on a per-frame basis.<wbr/> The
camera device internal pipeline relies on reliable black level values
to process the raw images appropriately.<wbr/> To get the best image
quality,<wbr/> the camera device may choose to estimate the per frame black
level values either based on optically shielded black regions
(<a href="#static_android.sensor.opticalBlackRegions">android.<wbr/>sensor.<wbr/>optical<wbr/>Black<wbr/>Regions</a>) or its internal model.<wbr/></p>
<p>This key reports the camera device estimated per-frame zero light
value for each of the CFA mosaic channels in the camera sensor.<wbr/> The
<a href="#static_android.sensor.blackLevelPattern">android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern</a> may only represent a coarse
approximation of the actual black level values.<wbr/> This value is the
black level used in camera device internal image processing pipeline
and generally more accurate than the fixed black level values.<wbr/>
However,<wbr/> since they are estimated values by the camera device,<wbr/> they
may not be as accurate as the black level values calculated from the
optical black pixels reported by <a href="#static_android.sensor.opticalBlackRegions">android.<wbr/>sensor.<wbr/>optical<wbr/>Black<wbr/>Regions</a>.<wbr/></p>
<p>The values are given in the same order as channels listed for the CFA
layout key (see <a href="#static_android.sensor.info.colorFilterArrangement">android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement</a>),<wbr/> i.<wbr/>e.<wbr/> the
nth value given corresponds to the black level offset for the nth
color channel listed in the CFA.<wbr/></p>
<p>This key will be available if <a href="#static_android.sensor.opticalBlackRegions">android.<wbr/>sensor.<wbr/>optical<wbr/>Black<wbr/>Regions</a> is available or the
camera device advertises this key via <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#getAvailableCaptureResultKeys">CameraCharacteristics#getAvailableCaptureResultKeys</a>.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The values are given in row-column scan order,<wbr/> with the first value
corresponding to the element of the CFA in row=0,<wbr/> column=0.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.sensor.dynamicWhiteLevel">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>sensor.<wbr/>dynamic<wbr/>White<wbr/>Level
            </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">
              <p>Maximum raw value output by sensor for this frame.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              <p>&gt;= 0</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_RAW">RAW</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Since the <a href="#static_android.sensor.blackLevelPattern">android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern</a> may change for different
capture settings (e.<wbr/>g.,<wbr/> <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>),<wbr/> the white
level will change accordingly.<wbr/> This key is similar to
<a href="#static_android.sensor.info.whiteLevel">android.<wbr/>sensor.<wbr/>info.<wbr/>white<wbr/>Level</a>,<wbr/> but specifies the camera device
estimated white level for each frame.<wbr/></p>
<p>This key will be available if <a href="#static_android.sensor.opticalBlackRegions">android.<wbr/>sensor.<wbr/>optical<wbr/>Black<wbr/>Regions</a> is
available or the camera device advertises this key via
<a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#getAvailableCaptureRequestKeys">CameraCharacteristics#getAvailableCaptureRequestKeys</a>.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The full bit depth of the sensor must be available in the raw data,<wbr/>
so the value for linear sensors should not be significantly lower
than maximum raw value supported,<wbr/> i.<wbr/>e.<wbr/> 2^(sensor bits per pixel).<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="controls_android.shading.mode">
            <td class="entry_name
             " rowspan="3">
              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"> [public]</span>


              <span class="entry_type_hwlevel">[full] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>No lens shading correction is applied.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FAST (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Apply lens shading corrections,<wbr/> without slowing
frame rate relative to sensor raw output</p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Apply high-quality lens shading correction,<wbr/> at the
cost of possibly reduced frame rate.<wbr/></p></span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>Quality of lens shading correction applied
to the image data.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              <p><a href="#static_android.shading.availableModes">android.<wbr/>shading.<wbr/>available<wbr/>Modes</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
camera device,<wbr/> and an identity lens shading map data will be provided
if <code><a href="#controls_android.statistics.lensShadingMapMode">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode</a> == ON</code>.<wbr/> For example,<wbr/> for lens
shading map with size of <code>[ 4,<wbr/> 3 ]</code>,<wbr/>
the output <a href="#dynamic_android.statistics.lensShadingCorrectionMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Correction<wbr/>Map</a> for this case will be an identity
map shown below:</p>
<pre><code>[ 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>  1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>  1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>  1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>  1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>  1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>  1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0 ]
</code></pre>
<p>When set to other modes,<wbr/> lens shading correction will be applied by the camera
device.<wbr/> Applications can request lens shading map data by setting
<a href="#controls_android.statistics.lensShadingMapMode">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode</a> to ON,<wbr/> and then the camera device will provide lens
shading map data in <a href="#dynamic_android.statistics.lensShadingCorrectionMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Correction<wbr/>Map</a>; the returned shading map
data will be the one applied by the camera device for this capture request.<wbr/></p>
<p>The shading map data may depend on the auto-exposure (AE) and AWB statistics,<wbr/> therefore
the reliability of the map data may be affected by the AE and AWB algorithms.<wbr/> When AE and
AWB are in AUTO modes(<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> <code>!=</code> OFF and <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> <code>!=</code>
OFF),<wbr/> to get best results,<wbr/> it is recommended that the applications wait for the AE and AWB
to be converged before using the returned shading map data.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.shading.strength">
            <td class="entry_name
             " rowspan="1">
              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">
              <p>Control the amount of shading correction
applied to the images</p>
            </td>

            <td class="entry_units">
              unitless: 1-10; 10 is full shading
          compensation
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_FUTURE">FUTURE</a></li>
              </ul>
            </td>

          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="dynamic_android.shading.mode">
            <td class="entry_name
             " rowspan="3">
              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"> [public]</span>


              <span class="entry_type_hwlevel">[full] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>No lens shading correction is applied.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FAST (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Apply lens shading corrections,<wbr/> without slowing
frame rate relative to sensor raw output</p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Apply high-quality lens shading correction,<wbr/> at the
cost of possibly reduced frame rate.<wbr/></p></span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>Quality of lens shading correction applied
to the image data.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              <p><a href="#static_android.shading.availableModes">android.<wbr/>shading.<wbr/>available<wbr/>Modes</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
camera device,<wbr/> and an identity lens shading map data will be provided
if <code><a href="#controls_android.statistics.lensShadingMapMode">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode</a> == ON</code>.<wbr/> For example,<wbr/> for lens
shading map with size of <code>[ 4,<wbr/> 3 ]</code>,<wbr/>
the output <a href="#dynamic_android.statistics.lensShadingCorrectionMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Correction<wbr/>Map</a> for this case will be an identity
map shown below:</p>
<pre><code>[ 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>  1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>  1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>  1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>  1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>  1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>
 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>  1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0 ]
</code></pre>
<p>When set to other modes,<wbr/> lens shading correction will be applied by the camera
device.<wbr/> Applications can request lens shading map data by setting
<a href="#controls_android.statistics.lensShadingMapMode">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode</a> to ON,<wbr/> and then the camera device will provide lens
shading map data in <a href="#dynamic_android.statistics.lensShadingCorrectionMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Correction<wbr/>Map</a>; the returned shading map
data will be the one applied by the camera device for this capture request.<wbr/></p>
<p>The shading map data may depend on the auto-exposure (AE) and AWB statistics,<wbr/> therefore
the reliability of the map data may be affected by the AE and AWB algorithms.<wbr/> When AE and
AWB are in AUTO modes(<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> <code>!=</code> OFF and <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> <code>!=</code>
OFF),<wbr/> to get best results,<wbr/> it is recommended that the applications wait for the AE and AWB
to be converged before using the returned shading map data.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="static_android.shading.availableModes">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>shading.<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 as enumList]</span>


              <span class="entry_type_hwlevel">[legacy] </span>


                <div class="entry_type_notes">List of enums (android.<wbr/>shading.<wbr/>mode).<wbr/></div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>List of lens shading modes for <a href="#controls_android.shading.mode">android.<wbr/>shading.<wbr/>mode</a> that are supported by this camera device.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              <p>Any value listed in <a href="#controls_android.shading.mode">android.<wbr/>shading.<wbr/>mode</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This list contains lens shading modes that can be set for the camera device.<wbr/>
Camera devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability will always
list OFF and FAST mode.<wbr/> This includes all FULL level devices.<wbr/>
LEGACY devices will always only support FAST mode.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>HAL must support both FAST and HIGH_<wbr/>QUALITY if lens shading correction control is
available on the camera device,<wbr/> but the underlying implementation can be the same for
both modes.<wbr/> That is,<wbr/> if the highest quality implementation on the camera device does not
slow down capture rate,<wbr/> then FAST and HIGH_<wbr/>QUALITY will generate the same output.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="controls_android.statistics.faceDetectMode">
            <td class="entry_name
             " rowspan="5">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Do not include face detection statistics in capture
results.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">SIMPLE (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Return face rectangle and confidence values only.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FULL (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Return all face
metadata.<wbr/></p>
<p>In this mode,<wbr/> face rectangles,<wbr/> scores,<wbr/> landmarks,<wbr/> and face IDs are all valid.<wbr/></p></span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>Operating mode for the face detector
unit.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              <p><a href="#static_android.statistics.info.availableFaceDetectModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Whether face detection is enabled,<wbr/> and whether it
should output just the basic fields or the full set of
fields.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>SIMPLE mode must fill in <a href="#dynamic_android.statistics.faceRectangles">android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles</a> and
<a href="#dynamic_android.statistics.faceScores">android.<wbr/>statistics.<wbr/>face<wbr/>Scores</a>.<wbr/>
FULL mode must also fill in <a href="#dynamic_android.statistics.faceIds">android.<wbr/>statistics.<wbr/>face<wbr/>Ids</a>,<wbr/> and
<a href="#dynamic_android.statistics.faceLandmarks">android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks</a>.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.statistics.histogramMode">
            <td class="entry_name
             " rowspan="1">
              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 (v3.2)</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON (v3.2)</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>Operating mode for histogram
generation</p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_FUTURE">FUTURE</a></li>
              </ul>
            </td>

          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.statistics.sharpnessMapMode">
            <td class="entry_name
             " rowspan="1">
              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 (v3.2)</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON (v3.2)</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>Operating mode for sharpness map
generation</p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_FUTURE">FUTURE</a></li>
              </ul>
            </td>

          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.statistics.hotPixelMapMode">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<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 as boolean]</span>





                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Hot pixel map production is disabled.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Hot pixel map production is enabled.<wbr/></p></span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>Operating mode for hot pixel map generation.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              <p><a href="#static_android.statistics.info.availableHotPixelMapModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Hot<wbr/>Pixel<wbr/>Map<wbr/>Modes</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
                  <li><a href="#tag_RAW">RAW</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>If set to <code>true</code>,<wbr/> a hot pixel map is returned in <a href="#dynamic_android.statistics.hotPixelMap">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map</a>.<wbr/>
If set to <code>false</code>,<wbr/> no hot pixel map will be returned.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.statistics.lensShadingMapMode">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[full] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Do not include a lens shading map in the capture result.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Include a lens shading map in the capture result.<wbr/></p></span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>Whether the camera device will output the lens
shading map in output result metadata.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              <p><a href="#static_android.statistics.info.availableLensShadingMapModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Lens<wbr/>Shading<wbr/>Map<wbr/>Modes</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_RAW">RAW</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>When set to ON,<wbr/>
<a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> will be provided in
the output result metadata.<wbr/></p>
<p>ON is always supported on devices with the RAW capability.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.statistics.oisDataMode">
            <td class="entry_name
             " rowspan="1">
              android.<wbr/>statistics.<wbr/>ois<wbr/>Data<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 (v3.3)</span>
                    <span class="entry_type_enum_notes"><p>Do not include OIS data in the capture result.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON (v3.3)</span>
                    <span class="entry_type_enum_notes"><p>Include OIS data in the capture result.<wbr/></p></span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>A control for selecting whether OIS position information is included in output
result metadata.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              <p><a href="#static_android.statistics.info.availableOisDataModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Ois<wbr/>Data<wbr/>Modes</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>3</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        
                
            

                
          <tr class="entry" id="static_android.statistics.info.availableFaceDetectModes">
            <td class="entry_name
             " rowspan="3">
              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 as enumList]</span>


              <span class="entry_type_hwlevel">[legacy] </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">
              <p>List of face detection modes for <a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a> that are
supported by this camera device.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              <p>Any value listed in <a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>OFF is always supported.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.statistics.info.histogramBucketCount">
            <td class="entry_name
             " rowspan="1">
              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">
              <p>Number of histogram buckets
supported</p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              <p>&gt;= 64</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_FUTURE">FUTURE</a></li>
              </ul>
            </td>

          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.statistics.info.maxFaceCount">
            <td class="entry_name
             " rowspan="1">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>The maximum number of simultaneously detectable
faces.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              <p>0 for cameras without available face detection; otherwise:
<code>&gt;=4</code> for LIMITED or FULL hwlevel devices or
<code>&gt;0</code> for LEGACY devices.<wbr/></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.statistics.info.maxHistogramCount">
            <td class="entry_name
             " rowspan="1">
              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">
              <p>Maximum value possible for a histogram
bucket</p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_FUTURE">FUTURE</a></li>
              </ul>
            </td>

          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.statistics.info.maxSharpnessMapValue">
            <td class="entry_name
             " rowspan="1">
              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">
              <p>Maximum value possible for a sharpness map
region.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_FUTURE">FUTURE</a></li>
              </ul>
            </td>

          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.statistics.info.sharpnessMapSize">
            <td class="entry_name
             " rowspan="1">
              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">
              <p>Dimensions of the sharpness
map</p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              <p>Must be at least 32 x 32</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_FUTURE">FUTURE</a></li>
              </ul>
            </td>

          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.statistics.info.availableHotPixelMapModes">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Hot<wbr/>Pixel<wbr/>Map<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 as boolean]</span>




                <div class="entry_type_notes">list of enums</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>List of hot pixel map output modes for <a href="#controls_android.statistics.hotPixelMapMode">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map<wbr/>Mode</a> that are
supported by this camera device.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              <p>Any value listed in <a href="#controls_android.statistics.hotPixelMapMode">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map<wbr/>Mode</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
                  <li><a href="#tag_RAW">RAW</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>If no hotpixel map output is available for this camera device,<wbr/> this will contain only
<code>false</code>.<wbr/></p>
<p>ON is always supported on devices with the RAW capability.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.statistics.info.availableLensShadingMapModes">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Lens<wbr/>Shading<wbr/>Map<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 as enumList]</span>




                <div class="entry_type_notes">list of enums</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>List of lens shading map output modes for <a href="#controls_android.statistics.lensShadingMapMode">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode</a> that
are supported by this camera device.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              <p>Any value listed in <a href="#controls_android.statistics.lensShadingMapMode">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>If no lens shading map output is available for this camera device,<wbr/> this key will
contain only OFF.<wbr/></p>
<p>ON is always supported on devices with the RAW capability.<wbr/>
LEGACY mode devices will always only support OFF.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.statistics.info.availableOisDataModes">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Ois<wbr/>Data<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 as enumList]</span>




                <div class="entry_type_notes">list of enums</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>List of OIS data output modes for <a href="#controls_android.statistics.oisDataMode">android.<wbr/>statistics.<wbr/>ois<wbr/>Data<wbr/>Mode</a> that
are supported by this camera device.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              <p>Any value listed in <a href="#controls_android.statistics.oisDataMode">android.<wbr/>statistics.<wbr/>ois<wbr/>Data<wbr/>Mode</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>3</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>If no OIS data output is available for this camera device,<wbr/> this key will
contain only OFF.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="dynamic_android.statistics.faceDetectMode">
            <td class="entry_name
             " rowspan="5">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Do not include face detection statistics in capture
results.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">SIMPLE (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Return face rectangle and confidence values only.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FULL (v3.2)</span>
                    <span class="entry_type_enum_optional">[optional]</span>
                    <span class="entry_type_enum_notes"><p>Return all face
metadata.<wbr/></p>
<p>In this mode,<wbr/> face rectangles,<wbr/> scores,<wbr/> landmarks,<wbr/> and face IDs are all valid.<wbr/></p></span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>Operating mode for the face detector
unit.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              <p><a href="#static_android.statistics.info.availableFaceDetectModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Whether face detection is enabled,<wbr/> and whether it
should output just the basic fields or the full set of
fields.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>SIMPLE mode must fill in <a href="#dynamic_android.statistics.faceRectangles">android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles</a> and
<a href="#dynamic_android.statistics.faceScores">android.<wbr/>statistics.<wbr/>face<wbr/>Scores</a>.<wbr/>
FULL mode must also fill in <a href="#dynamic_android.statistics.faceIds">android.<wbr/>statistics.<wbr/>face<wbr/>Ids</a>,<wbr/> and
<a href="#dynamic_android.statistics.faceLandmarks">android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks</a>.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.statistics.faceIds">
            <td class="entry_name
             " rowspan="3">
              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"> [ndk_public]</span>


              <span class="entry_type_hwlevel">[legacy] </span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>List of unique IDs for detected faces.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Each detected face is given a unique ID that is valid for as long as the face is visible
to the camera device.<wbr/>  A face that leaves the field of view and later returns may be
assigned a new ID.<wbr/></p>
<p>Only available if <a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a> == FULL</p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.statistics.faceLandmarks">
            <td class="entry_name
             " rowspan="3">
              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"> [ndk_public]</span>


              <span class="entry_type_hwlevel">[legacy] </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">
              <p>List of landmarks for detected
faces.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The coordinate system is that of <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>,<wbr/> with
<code>(0,<wbr/> 0)</code> being the top-left pixel of the active array.<wbr/></p>
<p>Only available if <a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a> == FULL</p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.statistics.faceRectangles">
            <td class="entry_name
             " rowspan="3">
              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"> [ndk_public as rectangle]</span>


              <span class="entry_type_hwlevel">[legacy] </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">
              <p>List of the bounding rectangles for detected
faces.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The coordinate system is that of <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>,<wbr/> with
<code>(0,<wbr/> 0)</code> being the top-left pixel of the active array.<wbr/></p>
<p>Only available if <a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a> != OFF</p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.statistics.faceScores">
            <td class="entry_name
             " rowspan="5">
              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"> [ndk_public]</span>


              <span class="entry_type_hwlevel">[legacy] </span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>List of the face confidence scores for
detected faces</p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              <p>1-100</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_BC">BC</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Only available if <a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a> != OFF.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The value should be meaningful (for example,<wbr/> setting 100 at
all times is illegal).<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.statistics.faces">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>statistics.<wbr/>faces
            </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"> [java_public as face]</span>

              <span class="entry_type_synthetic">[synthetic] </span>

              <span class="entry_type_hwlevel">[legacy] </span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>List of the faces detected through camera face detection
in this capture.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Only available if <a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a> <code>!=</code> OFF.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.statistics.histogram">
            <td class="entry_name
             " rowspan="3">
              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">
              <p>A 3-channel histogram based on the raw
sensor data</p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_FUTURE">FUTURE</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The k'th bucket (0-based) covers the input range
(with w = <a href="#static_android.sensor.info.whiteLevel">android.<wbr/>sensor.<wbr/>info.<wbr/>white<wbr/>Level</a>) 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</p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.statistics.histogramMode">
            <td class="entry_name
             " rowspan="1">
              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 (v3.2)</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON (v3.2)</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>Operating mode for histogram
generation</p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_FUTURE">FUTURE</a></li>
              </ul>
            </td>

          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.statistics.sharpnessMap">
            <td class="entry_name
             " rowspan="3">
              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">
              <p>A 3-channel sharpness map,<wbr/> based on the raw
sensor data</p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_FUTURE">FUTURE</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>If only a monochrome sharpness map is supported,<wbr/>
all channels should have the same data</p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.statistics.sharpnessMapMode">
            <td class="entry_name
             " rowspan="1">
              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 (v3.2)</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON (v3.2)</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>Operating mode for sharpness map
generation</p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_FUTURE">FUTURE</a></li>
              </ul>
            </td>

          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.statistics.lensShadingCorrectionMap">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Correction<wbr/>Map
            </td>
            <td class="entry_type">
                <span class="entry_type_name">byte</span>

              <span class="entry_type_visibility"> [java_public as lensShadingMap]</span>


              <span class="entry_type_hwlevel">[full] </span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>The shading map is a low-resolution floating-point map
that lists the coefficients used to correct for vignetting,<wbr/> for each
Bayer color channel.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              <p>Each gain factor is &gt;= 1</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The map provided here is the same map that is used by the camera device to
correct both color shading and vignetting for output non-RAW images.<wbr/></p>
<p>When there is no lens shading correction applied to RAW
output images (<a href="#static_android.sensor.info.lensShadingApplied">android.<wbr/>sensor.<wbr/>info.<wbr/>lens<wbr/>Shading<wbr/>Applied</a> <code>==</code>
false),<wbr/> this map is the complete lens shading correction
map; when there is some lens shading correction applied to
the RAW output image (<a href="#static_android.sensor.info.lensShadingApplied">android.<wbr/>sensor.<wbr/>info.<wbr/>lens<wbr/>Shading<wbr/>Applied</a><code>==</code> true),<wbr/> this map reports the remaining lens shading
correction map that needs to be applied to get shading
corrected images that match the camera device's output for
non-RAW formats.<wbr/></p>
<p>For a complete shading correction map,<wbr/> the least shaded
section of the image will have a gain factor of 1; all
other sections will have gains above 1.<wbr/></p>
<p>When <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> = TRANSFORM_<wbr/>MATRIX,<wbr/> the map
will take into account the colorCorrection settings.<wbr/></p>
<p>The shading map is for the entire active pixel array,<wbr/> and is not
affected by the crop region specified in the request.<wbr/> Each shading map
entry is the value of the shading compensation map over a specific
pixel on the sensor.<wbr/>  Specifically,<wbr/> with a (N x M) resolution shading
map,<wbr/> and an active pixel array size (W x H),<wbr/> shading map entry
(x,<wbr/>y) ϵ (0 ...<wbr/> N-1,<wbr/> 0 ...<wbr/> M-1) is the value of the shading map at
pixel ( ((W-1)/<wbr/>(N-1)) * x,<wbr/> ((H-1)/<wbr/>(M-1)) * y) for the four color channels.<wbr/>
The map is assumed to be bilinearly interpolated between the sample points.<wbr/></p>
<p>The channel order is [R,<wbr/> Geven,<wbr/> Godd,<wbr/> B],<wbr/> where Geven is the green
channel for the even rows of a Bayer pattern,<wbr/> and Godd is the odd rows.<wbr/>
The shading map is stored in a fully interleaved format.<wbr/></p>
<p>The shading map will generally have on the order of 30-40 rows and columns,<wbr/>
and will be smaller than 64x64.<wbr/></p>
<p>As an example,<wbr/> given a very small map defined as:</p>
<pre><code>width,<wbr/>height = [ 4,<wbr/> 3 ]
values =
[ 1.<wbr/>3,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>15,<wbr/> 1.<wbr/>2,<wbr/>  1.<wbr/>2,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>15,<wbr/> 1.<wbr/>2,<wbr/>
    1.<wbr/>1,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>2,<wbr/>  1.<wbr/>3,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>3,<wbr/> 1.<wbr/>3,<wbr/>
  1.<wbr/>2,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>25,<wbr/> 1.<wbr/>1,<wbr/>  1.<wbr/>1,<wbr/> 1.<wbr/>1,<wbr/> 1.<wbr/>1,<wbr/> 1.<wbr/>0,<wbr/>
    1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>  1.<wbr/>2,<wbr/> 1.<wbr/>3,<wbr/> 1.<wbr/>25,<wbr/> 1.<wbr/>2,<wbr/>
  1.<wbr/>3,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>3,<wbr/>   1.<wbr/>2,<wbr/> 1.<wbr/>15,<wbr/> 1.<wbr/>1,<wbr/> 1.<wbr/>2,<wbr/>
    1.<wbr/>2,<wbr/> 1.<wbr/>1,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>2,<wbr/>  1.<wbr/>3,<wbr/> 1.<wbr/>15,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>3 ]
</code></pre>
<p>The low-resolution scaling map images for each channel are
(displayed using nearest-neighbor interpolation):</p>
<p><img alt="Red lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/red_shading.png"/>
<img alt="Green (even rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_e_shading.png"/>
<img alt="Green (odd rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_o_shading.png"/>
<img alt="Blue lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/blue_shading.png"/></p>
<p>As a visualization only,<wbr/> inverting the full-color map to recover an
image of a gray wall (using bicubic interpolation for visual quality) as captured by the sensor gives:</p>
<p><img alt="Image of a uniform white wall (inverse shading map)" src="images/camera2/metadata/android.statistics.lensShadingMap/inv_shading.png"/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.statistics.lensShadingMap">
            <td class="entry_name
             " rowspan="5">
              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"> [ndk_public]</span>


              <span class="entry_type_hwlevel">[full] </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">
              <p>The shading map is a low-resolution floating-point map
that lists the coefficients used to correct for vignetting and color shading,<wbr/>
for each Bayer color channel of RAW image data.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              <p>Each gain factor is &gt;= 1</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The map provided here is the same map that is used by the camera device to
correct both color shading and vignetting for output non-RAW images.<wbr/></p>
<p>When there is no lens shading correction applied to RAW
output images (<a href="#static_android.sensor.info.lensShadingApplied">android.<wbr/>sensor.<wbr/>info.<wbr/>lens<wbr/>Shading<wbr/>Applied</a> <code>==</code>
false),<wbr/> this map is the complete lens shading correction
map; when there is some lens shading correction applied to
the RAW output image (<a href="#static_android.sensor.info.lensShadingApplied">android.<wbr/>sensor.<wbr/>info.<wbr/>lens<wbr/>Shading<wbr/>Applied</a><code>==</code> true),<wbr/> this map reports the remaining lens shading
correction map that needs to be applied to get shading
corrected images that match the camera device's output for
non-RAW formats.<wbr/></p>
<p>For a complete shading correction map,<wbr/> the least shaded
section of the image will have a gain factor of 1; all
other sections will have gains above 1.<wbr/></p>
<p>When <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> = TRANSFORM_<wbr/>MATRIX,<wbr/> the map
will take into account the colorCorrection settings.<wbr/></p>
<p>The shading map is for the entire active pixel array,<wbr/> and is not
affected by the crop region specified in the request.<wbr/> Each shading map
entry is the value of the shading compensation map over a specific
pixel on the sensor.<wbr/>  Specifically,<wbr/> with a (N x M) resolution shading
map,<wbr/> and an active pixel array size (W x H),<wbr/> shading map entry
(x,<wbr/>y) ϵ (0 ...<wbr/> N-1,<wbr/> 0 ...<wbr/> M-1) is the value of the shading map at
pixel ( ((W-1)/<wbr/>(N-1)) * x,<wbr/> ((H-1)/<wbr/>(M-1)) * y) for the four color channels.<wbr/>
The map is assumed to be bilinearly interpolated between the sample points.<wbr/></p>
<p>The channel order is [R,<wbr/> Geven,<wbr/> Godd,<wbr/> B],<wbr/> where Geven is the green
channel for the even rows of a Bayer pattern,<wbr/> and Godd is the odd rows.<wbr/>
The shading map is stored in a fully interleaved format,<wbr/> and its size
is provided in the camera static metadata by <a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a>.<wbr/></p>
<p>The shading map will generally have on the order of 30-40 rows and columns,<wbr/>
and will be smaller than 64x64.<wbr/></p>
<p>As an example,<wbr/> given a very small map defined as:</p>
<pre><code><a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a> = [ 4,<wbr/> 3 ]
<a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> =
[ 1.<wbr/>3,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>15,<wbr/> 1.<wbr/>2,<wbr/>  1.<wbr/>2,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>15,<wbr/> 1.<wbr/>2,<wbr/>
    1.<wbr/>1,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>2,<wbr/>  1.<wbr/>3,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>3,<wbr/> 1.<wbr/>3,<wbr/>
  1.<wbr/>2,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>25,<wbr/> 1.<wbr/>1,<wbr/>  1.<wbr/>1,<wbr/> 1.<wbr/>1,<wbr/> 1.<wbr/>1,<wbr/> 1.<wbr/>0,<wbr/>
    1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/>  1.<wbr/>2,<wbr/> 1.<wbr/>3,<wbr/> 1.<wbr/>25,<wbr/> 1.<wbr/>2,<wbr/>
  1.<wbr/>3,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>3,<wbr/>   1.<wbr/>2,<wbr/> 1.<wbr/>15,<wbr/> 1.<wbr/>1,<wbr/> 1.<wbr/>2,<wbr/>
    1.<wbr/>2,<wbr/> 1.<wbr/>1,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>2,<wbr/>  1.<wbr/>3,<wbr/> 1.<wbr/>15,<wbr/> 1.<wbr/>2,<wbr/> 1.<wbr/>3 ]
</code></pre>
<p>The low-resolution scaling map images for each channel are
(displayed using nearest-neighbor interpolation):</p>
<p><img alt="Red lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/red_shading.png"/>
<img alt="Green (even rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_e_shading.png"/>
<img alt="Green (odd rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_o_shading.png"/>
<img alt="Blue lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/blue_shading.png"/></p>
<p>As a visualization only,<wbr/> inverting the full-color map to recover an
image of a gray wall (using bicubic interpolation for visual quality)
as captured by the sensor gives:</p>
<p><img alt="Image of a uniform white wall (inverse shading map)" src="images/camera2/metadata/android.statistics.lensShadingMap/inv_shading.png"/></p>
<p>Note that the RAW image data might be subject to lens shading
correction not reported on this map.<wbr/> Query
<a href="#static_android.sensor.info.lensShadingApplied">android.<wbr/>sensor.<wbr/>info.<wbr/>lens<wbr/>Shading<wbr/>Applied</a> to see if RAW image data has subject
to lens shading correction.<wbr/> If <a href="#static_android.sensor.info.lensShadingApplied">android.<wbr/>sensor.<wbr/>info.<wbr/>lens<wbr/>Shading<wbr/>Applied</a>
is TRUE,<wbr/> the RAW image data is subject to partial or full lens shading
correction.<wbr/> In the case full lens shading correction is applied to RAW
images,<wbr/> the gain factor map reported in this key will contain all 1.<wbr/>0 gains.<wbr/>
In other words,<wbr/> the map reported in this key is the remaining lens shading
that needs to be applied on the RAW image to get images without lens shading
artifacts.<wbr/> See <a href="#static_android.request.maxNumOutputRaw">android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Raw</a> for a list of RAW image
formats.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The lens shading map calculation may depend on exposure and white balance statistics.<wbr/>
When AE and AWB are in AUTO modes
(<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> <code>!=</code> OFF and <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> <code>!=</code> OFF),<wbr/> the HAL
may have all the information it need to generate most accurate lens shading map.<wbr/> When
AE or AWB are in manual mode
(<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> <code>==</code> OFF or <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> <code>==</code> OFF),<wbr/> the shading map
may be adversely impacted by manual exposure or white balance parameters.<wbr/> To avoid
generating unreliable shading map data,<wbr/> the HAL may choose to lock the shading map with
the latest known good map generated when the AE and AWB are in AUTO modes.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.statistics.predictedColorGains">
            <td class="entry_name
                entry_name_deprecated
             " rowspan="3">
              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"> [hidden]</span>



              <span class="entry_type_deprecated">[deprecated] </span>

                <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>The best-fit color channel gains calculated
by the camera device's statistics units for the current output frame.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>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/></p>
<p>The 4 channel gains are defined in Bayer domain,<wbr/>
see <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> for details.<wbr/></p>
<p>This value should always be calculated by the auto-white balance (AWB) block,<wbr/>
regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.statistics.predictedColorTransform">
            <td class="entry_name
                entry_name_deprecated
             " rowspan="3">
              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"> [hidden]</span>



              <span class="entry_type_deprecated">[deprecated] </span>

                <div class="entry_type_notes">3x3 rational matrix in row-major order</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>The best-fit color transform matrix estimate
calculated by the camera device's statistics units for the current
output frame.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The camera device will provide the estimate from its
statistics unit on the white balance transforms to use
for the next frame.<wbr/> These are the values the camera device 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/></p>
<p>These estimates must be provided for all frames,<wbr/> even if
capture settings and color transforms are set by the application.<wbr/></p>
<p>This value should always be calculated by the auto-white balance (AWB) block,<wbr/>
regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.statistics.sceneFlicker">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[full] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">NONE (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The camera device does not detect any flickering illumination
in the current scene.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">50HZ (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The camera device detects illumination flickering at 50Hz
in the current scene.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">60HZ (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>The camera device detects illumination flickering at 60Hz
in the current scene.<wbr/></p></span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>The camera device estimated scene illumination lighting
frequency.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Many light sources,<wbr/> such as most fluorescent lights,<wbr/> flicker at a rate
that depends on the local utility power standards.<wbr/> This flicker must be
accounted for by auto-exposure routines to avoid artifacts in captured images.<wbr/>
The camera device uses this entry to tell the application what the scene
illuminant frequency is.<wbr/></p>
<p>When manual exposure control is enabled
(<code><a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> == OFF</code> or <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> ==
OFF</code>),<wbr/> the <a href="#controls_android.control.aeAntibandingMode">android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode</a> doesn't perform
antibanding,<wbr/> and the application can ensure it selects
exposure times that do not cause banding issues by looking
into this metadata field.<wbr/> See
<a href="#controls_android.control.aeAntibandingMode">android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode</a> for more details.<wbr/></p>
<p>Reports NONE if there doesn't appear to be flickering illumination.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.statistics.hotPixelMapMode">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<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 as boolean]</span>





                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Hot pixel map production is disabled.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Hot pixel map production is enabled.<wbr/></p></span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>Operating mode for hot pixel map generation.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              <p><a href="#static_android.statistics.info.availableHotPixelMapModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Hot<wbr/>Pixel<wbr/>Map<wbr/>Modes</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
                  <li><a href="#tag_RAW">RAW</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>If set to <code>true</code>,<wbr/> a hot pixel map is returned in <a href="#dynamic_android.statistics.hotPixelMap">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map</a>.<wbr/>
If set to <code>false</code>,<wbr/> no hot pixel map will be returned.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.statistics.hotPixelMap">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<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"> [public as point]</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">
              <p>List of <code>(x,<wbr/> y)</code> coordinates of hot/<wbr/>defective pixels on the sensor.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              <p>n &lt;= number of pixels on the sensor.<wbr/>
The <code>(x,<wbr/> y)</code> coordinates must be bounded by
<a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a>.<wbr/></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
                  <li><a href="#tag_RAW">RAW</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>A coordinate <code>(x,<wbr/> y)</code> must lie between <code>(0,<wbr/> 0)</code>,<wbr/> and
<code>(width - 1,<wbr/> height - 1)</code> (inclusive),<wbr/> which are the top-left and
bottom-right of the pixel array,<wbr/> respectively.<wbr/> The width and
height dimensions are given in <a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a>.<wbr/>
This may include hot pixels that lie outside of the active array
bounds given by <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>A hotpixel map contains the coordinates of pixels on the camera
sensor that do report valid values (usually due to defects in
the camera sensor).<wbr/> This includes pixels that are stuck at certain
values,<wbr/> or have a response that does not accuractly encode the
incoming light from the scene.<wbr/></p>
<p>To avoid performance issues,<wbr/> there should be significantly fewer hot
pixels than actual pixels on the camera sensor.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.statistics.lensShadingMapMode">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[full] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Do not include a lens shading map in the capture result.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Include a lens shading map in the capture result.<wbr/></p></span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>Whether the camera device will output the lens
shading map in output result metadata.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              <p><a href="#static_android.statistics.info.availableLensShadingMapModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Lens<wbr/>Shading<wbr/>Map<wbr/>Modes</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_RAW">RAW</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>When set to ON,<wbr/>
<a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> will be provided in
the output result metadata.<wbr/></p>
<p>ON is always supported on devices with the RAW capability.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.statistics.oisDataMode">
            <td class="entry_name
             " rowspan="1">
              android.<wbr/>statistics.<wbr/>ois<wbr/>Data<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 (v3.3)</span>
                    <span class="entry_type_enum_notes"><p>Do not include OIS data in the capture result.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON (v3.3)</span>
                    <span class="entry_type_enum_notes"><p>Include OIS data in the capture result.<wbr/></p></span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>A control for selecting whether OIS position information is included in output
result metadata.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              <p><a href="#static_android.statistics.info.availableOisDataModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Ois<wbr/>Data<wbr/>Modes</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>3</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.statistics.oisTimestamps">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>statistics.<wbr/>ois<wbr/>Timestamps
            </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"> [ndk_public]</span>






            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>An array of timestamps of OIS samples,<wbr/> in nanoseconds.<wbr/></p>
            </td>

            <td class="entry_units">
              nanoseconds
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>3</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The array contains the timestamps of OIS samples.<wbr/> The timestamps are in the same
timebase as and comparable to <a href="#dynamic_android.sensor.timestamp">android.<wbr/>sensor.<wbr/>timestamp</a>.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.statistics.oisXShifts">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>statistics.<wbr/>ois<wbr/>XShifts
            </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"> [ndk_public]</span>






            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>An array of shifts of OIS samples,<wbr/> in x direction.<wbr/></p>
            </td>

            <td class="entry_units">
              Pixels in active array.<wbr/>
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>3</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The array contains the amount of shifts in x direction,<wbr/> in pixels,<wbr/> based on OIS samples.<wbr/>
A positive value is a shift from left to right in active array coordinate system.<wbr/> For
example,<wbr/> if the optical center is (1000,<wbr/> 500) in active array coordinates,<wbr/> a shift of
(3,<wbr/> 0) puts the new optical center at (1003,<wbr/> 500).<wbr/></p>
<p>The number of shifts must match the number of timestamps in
<a href="#dynamic_android.statistics.oisTimestamps">android.<wbr/>statistics.<wbr/>ois<wbr/>Timestamps</a>.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.statistics.oisYShifts">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>statistics.<wbr/>ois<wbr/>YShifts
            </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"> [ndk_public]</span>






            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>An array of shifts of OIS samples,<wbr/> in y direction.<wbr/></p>
            </td>

            <td class="entry_units">
              Pixels in active array.<wbr/>
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>3</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The array contains the amount of shifts in y direction,<wbr/> in pixels,<wbr/> based on OIS samples.<wbr/>
A positive value is a shift from top to bottom in active array coordinate system.<wbr/> For
example,<wbr/> if the optical center is (1000,<wbr/> 500) in active array coordinates,<wbr/> a shift of
(0,<wbr/> 5) puts the new optical center at (1000,<wbr/> 505).<wbr/></p>
<p>The number of shifts must match the number of timestamps in
<a href="#dynamic_android.statistics.oisTimestamps">android.<wbr/>statistics.<wbr/>ois<wbr/>Timestamps</a>.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.statistics.oisSamples">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>statistics.<wbr/>ois<wbr/>Samples
            </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"> [java_public as oisSample]</span>

              <span class="entry_type_synthetic">[synthetic] </span>





            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>An array of OIS samples.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>3</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Each OIS sample contains the timestamp and the amount of shifts in x and y direction,<wbr/>
in pixels,<wbr/> of the OIS sample.<wbr/></p>
<p>A positive value for a shift in x direction is a shift from left to right in active array
coordinate system.<wbr/> For example,<wbr/> if the optical center is (1000,<wbr/> 500) in active array
coordinates,<wbr/> a shift of (3,<wbr/> 0) puts the new optical center at (1003,<wbr/> 500).<wbr/></p>
<p>A positive value for a shift in y direction is a shift from top to bottom in active array
coordinate system.<wbr/> For example,<wbr/> if the optical center is (1000,<wbr/> 500) in active array
coordinates,<wbr/> a shift of (0,<wbr/> 5) puts the new optical center at (1000,<wbr/> 505).<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="controls_android.tonemap.curveBlue">
            <td class="entry_name
             " rowspan="3">
              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"> [ndk_public]</span>


              <span class="entry_type_hwlevel">[full] </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">
              <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
CONTRAST_<wbr/>CURVE.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>See <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> for more details.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.tonemap.curveGreen">
            <td class="entry_name
             " rowspan="3">
              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"> [ndk_public]</span>


              <span class="entry_type_hwlevel">[full] </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">
              <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
CONTRAST_<wbr/>CURVE.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>See <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> for more details.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.tonemap.curveRed">
            <td class="entry_name
             " rowspan="5">
              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"> [ndk_public]</span>


              <span class="entry_type_hwlevel">[full] </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">
              <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
CONTRAST_<wbr/>CURVE.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              <p>0-1 on both input and output coordinates,<wbr/> normalized
as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Each channel's curve is defined by an array of control points:</p>
<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
  [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
2 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
<p>These are sorted in order of increasing <code>Pin</code>; it is
required that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
define a complete mapping.<wbr/> For input values between control points,<wbr/>
the camera device must linearly interpolate between the control
points.<wbr/></p>
<p>Each curve can have an independent number of points,<wbr/> and the number
of points can be less than max (that is,<wbr/> the request doesn't have to
always provide a curve with number of points equivalent to
<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
<p>For devices with MONOCHROME capability,<wbr/> only red channel is used.<wbr/> Green and blue channels
are ignored.<wbr/></p>
<p>A few examples,<wbr/> and their corresponding graphical mappings; these
only specify the red channel and the precision is limited to 4
digits,<wbr/> for conciseness.<wbr/></p>
<p>Linear mapping:</p>
<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [ 0,<wbr/> 0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0 ]
</code></pre>
<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
<p>Invert mapping:</p>
<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [ 0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 0 ]
</code></pre>
<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
  0.<wbr/>0000,<wbr/> 0.<wbr/>0000,<wbr/> 0.<wbr/>0667,<wbr/> 0.<wbr/>2920,<wbr/> 0.<wbr/>1333,<wbr/> 0.<wbr/>4002,<wbr/> 0.<wbr/>2000,<wbr/> 0.<wbr/>4812,<wbr/>
  0.<wbr/>2667,<wbr/> 0.<wbr/>5484,<wbr/> 0.<wbr/>3333,<wbr/> 0.<wbr/>6069,<wbr/> 0.<wbr/>4000,<wbr/> 0.<wbr/>6594,<wbr/> 0.<wbr/>4667,<wbr/> 0.<wbr/>7072,<wbr/>
  0.<wbr/>5333,<wbr/> 0.<wbr/>7515,<wbr/> 0.<wbr/>6000,<wbr/> 0.<wbr/>7928,<wbr/> 0.<wbr/>6667,<wbr/> 0.<wbr/>8317,<wbr/> 0.<wbr/>7333,<wbr/> 0.<wbr/>8685,<wbr/>
  0.<wbr/>8000,<wbr/> 0.<wbr/>9035,<wbr/> 0.<wbr/>8667,<wbr/> 0.<wbr/>9370,<wbr/> 0.<wbr/>9333,<wbr/> 0.<wbr/>9691,<wbr/> 1.<wbr/>0000,<wbr/> 1.<wbr/>0000 ]
</code></pre>
<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
  0.<wbr/>0000,<wbr/> 0.<wbr/>0000,<wbr/> 0.<wbr/>0667,<wbr/> 0.<wbr/>2864,<wbr/> 0.<wbr/>1333,<wbr/> 0.<wbr/>4007,<wbr/> 0.<wbr/>2000,<wbr/> 0.<wbr/>4845,<wbr/>
  0.<wbr/>2667,<wbr/> 0.<wbr/>5532,<wbr/> 0.<wbr/>3333,<wbr/> 0.<wbr/>6125,<wbr/> 0.<wbr/>4000,<wbr/> 0.<wbr/>6652,<wbr/> 0.<wbr/>4667,<wbr/> 0.<wbr/>7130,<wbr/>
  0.<wbr/>5333,<wbr/> 0.<wbr/>7569,<wbr/> 0.<wbr/>6000,<wbr/> 0.<wbr/>7977,<wbr/> 0.<wbr/>6667,<wbr/> 0.<wbr/>8360,<wbr/> 0.<wbr/>7333,<wbr/> 0.<wbr/>8721,<wbr/>
  0.<wbr/>8000,<wbr/> 0.<wbr/>9063,<wbr/> 0.<wbr/>8667,<wbr/> 0.<wbr/>9389,<wbr/> 0.<wbr/>9333,<wbr/> 0.<wbr/>9701,<wbr/> 1.<wbr/>0000,<wbr/> 1.<wbr/>0000 ]
</code></pre>
<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>For good quality of mapping,<wbr/> at least 128 control points are
preferred.<wbr/></p>
<p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
control points used as are available.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.tonemap.curve">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>tonemap.<wbr/>curve
            </td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>

              <span class="entry_type_visibility"> [java_public as tonemapCurve]</span>

              <span class="entry_type_synthetic">[synthetic] </span>

              <span class="entry_type_hwlevel">[full] </span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a>
is CONTRAST_<wbr/>CURVE.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The tonemapCurve consist of three curves for each of red,<wbr/> green,<wbr/> and blue
channels respectively.<wbr/> The following example uses the red channel as an
example.<wbr/> The same logic applies to green and blue channel.<wbr/>
Each channel's curve is defined by an array of control points:</p>
<pre><code>curveRed =
  [ P0(in,<wbr/> out),<wbr/> P1(in,<wbr/> out),<wbr/> P2(in,<wbr/> out),<wbr/> P3(in,<wbr/> out),<wbr/> ...,<wbr/> PN(in,<wbr/> out) ]
2 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
<p>These are sorted in order of increasing <code>Pin</code>; it is always
guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
define a complete mapping.<wbr/> For input values between control points,<wbr/>
the camera device must linearly interpolate between the control
points.<wbr/></p>
<p>Each curve can have an independent number of points,<wbr/> and the number
of points can be less than max (that is,<wbr/> the request doesn't have to
always provide a curve with number of points equivalent to
<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
<p>For devices with MONOCHROME capability,<wbr/> only red channel is used.<wbr/> Green and blue channels
are ignored.<wbr/></p>
<p>A few examples,<wbr/> and their corresponding graphical mappings; these
only specify the red channel and the precision is limited to 4
digits,<wbr/> for conciseness.<wbr/></p>
<p>Linear mapping:</p>
<pre><code>curveRed = [ (0,<wbr/> 0),<wbr/> (1.<wbr/>0,<wbr/> 1.<wbr/>0) ]
</code></pre>
<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
<p>Invert mapping:</p>
<pre><code>curveRed = [ (0,<wbr/> 1.<wbr/>0),<wbr/> (1.<wbr/>0,<wbr/> 0) ]
</code></pre>
<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
<pre><code>curveRed = [
  (0.<wbr/>0000,<wbr/> 0.<wbr/>0000),<wbr/> (0.<wbr/>0667,<wbr/> 0.<wbr/>2920),<wbr/> (0.<wbr/>1333,<wbr/> 0.<wbr/>4002),<wbr/> (0.<wbr/>2000,<wbr/> 0.<wbr/>4812),<wbr/>
  (0.<wbr/>2667,<wbr/> 0.<wbr/>5484),<wbr/> (0.<wbr/>3333,<wbr/> 0.<wbr/>6069),<wbr/> (0.<wbr/>4000,<wbr/> 0.<wbr/>6594),<wbr/> (0.<wbr/>4667,<wbr/> 0.<wbr/>7072),<wbr/>
  (0.<wbr/>5333,<wbr/> 0.<wbr/>7515),<wbr/> (0.<wbr/>6000,<wbr/> 0.<wbr/>7928),<wbr/> (0.<wbr/>6667,<wbr/> 0.<wbr/>8317),<wbr/> (0.<wbr/>7333,<wbr/> 0.<wbr/>8685),<wbr/>
  (0.<wbr/>8000,<wbr/> 0.<wbr/>9035),<wbr/> (0.<wbr/>8667,<wbr/> 0.<wbr/>9370),<wbr/> (0.<wbr/>9333,<wbr/> 0.<wbr/>9691),<wbr/> (1.<wbr/>0000,<wbr/> 1.<wbr/>0000) ]
</code></pre>
<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
<pre><code>curveRed = [
  (0.<wbr/>0000,<wbr/> 0.<wbr/>0000),<wbr/> (0.<wbr/>0667,<wbr/> 0.<wbr/>2864),<wbr/> (0.<wbr/>1333,<wbr/> 0.<wbr/>4007),<wbr/> (0.<wbr/>2000,<wbr/> 0.<wbr/>4845),<wbr/>
  (0.<wbr/>2667,<wbr/> 0.<wbr/>5532),<wbr/> (0.<wbr/>3333,<wbr/> 0.<wbr/>6125),<wbr/> (0.<wbr/>4000,<wbr/> 0.<wbr/>6652),<wbr/> (0.<wbr/>4667,<wbr/> 0.<wbr/>7130),<wbr/>
  (0.<wbr/>5333,<wbr/> 0.<wbr/>7569),<wbr/> (0.<wbr/>6000,<wbr/> 0.<wbr/>7977),<wbr/> (0.<wbr/>6667,<wbr/> 0.<wbr/>8360),<wbr/> (0.<wbr/>7333,<wbr/> 0.<wbr/>8721),<wbr/>
  (0.<wbr/>8000,<wbr/> 0.<wbr/>9063),<wbr/> (0.<wbr/>8667,<wbr/> 0.<wbr/>9389),<wbr/> (0.<wbr/>9333,<wbr/> 0.<wbr/>9701),<wbr/> (1.<wbr/>0000,<wbr/> 1.<wbr/>0000) ]
</code></pre>
<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This entry is created by the framework from the curveRed,<wbr/> curveGreen and
curveBlue entries.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.tonemap.mode">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[full] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">CONTRAST_CURVE (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
the <a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>* entries.<wbr/></p>
<p>All color enhancement and tonemapping must be disabled,<wbr/> except
for applying the tonemapping curve specified by
<a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>.<wbr/></p>
<p>Must not slow down frame rate relative to raw
sensor output.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FAST (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied,<wbr/> without
reducing frame rate compared to raw sensor output.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>High-quality gamma mapping and color enhancement will be applied,<wbr/> at
the cost of possibly reduced frame rate compared to raw sensor output.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">GAMMA_VALUE (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Use the gamma value specified in <a href="#controls_android.tonemap.gamma">android.<wbr/>tonemap.<wbr/>gamma</a> to peform
tonemapping.<wbr/></p>
<p>All color enhancement and tonemapping must be disabled,<wbr/> except
for applying the tonemapping curve specified by <a href="#controls_android.tonemap.gamma">android.<wbr/>tonemap.<wbr/>gamma</a>.<wbr/></p>
<p>Must not slow down frame rate relative to raw sensor output.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">PRESET_CURVE (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Use the preset tonemapping curve specified in
<a href="#controls_android.tonemap.presetCurve">android.<wbr/>tonemap.<wbr/>preset<wbr/>Curve</a> to peform tonemapping.<wbr/></p>
<p>All color enhancement and tonemapping must be disabled,<wbr/> except
for applying the tonemapping curve specified by
<a href="#controls_android.tonemap.presetCurve">android.<wbr/>tonemap.<wbr/>preset<wbr/>Curve</a>.<wbr/></p>
<p>Must not slow down frame rate relative to raw sensor output.<wbr/></p></span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              <p><a href="#static_android.tonemap.availableToneMapModes">android.<wbr/>tonemap.<wbr/>available<wbr/>Tone<wbr/>Map<wbr/>Modes</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>When switching to an application-defined contrast curve by setting
<a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
mapping from input high-bit-depth pixel value to the output
low-bit-depth value.<wbr/>  Since the actual pixel ranges of both input
and output may change depending on the camera pipeline,<wbr/> the values
are specified by normalized floating-point numbers.<wbr/></p>
<p>More-complex color mapping operations such as 3D color look-up
tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
CONTRAST_<wbr/>CURVE.<wbr/></p>
<p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
emit its own tonemap curve in <a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>.<wbr/>
These values are always available,<wbr/> and as close as possible to the
actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
<p>If a request is sent with CONTRAST_<wbr/>CURVE with the camera device's
provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
roughly the same.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.tonemap.gamma">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>tonemap.<wbr/>gamma
            </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">
              <p>Tonemapping curve to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
GAMMA_<wbr/>VALUE</p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The tonemap curve will be defined the following formula:
* OUT = pow(IN,<wbr/> 1.<wbr/>0 /<wbr/> gamma)
where IN and OUT is the input pixel value scaled to range [0.<wbr/>0,<wbr/> 1.<wbr/>0],<wbr/>
pow is the power function and gamma is the gamma value specified by this
key.<wbr/></p>
<p>The same curve will be applied to all color channels.<wbr/> The camera device
may clip the input gamma value to its supported range.<wbr/> The actual applied
value will be returned in capture result.<wbr/></p>
<p>The valid range of gamma value varies on different devices,<wbr/> but values
within [1.<wbr/>0,<wbr/> 5.<wbr/>0] are guaranteed not to be clipped.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="controls_android.tonemap.presetCurve">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>tonemap.<wbr/>preset<wbr/>Curve
            </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">SRGB (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Tonemapping curve is defined by sRGB</p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">REC709 (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Tonemapping curve is defined by ITU-R BT.<wbr/>709</p></span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>Tonemapping curve to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
PRESET_<wbr/>CURVE</p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The tonemap curve will be defined by specified standard.<wbr/></p>
<p>sRGB (approximated by 16 control points):</p>
<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
<p>Rec.<wbr/> 709 (approximated by 16 control points):</p>
<p><img alt="Rec. 709 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/rec709_tonemap.png"/></p>
<p>Note that above figures show a 16 control points approximation of preset
curves.<wbr/> Camera devices may apply a different approximation to the curve.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="static_android.tonemap.maxCurvePoints">
            <td class="entry_name
             " rowspan="5">
              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>


              <span class="entry_type_hwlevel">[full] </span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>Maximum number of supported points in the
tonemap curve that can be used for <a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>If the actual number of points provided by the application (in <a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>*) is
less than this maximum,<wbr/> the camera device will resample the curve to its internal
representation,<wbr/> using linear interpolation.<wbr/></p>
<p>The output curves in the result metadata may have a different number
of points than the input curves,<wbr/> and will represent the actual
hardware curves used as closely as possible when linearly interpolated.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This value must be at least 64.<wbr/> This should be at least 128.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.tonemap.availableToneMapModes">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>tonemap.<wbr/>available<wbr/>Tone<wbr/>Map<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 as enumList]</span>


              <span class="entry_type_hwlevel">[full] </span>


                <div class="entry_type_notes">list of enums</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>List of tonemapping modes for <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> that are supported by this camera
device.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              <p>Any value listed in <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Camera devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability will always contain
at least one of below mode combinations:</p>
<ul>
<li>CONTRAST_<wbr/>CURVE,<wbr/> FAST and HIGH_<wbr/>QUALITY</li>
<li>GAMMA_<wbr/>VALUE,<wbr/> PRESET_<wbr/>CURVE,<wbr/> FAST and HIGH_<wbr/>QUALITY</li>
</ul>
<p>This includes all FULL level devices.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>HAL must support both FAST and HIGH_<wbr/>QUALITY if automatic tonemap control is available
on the camera device,<wbr/> but the underlying implementation can be the same for both modes.<wbr/>
That is,<wbr/> if the highest quality implementation on the camera device does not slow down
capture rate,<wbr/> then FAST and HIGH_<wbr/>QUALITY will generate the same output.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="dynamic_android.tonemap.curveBlue">
            <td class="entry_name
             " rowspan="3">
              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"> [ndk_public]</span>


              <span class="entry_type_hwlevel">[full] </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">
              <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
CONTRAST_<wbr/>CURVE.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>See <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> for more details.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.tonemap.curveGreen">
            <td class="entry_name
             " rowspan="3">
              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"> [ndk_public]</span>


              <span class="entry_type_hwlevel">[full] </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">
              <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
CONTRAST_<wbr/>CURVE.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>See <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> for more details.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.tonemap.curveRed">
            <td class="entry_name
             " rowspan="5">
              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"> [ndk_public]</span>


              <span class="entry_type_hwlevel">[full] </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">
              <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
CONTRAST_<wbr/>CURVE.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              <p>0-1 on both input and output coordinates,<wbr/> normalized
as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Each channel's curve is defined by an array of control points:</p>
<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
  [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
2 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
<p>These are sorted in order of increasing <code>Pin</code>; it is
required that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
define a complete mapping.<wbr/> For input values between control points,<wbr/>
the camera device must linearly interpolate between the control
points.<wbr/></p>
<p>Each curve can have an independent number of points,<wbr/> and the number
of points can be less than max (that is,<wbr/> the request doesn't have to
always provide a curve with number of points equivalent to
<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
<p>For devices with MONOCHROME capability,<wbr/> only red channel is used.<wbr/> Green and blue channels
are ignored.<wbr/></p>
<p>A few examples,<wbr/> and their corresponding graphical mappings; these
only specify the red channel and the precision is limited to 4
digits,<wbr/> for conciseness.<wbr/></p>
<p>Linear mapping:</p>
<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [ 0,<wbr/> 0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0 ]
</code></pre>
<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
<p>Invert mapping:</p>
<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [ 0,<wbr/> 1.<wbr/>0,<wbr/> 1.<wbr/>0,<wbr/> 0 ]
</code></pre>
<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
  0.<wbr/>0000,<wbr/> 0.<wbr/>0000,<wbr/> 0.<wbr/>0667,<wbr/> 0.<wbr/>2920,<wbr/> 0.<wbr/>1333,<wbr/> 0.<wbr/>4002,<wbr/> 0.<wbr/>2000,<wbr/> 0.<wbr/>4812,<wbr/>
  0.<wbr/>2667,<wbr/> 0.<wbr/>5484,<wbr/> 0.<wbr/>3333,<wbr/> 0.<wbr/>6069,<wbr/> 0.<wbr/>4000,<wbr/> 0.<wbr/>6594,<wbr/> 0.<wbr/>4667,<wbr/> 0.<wbr/>7072,<wbr/>
  0.<wbr/>5333,<wbr/> 0.<wbr/>7515,<wbr/> 0.<wbr/>6000,<wbr/> 0.<wbr/>7928,<wbr/> 0.<wbr/>6667,<wbr/> 0.<wbr/>8317,<wbr/> 0.<wbr/>7333,<wbr/> 0.<wbr/>8685,<wbr/>
  0.<wbr/>8000,<wbr/> 0.<wbr/>9035,<wbr/> 0.<wbr/>8667,<wbr/> 0.<wbr/>9370,<wbr/> 0.<wbr/>9333,<wbr/> 0.<wbr/>9691,<wbr/> 1.<wbr/>0000,<wbr/> 1.<wbr/>0000 ]
</code></pre>
<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
  0.<wbr/>0000,<wbr/> 0.<wbr/>0000,<wbr/> 0.<wbr/>0667,<wbr/> 0.<wbr/>2864,<wbr/> 0.<wbr/>1333,<wbr/> 0.<wbr/>4007,<wbr/> 0.<wbr/>2000,<wbr/> 0.<wbr/>4845,<wbr/>
  0.<wbr/>2667,<wbr/> 0.<wbr/>5532,<wbr/> 0.<wbr/>3333,<wbr/> 0.<wbr/>6125,<wbr/> 0.<wbr/>4000,<wbr/> 0.<wbr/>6652,<wbr/> 0.<wbr/>4667,<wbr/> 0.<wbr/>7130,<wbr/>
  0.<wbr/>5333,<wbr/> 0.<wbr/>7569,<wbr/> 0.<wbr/>6000,<wbr/> 0.<wbr/>7977,<wbr/> 0.<wbr/>6667,<wbr/> 0.<wbr/>8360,<wbr/> 0.<wbr/>7333,<wbr/> 0.<wbr/>8721,<wbr/>
  0.<wbr/>8000,<wbr/> 0.<wbr/>9063,<wbr/> 0.<wbr/>8667,<wbr/> 0.<wbr/>9389,<wbr/> 0.<wbr/>9333,<wbr/> 0.<wbr/>9701,<wbr/> 1.<wbr/>0000,<wbr/> 1.<wbr/>0000 ]
</code></pre>
<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>For good quality of mapping,<wbr/> at least 128 control points are
preferred.<wbr/></p>
<p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
control points used as are available.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.tonemap.curve">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>tonemap.<wbr/>curve
            </td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>

              <span class="entry_type_visibility"> [java_public as tonemapCurve]</span>

              <span class="entry_type_synthetic">[synthetic] </span>

              <span class="entry_type_hwlevel">[full] </span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a>
is CONTRAST_<wbr/>CURVE.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The tonemapCurve consist of three curves for each of red,<wbr/> green,<wbr/> and blue
channels respectively.<wbr/> The following example uses the red channel as an
example.<wbr/> The same logic applies to green and blue channel.<wbr/>
Each channel's curve is defined by an array of control points:</p>
<pre><code>curveRed =
  [ P0(in,<wbr/> out),<wbr/> P1(in,<wbr/> out),<wbr/> P2(in,<wbr/> out),<wbr/> P3(in,<wbr/> out),<wbr/> ...,<wbr/> PN(in,<wbr/> out) ]
2 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
<p>These are sorted in order of increasing <code>Pin</code>; it is always
guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
define a complete mapping.<wbr/> For input values between control points,<wbr/>
the camera device must linearly interpolate between the control
points.<wbr/></p>
<p>Each curve can have an independent number of points,<wbr/> and the number
of points can be less than max (that is,<wbr/> the request doesn't have to
always provide a curve with number of points equivalent to
<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
<p>For devices with MONOCHROME capability,<wbr/> only red channel is used.<wbr/> Green and blue channels
are ignored.<wbr/></p>
<p>A few examples,<wbr/> and their corresponding graphical mappings; these
only specify the red channel and the precision is limited to 4
digits,<wbr/> for conciseness.<wbr/></p>
<p>Linear mapping:</p>
<pre><code>curveRed = [ (0,<wbr/> 0),<wbr/> (1.<wbr/>0,<wbr/> 1.<wbr/>0) ]
</code></pre>
<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
<p>Invert mapping:</p>
<pre><code>curveRed = [ (0,<wbr/> 1.<wbr/>0),<wbr/> (1.<wbr/>0,<wbr/> 0) ]
</code></pre>
<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
<pre><code>curveRed = [
  (0.<wbr/>0000,<wbr/> 0.<wbr/>0000),<wbr/> (0.<wbr/>0667,<wbr/> 0.<wbr/>2920),<wbr/> (0.<wbr/>1333,<wbr/> 0.<wbr/>4002),<wbr/> (0.<wbr/>2000,<wbr/> 0.<wbr/>4812),<wbr/>
  (0.<wbr/>2667,<wbr/> 0.<wbr/>5484),<wbr/> (0.<wbr/>3333,<wbr/> 0.<wbr/>6069),<wbr/> (0.<wbr/>4000,<wbr/> 0.<wbr/>6594),<wbr/> (0.<wbr/>4667,<wbr/> 0.<wbr/>7072),<wbr/>
  (0.<wbr/>5333,<wbr/> 0.<wbr/>7515),<wbr/> (0.<wbr/>6000,<wbr/> 0.<wbr/>7928),<wbr/> (0.<wbr/>6667,<wbr/> 0.<wbr/>8317),<wbr/> (0.<wbr/>7333,<wbr/> 0.<wbr/>8685),<wbr/>
  (0.<wbr/>8000,<wbr/> 0.<wbr/>9035),<wbr/> (0.<wbr/>8667,<wbr/> 0.<wbr/>9370),<wbr/> (0.<wbr/>9333,<wbr/> 0.<wbr/>9691),<wbr/> (1.<wbr/>0000,<wbr/> 1.<wbr/>0000) ]
</code></pre>
<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
<pre><code>curveRed = [
  (0.<wbr/>0000,<wbr/> 0.<wbr/>0000),<wbr/> (0.<wbr/>0667,<wbr/> 0.<wbr/>2864),<wbr/> (0.<wbr/>1333,<wbr/> 0.<wbr/>4007),<wbr/> (0.<wbr/>2000,<wbr/> 0.<wbr/>4845),<wbr/>
  (0.<wbr/>2667,<wbr/> 0.<wbr/>5532),<wbr/> (0.<wbr/>3333,<wbr/> 0.<wbr/>6125),<wbr/> (0.<wbr/>4000,<wbr/> 0.<wbr/>6652),<wbr/> (0.<wbr/>4667,<wbr/> 0.<wbr/>7130),<wbr/>
  (0.<wbr/>5333,<wbr/> 0.<wbr/>7569),<wbr/> (0.<wbr/>6000,<wbr/> 0.<wbr/>7977),<wbr/> (0.<wbr/>6667,<wbr/> 0.<wbr/>8360),<wbr/> (0.<wbr/>7333,<wbr/> 0.<wbr/>8721),<wbr/>
  (0.<wbr/>8000,<wbr/> 0.<wbr/>9063),<wbr/> (0.<wbr/>8667,<wbr/> 0.<wbr/>9389),<wbr/> (0.<wbr/>9333,<wbr/> 0.<wbr/>9701),<wbr/> (1.<wbr/>0000,<wbr/> 1.<wbr/>0000) ]
</code></pre>
<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This entry is created by the framework from the curveRed,<wbr/> curveGreen and
curveBlue entries.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.tonemap.mode">
            <td class="entry_name
             " rowspan="3">
              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>


              <span class="entry_type_hwlevel">[full] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">CONTRAST_CURVE (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
the <a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>* entries.<wbr/></p>
<p>All color enhancement and tonemapping must be disabled,<wbr/> except
for applying the tonemapping curve specified by
<a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>.<wbr/></p>
<p>Must not slow down frame rate relative to raw
sensor output.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FAST (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied,<wbr/> without
reducing frame rate compared to raw sensor output.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>High-quality gamma mapping and color enhancement will be applied,<wbr/> at
the cost of possibly reduced frame rate compared to raw sensor output.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">GAMMA_VALUE (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Use the gamma value specified in <a href="#controls_android.tonemap.gamma">android.<wbr/>tonemap.<wbr/>gamma</a> to peform
tonemapping.<wbr/></p>
<p>All color enhancement and tonemapping must be disabled,<wbr/> except
for applying the tonemapping curve specified by <a href="#controls_android.tonemap.gamma">android.<wbr/>tonemap.<wbr/>gamma</a>.<wbr/></p>
<p>Must not slow down frame rate relative to raw sensor output.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">PRESET_CURVE (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Use the preset tonemapping curve specified in
<a href="#controls_android.tonemap.presetCurve">android.<wbr/>tonemap.<wbr/>preset<wbr/>Curve</a> to peform tonemapping.<wbr/></p>
<p>All color enhancement and tonemapping must be disabled,<wbr/> except
for applying the tonemapping curve specified by
<a href="#controls_android.tonemap.presetCurve">android.<wbr/>tonemap.<wbr/>preset<wbr/>Curve</a>.<wbr/></p>
<p>Must not slow down frame rate relative to raw sensor output.<wbr/></p></span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              <p><a href="#static_android.tonemap.availableToneMapModes">android.<wbr/>tonemap.<wbr/>available<wbr/>Tone<wbr/>Map<wbr/>Modes</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>When switching to an application-defined contrast curve by setting
<a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
mapping from input high-bit-depth pixel value to the output
low-bit-depth value.<wbr/>  Since the actual pixel ranges of both input
and output may change depending on the camera pipeline,<wbr/> the values
are specified by normalized floating-point numbers.<wbr/></p>
<p>More-complex color mapping operations such as 3D color look-up
tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
CONTRAST_<wbr/>CURVE.<wbr/></p>
<p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
emit its own tonemap curve in <a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>.<wbr/>
These values are always available,<wbr/> and as close as possible to the
actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
<p>If a request is sent with CONTRAST_<wbr/>CURVE with the camera device's
provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
roughly the same.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.tonemap.gamma">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>tonemap.<wbr/>gamma
            </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">
              <p>Tonemapping curve to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
GAMMA_<wbr/>VALUE</p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The tonemap curve will be defined the following formula:
* OUT = pow(IN,<wbr/> 1.<wbr/>0 /<wbr/> gamma)
where IN and OUT is the input pixel value scaled to range [0.<wbr/>0,<wbr/> 1.<wbr/>0],<wbr/>
pow is the power function and gamma is the gamma value specified by this
key.<wbr/></p>
<p>The same curve will be applied to all color channels.<wbr/> The camera device
may clip the input gamma value to its supported range.<wbr/> The actual applied
value will be returned in capture result.<wbr/></p>
<p>The valid range of gamma value varies on different devices,<wbr/> but values
within [1.<wbr/>0,<wbr/> 5.<wbr/>0] are guaranteed not to be clipped.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="dynamic_android.tonemap.presetCurve">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>tonemap.<wbr/>preset<wbr/>Curve
            </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">SRGB (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Tonemapping curve is defined by sRGB</p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">REC709 (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>Tonemapping curve is defined by ITU-R BT.<wbr/>709</p></span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>Tonemapping curve to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
PRESET_<wbr/>CURVE</p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The tonemap curve will be defined by specified standard.<wbr/></p>
<p>sRGB (approximated by 16 control points):</p>
<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
<p>Rec.<wbr/> 709 (approximated by 16 control points):</p>
<p><img alt="Rec. 709 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/rec709_tonemap.png"/></p>
<p>Note that above figures show a 16 control points approximation of preset
curves.<wbr/> Camera devices may apply a different approximation to the curve.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="controls_android.led.transmit">
            <td class="entry_name
             " rowspan="1">
              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 (v3.2)</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON (v3.2)</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>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/></p>
<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
data is stored locally on the device.<wbr/></p>
<p>The LED <em>may</em> be off if a trusted application is using the data that
doesn't violate the above rules.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="dynamic_android.led.transmit">
            <td class="entry_name
             " rowspan="1">
              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 (v3.2)</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON (v3.2)</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>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/></p>
<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
data is stored locally on the device.<wbr/></p>
<p>The LED <em>may</em> be off if a trusted application is using the data that
doesn't violate the above rules.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="static_android.led.availableLeds">
            <td class="entry_name
             " rowspan="1">
              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 (v3.2)</span>
                    <span class="entry_type_enum_notes"><p><a href="#controls_android.led.transmit">android.<wbr/>led.<wbr/>transmit</a> control is used.<wbr/></p></span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>A list of camera LEDs that are available on this system.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="static_android.info.supportedHardwareLevel">
            <td class="entry_name
             " rowspan="5">
              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>


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">LIMITED (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>This camera device does not have enough capabilities to qualify as a <code>FULL</code> device or
better.<wbr/></p>
<p>Only the stream configurations listed in the <code>LEGACY</code> and <code>LIMITED</code> tables in the
<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureSession">createCaptureSession</a> documentation are guaranteed to be supported.<wbr/></p>
<p>All <code>LIMITED</code> devices support the <code>BACKWARDS_<wbr/>COMPATIBLE</code> capability,<wbr/> indicating basic
support for color image capture.<wbr/> The only exception is that the device may
alternatively support only the <code>DEPTH_<wbr/>OUTPUT</code> capability,<wbr/> if it can only output depth
measurements and not color images.<wbr/></p>
<p><code>LIMITED</code> devices and above require the use of <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>
to lock exposure metering (and calculate flash power,<wbr/> for cameras with flash) before
capturing a high-quality still image.<wbr/></p>
<p>A <code>LIMITED</code> device that only lists the <code>BACKWARDS_<wbr/>COMPATIBLE</code> capability is only
required to support full-automatic operation and post-processing (<code>OFF</code> is not
supported for <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/> <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>,<wbr/> or
<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>)</p>
<p>Additional capabilities may optionally be supported by a <code>LIMITED</code>-level device,<wbr/> and
can be checked for in <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FULL (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>This camera device is capable of supporting advanced imaging applications.<wbr/></p>
<p>The stream configurations listed in the <code>FULL</code>,<wbr/> <code>LEGACY</code> and <code>LIMITED</code> tables in the
<a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureSession">createCaptureSession</a> documentation are guaranteed to be supported.<wbr/></p>
<p>A <code>FULL</code> device will support below capabilities:</p>
<ul>
<li><code>BURST_<wbr/>CAPTURE</code> capability (<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains
  <code>BURST_<wbr/>CAPTURE</code>)</li>
<li>Per frame control (<a href="#static_android.sync.maxLatency">android.<wbr/>sync.<wbr/>max<wbr/>Latency</a> <code>==</code> PER_<wbr/>FRAME_<wbr/>CONTROL)</li>
<li>Manual sensor control (<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains <code>MANUAL_<wbr/>SENSOR</code>)</li>
<li>Manual post-processing control (<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains
  <code>MANUAL_<wbr/>POST_<wbr/>PROCESSING</code>)</li>
<li>The required exposure time range defined in <a href="#static_android.sensor.info.exposureTimeRange">android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range</a></li>
<li>The required maxFrameDuration defined in <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a></li>
</ul>
<p>Note:
Pre-API level 23,<wbr/> FULL devices also supported arbitrary cropping region
(<a href="#static_android.scaler.croppingType">android.<wbr/>scaler.<wbr/>cropping<wbr/>Type</a> <code>== FREEFORM</code>); this requirement was relaxed in API level
23,<wbr/> and <code>FULL</code> devices may only support <code>CENTERED</code> cropping.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">LEGACY (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>This camera device is running in backward compatibility mode.<wbr/></p>
<p>Only the stream configurations listed in the <code>LEGACY</code> table in the <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureSession">createCaptureSession</a> documentation are supported.<wbr/></p>
<p>A <code>LEGACY</code> device does not support per-frame control,<wbr/> manual sensor control,<wbr/> manual
post-processing,<wbr/> arbitrary cropping regions,<wbr/> and has relaxed performance constraints.<wbr/>
No additional capabilities beyond <code>BACKWARD_<wbr/>COMPATIBLE</code> will ever be listed by a
<code>LEGACY</code> device in <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>.<wbr/></p>
<p>In addition,<wbr/> the <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is not functional on <code>LEGACY</code>
devices.<wbr/> Instead,<wbr/> every request that includes a JPEG-format output target is treated
as triggering a still capture,<wbr/> internally executing a precapture trigger.<wbr/>  This may
fire the flash for flash power metering during precapture,<wbr/> and then fire the flash
for the final capture,<wbr/> if a flash is available on the device and the AE mode is set to
enable the flash.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">3 (v3.2)</span>
                    <span class="entry_type_enum_notes"><p>This camera device is capable of YUV reprocessing and RAW data capture,<wbr/> in addition to
FULL-level capabilities.<wbr/></p>
<p>The stream configurations listed in the <code>LEVEL_<wbr/>3</code>,<wbr/> <code>RAW</code>,<wbr/> <code>FULL</code>,<wbr/> <code>LEGACY</code> and
<code>LIMITED</code> tables in the <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureSession">createCaptureSession</a> documentation are guaranteed to be supported.<wbr/></p>
<p>The following additional capabilities are guaranteed to be supported:</p>
<ul>
<li><code>YUV_<wbr/>REPROCESSING</code> capability (<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains
  <code>YUV_<wbr/>REPROCESSING</code>)</li>
<li><code>RAW</code> capability (<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains
  <code>RAW</code>)</li>
</ul></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">EXTERNAL (v3.3)</span>
                    <span class="entry_type_enum_notes"><p>This camera device is backed by an external camera connected to this Android device.<wbr/></p>
<p>The device has capability identical to a LIMITED level device,<wbr/> with the following
exceptions:</p>
<ul>
<li>The device may not report lens/<wbr/>sensor related information such as<ul>
<li><a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a></li>
<li><a href="#static_android.lens.info.hyperfocalDistance">android.<wbr/>lens.<wbr/>info.<wbr/>hyperfocal<wbr/>Distance</a></li>
<li><a href="#static_android.sensor.info.physicalSize">android.<wbr/>sensor.<wbr/>info.<wbr/>physical<wbr/>Size</a></li>
<li><a href="#static_android.sensor.info.whiteLevel">android.<wbr/>sensor.<wbr/>info.<wbr/>white<wbr/>Level</a></li>
<li><a href="#static_android.sensor.blackLevelPattern">android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern</a></li>
<li><a href="#static_android.sensor.info.colorFilterArrangement">android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement</a></li>
<li><a href="#dynamic_android.sensor.rollingShutterSkew">android.<wbr/>sensor.<wbr/>rolling<wbr/>Shutter<wbr/>Skew</a></li>
</ul>
</li>
<li>The device will report 0 for <a href="#static_android.sensor.orientation">android.<wbr/>sensor.<wbr/>orientation</a></li>
<li>The device has less guarantee on stable framerate,<wbr/> as the framerate partly depends
  on the external camera being used.<wbr/></li>
</ul></span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>Generally classifies the overall set of the camera device functionality.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The supported hardware level is a high-level description of the camera device's
capabilities,<wbr/> summarizing several capabilities into one field.<wbr/>  Each level adds additional
features to the previous one,<wbr/> and is always a strict superset of the previous level.<wbr/>
The ordering is <code>LEGACY &lt; LIMITED &lt; FULL &lt; LEVEL_<wbr/>3</code>.<wbr/></p>
<p>Starting from <code>LEVEL_<wbr/>3</code>,<wbr/> the level enumerations are guaranteed to be in increasing
numerical value as well.<wbr/> To check if a given device is at least at a given hardware level,<wbr/>
the following code snippet can be used:</p>
<pre><code>//<wbr/> Returns true if the device supports the required hardware level,<wbr/> or better.<wbr/>
boolean isHardwareLevelSupported(CameraCharacteristics c,<wbr/> int requiredLevel) {
    int deviceLevel = c.<wbr/>get(Camera<wbr/>Characteristics.<wbr/>INFO_<wbr/>SUPPORTED_<wbr/>HARDWARE_<wbr/>LEVEL);
    if (deviceLevel == Camera<wbr/>Characteristics.<wbr/>INFO_<wbr/>SUPPORTED_<wbr/>HARDWARE_<wbr/>LEVEL_<wbr/>LEGACY) {
        return requiredLevel == deviceLevel;
    }
    //<wbr/> deviceLevel is not LEGACY,<wbr/> can use numerical sort
    return requiredLevel &lt;= deviceLevel;
}
</code></pre>
<p>At a high level,<wbr/> the levels are:</p>
<ul>
<li><code>LEGACY</code> devices operate in a backwards-compatibility mode for older
  Android devices,<wbr/> and have very limited capabilities.<wbr/></li>
<li><code>LIMITED</code> devices represent the
  baseline feature set,<wbr/> and may also include additional capabilities that are
  subsets of <code>FULL</code>.<wbr/></li>
<li><code>FULL</code> devices additionally support per-frame manual control of sensor,<wbr/> flash,<wbr/> lens and
  post-processing settings,<wbr/> and image capture at a high rate.<wbr/></li>
<li><code>LEVEL_<wbr/>3</code> devices additionally support YUV reprocessing and RAW image capture,<wbr/> along
  with additional output stream configurations.<wbr/></li>
</ul>
<p>See the individual level enums for full descriptions of the supported capabilities.<wbr/>  The
<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> entry describes the device's capabilities at a
finer-grain level,<wbr/> if needed.<wbr/> In addition,<wbr/> many controls have their available settings or
ranges defined in individual entries from <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html">CameraCharacteristics</a>.<wbr/></p>
<p>Some features are not part of any particular hardware level or capability and must be
queried separately.<wbr/> These include:</p>
<ul>
<li>Calibrated timestamps (<a href="#static_android.sensor.info.timestampSource">android.<wbr/>sensor.<wbr/>info.<wbr/>timestamp<wbr/>Source</a> <code>==</code> REALTIME)</li>
<li>Precision lens control (<a href="#static_android.lens.info.focusDistanceCalibration">android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration</a> <code>==</code> CALIBRATED)</li>
<li>Face detection (<a href="#static_android.statistics.info.availableFaceDetectModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes</a>)</li>
<li>Optical or electrical image stabilization
  (<a href="#static_android.lens.info.availableOpticalStabilization">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization</a>,<wbr/>
   <a href="#static_android.control.availableVideoStabilizationModes">android.<wbr/>control.<wbr/>available<wbr/>Video<wbr/>Stabilization<wbr/>Modes</a>)</li>
</ul>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>A camera HALv3 device can implement one of three possible operational modes; LIMITED,<wbr/>
FULL,<wbr/> and LEVEL_<wbr/>3.<wbr/></p>
<p>FULL support or better 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/> Each level is a strict
superset of the previous level,<wbr/> and they share the same essential operational flow.<wbr/></p>
<p>For full details refer to "S3.<wbr/> Operational Modes" in camera3.<wbr/>h</p>
<p>Camera HAL3+ must not implement LEGACY mode.<wbr/> It is there for backwards compatibility in
the <code>android.<wbr/>hardware.<wbr/>camera2</code> user-facing API only on legacy HALv1 devices,<wbr/> and is
implemented by the camera framework code.<wbr/></p>
<p>EXTERNAL level devices have lower peformance bar in CTS since the peformance might depend
on the external camera being used and is not fully controlled by the device manufacturer.<wbr/>
The ITS test suite is exempted for the same reason.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.info.version">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>info.<wbr/>version
            </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">
              <p>A short string for manufacturer version information about the camera device,<wbr/> such as
ISP hardware,<wbr/> sensors,<wbr/> etc.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>3</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This can be used in <a href="https://developer.android.com/reference/android/media/ExifInterface.html#TAG_IMAGE_DESCRIPTION">TAG_<wbr/>IMAGE_<wbr/>DESCRIPTION</a>
in jpeg EXIF.<wbr/> This key may be absent if no version information is available on the
device.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The string must consist of only alphanumeric characters,<wbr/> punctuation,<wbr/> and
whitespace,<wbr/> i.<wbr/>e.<wbr/> it must match regular expression "[\p{Alnum}\p{Punct}\p{Space}]*".<wbr/>
It must not exceed 256 characters.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="controls_android.blackLevel.lock">
            <td class="entry_name
             " rowspan="5">
              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>


              <span class="entry_type_hwlevel">[full] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON (v3.2)</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>Whether black-level compensation is locked
to its current values,<wbr/> or is free to vary.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_HAL2">HAL2</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>When set to <code>true</code> (ON),<wbr/> the values used for black-level
compensation will not change until the lock is set to
<code>false</code> (OFF).<wbr/></p>
<p>Since changes to certain capture parameters (such as
exposure time) may require resetting of black level
compensation,<wbr/> the camera device must report whether setting
the black level lock was successful in the output result
metadata.<wbr/></p>
<p>For example,<wbr/> if a sequence of requests is as follows:</p>
<ul>
<li>Request 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
<li>Request 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
<li>Request 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
<li>Request 4: Exposure = 20ms,<wbr/> Black level lock = ON</li>
<li>Request 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
<li>Request 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
</ul>
<p>And the exposure change in Request 4 requires the camera
device to reset the black level offsets,<wbr/> then the output
result metadata is expected to be:</p>
<ul>
<li>Result 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
<li>Result 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
<li>Result 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
<li>Result 4: Exposure = 20ms,<wbr/> Black level lock = OFF</li>
<li>Result 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
<li>Result 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
</ul>
<p>This indicates to the application that on frame 4,<wbr/> black
levels were reset due to exposure value changes,<wbr/> and pixel
values may not be consistent across captures.<wbr/></p>
<p>The camera device will maintain the lock to the extent
possible,<wbr/> only overriding the lock to OFF when changes to
other request parameters require a black level recalculation
or reset.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>If for some reason black level locking is no longer possible
(for example,<wbr/> the analog gain has changed,<wbr/> which forces
black level offsets to be recalculated),<wbr/> then the HAL must
override this request (and it must report 'OFF' when this
does happen) until the next capture for which locking is
possible again.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="dynamic_android.blackLevel.lock">
            <td class="entry_name
             " rowspan="5">
              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>


              <span class="entry_type_hwlevel">[full] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">ON (v3.2)</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>Whether black-level compensation is locked
to its current values,<wbr/> or is free to vary.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_HAL2">HAL2</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Whether the black level offset was locked for this frame.<wbr/>  Should be
ON if <a href="#controls_android.blackLevel.lock">android.<wbr/>black<wbr/>Level.<wbr/>lock</a> was ON in the capture request,<wbr/> unless
a change in other capture settings forced the camera device to
perform a black level reset.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>If for some reason black level locking is no longer possible
(for example,<wbr/> the analog gain has changed,<wbr/> which forces
black level offsets to be recalculated),<wbr/> then the HAL must
override this request (and it must report 'OFF' when this
does happen) until the next capture for which locking is
possible again.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>

  <!-- end of section -->
  <tr><td colspan="7" id="section_sync" class="section">sync</td></tr>


      <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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="dynamic_android.sync.frameNumber">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>sync.<wbr/>frame<wbr/>Number
            </td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">int64</span>

              <span class="entry_type_visibility"> [ndk_public]</span>


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">CONVERGING (v3.2)</span>
                    <span class="entry_type_enum_value">-1</span>
                    <span class="entry_type_enum_notes"><p>The current result is not yet fully synchronized to any request.<wbr/></p>
<p>Synchronization is in progress,<wbr/> and reading metadata from this
result may include a mix of data that have taken effect since the
last synchronization time.<wbr/></p>
<p>In some future result,<wbr/> within <a href="#static_android.sync.maxLatency">android.<wbr/>sync.<wbr/>max<wbr/>Latency</a> frames,<wbr/>
this value will update to the actual frame number frame number
the result is guaranteed to be synchronized to (as long as the
request settings remain constant).<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">UNKNOWN (v3.2)</span>
                    <span class="entry_type_enum_value">-2</span>
                    <span class="entry_type_enum_notes"><p>The current result's synchronization status is unknown.<wbr/></p>
<p>The result may have already converged,<wbr/> or it may be in
progress.<wbr/>  Reading from this result may include some mix
of settings from past requests.<wbr/></p>
<p>After a settings change,<wbr/> the new settings will eventually all
take effect for the output buffers and results.<wbr/> However,<wbr/> this
value will not change when that happens.<wbr/> Altering settings
rapidly may provide outcomes using mixes of settings from recent
requests.<wbr/></p>
<p>This value is intended primarily for backwards compatibility with
the older camera implementations (for android.<wbr/>hardware.<wbr/>Camera).<wbr/></p></span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>The frame number corresponding to the last request
with which the output result (metadata + buffers) has been fully
synchronized.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              <p>Either a non-negative value corresponding to a
<code>frame_<wbr/>number</code>,<wbr/> or one of the two enums (CONVERGING /<wbr/> UNKNOWN).<wbr/></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>When a request is submitted to the camera device,<wbr/> there is usually a
delay of several frames before the controls get applied.<wbr/> A camera
device may either choose to account for this delay by implementing a
pipeline and carefully submit well-timed atomic control updates,<wbr/> or
it may start streaming control changes that span over several frame
boundaries.<wbr/></p>
<p>In the latter case,<wbr/> whenever a request's settings change relative to
the previous submitted request,<wbr/> the full set of changes may take
multiple frame durations to fully take effect.<wbr/> Some settings may
take effect sooner (in less frame durations) than others.<wbr/></p>
<p>While a set of control changes are being propagated,<wbr/> this value
will be CONVERGING.<wbr/></p>
<p>Once it is fully known that a set of control changes have been
finished propagating,<wbr/> and the resulting updated control settings
have been read back by the camera device,<wbr/> this value will be set
to a non-negative frame number (corresponding to the request to
which the results have synchronized to).<wbr/></p>
<p>Older camera device implementations may not have a way to detect
when all camera controls have been applied,<wbr/> and will always set this
value to UNKNOWN.<wbr/></p>
<p>FULL capability devices will always have this value set to the
frame number of the request corresponding to this result.<wbr/></p>
<p><em>Further details</em>:</p>
<ul>
<li>Whenever a request differs from the last request,<wbr/> any future
results not yet returned may have this value set to CONVERGING (this
could include any in-progress captures not yet returned by the camera
device,<wbr/> for more details see pipeline considerations below).<wbr/></li>
<li>Submitting a series of multiple requests that differ from the
previous request (e.<wbr/>g.<wbr/> r1,<wbr/> r2,<wbr/> r3 s.<wbr/>t.<wbr/> r1 != r2 != r3)
moves the new synchronization frame to the last non-repeating
request (using the smallest frame number from the contiguous list of
repeating requests).<wbr/></li>
<li>Submitting the same request repeatedly will not change this value
to CONVERGING,<wbr/> if it was already a non-negative value.<wbr/></li>
<li>When this value changes to non-negative,<wbr/> that means that all of the
metadata controls from the request have been applied,<wbr/> all of the
metadata controls from the camera device have been read to the
updated values (into the result),<wbr/> and all of the graphics buffers
corresponding to this result are also synchronized to the request.<wbr/></li>
</ul>
<p><em>Pipeline considerations</em>:</p>
<p>Submitting a request with updated controls relative to the previously
submitted requests may also invalidate the synchronization state
of all the results corresponding to currently in-flight requests.<wbr/></p>
<p>In other words,<wbr/> results for this current request and up to
<a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> prior requests may have their
<a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> change to CONVERGING.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>Using UNKNOWN here is illegal unless <a href="#static_android.sync.maxLatency">android.<wbr/>sync.<wbr/>max<wbr/>Latency</a>
is also UNKNOWN.<wbr/></p>
<p>FULL capability devices should simply set this value to the
<code>frame_<wbr/>number</code> of the request this result corresponds to.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="static_android.sync.maxLatency">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>sync.<wbr/>max<wbr/>Latency
            </td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">int32</span>

              <span class="entry_type_visibility"> [public]</span>


              <span class="entry_type_hwlevel">[legacy] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">PER_FRAME_CONTROL (v3.2)</span>
                    <span class="entry_type_enum_value">0</span>
                    <span class="entry_type_enum_notes"><p>Every frame has the requests immediately applied.<wbr/></p>
<p>Changing controls over multiple requests one after another will
produce results that have those controls applied atomically
each frame.<wbr/></p>
<p>All FULL capability devices will have this as their maxLatency.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">UNKNOWN (v3.2)</span>
                    <span class="entry_type_enum_value">-1</span>
                    <span class="entry_type_enum_notes"><p>Each new frame has some subset (potentially the entire set)
of the past requests applied to the camera settings.<wbr/></p>
<p>By submitting a series of identical requests,<wbr/> the camera device
will eventually have the camera settings applied,<wbr/> but it is
unknown when that exact point will be.<wbr/></p>
<p>All LEGACY capability devices will have this as their maxLatency.<wbr/></p></span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>The maximum number of frames that can occur after a request
(different than the previous) has been submitted,<wbr/> and before the
result's state becomes synchronized.<wbr/></p>
            </td>

            <td class="entry_units">
              Frame counts
            </td>

            <td class="entry_range">
              <p>A positive value,<wbr/> PER_<wbr/>FRAME_<wbr/>CONTROL,<wbr/> or UNKNOWN.<wbr/></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This defines the maximum distance (in number of metadata results),<wbr/>
between the frame number of the request that has new controls to apply
and the frame number of the result that has all the controls applied.<wbr/></p>
<p>In other words this acts as an upper boundary for how many frames
must occur before the camera device knows for a fact that the new
submitted camera settings have been applied in outgoing frames.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>For example if maxLatency was 2,<wbr/></p>
<pre><code>initial request = X (repeating)
request1 = X
request2 = Y
request3 = Y
request4 = Y

where requestN has frameNumber N,<wbr/> and the first of the repeating
initial request's has frameNumber F (and F &lt; 1).<wbr/>

initial result = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
result1 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
result2 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
result3 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
result4 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2 }

where resultN has frameNumber N.<wbr/>
</code></pre>
<p>Since <code>result4</code> has a <code>frameNumber == 4</code> and
<code><a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2</code>,<wbr/> the distance is clearly
<code>4 - 2 = 2</code>.<wbr/></p>
<p>Use <code>frame_<wbr/>count</code> from camera3_<wbr/>request_<wbr/>t instead of
<a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a> or
<code><a href="https://developer.android.com/reference/android/hardware/camera2/CaptureResult.html#getFrameNumber">CaptureResult#getFrameNumber</a></code>.<wbr/></p>
<p>LIMITED devices are strongly encouraged to use a non-negative
value.<wbr/> If UNKNOWN is used here then app developers do not have a way
to know when sensor settings have been applied.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>

  <!-- end of section -->
  <tr><td colspan="7" id="section_reprocess" class="section">reprocess</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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="controls_android.reprocess.effectiveExposureFactor">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>reprocess.<wbr/>effective<wbr/>Exposure<wbr/>Factor
            </td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>

              <span class="entry_type_visibility"> [java_public]</span>


              <span class="entry_type_hwlevel">[limited] </span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>The amount of exposure time increase factor applied to the original output
frame by the application processing before sending for reprocessing.<wbr/></p>
            </td>

            <td class="entry_units">
              Relative exposure time increase factor.<wbr/>
            </td>

            <td class="entry_range">
              <p>&gt;= 1.<wbr/>0</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_REPROC">REPROC</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This is optional,<wbr/> and will be supported if the camera device supports YUV_<wbr/>REPROCESSING
capability (<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains YUV_<wbr/>REPROCESSING).<wbr/></p>
<p>For some YUV reprocessing use cases,<wbr/> the application may choose to filter the original
output frames to effectively reduce the noise to the same level as a frame that was
captured with longer exposure time.<wbr/> To be more specific,<wbr/> assuming the original captured
images were captured with a sensitivity of S and an exposure time of T,<wbr/> the model in
the camera device is that the amount of noise in the image would be approximately what
would be expected if the original capture parameters had been a sensitivity of
S/<wbr/>effectiveExposureFactor and an exposure time of T*effectiveExposureFactor,<wbr/> rather
than S and T respectively.<wbr/> If the captured images were processed by the application
before being sent for reprocessing,<wbr/> then the application may have used image processing
algorithms and/<wbr/>or multi-frame image fusion to reduce the noise in the
application-processed images (input images).<wbr/> By using the effectiveExposureFactor
control,<wbr/> the application can communicate to the camera device the actual noise level
improvement in the application-processed image.<wbr/> With this information,<wbr/> the camera
device can select appropriate noise reduction and edge enhancement parameters to avoid
excessive noise reduction (<a href="#controls_android.noiseReduction.mode">android.<wbr/>noise<wbr/>Reduction.<wbr/>mode</a>) and insufficient edge
enhancement (<a href="#controls_android.edge.mode">android.<wbr/>edge.<wbr/>mode</a>) being applied to the reprocessed frames.<wbr/></p>
<p>For example,<wbr/> for multi-frame image fusion use case,<wbr/> the application may fuse
multiple output frames together to a final frame for reprocessing.<wbr/> When N image are
fused into 1 image for reprocessing,<wbr/> the exposure time increase factor could be up to
square root of N (based on a simple photon shot noise model).<wbr/> The camera device will
adjust the reprocessing noise reduction and edge enhancement parameters accordingly to
produce the best quality images.<wbr/></p>
<p>This is relative factor,<wbr/> 1.<wbr/>0 indicates the application hasn't processed the input
buffer in a way that affects its effective exposure time.<wbr/></p>
<p>This control is only effective for YUV reprocessing capture request.<wbr/> For noise
reduction reprocessing,<wbr/> it is only effective when <code><a href="#controls_android.noiseReduction.mode">android.<wbr/>noise<wbr/>Reduction.<wbr/>mode</a> != OFF</code>.<wbr/>
Similarly,<wbr/> for edge enhancement reprocessing,<wbr/> it is only effective when
<code><a href="#controls_android.edge.mode">android.<wbr/>edge.<wbr/>mode</a> != OFF</code>.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="dynamic_android.reprocess.effectiveExposureFactor">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>reprocess.<wbr/>effective<wbr/>Exposure<wbr/>Factor
            </td>
            <td class="entry_type">
                <span class="entry_type_name">float</span>

              <span class="entry_type_visibility"> [java_public]</span>


              <span class="entry_type_hwlevel">[limited] </span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>The amount of exposure time increase factor applied to the original output
frame by the application processing before sending for reprocessing.<wbr/></p>
            </td>

            <td class="entry_units">
              Relative exposure time increase factor.<wbr/>
            </td>

            <td class="entry_range">
              <p>&gt;= 1.<wbr/>0</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_REPROC">REPROC</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This is optional,<wbr/> and will be supported if the camera device supports YUV_<wbr/>REPROCESSING
capability (<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains YUV_<wbr/>REPROCESSING).<wbr/></p>
<p>For some YUV reprocessing use cases,<wbr/> the application may choose to filter the original
output frames to effectively reduce the noise to the same level as a frame that was
captured with longer exposure time.<wbr/> To be more specific,<wbr/> assuming the original captured
images were captured with a sensitivity of S and an exposure time of T,<wbr/> the model in
the camera device is that the amount of noise in the image would be approximately what
would be expected if the original capture parameters had been a sensitivity of
S/<wbr/>effectiveExposureFactor and an exposure time of T*effectiveExposureFactor,<wbr/> rather
than S and T respectively.<wbr/> If the captured images were processed by the application
before being sent for reprocessing,<wbr/> then the application may have used image processing
algorithms and/<wbr/>or multi-frame image fusion to reduce the noise in the
application-processed images (input images).<wbr/> By using the effectiveExposureFactor
control,<wbr/> the application can communicate to the camera device the actual noise level
improvement in the application-processed image.<wbr/> With this information,<wbr/> the camera
device can select appropriate noise reduction and edge enhancement parameters to avoid
excessive noise reduction (<a href="#controls_android.noiseReduction.mode">android.<wbr/>noise<wbr/>Reduction.<wbr/>mode</a>) and insufficient edge
enhancement (<a href="#controls_android.edge.mode">android.<wbr/>edge.<wbr/>mode</a>) being applied to the reprocessed frames.<wbr/></p>
<p>For example,<wbr/> for multi-frame image fusion use case,<wbr/> the application may fuse
multiple output frames together to a final frame for reprocessing.<wbr/> When N image are
fused into 1 image for reprocessing,<wbr/> the exposure time increase factor could be up to
square root of N (based on a simple photon shot noise model).<wbr/> The camera device will
adjust the reprocessing noise reduction and edge enhancement parameters accordingly to
produce the best quality images.<wbr/></p>
<p>This is relative factor,<wbr/> 1.<wbr/>0 indicates the application hasn't processed the input
buffer in a way that affects its effective exposure time.<wbr/></p>
<p>This control is only effective for YUV reprocessing capture request.<wbr/> For noise
reduction reprocessing,<wbr/> it is only effective when <code><a href="#controls_android.noiseReduction.mode">android.<wbr/>noise<wbr/>Reduction.<wbr/>mode</a> != OFF</code>.<wbr/>
Similarly,<wbr/> for edge enhancement reprocessing,<wbr/> it is only effective when
<code><a href="#controls_android.edge.mode">android.<wbr/>edge.<wbr/>mode</a> != OFF</code>.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="static_android.reprocess.maxCaptureStall">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>reprocess.<wbr/>max<wbr/>Capture<wbr/>Stall
            </td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>

              <span class="entry_type_visibility"> [java_public]</span>


              <span class="entry_type_hwlevel">[limited] </span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>The maximal camera capture pipeline stall (in unit of frame count) introduced by a
reprocess capture request.<wbr/></p>
            </td>

            <td class="entry_units">
              Number of frames.<wbr/>
            </td>

            <td class="entry_range">
              <p>&lt;= 4</p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_REPROC">REPROC</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The key describes the maximal interference that one reprocess (input) request
can introduce to the camera simultaneous streaming of regular (output) capture
requests,<wbr/> including repeating requests.<wbr/></p>
<p>When a reprocessing capture request is submitted while a camera output repeating request
(e.<wbr/>g.<wbr/> preview) is being served by the camera device,<wbr/> it may preempt the camera capture
pipeline for at least one frame duration so that the camera device is unable to process
the following capture request in time for the next sensor start of exposure boundary.<wbr/>
When this happens,<wbr/> the application may observe a capture time gap (longer than one frame
duration) between adjacent capture output frames,<wbr/> which usually exhibits as preview
glitch if the repeating request output targets include a preview surface.<wbr/> This key gives
the worst-case number of frame stall introduced by one reprocess request with any kind of
formats/<wbr/>sizes combination.<wbr/></p>
<p>If this key reports 0,<wbr/> it means a reprocess request doesn't introduce any glitch to the
ongoing camera repeating request outputs,<wbr/> as if this reprocess request is never issued.<wbr/></p>
<p>This key is supported if the camera device supports PRIVATE or YUV reprocessing (
i.<wbr/>e.<wbr/> <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains PRIVATE_<wbr/>REPROCESSING or
YUV_<wbr/>REPROCESSING).<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>

  <!-- end of section -->
  <tr><td colspan="7" id="section_depth" class="section">depth</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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="static_android.depth.maxDepthSamples">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>depth.<wbr/>max<wbr/>Depth<wbr/>Samples
            </td>
            <td class="entry_type">
                <span class="entry_type_name">int32</span>

              <span class="entry_type_visibility"> [system]</span>


              <span class="entry_type_hwlevel">[limited] </span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>Maximum number of points that a depth point cloud may contain.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_DEPTH">DEPTH</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>If a camera device supports outputting depth range data in the form of a depth point
cloud (<a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#DEPTH_POINT_CLOUD">Image<wbr/>Format#DEPTH_<wbr/>POINT_<wbr/>CLOUD</a>),<wbr/> this is the maximum
number of points an output buffer may contain.<wbr/></p>
<p>Any given buffer may contain between 0 and maxDepthSamples points,<wbr/> inclusive.<wbr/>
If output in the depth point cloud format is not supported,<wbr/> this entry will
not be defined.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.depth.availableDepthStreamConfigurations">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>depth.<wbr/>available<wbr/>Depth<wbr/>Stream<wbr/>Configurations
            </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 x 4
                </span>
              <span class="entry_type_visibility"> [ndk_public as streamConfiguration]</span>


              <span class="entry_type_hwlevel">[limited] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">OUTPUT (v3.2)</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">INPUT (v3.2)</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>The available depth dataspace stream
configurations that this camera device supports
(i.<wbr/>e.<wbr/> format,<wbr/> width,<wbr/> height,<wbr/> output/<wbr/>input stream).<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_DEPTH">DEPTH</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>These are output stream configurations for use with
dataSpace HAL_<wbr/>DATASPACE_<wbr/>DEPTH.<wbr/> The configurations are
listed as <code>(format,<wbr/> width,<wbr/> height,<wbr/> input?)</code> tuples.<wbr/></p>
<p>Only devices that support depth output for at least
the HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>Y16 dense depth map may include
this entry.<wbr/></p>
<p>A device that also supports the HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>BLOB
sparse depth point cloud must report a single entry for
the format in this list as <code>(HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>BLOB,<wbr/>
<a href="#static_android.depth.maxDepthSamples">android.<wbr/>depth.<wbr/>max<wbr/>Depth<wbr/>Samples</a>,<wbr/> 1,<wbr/> OUTPUT)</code> in addition to
the entries for HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>Y16.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.depth.availableDepthMinFrameDurations">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>depth.<wbr/>available<wbr/>Depth<wbr/>Min<wbr/>Frame<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">
                  4 x n
                </span>
              <span class="entry_type_visibility"> [ndk_public as streamConfigurationDuration]</span>


              <span class="entry_type_hwlevel">[limited] </span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>This lists the minimum frame duration for each
format/<wbr/>size combination for depth output formats.<wbr/></p>
            </td>

            <td class="entry_units">
              (format,<wbr/> width,<wbr/> height,<wbr/> ns) x n
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_DEPTH">DEPTH</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>This should correspond to the frame duration when only that
stream is active,<wbr/> with all processing (typically in android.<wbr/>*.<wbr/>mode)
set to either OFF or FAST.<wbr/></p>
<p>When multiple streams are used in a request,<wbr/> the minimum frame
duration will be max(individual stream min durations).<wbr/></p>
<p>The minimum frame duration of a stream (of a particular format,<wbr/> size)
is the same regardless of whether the stream is input or output.<wbr/></p>
<p>See <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> and
<a href="#static_android.scaler.availableStallDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stall<wbr/>Durations</a> for more details about
calculating the max frame rate.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.depth.availableDepthStallDurations">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>depth.<wbr/>available<wbr/>Depth<wbr/>Stall<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">
                  4 x n
                </span>
              <span class="entry_type_visibility"> [ndk_public as streamConfigurationDuration]</span>


              <span class="entry_type_hwlevel">[limited] </span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>This lists the maximum stall duration for each
output format/<wbr/>size combination for depth streams.<wbr/></p>
            </td>

            <td class="entry_units">
              (format,<wbr/> width,<wbr/> height,<wbr/> ns) x n
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_DEPTH">DEPTH</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>A stall duration is how much extra time would get added
to the normal minimum frame duration for a repeating request
that has streams with non-zero stall.<wbr/></p>
<p>This functions similarly to
<a href="#static_android.scaler.availableStallDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stall<wbr/>Durations</a> for depth
streams.<wbr/></p>
<p>All depth output stream formats may have a nonzero stall
duration.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.depth.depthIsExclusive">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>depth.<wbr/>depth<wbr/>Is<wbr/>Exclusive
            </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>


              <span class="entry_type_hwlevel">[limited] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">FALSE (v3.2)</span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">TRUE (v3.2)</span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>Indicates whether a capture request may target both a
DEPTH16 /<wbr/> DEPTH_<wbr/>POINT_<wbr/>CLOUD output,<wbr/> and normal color outputs (such as
YUV_<wbr/>420_<wbr/>888,<wbr/> JPEG,<wbr/> or RAW) simultaneously.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>2</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>If TRUE,<wbr/> including both depth and color outputs in a single
capture request is not supported.<wbr/> An application must interleave color
and depth requests.<wbr/>  If FALSE,<wbr/> a single request can target both types
of output.<wbr/></p>
<p>Typically,<wbr/> this restriction exists on camera devices that
need to emit a specific pattern or wavelength of light to
measure depth values,<wbr/> which causes the color image to be
corrupted during depth measurement.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>

  <!-- end of section -->
  <tr><td colspan="7" id="section_logicalMultiCamera" class="section">logicalMultiCamera</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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="static_android.logicalMultiCamera.physicalIds">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>logical<wbr/>Multi<wbr/>Camera.<wbr/>physical<wbr/>Ids
            </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"> [hidden]</span>


              <span class="entry_type_hwlevel">[limited] </span>




            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>String containing the ids of the underlying physical cameras.<wbr/></p>
            </td>

            <td class="entry_units">
              UTF-8 null-terminated string
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>3</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_LOGICALCAMERA">LOGICALCAMERA</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>For a logical camera,<wbr/> this is concatenation of all underlying physical camera ids.<wbr/>
The null terminator for physical camera id must be preserved so that the whole string
can be tokenized using '\0' to generate list of physical camera ids.<wbr/></p>
<p>For example,<wbr/> if the physical camera ids of the logical camera are "2" and "3",<wbr/> the
value of this tag will be ['2',<wbr/> '\0',<wbr/> '3',<wbr/> '\0'].<wbr/></p>
<p>The number of physical camera ids must be no less than 2.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
                
          <tr class="entry" id="static_android.logicalMultiCamera.sensorSyncType">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>logical<wbr/>Multi<wbr/>Camera.<wbr/>sensor<wbr/>Sync<wbr/>Type
            </td>
            <td class="entry_type">
                <span class="entry_type_name entry_type_name_enum">byte</span>

              <span class="entry_type_visibility"> [public]</span>


              <span class="entry_type_hwlevel">[limited] </span>



                <ul class="entry_type_enum">
                  <li>
                    <span class="entry_type_enum_name">APPROXIMATE (v3.3)</span>
                    <span class="entry_type_enum_notes"><p>A software mechanism is used to synchronize between the physical cameras.<wbr/> As a result,<wbr/>
the timestamp of an image from a physical stream is only an approximation of the
image sensor start-of-exposure time.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">CALIBRATED (v3.3)</span>
                    <span class="entry_type_enum_notes"><p>The camera device supports frame timestamp synchronization at the hardware level,<wbr/>
and the timestamp of a physical stream image accurately reflects its
start-of-exposure time.<wbr/></p></span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>The accuracy of frame timestamp synchronization between physical cameras</p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>3</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_LOGICALCAMERA">LOGICALCAMERA</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The accuracy of the frame timestamp synchronization determines the physical cameras'
ability to start exposure at the same time.<wbr/> If the sensorSyncType is CALIBRATED,<wbr/>
the physical camera sensors usually run in master-slave mode so that their shutter
time is synchronized.<wbr/> For APPROXIMATE sensorSyncType,<wbr/> the camera sensors usually run in
master-master mode,<wbr/> and there could be offset between their start of exposure.<wbr/></p>
<p>In both cases,<wbr/> all images generated for a particular capture request still carry the same
timestamps,<wbr/> so that they can be used to look up the matching frame number and
onCaptureStarted callback.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
           <!-- end of entry -->
        
        

      <!-- end of kind -->
      </tbody>

  <!-- end of section -->
  <tr><td colspan="7" id="section_distortionCorrection" class="section">distortionCorrection</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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="controls_android.distortionCorrection.mode">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>distortion<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">OFF (v3.3)</span>
                    <span class="entry_type_enum_notes"><p>No distortion correction is applied.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FAST (v3.3)</span>
                    <span class="entry_type_enum_notes"><p>Lens distortion correction is applied without reducing frame rate
relative to sensor output.<wbr/> It may be the same as OFF if distortion correction would
reduce frame rate relative to sensor.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">HIGH_QUALITY (v3.3)</span>
                    <span class="entry_type_enum_notes"><p>High-quality distortion correction is applied,<wbr/> at the cost of
possibly reduced frame rate relative to sensor output.<wbr/></p></span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>Mode of operation for the lens distortion correction block.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              <p><a href="#static_android.distortionCorrection.availableModes">android.<wbr/>distortion<wbr/>Correction.<wbr/>available<wbr/>Modes</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>3</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The lens distortion correction block attempts to improve image quality by fixing
radial,<wbr/> tangential,<wbr/> or other geometric aberrations in the camera device's optics.<wbr/>  If
available,<wbr/> the <a href="#static_android.lens.distortion">android.<wbr/>lens.<wbr/>distortion</a> field documents the lens's distortion parameters.<wbr/></p>
<p>OFF means no distortion correction is done.<wbr/></p>
<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined distortion correction will be
applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device will use the highest-quality
correction algorithms,<wbr/> even if it slows down capture rate.<wbr/> FAST means the camera device
will not slow down capture rate when applying correction.<wbr/> FAST may be the same as OFF if
any correction at all would slow down capture rate.<wbr/>  Every output stream will have a
similar amount of enhancement applied.<wbr/></p>
<p>The correction only applies to processed outputs such as YUV,<wbr/> JPEG,<wbr/> or DEPTH16; it is not
applied to any RAW output.<wbr/>  Metadata coordinates such as face rectangles or metering
regions are also not affected by correction.<wbr/></p>
<p>Applications enabling distortion correction need to pay extra attention when converting
image coordinates between corrected output buffers and the sensor array.<wbr/> For example,<wbr/> if
the app supports tap-to-focus and enables correction,<wbr/> it then has to apply the distortion
model described in <a href="#static_android.lens.distortion">android.<wbr/>lens.<wbr/>distortion</a> to the image buffer tap coordinates to properly
calculate the tap position on the sensor active array to be used with
<a href="#controls_android.control.afRegions">android.<wbr/>control.<wbr/>af<wbr/>Regions</a>.<wbr/> The same applies in reverse to detected face rectangles if
they need to be drawn on top of the corrected output buffers.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="static_android.distortionCorrection.availableModes">
            <td class="entry_name
             " rowspan="5">
              android.<wbr/>distortion<wbr/>Correction.<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 as enumList]</span>




                <div class="entry_type_notes">list of enums</div>


            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>List of distortion correction modes for <a href="#controls_android.distortionCorrection.mode">android.<wbr/>distortion<wbr/>Correction.<wbr/>mode</a> that are
supported by this camera device.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              <p>Any value listed in <a href="#controls_android.distortionCorrection.mode">android.<wbr/>distortion<wbr/>Correction.<wbr/>mode</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>3</p>
            </td>

            <td class="entry_tags">
              <ul class="entry_tags">
                  <li><a href="#tag_V1">V1</a></li>
                  <li><a href="#tag_REPROC">REPROC</a></li>
              </ul>
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>No device is required to support this API; such devices will always list only 'OFF'.<wbr/>
All devices that support this API will list both FAST and HIGH_<wbr/>QUALITY.<wbr/></p>
            </td>
          </tr>

          <tr class="entries_header">
            <th class="th_details" colspan="6">HAL Implementation Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>HAL must support both FAST and HIGH_<wbr/>QUALITY if distortion correction is available
on the camera device,<wbr/> but the underlying implementation can be the same for both modes.<wbr/>
That is,<wbr/> if the highest quality implementation on the camera device does not slow down
capture rate,<wbr/> then FAST and HIGH_<wbr/>QUALITY will generate the same output.<wbr/></p>
            </td>
          </tr>

          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_hal_version">Initial HIDL HAL version</th>
          <th class="th_tags">Tags</th>
        </tr>
      </thead>

      <tbody>

        

        

        

        

                
          <tr class="entry" id="dynamic_android.distortionCorrection.mode">
            <td class="entry_name
             " rowspan="3">
              android.<wbr/>distortion<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">OFF (v3.3)</span>
                    <span class="entry_type_enum_notes"><p>No distortion correction is applied.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">FAST (v3.3)</span>
                    <span class="entry_type_enum_notes"><p>Lens distortion correction is applied without reducing frame rate
relative to sensor output.<wbr/> It may be the same as OFF if distortion correction would
reduce frame rate relative to sensor.<wbr/></p></span>
                  </li>
                  <li>
                    <span class="entry_type_enum_name">HIGH_QUALITY (v3.3)</span>
                    <span class="entry_type_enum_notes"><p>High-quality distortion correction is applied,<wbr/> at the cost of
possibly reduced frame rate relative to sensor output.<wbr/></p></span>
                  </li>
                </ul>

            </td> <!-- entry_type -->

            <td class="entry_description">
              <p>Mode of operation for the lens distortion correction block.<wbr/></p>
            </td>

            <td class="entry_units">
            </td>

            <td class="entry_range">
              <p><a href="#static_android.distortionCorrection.availableModes">android.<wbr/>distortion<wbr/>Correction.<wbr/>available<wbr/>Modes</a></p>
            </td>

            <td class="entry_hal_version">
              <p>3.<wbr/>3</p>
            </td>

            <td class="entry_tags">
            </td>

          </tr>
          <tr class="entries_header">
            <th class="th_details" colspan="6">Details</th>
          </tr>
          <tr class="entry_cont">
            <td class="entry_details" colspan="6">
              <p>The lens distortion correction block attempts to improve image quality by fixing
radial,<wbr/> tangential,<wbr/> or other geometric aberrations in the camera device's optics.<wbr/>  If
available,<wbr/> the <a href="#static_android.lens.distortion">android.<wbr/>lens.<wbr/>distortion</a> field documents the lens's distortion parameters.<wbr/></p>
<p>OFF means no distortion correction is done.<wbr/></p>
<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined distortion correction will be
applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device will use the highest-quality
correction algorithms,<wbr/> even if it slows down capture rate.<wbr/> FAST means the camera device
will not slow down capture rate when applying correction.<wbr/> FAST may be the same as OFF if
any correction at all would slow down capture rate.<wbr/>  Every output stream will have a
similar amount of enhancement applied.<wbr/></p>
<p>The correction only applies to processed outputs such as YUV,<wbr/> JPEG,<wbr/> or DEPTH16; it is not
applied to any RAW output.<wbr/>  Metadata coordinates such as face rectangles or metering
regions are also not affected by correction.<wbr/></p>
<p>Applications enabling distortion correction need to pay extra attention when converting
image coordinates between corrected output buffers and the sensor array.<wbr/> For example,<wbr/> if
the app supports tap-to-focus and enables correction,<wbr/> it then has to apply the distortion
model described in <a href="#static_android.lens.distortion">android.<wbr/>lens.<wbr/>distortion</a> to the image buffer tap coordinates to properly
calculate the tap position on the sensor active array to be used with
<a href="#controls_android.control.afRegions">android.<wbr/>control.<wbr/>af<wbr/>Regions</a>.<wbr/> The same applies in reverse to detected face rectangles if
they need to be drawn on top of the corrected output buffers.<wbr/></p>
            </td>
          </tr>


          <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></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_BC">BC - 
        Needed for backwards compatibility with old Java API
    
        <ul class="tags_entries">
          <li><a href="#controls_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a> (controls)</li>
          <li><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a> (controls)</li>
          <li><a href="#controls_android.control.aeLock">android.control.aeLock</a> (controls)</li>
          <li><a href="#controls_android.control.aeMode">android.control.aeMode</a> (controls)</li>
          <li><a href="#controls_android.control.aeRegions">android.control.aeRegions</a> (controls)</li>
          <li><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a> (controls)</li>
          <li><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a> (controls)</li>
          <li><a href="#controls_android.control.afMode">android.control.afMode</a> (controls)</li>
          <li><a href="#controls_android.control.afRegions">android.control.afRegions</a> (controls)</li>
          <li><a href="#controls_android.control.afTrigger">android.control.afTrigger</a> (controls)</li>
          <li><a href="#controls_android.control.awbLock">android.control.awbLock</a> (controls)</li>
          <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
          <li><a href="#controls_android.control.awbRegions">android.control.awbRegions</a> (controls)</li>
          <li><a href="#controls_android.control.captureIntent">android.control.captureIntent</a> (controls)</li>
          <li><a href="#controls_android.control.effectMode">android.control.effectMode</a> (controls)</li>
          <li><a href="#controls_android.control.mode">android.control.mode</a> (controls)</li>
          <li><a href="#controls_android.control.sceneMode">android.control.sceneMode</a> (controls)</li>
          <li><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a> (controls)</li>
          <li><a href="#static_android.control.aeAvailableAntibandingModes">android.control.aeAvailableAntibandingModes</a> (static)</li>
          <li><a href="#static_android.control.aeAvailableModes">android.control.aeAvailableModes</a> (static)</li>
          <li><a href="#static_android.control.aeAvailableTargetFpsRanges">android.control.aeAvailableTargetFpsRanges</a> (static)</li>
          <li><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a> (static)</li>
          <li><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a> (static)</li>
          <li><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a> (static)</li>
          <li><a href="#static_android.control.availableEffects">android.control.availableEffects</a> (static)</li>
          <li><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a> (static)</li>
          <li><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a> (static)</li>
          <li><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a> (static)</li>
          <li><a href="#static_android.control.maxRegions">android.control.maxRegions</a> (static)</li>
          <li><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a> (static)</li>
          <li><a href="#static_android.control.aeLockAvailable">android.control.aeLockAvailable</a> (static)</li>
          <li><a href="#static_android.control.awbLockAvailable">android.control.awbLockAvailable</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="#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="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</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="#static_android.statistics.info.maxFaceCount">android.statistics.info.maxFaceCount</a> (static)</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="#static_android.colorCorrection.availableAberrationModes">android.colorCorrection.availableAberrationModes</a> (static)</li>
          <li><a href="#static_android.control.availableHighSpeedVideoConfigurations">android.control.availableHighSpeedVideoConfigurations</a> (static)</li>
          <li><a href="#controls_android.edge.mode">android.edge.mode</a> (controls)</li>
          <li><a href="#static_android.edge.availableEdgeModes">android.edge.availableEdgeModes</a> (static)</li>
          <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a> (controls)</li>
          <li><a href="#static_android.hotPixel.availableHotPixelModes">android.hotPixel.availableHotPixelModes</a> (static)</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.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.info.focusDistanceCalibration">android.lens.info.focusDistanceCalibration</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="#static_android.noiseReduction.availableNoiseReductionModes">android.noiseReduction.availableNoiseReductionModes</a> (static)</li>
          <li><a href="#controls_android.request.id">android.request.id</a> (controls)</li>
          <li><a href="#static_android.scaler.availableMinFrameDurations">android.scaler.availableMinFrameDurations</a> (static)</li>
          <li><a href="#static_android.scaler.availableStallDurations">android.scaler.availableStallDurations</a> (static)</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.info.timestampSource">android.sensor.info.timestampSource</a> (static)</li>
          <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
          <li><a href="#dynamic_android.sensor.rollingShutterSkew">android.sensor.rollingShutterSkew</a> (dynamic)</li>
          <li><a href="#controls_android.statistics.hotPixelMapMode">android.statistics.hotPixelMapMode</a> (controls)</li>
          <li><a href="#static_android.statistics.info.availableHotPixelMapModes">android.statistics.info.availableHotPixelMapModes</a> (static)</li>
          <li><a href="#dynamic_android.statistics.hotPixelMap">android.statistics.hotPixelMap</a> (dynamic)</li>
          <li><a href="#dynamic_android.sync.frameNumber">android.sync.frameNumber</a> (dynamic)</li>
          <li><a href="#static_android.sync.maxLatency">android.sync.maxLatency</a> (static)</li>
          <li><a href="#static_android.distortionCorrection.availableModes">android.distortionCorrection.availableModes</a> (static)</li>
          <li><a href="#dynamic_android.edge.mode">android.edge.mode</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>
          <li><a href="#dynamic_android.noiseReduction.mode">android.noiseReduction.mode</a> (dynamic)</li>
        </ul>
      </li> <!-- tag_V1 -->
      <li id="tag_RAW">RAW - 
        Needed for useful RAW image processing and DNG file support
    
        <ul class="tags_entries">
          <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a> (controls)</li>
          <li><a href="#static_android.hotPixel.availableHotPixelModes">android.hotPixel.availableHotPixelModes</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.info.preCorrectionActiveArraySize">android.sensor.info.preCorrectionActiveArraySize</a> (static)</li>
          <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
          <li><a href="#static_android.sensor.referenceIlluminant2">android.sensor.referenceIlluminant2</a> (static)</li>
          <li><a href="#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.blackLevelPattern">android.sensor.blackLevelPattern</a> (static)</li>
          <li><a href="#static_android.sensor.profileHueSatMapDimensions">android.sensor.profileHueSatMapDimensions</a> (static)</li>
          <li><a href="#dynamic_android.sensor.neutralColorPoint">android.sensor.neutralColorPoint</a> (dynamic)</li>
          <li><a href="#dynamic_android.sensor.noiseProfile">android.sensor.noiseProfile</a> (dynamic)</li>
          <li><a href="#dynamic_android.sensor.profileHueSatMap">android.sensor.profileHueSatMap</a> (dynamic)</li>
          <li><a href="#dynamic_android.sensor.profileToneCurve">android.sensor.profileToneCurve</a> (dynamic)</li>
          <li><a href="#dynamic_android.sensor.greenSplit">android.sensor.greenSplit</a> (dynamic)</li>
          <li><a href="#dynamic_android.sensor.dynamicBlackLevel">android.sensor.dynamicBlackLevel</a> (dynamic)</li>
          <li><a href="#dynamic_android.sensor.dynamicWhiteLevel">android.sensor.dynamicWhiteLevel</a> (dynamic)</li>
          <li><a href="#controls_android.statistics.hotPixelMapMode">android.statistics.hotPixelMapMode</a> (controls)</li>
          <li><a href="#static_android.statistics.info.availableHotPixelMapModes">android.statistics.info.availableHotPixelMapModes</a> (static)</li>
          <li><a href="#dynamic_android.statistics.hotPixelMap">android.statistics.hotPixelMap</a> (dynamic)</li>
          <li><a href="#controls_android.statistics.lensShadingMapMode">android.statistics.lensShadingMapMode</a> (controls)</li>
          <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a> (dynamic)</li>
        </ul>
      </li> <!-- tag_RAW -->
      <li id="tag_HAL2">HAL2 - 
        Entry is only used by camera device legacy 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="#static_android.request.maxNumReprocessStreams">android.request.maxNumReprocessStreams</a> (static)</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.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
        </ul>
      </li> <!-- tag_FULL -->
      <li id="tag_DEPTH">DEPTH - 
        Entry is required for the depth capability.
    
        <ul class="tags_entries">
          <li><a href="#static_android.lens.poseRotation">android.lens.poseRotation</a> (static)</li>
          <li><a href="#static_android.lens.poseTranslation">android.lens.poseTranslation</a> (static)</li>
          <li><a href="#static_android.lens.intrinsicCalibration">android.lens.intrinsicCalibration</a> (static)</li>
          <li><a href="#static_android.lens.radialDistortion">android.lens.radialDistortion</a> (static)</li>
          <li><a href="#static_android.lens.distortion">android.lens.distortion</a> (static)</li>
          <li><a href="#static_android.depth.maxDepthSamples">android.depth.maxDepthSamples</a> (static)</li>
          <li><a href="#static_android.depth.availableDepthStreamConfigurations">android.depth.availableDepthStreamConfigurations</a> (static)</li>
          <li><a href="#static_android.depth.availableDepthMinFrameDurations">android.depth.availableDepthMinFrameDurations</a> (static)</li>
          <li><a href="#static_android.depth.availableDepthStallDurations">android.depth.availableDepthStallDurations</a> (static)</li>
        </ul>
      </li> <!-- tag_DEPTH -->
      <li id="tag_REPROC">REPROC - 
        Entry is required for the YUV or PRIVATE reprocessing capability.
    
        <ul class="tags_entries">
          <li><a href="#controls_android.edge.mode">android.edge.mode</a> (controls)</li>
          <li><a href="#static_android.edge.availableEdgeModes">android.edge.availableEdgeModes</a> (static)</li>
          <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a> (controls)</li>
          <li><a href="#static_android.noiseReduction.availableNoiseReductionModes">android.noiseReduction.availableNoiseReductionModes</a> (static)</li>
          <li><a href="#static_android.request.maxNumInputStreams">android.request.maxNumInputStreams</a> (static)</li>
          <li><a href="#static_android.scaler.availableInputOutputFormatsMap">android.scaler.availableInputOutputFormatsMap</a> (static)</li>
          <li><a href="#controls_android.reprocess.effectiveExposureFactor">android.reprocess.effectiveExposureFactor</a> (controls)</li>
          <li><a href="#static_android.reprocess.maxCaptureStall">android.reprocess.maxCaptureStall</a> (static)</li>
          <li><a href="#static_android.distortionCorrection.availableModes">android.distortionCorrection.availableModes</a> (static)</li>
          <li><a href="#dynamic_android.edge.mode">android.edge.mode</a> (dynamic)</li>
          <li><a href="#dynamic_android.noiseReduction.mode">android.noiseReduction.mode</a> (dynamic)</li>
        </ul>
      </li> <!-- tag_REPROC -->
      <li id="tag_LOGICALCAMERA">LOGICALCAMERA - 
        Entry is required for logical multi-camera capability.
    
        <ul class="tags_entries">
          <li><a href="#static_android.logicalMultiCamera.physicalIds">android.logicalMultiCamera.physicalIds</a> (static)</li>
          <li><a href="#static_android.logicalMultiCamera.sensorSyncType">android.logicalMultiCamera.sensorSyncType</a> (static)</li>
        </ul>
      </li> <!-- tag_LOGICALCAMERA -->
      <li id="tag_FUTURE">FUTURE - 
        Entry is  under-specified and is not required for now. This is for book-keeping purpose,
        do not implement or use it, it may be revised for future.
    
        <ul class="tags_entries">
          <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a> (controls)</li>
          <li><a href="#controls_android.edge.strength">android.edge.strength</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="#static_android.flash.colorTemperature">android.flash.colorTemperature</a> (static)</li>
          <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a> (static)</li>
          <li><a href="#dynamic_android.jpeg.size">android.jpeg.size</a> (dynamic)</li>
          <li><a href="#controls_android.noiseReduction.strength">android.noiseReduction.strength</a> (controls)</li>
          <li><a href="#controls_android.request.metadataMode">android.request.metadataMode</a> (controls)</li>
          <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
          <li><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a> (dynamic)</li>
          <li><a href="#controls_android.shading.strength">android.shading.strength</a> (controls)</li>
          <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a> (controls)</li>
          <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a> (controls)</li>
          <li><a href="#static_android.statistics.info.histogramBucketCount">android.statistics.info.histogramBucketCount</a> (static)</li>
          <li><a href="#static_android.statistics.info.maxHistogramCount">android.statistics.info.maxHistogramCount</a> (static)</li>
          <li><a href="#static_android.statistics.info.maxSharpnessMapValue">android.statistics.info.maxSharpnessMapValue</a> (static)</li>
          <li><a href="#static_android.statistics.info.sharpnessMapSize">android.statistics.info.sharpnessMapSize</a> (static)</li>
          <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a> (dynamic)</li>
          <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a> (dynamic)</li>
        </ul>
      </li> <!-- tag_FUTURE -->
    </ul>
  </div>

  [ <a href="#">top</a> ]

</body>
</html>
