Home | History | Annotate | Download | only in docs
      1 <!DOCTYPE html>
      2 <html>
      3 <!-- Copyright (C) 2012 The Android Open Source Project
      4 
      5      Licensed under the Apache License, Version 2.0 (the "License");
      6      you may not use this file except in compliance with the License.
      7      You may obtain a copy of the License at
      8 
      9           http://www.apache.org/licenses/LICENSE-2.0
     10 
     11      Unless required by applicable law or agreed to in writing, software
     12      distributed under the License is distributed on an "AS IS" BASIS,
     13      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14      See the License for the specific language governing permissions and
     15      limitations under the License.
     16 -->
     17 <head>
     18   <!-- automatically generated from html.mako. do NOT edit directly -->
     19   <meta charset="utf-8" />
     20   <title>Android Camera HAL3.2 Properties</title>
     21   <style type="text/css">
     22      body { background-color: #f7f7f7; font-family: Roboto, sans-serif;}
     23      h1 { color: #333333; }
     24      h2 { color: #333333; }
     25      a:link { color: #258aaf; text-decoration: none}
     26      a:hover { color: #459aaf; text-decoration: underline }
     27      a:visited { color: #154a5f; text-decoration: none}
     28     .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}
     29     .kind { color: #eeeeee; font-size: 1.2em; font-weight: bold; padding-left: 1.5em; background-color: #aaaaaa }
     30     .entry { background-color: #f0f0f0 }
     31     .entry_cont { background-color: #f0f0f0 }
     32     .entries_header { background-color: #dddddd; text-align: center}
     33 
     34     /* toc style */
     35     .toc_section_header { font-size:1.3em;  }
     36     .toc_kind_header { font-size:1.2em;  }
     37     .toc_deprecated { text-decoration:line-through; }
     38 
     39     /* table column sizes */
     40     table { border-collapse:collapse; table-layout: fixed; width: 100%; word-wrap: break-word }
     41     td,th { border: 1px solid; border-color: #aaaaaa; padding-left: 0.5em; padding-right: 0.5em }
     42     .th_name { width: 20% }
     43     .th_units { width: 10% }
     44     .th_tags { width: 5% }
     45     .th_details { width: 25% }
     46     .th_type { width: 20% }
     47     .th_description { width: 20% }
     48     .th_range { width: 10% }
     49     td { font-size: 0.9em; }
     50 
     51     /* hide the first thead, we need it there only to enforce column sizes */
     52     .thead_dummy { visibility: hidden; }
     53 
     54     /* Entry flair */
     55     .entry_name { color: #333333; padding-left:1.0em; font-size:1.1em; font-family: monospace; vertical-align:top; }
     56     .entry_name_deprecated { text-decoration:line-through; }
     57 
     58     /* Entry type flair */
     59     .entry_type_name { font-size:1.1em; color: #669900; font-weight: bold;}
     60     .entry_type_name_enum:after { color: #669900; font-weight: bold; content:" (enum)" }
     61     .entry_type_visibility { font-weight: bolder; padding-left:1em}
     62     .entry_type_synthetic { font-weight: bolder; color: #996600; }
     63     .entry_type_hwlevel { font-weight: bolder; color: #000066; }
     64     .entry_type_deprecated { font-weight: bolder; color: #4D4D4D; }
     65     .entry_type_enum_name { font-family: monospace; font-weight: bolder; }
     66     .entry_type_enum_notes:before { content:" - " }
     67     .entry_type_enum_notes>p:first-child { display:inline; }
     68     .entry_type_enum_value:before { content:" = " }
     69     .entry_type_enum_value { font-family: monospace; }
     70     .entry ul { margin: 0 0 0 0; list-style-position: inside; padding-left: 0.5em; }
     71     .entry ul li { padding: 0 0 0 0; margin: 0 0 0 0;}
     72     .entry_range_deprecated { font-weight: bolder; }
     73 
     74     /* Entry tags flair */
     75     .entry_tags ul { list-style-type: none; }
     76 
     77     /* Entry details (full docs) flair */
     78     .entry_details_header { font-weight: bold; background-color: #dddddd;
     79       text-align: center; font-size: 1.1em; margin-left: 0em; margin-right: 0em; }
     80 
     81     /* Entry spacer flair */
     82     .entry_spacer { background-color: transparent; border-style: none; height: 0.5em; }
     83 
     84     /* TODO: generate abbr element for each tag link? */
     85     /* TODO for each x.y.z try to link it to the entry */
     86 
     87   </style>
     88 
     89   <style>
     90 
     91     {
     92       /* broken...
     93          supposedly there is a bug in chrome that it lays out tables before
     94          it knows its being printed, so the page-break-* styles are ignored
     95          */
     96         tr { page-break-after: always; page-break-inside: avoid; }
     97     }
     98 
     99   </style>
    100 </head>
    101 
    102 
    103 
    104 <body>
    105   <h1>Android Camera HAL3.2 Properties</h1>
    106 
    107 
    108   <h2>Table of Contents</h2>
    109   <ul class="toc">
    110     <li><a href="#tag_index" class="toc_section_header">Tags</a></li>
    111     <li>
    112       <span class="toc_section_header"><a href="#section_colorCorrection">colorCorrection</a></span>
    113       <ul class="toc_section">
    114         <li>
    115           <span class="toc_kind_header">controls</span>
    116           <ul class="toc_section">
    117             <li
    118             ><a href="#controls_android.colorCorrection.mode">android.colorCorrection.mode</a></li>
    119             <li
    120             ><a href="#controls_android.colorCorrection.transform">android.colorCorrection.transform</a></li>
    121             <li
    122             ><a href="#controls_android.colorCorrection.gains">android.colorCorrection.gains</a></li>
    123             <li
    124             ><a href="#controls_android.colorCorrection.aberrationMode">android.colorCorrection.aberrationMode</a></li>
    125           </ul>
    126         </li>
    127         <li>
    128           <span class="toc_kind_header">dynamic</span>
    129           <ul class="toc_section">
    130             <li
    131             ><a href="#dynamic_android.colorCorrection.mode">android.colorCorrection.mode</a></li>
    132             <li
    133             ><a href="#dynamic_android.colorCorrection.transform">android.colorCorrection.transform</a></li>
    134             <li
    135             ><a href="#dynamic_android.colorCorrection.gains">android.colorCorrection.gains</a></li>
    136             <li
    137             ><a href="#dynamic_android.colorCorrection.aberrationMode">android.colorCorrection.aberrationMode</a></li>
    138           </ul>
    139         </li>
    140         <li>
    141           <span class="toc_kind_header">static</span>
    142           <ul class="toc_section">
    143             <li
    144             ><a href="#static_android.colorCorrection.availableAberrationModes">android.colorCorrection.availableAberrationModes</a></li>
    145           </ul>
    146         </li>
    147       </ul> <!-- toc_section -->
    148     </li>
    149     <li>
    150       <span class="toc_section_header"><a href="#section_control">control</a></span>
    151       <ul class="toc_section">
    152         <li>
    153           <span class="toc_kind_header">controls</span>
    154           <ul class="toc_section">
    155             <li
    156             ><a href="#controls_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a></li>
    157             <li
    158             ><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a></li>
    159             <li
    160             ><a href="#controls_android.control.aeLock">android.control.aeLock</a></li>
    161             <li
    162             ><a href="#controls_android.control.aeMode">android.control.aeMode</a></li>
    163             <li
    164             ><a href="#controls_android.control.aeRegions">android.control.aeRegions</a></li>
    165             <li
    166             ><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a></li>
    167             <li
    168             ><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a></li>
    169             <li
    170             ><a href="#controls_android.control.afMode">android.control.afMode</a></li>
    171             <li
    172             ><a href="#controls_android.control.afRegions">android.control.afRegions</a></li>
    173             <li
    174             ><a href="#controls_android.control.afTrigger">android.control.afTrigger</a></li>
    175             <li
    176             ><a href="#controls_android.control.awbLock">android.control.awbLock</a></li>
    177             <li
    178             ><a href="#controls_android.control.awbMode">android.control.awbMode</a></li>
    179             <li
    180             ><a href="#controls_android.control.awbRegions">android.control.awbRegions</a></li>
    181             <li
    182             ><a href="#controls_android.control.captureIntent">android.control.captureIntent</a></li>
    183             <li
    184             ><a href="#controls_android.control.effectMode">android.control.effectMode</a></li>
    185             <li
    186             ><a href="#controls_android.control.mode">android.control.mode</a></li>
    187             <li
    188             ><a href="#controls_android.control.sceneMode">android.control.sceneMode</a></li>
    189             <li
    190             ><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a></li>
    191           </ul>
    192         </li>
    193         <li>
    194           <span class="toc_kind_header">static</span>
    195           <ul class="toc_section">
    196             <li
    197             ><a href="#static_android.control.aeAvailableAntibandingModes">android.control.aeAvailableAntibandingModes</a></li>
    198             <li
    199             ><a href="#static_android.control.aeAvailableModes">android.control.aeAvailableModes</a></li>
    200             <li
    201             ><a href="#static_android.control.aeAvailableTargetFpsRanges">android.control.aeAvailableTargetFpsRanges</a></li>
    202             <li
    203             ><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a></li>
    204             <li
    205             ><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a></li>
    206             <li
    207             ><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a></li>
    208             <li
    209             ><a href="#static_android.control.availableEffects">android.control.availableEffects</a></li>
    210             <li
    211             ><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a></li>
    212             <li
    213             ><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a></li>
    214             <li
    215             ><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a></li>
    216             <li
    217             ><a href="#static_android.control.maxRegions">android.control.maxRegions</a></li>
    218             <li
    219             ><a href="#static_android.control.maxRegionsAe">android.control.maxRegionsAe</a></li>
    220             <li
    221             ><a href="#static_android.control.maxRegionsAwb">android.control.maxRegionsAwb</a></li>
    222             <li
    223             ><a href="#static_android.control.maxRegionsAf">android.control.maxRegionsAf</a></li>
    224             <li
    225             ><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a></li>
    226             <li
    227             ><a href="#static_android.control.availableHighSpeedVideoConfigurations">android.control.availableHighSpeedVideoConfigurations</a></li>
    228           </ul>
    229         </li>
    230         <li>
    231           <span class="toc_kind_header">dynamic</span>
    232           <ul class="toc_section">
    233             <li
    234                 class="toc_deprecated"
    235             ><a href="#dynamic_android.control.aePrecaptureId">android.control.aePrecaptureId</a></li>
    236             <li
    237             ><a href="#dynamic_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a></li>
    238             <li
    239             ><a href="#dynamic_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a></li>
    240             <li
    241             ><a href="#dynamic_android.control.aeLock">android.control.aeLock</a></li>
    242             <li
    243             ><a href="#dynamic_android.control.aeMode">android.control.aeMode</a></li>
    244             <li
    245             ><a href="#dynamic_android.control.aeRegions">android.control.aeRegions</a></li>
    246             <li
    247             ><a href="#dynamic_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a></li>
    248             <li
    249             ><a href="#dynamic_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a></li>
    250             <li
    251             ><a href="#dynamic_android.control.aeState">android.control.aeState</a></li>
    252             <li
    253             ><a href="#dynamic_android.control.afMode">android.control.afMode</a></li>
    254             <li
    255             ><a href="#dynamic_android.control.afRegions">android.control.afRegions</a></li>
    256             <li
    257             ><a href="#dynamic_android.control.afTrigger">android.control.afTrigger</a></li>
    258             <li
    259             ><a href="#dynamic_android.control.afState">android.control.afState</a></li>
    260             <li
    261                 class="toc_deprecated"
    262             ><a href="#dynamic_android.control.afTriggerId">android.control.afTriggerId</a></li>
    263             <li
    264             ><a href="#dynamic_android.control.awbLock">android.control.awbLock</a></li>
    265             <li
    266             ><a href="#dynamic_android.control.awbMode">android.control.awbMode</a></li>
    267             <li
    268             ><a href="#dynamic_android.control.awbRegions">android.control.awbRegions</a></li>
    269             <li
    270             ><a href="#dynamic_android.control.captureIntent">android.control.captureIntent</a></li>
    271             <li
    272             ><a href="#dynamic_android.control.awbState">android.control.awbState</a></li>
    273             <li
    274             ><a href="#dynamic_android.control.effectMode">android.control.effectMode</a></li>
    275             <li
    276             ><a href="#dynamic_android.control.mode">android.control.mode</a></li>
    277             <li
    278             ><a href="#dynamic_android.control.sceneMode">android.control.sceneMode</a></li>
    279             <li
    280             ><a href="#dynamic_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a></li>
    281           </ul>
    282         </li>
    283       </ul> <!-- toc_section -->
    284     </li>
    285     <li>
    286       <span class="toc_section_header"><a href="#section_demosaic">demosaic</a></span>
    287       <ul class="toc_section">
    288         <li>
    289           <span class="toc_kind_header">controls</span>
    290           <ul class="toc_section">
    291             <li
    292             ><a href="#controls_android.demosaic.mode">android.demosaic.mode</a></li>
    293           </ul>
    294         </li>
    295       </ul> <!-- toc_section -->
    296     </li>
    297     <li>
    298       <span class="toc_section_header"><a href="#section_edge">edge</a></span>
    299       <ul class="toc_section">
    300         <li>
    301           <span class="toc_kind_header">controls</span>
    302           <ul class="toc_section">
    303             <li
    304             ><a href="#controls_android.edge.mode">android.edge.mode</a></li>
    305             <li
    306             ><a href="#controls_android.edge.strength">android.edge.strength</a></li>
    307           </ul>
    308         </li>
    309         <li>
    310           <span class="toc_kind_header">static</span>
    311           <ul class="toc_section">
    312             <li
    313             ><a href="#static_android.edge.availableEdgeModes">android.edge.availableEdgeModes</a></li>
    314           </ul>
    315         </li>
    316         <li>
    317           <span class="toc_kind_header">dynamic</span>
    318           <ul class="toc_section">
    319             <li
    320             ><a href="#dynamic_android.edge.mode">android.edge.mode</a></li>
    321           </ul>
    322         </li>
    323       </ul> <!-- toc_section -->
    324     </li>
    325     <li>
    326       <span class="toc_section_header"><a href="#section_flash">flash</a></span>
    327       <ul class="toc_section">
    328         <li>
    329           <span class="toc_kind_header">controls</span>
    330           <ul class="toc_section">
    331             <li
    332             ><a href="#controls_android.flash.firingPower">android.flash.firingPower</a></li>
    333             <li
    334             ><a href="#controls_android.flash.firingTime">android.flash.firingTime</a></li>
    335             <li
    336             ><a href="#controls_android.flash.mode">android.flash.mode</a></li>
    337           </ul>
    338         </li>
    339         <li>
    340           <span class="toc_kind_header">static</span>
    341           <ul class="toc_section">
    342 
    343             <li
    344             ><a href="#static_android.flash.info.available">android.flash.info.available</a></li>
    345             <li
    346             ><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a></li>
    347 
    348             <li
    349             ><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a></li>
    350             <li
    351             ><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a></li>
    352           </ul>
    353         </li>
    354         <li>
    355           <span class="toc_kind_header">dynamic</span>
    356           <ul class="toc_section">
    357             <li
    358             ><a href="#dynamic_android.flash.firingPower">android.flash.firingPower</a></li>
    359             <li
    360             ><a href="#dynamic_android.flash.firingTime">android.flash.firingTime</a></li>
    361             <li
    362             ><a href="#dynamic_android.flash.mode">android.flash.mode</a></li>
    363             <li
    364             ><a href="#dynamic_android.flash.state">android.flash.state</a></li>
    365           </ul>
    366         </li>
    367       </ul> <!-- toc_section -->
    368     </li>
    369     <li>
    370       <span class="toc_section_header"><a href="#section_hotPixel">hotPixel</a></span>
    371       <ul class="toc_section">
    372         <li>
    373           <span class="toc_kind_header">controls</span>
    374           <ul class="toc_section">
    375             <li
    376             ><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a></li>
    377           </ul>
    378         </li>
    379         <li>
    380           <span class="toc_kind_header">static</span>
    381           <ul class="toc_section">
    382             <li
    383             ><a href="#static_android.hotPixel.availableHotPixelModes">android.hotPixel.availableHotPixelModes</a></li>
    384           </ul>
    385         </li>
    386         <li>
    387           <span class="toc_kind_header">dynamic</span>
    388           <ul class="toc_section">
    389             <li
    390             ><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a></li>
    391           </ul>
    392         </li>
    393       </ul> <!-- toc_section -->
    394     </li>
    395     <li>
    396       <span class="toc_section_header"><a href="#section_jpeg">jpeg</a></span>
    397       <ul class="toc_section">
    398         <li>
    399           <span class="toc_kind_header">controls</span>
    400           <ul class="toc_section">
    401             <li
    402             ><a href="#controls_android.jpeg.gpsLocation">android.jpeg.gpsLocation</a></li>
    403             <li
    404             ><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a></li>
    405             <li
    406             ><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a></li>
    407             <li
    408             ><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a></li>
    409             <li
    410             ><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a></li>
    411             <li
    412             ><a href="#controls_android.jpeg.quality">android.jpeg.quality</a></li>
    413             <li
    414             ><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a></li>
    415             <li
    416             ><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a></li>
    417           </ul>
    418         </li>
    419         <li>
    420           <span class="toc_kind_header">static</span>
    421           <ul class="toc_section">
    422             <li
    423             ><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a></li>
    424             <li
    425             ><a href="#static_android.jpeg.maxSize">android.jpeg.maxSize</a></li>
    426           </ul>
    427         </li>
    428         <li>
    429           <span class="toc_kind_header">dynamic</span>
    430           <ul class="toc_section">
    431             <li
    432             ><a href="#dynamic_android.jpeg.gpsLocation">android.jpeg.gpsLocation</a></li>
    433             <li
    434             ><a href="#dynamic_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a></li>
    435             <li
    436             ><a href="#dynamic_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a></li>
    437             <li
    438             ><a href="#dynamic_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a></li>
    439             <li
    440             ><a href="#dynamic_android.jpeg.orientation">android.jpeg.orientation</a></li>
    441             <li
    442             ><a href="#dynamic_android.jpeg.quality">android.jpeg.quality</a></li>
    443             <li
    444             ><a href="#dynamic_android.jpeg.size">android.jpeg.size</a></li>
    445             <li
    446             ><a href="#dynamic_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a></li>
    447             <li
    448             ><a href="#dynamic_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a></li>
    449           </ul>
    450         </li>
    451       </ul> <!-- toc_section -->
    452     </li>
    453     <li>
    454       <span class="toc_section_header"><a href="#section_lens">lens</a></span>
    455       <ul class="toc_section">
    456         <li>
    457           <span class="toc_kind_header">controls</span>
    458           <ul class="toc_section">
    459             <li
    460             ><a href="#controls_android.lens.aperture">android.lens.aperture</a></li>
    461             <li
    462             ><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a></li>
    463             <li
    464             ><a href="#controls_android.lens.focalLength">android.lens.focalLength</a></li>
    465             <li
    466             ><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a></li>
    467             <li
    468             ><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a></li>
    469           </ul>
    470         </li>
    471         <li>
    472           <span class="toc_kind_header">static</span>
    473           <ul class="toc_section">
    474 
    475             <li
    476             ><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a></li>
    477             <li
    478             ><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a></li>
    479             <li
    480             ><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a></li>
    481             <li
    482             ><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a></li>
    483             <li
    484             ><a href="#static_android.lens.info.hyperfocalDistance">android.lens.info.hyperfocalDistance</a></li>
    485             <li
    486             ><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a></li>
    487             <li
    488             ><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a></li>
    489             <li
    490             ><a href="#static_android.lens.info.focusDistanceCalibration">android.lens.info.focusDistanceCalibration</a></li>
    491 
    492             <li
    493             ><a href="#static_android.lens.facing">android.lens.facing</a></li>
    494             <li
    495             ><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a></li>
    496             <li
    497             ><a href="#static_android.lens.position">android.lens.position</a></li>
    498           </ul>
    499         </li>
    500         <li>
    501           <span class="toc_kind_header">dynamic</span>
    502           <ul class="toc_section">
    503             <li
    504             ><a href="#dynamic_android.lens.aperture">android.lens.aperture</a></li>
    505             <li
    506             ><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a></li>
    507             <li
    508             ><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a></li>
    509             <li
    510             ><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a></li>
    511             <li
    512             ><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a></li>
    513             <li
    514             ><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a></li>
    515             <li
    516             ><a href="#dynamic_android.lens.state">android.lens.state</a></li>
    517           </ul>
    518         </li>
    519       </ul> <!-- toc_section -->
    520     </li>
    521     <li>
    522       <span class="toc_section_header"><a href="#section_noiseReduction">noiseReduction</a></span>
    523       <ul class="toc_section">
    524         <li>
    525           <span class="toc_kind_header">controls</span>
    526           <ul class="toc_section">
    527             <li
    528             ><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a></li>
    529             <li
    530             ><a href="#controls_android.noiseReduction.strength">android.noiseReduction.strength</a></li>
    531           </ul>
    532         </li>
    533         <li>
    534           <span class="toc_kind_header">static</span>
    535           <ul class="toc_section">
    536             <li
    537             ><a href="#static_android.noiseReduction.availableNoiseReductionModes">android.noiseReduction.availableNoiseReductionModes</a></li>
    538           </ul>
    539         </li>
    540         <li>
    541           <span class="toc_kind_header">dynamic</span>
    542           <ul class="toc_section">
    543             <li
    544             ><a href="#dynamic_android.noiseReduction.mode">android.noiseReduction.mode</a></li>
    545           </ul>
    546         </li>
    547       </ul> <!-- toc_section -->
    548     </li>
    549     <li>
    550       <span class="toc_section_header"><a href="#section_quirks">quirks</a></span>
    551       <ul class="toc_section">
    552         <li>
    553           <span class="toc_kind_header">static</span>
    554           <ul class="toc_section">
    555             <li
    556                 class="toc_deprecated"
    557             ><a href="#static_android.quirks.meteringCropRegion">android.quirks.meteringCropRegion</a></li>
    558             <li
    559                 class="toc_deprecated"
    560             ><a href="#static_android.quirks.triggerAfWithAuto">android.quirks.triggerAfWithAuto</a></li>
    561             <li
    562                 class="toc_deprecated"
    563             ><a href="#static_android.quirks.useZslFormat">android.quirks.useZslFormat</a></li>
    564             <li
    565                 class="toc_deprecated"
    566             ><a href="#static_android.quirks.usePartialResult">android.quirks.usePartialResult</a></li>
    567           </ul>
    568         </li>
    569         <li>
    570           <span class="toc_kind_header">dynamic</span>
    571           <ul class="toc_section">
    572             <li
    573                 class="toc_deprecated"
    574             ><a href="#dynamic_android.quirks.partialResult">android.quirks.partialResult</a></li>
    575           </ul>
    576         </li>
    577       </ul> <!-- toc_section -->
    578     </li>
    579     <li>
    580       <span class="toc_section_header"><a href="#section_request">request</a></span>
    581       <ul class="toc_section">
    582         <li>
    583           <span class="toc_kind_header">controls</span>
    584           <ul class="toc_section">
    585             <li
    586                 class="toc_deprecated"
    587             ><a href="#controls_android.request.frameCount">android.request.frameCount</a></li>
    588             <li
    589             ><a href="#controls_android.request.id">android.request.id</a></li>
    590             <li
    591                 class="toc_deprecated"
    592             ><a href="#controls_android.request.inputStreams">android.request.inputStreams</a></li>
    593             <li
    594             ><a href="#controls_android.request.metadataMode">android.request.metadataMode</a></li>
    595             <li
    596                 class="toc_deprecated"
    597             ><a href="#controls_android.request.outputStreams">android.request.outputStreams</a></li>
    598             <li
    599                 class="toc_deprecated"
    600             ><a href="#controls_android.request.type">android.request.type</a></li>
    601           </ul>
    602         </li>
    603         <li>
    604           <span class="toc_kind_header">static</span>
    605           <ul class="toc_section">
    606             <li
    607             ><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a></li>
    608             <li
    609             ><a href="#static_android.request.maxNumOutputRaw">android.request.maxNumOutputRaw</a></li>
    610             <li
    611             ><a href="#static_android.request.maxNumOutputProc">android.request.maxNumOutputProc</a></li>
    612             <li
    613             ><a href="#static_android.request.maxNumOutputProcStalling">android.request.maxNumOutputProcStalling</a></li>
    614             <li
    615                 class="toc_deprecated"
    616             ><a href="#static_android.request.maxNumReprocessStreams">android.request.maxNumReprocessStreams</a></li>
    617             <li
    618             ><a href="#static_android.request.maxNumInputStreams">android.request.maxNumInputStreams</a></li>
    619             <li
    620             ><a href="#static_android.request.pipelineMaxDepth">android.request.pipelineMaxDepth</a></li>
    621             <li
    622             ><a href="#static_android.request.partialResultCount">android.request.partialResultCount</a></li>
    623             <li
    624             ><a href="#static_android.request.availableCapabilities">android.request.availableCapabilities</a></li>
    625             <li
    626             ><a href="#static_android.request.availableRequestKeys">android.request.availableRequestKeys</a></li>
    627             <li
    628             ><a href="#static_android.request.availableResultKeys">android.request.availableResultKeys</a></li>
    629             <li
    630             ><a href="#static_android.request.availableCharacteristicsKeys">android.request.availableCharacteristicsKeys</a></li>
    631           </ul>
    632         </li>
    633         <li>
    634           <span class="toc_kind_header">dynamic</span>
    635           <ul class="toc_section">
    636             <li
    637                 class="toc_deprecated"
    638             ><a href="#dynamic_android.request.frameCount">android.request.frameCount</a></li>
    639             <li
    640             ><a href="#dynamic_android.request.id">android.request.id</a></li>
    641             <li
    642             ><a href="#dynamic_android.request.metadataMode">android.request.metadataMode</a></li>
    643             <li
    644                 class="toc_deprecated"
    645             ><a href="#dynamic_android.request.outputStreams">android.request.outputStreams</a></li>
    646             <li
    647             ><a href="#dynamic_android.request.pipelineDepth">android.request.pipelineDepth</a></li>
    648           </ul>
    649         </li>
    650       </ul> <!-- toc_section -->
    651     </li>
    652     <li>
    653       <span class="toc_section_header"><a href="#section_scaler">scaler</a></span>
    654       <ul class="toc_section">
    655         <li>
    656           <span class="toc_kind_header">controls</span>
    657           <ul class="toc_section">
    658             <li
    659             ><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a></li>
    660           </ul>
    661         </li>
    662         <li>
    663           <span class="toc_kind_header">static</span>
    664           <ul class="toc_section">
    665             <li
    666                 class="toc_deprecated"
    667             ><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a></li>
    668             <li
    669                 class="toc_deprecated"
    670             ><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a></li>
    671             <li
    672                 class="toc_deprecated"
    673             ><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a></li>
    674             <li
    675             ><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a></li>
    676             <li
    677                 class="toc_deprecated"
    678             ><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a></li>
    679             <li
    680                 class="toc_deprecated"
    681             ><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a></li>
    682             <li
    683                 class="toc_deprecated"
    684             ><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a></li>
    685             <li
    686                 class="toc_deprecated"
    687             ><a href="#static_android.scaler.availableRawSizes">android.scaler.availableRawSizes</a></li>
    688             <li
    689             ><a href="#static_android.scaler.availableInputOutputFormatsMap">android.scaler.availableInputOutputFormatsMap</a></li>
    690             <li
    691             ><a href="#static_android.scaler.availableStreamConfigurations">android.scaler.availableStreamConfigurations</a></li>
    692             <li
    693             ><a href="#static_android.scaler.availableMinFrameDurations">android.scaler.availableMinFrameDurations</a></li>
    694             <li
    695             ><a href="#static_android.scaler.availableStallDurations">android.scaler.availableStallDurations</a></li>
    696             <li
    697             ><a href="#static_android.scaler.streamConfigurationMap">android.scaler.streamConfigurationMap</a></li>
    698             <li
    699             ><a href="#static_android.scaler.croppingType">android.scaler.croppingType</a></li>
    700           </ul>
    701         </li>
    702         <li>
    703           <span class="toc_kind_header">dynamic</span>
    704           <ul class="toc_section">
    705             <li
    706             ><a href="#dynamic_android.scaler.cropRegion">android.scaler.cropRegion</a></li>
    707           </ul>
    708         </li>
    709       </ul> <!-- toc_section -->
    710     </li>
    711     <li>
    712       <span class="toc_section_header"><a href="#section_sensor">sensor</a></span>
    713       <ul class="toc_section">
    714         <li>
    715           <span class="toc_kind_header">controls</span>
    716           <ul class="toc_section">
    717             <li
    718             ><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a></li>
    719             <li
    720             ><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a></li>
    721             <li
    722             ><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a></li>
    723             <li
    724             ><a href="#controls_android.sensor.testPatternData">android.sensor.testPatternData</a></li>
    725             <li
    726             ><a href="#controls_android.sensor.testPatternMode">android.sensor.testPatternMode</a></li>
    727           </ul>
    728         </li>
    729         <li>
    730           <span class="toc_kind_header">static</span>
    731           <ul class="toc_section">
    732 
    733             <li
    734             ><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a></li>
    735             <li
    736             ><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a></li>
    737             <li
    738             ><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a></li>
    739             <li
    740             ><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a></li>
    741             <li
    742             ><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a></li>
    743             <li
    744             ><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a></li>
    745             <li
    746             ><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a></li>
    747             <li
    748             ><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a></li>
    749             <li
    750             ><a href="#static_android.sensor.info.timestampSource">android.sensor.info.timestampSource</a></li>
    751 
    752             <li
    753             ><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a></li>
    754             <li
    755             ><a href="#static_android.sensor.referenceIlluminant2">android.sensor.referenceIlluminant2</a></li>
    756             <li
    757             ><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a></li>
    758             <li
    759             ><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a></li>
    760             <li
    761             ><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a></li>
    762             <li
    763             ><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a></li>
    764             <li
    765             ><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a></li>
    766             <li
    767             ><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a></li>
    768             <li
    769             ><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a></li>
    770             <li
    771             ><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a></li>
    772             <li
    773             ><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a></li>
    774             <li
    775             ><a href="#static_android.sensor.orientation">android.sensor.orientation</a></li>
    776             <li
    777             ><a href="#static_android.sensor.profileHueSatMapDimensions">android.sensor.profileHueSatMapDimensions</a></li>
    778             <li
    779             ><a href="#static_android.sensor.availableTestPatternModes">android.sensor.availableTestPatternModes</a></li>
    780           </ul>
    781         </li>
    782         <li>
    783           <span class="toc_kind_header">dynamic</span>
    784           <ul class="toc_section">
    785             <li
    786             ><a href="#dynamic_android.sensor.exposureTime">android.sensor.exposureTime</a></li>
    787             <li
    788             ><a href="#dynamic_android.sensor.frameDuration">android.sensor.frameDuration</a></li>
    789             <li
    790             ><a href="#dynamic_android.sensor.sensitivity">android.sensor.sensitivity</a></li>
    791             <li
    792             ><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a></li>
    793             <li
    794             ><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a></li>
    795             <li
    796             ><a href="#dynamic_android.sensor.neutralColorPoint">android.sensor.neutralColorPoint</a></li>
    797             <li
    798             ><a href="#dynamic_android.sensor.noiseProfile">android.sensor.noiseProfile</a></li>
    799             <li
    800             ><a href="#dynamic_android.sensor.profileHueSatMap">android.sensor.profileHueSatMap</a></li>
    801             <li
    802             ><a href="#dynamic_android.sensor.profileToneCurve">android.sensor.profileToneCurve</a></li>
    803             <li
    804             ><a href="#dynamic_android.sensor.greenSplit">android.sensor.greenSplit</a></li>
    805             <li
    806             ><a href="#dynamic_android.sensor.testPatternData">android.sensor.testPatternData</a></li>
    807             <li
    808             ><a href="#dynamic_android.sensor.testPatternMode">android.sensor.testPatternMode</a></li>
    809             <li
    810             ><a href="#dynamic_android.sensor.rollingShutterSkew">android.sensor.rollingShutterSkew</a></li>
    811           </ul>
    812         </li>
    813       </ul> <!-- toc_section -->
    814     </li>
    815     <li>
    816       <span class="toc_section_header"><a href="#section_shading">shading</a></span>
    817       <ul class="toc_section">
    818         <li>
    819           <span class="toc_kind_header">controls</span>
    820           <ul class="toc_section">
    821             <li
    822             ><a href="#controls_android.shading.mode">android.shading.mode</a></li>
    823             <li
    824             ><a href="#controls_android.shading.strength">android.shading.strength</a></li>
    825           </ul>
    826         </li>
    827         <li>
    828           <span class="toc_kind_header">dynamic</span>
    829           <ul class="toc_section">
    830             <li
    831             ><a href="#dynamic_android.shading.mode">android.shading.mode</a></li>
    832           </ul>
    833         </li>
    834       </ul> <!-- toc_section -->
    835     </li>
    836     <li>
    837       <span class="toc_section_header"><a href="#section_statistics">statistics</a></span>
    838       <ul class="toc_section">
    839         <li>
    840           <span class="toc_kind_header">controls</span>
    841           <ul class="toc_section">
    842             <li
    843             ><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a></li>
    844             <li
    845             ><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a></li>
    846             <li
    847             ><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a></li>
    848             <li
    849             ><a href="#controls_android.statistics.hotPixelMapMode">android.statistics.hotPixelMapMode</a></li>
    850             <li
    851             ><a href="#controls_android.statistics.lensShadingMapMode">android.statistics.lensShadingMapMode</a></li>
    852           </ul>
    853         </li>
    854         <li>
    855           <span class="toc_kind_header">static</span>
    856           <ul class="toc_section">
    857 
    858             <li
    859             ><a href="#static_android.statistics.info.availableFaceDetectModes">android.statistics.info.availableFaceDetectModes</a></li>
    860             <li
    861             ><a href="#static_android.statistics.info.histogramBucketCount">android.statistics.info.histogramBucketCount</a></li>
    862             <li
    863             ><a href="#static_android.statistics.info.maxFaceCount">android.statistics.info.maxFaceCount</a></li>
    864             <li
    865             ><a href="#static_android.statistics.info.maxHistogramCount">android.statistics.info.maxHistogramCount</a></li>
    866             <li
    867             ><a href="#static_android.statistics.info.maxSharpnessMapValue">android.statistics.info.maxSharpnessMapValue</a></li>
    868             <li
    869             ><a href="#static_android.statistics.info.sharpnessMapSize">android.statistics.info.sharpnessMapSize</a></li>
    870             <li
    871             ><a href="#static_android.statistics.info.availableHotPixelMapModes">android.statistics.info.availableHotPixelMapModes</a></li>
    872 
    873           </ul>
    874         </li>
    875         <li>
    876           <span class="toc_kind_header">dynamic</span>
    877           <ul class="toc_section">
    878             <li
    879             ><a href="#dynamic_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a></li>
    880             <li
    881             ><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a></li>
    882             <li
    883             ><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a></li>
    884             <li
    885             ><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a></li>
    886             <li
    887             ><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a></li>
    888             <li
    889             ><a href="#dynamic_android.statistics.faces">android.statistics.faces</a></li>
    890             <li
    891             ><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a></li>
    892             <li
    893             ><a href="#dynamic_android.statistics.histogramMode">android.statistics.histogramMode</a></li>
    894             <li
    895             ><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a></li>
    896             <li
    897             ><a href="#dynamic_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a></li>
    898             <li
    899             ><a href="#dynamic_android.statistics.lensShadingCorrectionMap">android.statistics.lensShadingCorrectionMap</a></li>
    900             <li
    901             ><a href="#dynamic_android.statistics.lensShadingMap">android.statistics.lensShadingMap</a></li>
    902             <li
    903                 class="toc_deprecated"
    904             ><a href="#dynamic_android.statistics.predictedColorGains">android.statistics.predictedColorGains</a></li>
    905             <li
    906                 class="toc_deprecated"
    907             ><a href="#dynamic_android.statistics.predictedColorTransform">android.statistics.predictedColorTransform</a></li>
    908             <li
    909             ><a href="#dynamic_android.statistics.sceneFlicker">android.statistics.sceneFlicker</a></li>
    910             <li
    911             ><a href="#dynamic_android.statistics.hotPixelMapMode">android.statistics.hotPixelMapMode</a></li>
    912             <li
    913             ><a href="#dynamic_android.statistics.hotPixelMap">android.statistics.hotPixelMap</a></li>
    914             <li
    915             ><a href="#dynamic_android.statistics.lensShadingMapMode">android.statistics.lensShadingMapMode</a></li>
    916           </ul>
    917         </li>
    918       </ul> <!-- toc_section -->
    919     </li>
    920     <li>
    921       <span class="toc_section_header"><a href="#section_tonemap">tonemap</a></span>
    922       <ul class="toc_section">
    923         <li>
    924           <span class="toc_kind_header">controls</span>
    925           <ul class="toc_section">
    926             <li
    927             ><a href="#controls_android.tonemap.curveBlue">android.tonemap.curveBlue</a></li>
    928             <li
    929             ><a href="#controls_android.tonemap.curveGreen">android.tonemap.curveGreen</a></li>
    930             <li
    931             ><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a></li>
    932             <li
    933             ><a href="#controls_android.tonemap.curve">android.tonemap.curve</a></li>
    934             <li
    935             ><a href="#controls_android.tonemap.mode">android.tonemap.mode</a></li>
    936           </ul>
    937         </li>
    938         <li>
    939           <span class="toc_kind_header">static</span>
    940           <ul class="toc_section">
    941             <li
    942             ><a href="#static_android.tonemap.maxCurvePoints">android.tonemap.maxCurvePoints</a></li>
    943             <li
    944             ><a href="#static_android.tonemap.availableToneMapModes">android.tonemap.availableToneMapModes</a></li>
    945           </ul>
    946         </li>
    947         <li>
    948           <span class="toc_kind_header">dynamic</span>
    949           <ul class="toc_section">
    950             <li
    951             ><a href="#dynamic_android.tonemap.curveBlue">android.tonemap.curveBlue</a></li>
    952             <li
    953             ><a href="#dynamic_android.tonemap.curveGreen">android.tonemap.curveGreen</a></li>
    954             <li
    955             ><a href="#dynamic_android.tonemap.curveRed">android.tonemap.curveRed</a></li>
    956             <li
    957             ><a href="#dynamic_android.tonemap.curve">android.tonemap.curve</a></li>
    958             <li
    959             ><a href="#dynamic_android.tonemap.mode">android.tonemap.mode</a></li>
    960           </ul>
    961         </li>
    962       </ul> <!-- toc_section -->
    963     </li>
    964     <li>
    965       <span class="toc_section_header"><a href="#section_led">led</a></span>
    966       <ul class="toc_section">
    967         <li>
    968           <span class="toc_kind_header">controls</span>
    969           <ul class="toc_section">
    970             <li
    971             ><a href="#controls_android.led.transmit">android.led.transmit</a></li>
    972           </ul>
    973         </li>
    974         <li>
    975           <span class="toc_kind_header">dynamic</span>
    976           <ul class="toc_section">
    977             <li
    978             ><a href="#dynamic_android.led.transmit">android.led.transmit</a></li>
    979           </ul>
    980         </li>
    981         <li>
    982           <span class="toc_kind_header">static</span>
    983           <ul class="toc_section">
    984             <li
    985             ><a href="#static_android.led.availableLeds">android.led.availableLeds</a></li>
    986           </ul>
    987         </li>
    988       </ul> <!-- toc_section -->
    989     </li>
    990     <li>
    991       <span class="toc_section_header"><a href="#section_info">info</a></span>
    992       <ul class="toc_section">
    993         <li>
    994           <span class="toc_kind_header">static</span>
    995           <ul class="toc_section">
    996             <li
    997             ><a href="#static_android.info.supportedHardwareLevel">android.info.supportedHardwareLevel</a></li>
    998           </ul>
    999         </li>
   1000       </ul> <!-- toc_section -->
   1001     </li>
   1002     <li>
   1003       <span class="toc_section_header"><a href="#section_blackLevel">blackLevel</a></span>
   1004       <ul class="toc_section">
   1005         <li>
   1006           <span class="toc_kind_header">controls</span>
   1007           <ul class="toc_section">
   1008             <li
   1009             ><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a></li>
   1010           </ul>
   1011         </li>
   1012         <li>
   1013           <span class="toc_kind_header">dynamic</span>
   1014           <ul class="toc_section">
   1015             <li
   1016             ><a href="#dynamic_android.blackLevel.lock">android.blackLevel.lock</a></li>
   1017           </ul>
   1018         </li>
   1019       </ul> <!-- toc_section -->
   1020     </li>
   1021     <li>
   1022       <span class="toc_section_header"><a href="#section_sync">sync</a></span>
   1023       <ul class="toc_section">
   1024         <li>
   1025           <span class="toc_kind_header">dynamic</span>
   1026           <ul class="toc_section">
   1027             <li
   1028             ><a href="#dynamic_android.sync.frameNumber">android.sync.frameNumber</a></li>
   1029           </ul>
   1030         </li>
   1031         <li>
   1032           <span class="toc_kind_header">static</span>
   1033           <ul class="toc_section">
   1034             <li
   1035             ><a href="#static_android.sync.maxLatency">android.sync.maxLatency</a></li>
   1036           </ul>
   1037         </li>
   1038       </ul> <!-- toc_section -->
   1039     </li>
   1040   </ul>
   1041 
   1042 
   1043   <h1>Properties</h1>
   1044   <table class="properties">
   1045 
   1046     <thead class="thead_dummy">
   1047       <tr>
   1048         <th class="th_name">Property Name</th>
   1049         <th class="th_type">Type</th>
   1050         <th class="th_description">Description</th>
   1051         <th class="th_units">Units</th>
   1052         <th class="th_range">Range</th>
   1053         <th class="th_tags">Tags</th>
   1054       </tr>
   1055     </thead> <!-- so that the first occurrence of thead is not
   1056                          above the first occurrence of tr -->
   1057 <!-- <namespace name="android"> -->
   1058   <tr><td colspan="6" id="section_colorCorrection" class="section">colorCorrection</td></tr>
   1059 
   1060 
   1061       <tr><td colspan="6" class="kind">controls</td></tr>
   1062 
   1063       <thead class="entries_header">
   1064         <tr>
   1065           <th class="th_name">Property Name</th>
   1066           <th class="th_type">Type</th>
   1067           <th class="th_description">Description</th>
   1068           <th class="th_units">Units</th>
   1069           <th class="th_range">Range</th>
   1070           <th class="th_tags">Tags</th>
   1071         </tr>
   1072       </thead>
   1073 
   1074       <tbody>
   1075 
   1076         
   1077 
   1078         
   1079 
   1080         
   1081 
   1082         
   1083 
   1084                 
   1085           <tr class="entry" id="controls_android.colorCorrection.mode">
   1086             <td class="entry_name
   1087              " rowspan="3">
   1088               android.<wbr/>color<wbr/>Correction.<wbr/>mode
   1089             </td>
   1090             <td class="entry_type">
   1091                 <span class="entry_type_name entry_type_name_enum">byte</span>
   1092 
   1093               <span class="entry_type_visibility"> [public]</span>
   1094 
   1095 
   1096               <span class="entry_type_hwlevel">[full] </span>
   1097 
   1098 
   1099 
   1100                 <ul class="entry_type_enum">
   1101                   <li>
   1102                     <span class="entry_type_enum_name">TRANSFORM_MATRIX</span>
   1103                     <span class="entry_type_enum_notes"><p>Use the <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> matrix
   1104 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> to do color conversion.<wbr/></p>
   1105 <p>All advanced white balance adjustments (not specified
   1106 by our white balance pipeline) must be disabled.<wbr/></p>
   1107 <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
   1108 TRANSFORM_<wbr/>MATRIX is ignored.<wbr/> The camera device will override
   1109 this value to either FAST or HIGH_<wbr/>QUALITY.<wbr/></p></span>
   1110                   </li>
   1111                   <li>
   1112                     <span class="entry_type_enum_name">FAST</span>
   1113                     <span class="entry_type_enum_notes"><p>Color correction processing must not slow down
   1114 capture rate relative to sensor raw output.<wbr/></p>
   1115 <p>Advanced white balance adjustments above and beyond
   1116 the specified white balance pipeline may be applied.<wbr/></p>
   1117 <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
   1118 the camera device uses the last frame's AWB values
   1119 (or defaults if AWB has never been run).<wbr/></p></span>
   1120                   </li>
   1121                   <li>
   1122                     <span class="entry_type_enum_name">HIGH_QUALITY</span>
   1123                     <span class="entry_type_enum_notes"><p>Color correction processing operates at improved
   1124 quality but reduced capture rate (relative to sensor raw
   1125 output).<wbr/></p>
   1126 <p>Advanced white balance adjustments above and beyond
   1127 the specified white balance pipeline may be applied.<wbr/></p>
   1128 <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
   1129 the camera device uses the last frame's AWB values
   1130 (or defaults if AWB has never been run).<wbr/></p></span>
   1131                   </li>
   1132                 </ul>
   1133 
   1134             </td> <!-- entry_type -->
   1135 
   1136             <td class="entry_description">
   1137               <p>The mode control selects how the image data is converted from the
   1138 sensor's native color into linear sRGB color.<wbr/></p>
   1139             </td>
   1140 
   1141             <td class="entry_units">
   1142             </td>
   1143 
   1144             <td class="entry_range">
   1145             </td>
   1146 
   1147             <td class="entry_tags">
   1148             </td>
   1149 
   1150           </tr>
   1151           <tr class="entries_header">
   1152             <th class="th_details" colspan="5">Details</th>
   1153           </tr>
   1154           <tr class="entry_cont">
   1155             <td class="entry_details" colspan="5">
   1156               <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
   1157 control is overridden by the AWB routine.<wbr/> When AWB is disabled,<wbr/> the
   1158 application controls how the color mapping is performed.<wbr/></p>
   1159 <p>We define the expected processing pipeline below.<wbr/> For consistency
   1160 across devices,<wbr/> this is always the case with TRANSFORM_<wbr/>MATRIX.<wbr/></p>
   1161 <p>When either FULL or HIGH_<wbr/>QUALITY is used,<wbr/> the camera device may
   1162 do additional processing but <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
   1163 <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> will still be provided by the
   1164 camera device (in the results) and be roughly correct.<wbr/></p>
   1165 <p>Switching to TRANSFORM_<wbr/>MATRIX and using the data provided from
   1166 FAST or HIGH_<wbr/>QUALITY will yield a picture with the same white point
   1167 as what was produced by the camera device in the earlier frame.<wbr/></p>
   1168 <p>The expected processing pipeline is as follows:</p>
   1169 <p><img alt="White balance processing pipeline" src="images/camera2/metadata/android.colorCorrection.mode/processing_pipeline.png"/></p>
   1170 <p>The white balance is encoded by two values,<wbr/> a 4-channel white-balance
   1171 gain vector (applied in the Bayer domain),<wbr/> and a 3x3 color transform
   1172 matrix (applied after demosaic).<wbr/></p>
   1173 <p>The 4-channel white-balance gains are defined as:</p>
   1174 <pre><code><a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> = [ R G_<wbr/>even G_<wbr/>odd B ]
   1175 </code></pre>
   1176 <p>where <code>G_<wbr/>even</code> is the gain for green pixels on even rows of the
   1177 output,<wbr/> and <code>G_<wbr/>odd</code> is the gain for green pixels on the odd rows.<wbr/>
   1178 These may be identical for a given camera device implementation; if
   1179 the camera device does not support a separate gain for even/<wbr/>odd green
   1180 channels,<wbr/> it will use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
   1181 <code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
   1182 <p>The matrices for color transforms are defined as a 9-entry vector:</p>
   1183 <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 ]
   1184 </code></pre>
   1185 <p>which define a transform from input sensor colors,<wbr/> <code>P_<wbr/>in = [ r g b ]</code>,<wbr/>
   1186 to output linear sRGB,<wbr/> <code>P_<wbr/>out = [ r' g' b' ]</code>,<wbr/></p>
   1187 <p>with colors as follows:</p>
   1188 <pre><code>r' = I0r + I1g + I2b
   1189 g' = I3r + I4g + I5b
   1190 b' = I6r + I7g + I8b
   1191 </code></pre>
   1192 <p>Both the input and output value ranges must match.<wbr/> Overflow/<wbr/>underflow
   1193 values are clipped to fit within the range.<wbr/></p>
   1194             </td>
   1195           </tr>
   1196 
   1197 
   1198           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   1199            <!-- end of entry -->
   1200         
   1201                 
   1202           <tr class="entry" id="controls_android.colorCorrection.transform">
   1203             <td class="entry_name
   1204              " rowspan="3">
   1205               android.<wbr/>color<wbr/>Correction.<wbr/>transform
   1206             </td>
   1207             <td class="entry_type">
   1208                 <span class="entry_type_name">rational</span>
   1209                 <span class="entry_type_container">x</span>
   1210 
   1211                 <span class="entry_type_array">
   1212                   3 x 3
   1213                 </span>
   1214               <span class="entry_type_visibility"> [public as colorSpaceTransform]</span>
   1215 
   1216 
   1217               <span class="entry_type_hwlevel">[full] </span>
   1218 
   1219 
   1220                 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
   1221 
   1222 
   1223             </td> <!-- entry_type -->
   1224 
   1225             <td class="entry_description">
   1226               <p>A color transform matrix to use to transform
   1227 from sensor RGB color space to output linear sRGB color space.<wbr/></p>
   1228             </td>
   1229 
   1230             <td class="entry_units">
   1231               Unitless scale factors
   1232             </td>
   1233 
   1234             <td class="entry_range">
   1235             </td>
   1236 
   1237             <td class="entry_tags">
   1238             </td>
   1239 
   1240           </tr>
   1241           <tr class="entries_header">
   1242             <th class="th_details" colspan="5">Details</th>
   1243           </tr>
   1244           <tr class="entry_cont">
   1245             <td class="entry_details" colspan="5">
   1246               <p>This matrix is either set by the camera device when the request
   1247 <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
   1248 directly by the application in the request when the
   1249 <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
   1250 <p>In the latter case,<wbr/> the camera device may round the matrix to account
   1251 for precision issues; the final rounded matrix should be reported back
   1252 in this matrix result metadata.<wbr/> The transform should keep the magnitude
   1253 of the output color values within <code>[0,<wbr/> 1.<wbr/>0]</code> (assuming input color
   1254 values is within the normalized range <code>[0,<wbr/> 1.<wbr/>0]</code>),<wbr/> or clipping may occur.<wbr/></p>
   1255             </td>
   1256           </tr>
   1257 
   1258 
   1259           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   1260            <!-- end of entry -->
   1261         
   1262                 
   1263           <tr class="entry" id="controls_android.colorCorrection.gains">
   1264             <td class="entry_name
   1265              " rowspan="5">
   1266               android.<wbr/>color<wbr/>Correction.<wbr/>gains
   1267             </td>
   1268             <td class="entry_type">
   1269                 <span class="entry_type_name">float</span>
   1270                 <span class="entry_type_container">x</span>
   1271 
   1272                 <span class="entry_type_array">
   1273                   4
   1274                 </span>
   1275               <span class="entry_type_visibility"> [public as rggbChannelVector]</span>
   1276 
   1277 
   1278               <span class="entry_type_hwlevel">[full] </span>
   1279 
   1280 
   1281                 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
   1282 
   1283 
   1284             </td> <!-- entry_type -->
   1285 
   1286             <td class="entry_description">
   1287               <p>Gains applying to Bayer raw color channels for
   1288 white-balance.<wbr/></p>
   1289             </td>
   1290 
   1291             <td class="entry_units">
   1292               Unitless gain factors
   1293             </td>
   1294 
   1295             <td class="entry_range">
   1296             </td>
   1297 
   1298             <td class="entry_tags">
   1299             </td>
   1300 
   1301           </tr>
   1302           <tr class="entries_header">
   1303             <th class="th_details" colspan="5">Details</th>
   1304           </tr>
   1305           <tr class="entry_cont">
   1306             <td class="entry_details" colspan="5">
   1307               <p>These per-channel gains are either set by the camera device
   1308 when the request <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not
   1309 TRANSFORM_<wbr/>MATRIX,<wbr/> or directly by the application in the
   1310 request when the <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is
   1311 TRANSFORM_<wbr/>MATRIX.<wbr/></p>
   1312 <p>The gains in the result metadata are the gains actually
   1313 applied by the camera device to the current frame.<wbr/></p>
   1314             </td>
   1315           </tr>
   1316 
   1317           <tr class="entries_header">
   1318             <th class="th_details" colspan="5">HAL Implementation Details</th>
   1319           </tr>
   1320           <tr class="entry_cont">
   1321             <td class="entry_details" colspan="5">
   1322               <p>The 4-channel white-balance gains are defined in
   1323 the order of <code>[R G_<wbr/>even G_<wbr/>odd B]</code>,<wbr/> where <code>G_<wbr/>even</code> is the gain
   1324 for green pixels on even rows of the output,<wbr/> and <code>G_<wbr/>odd</code>
   1325 is the gain for green pixels on the odd rows.<wbr/></p>
   1326 <p>If a HAL does not support a separate gain for even/<wbr/>odd green
   1327 channels,<wbr/> it must use the <code>G_<wbr/>even</code> value,<wbr/> and write
   1328 <code>G_<wbr/>odd</code> equal to <code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
   1329             </td>
   1330           </tr>
   1331 
   1332           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   1333            <!-- end of entry -->
   1334         
   1335                 
   1336           <tr class="entry" id="controls_android.colorCorrection.aberrationMode">
   1337             <td class="entry_name
   1338              " rowspan="3">
   1339               android.<wbr/>color<wbr/>Correction.<wbr/>aberration<wbr/>Mode
   1340             </td>
   1341             <td class="entry_type">
   1342                 <span class="entry_type_name entry_type_name_enum">byte</span>
   1343 
   1344               <span class="entry_type_visibility"> [public]</span>
   1345 
   1346 
   1347               <span class="entry_type_hwlevel">[legacy] </span>
   1348 
   1349 
   1350 
   1351                 <ul class="entry_type_enum">
   1352                   <li>
   1353                     <span class="entry_type_enum_name">OFF</span>
   1354                     <span class="entry_type_enum_notes"><p>No aberration correction is applied.<wbr/></p></span>
   1355                   </li>
   1356                   <li>
   1357                     <span class="entry_type_enum_name">FAST</span>
   1358                     <span class="entry_type_enum_notes"><p>Aberration correction will not slow down capture rate
   1359 relative to sensor raw output.<wbr/></p></span>
   1360                   </li>
   1361                   <li>
   1362                     <span class="entry_type_enum_name">HIGH_QUALITY</span>
   1363                     <span class="entry_type_enum_notes"><p>Aberration correction operates at improved quality but reduced
   1364 capture rate (relative to sensor raw output).<wbr/></p></span>
   1365                   </li>
   1366                 </ul>
   1367 
   1368             </td> <!-- entry_type -->
   1369 
   1370             <td class="entry_description">
   1371               <p>Mode of operation for the chromatic aberration correction algorithm.<wbr/></p>
   1372             </td>
   1373 
   1374             <td class="entry_units">
   1375             </td>
   1376 
   1377             <td class="entry_range">
   1378               <p><a href="#static_android.colorCorrection.availableAberrationModes">android.<wbr/>color<wbr/>Correction.<wbr/>available<wbr/>Aberration<wbr/>Modes</a></p>
   1379             </td>
   1380 
   1381             <td class="entry_tags">
   1382             </td>
   1383 
   1384           </tr>
   1385           <tr class="entries_header">
   1386             <th class="th_details" colspan="5">Details</th>
   1387           </tr>
   1388           <tr class="entry_cont">
   1389             <td class="entry_details" colspan="5">
   1390               <p>Chromatic (color) aberration is caused by the fact that different wavelengths of light
   1391 can not focus on the same point after exiting from the lens.<wbr/> This metadata defines
   1392 the high level control of chromatic aberration correction algorithm,<wbr/> which aims to
   1393 minimize the chromatic artifacts that may occur along the object boundaries in an
   1394 image.<wbr/></p>
   1395 <p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean that camera device determined aberration
   1396 correction will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device will
   1397 use the highest-quality aberration correction algorithms,<wbr/> even if it slows down
   1398 capture rate.<wbr/> FAST means the camera device will not slow down capture rate when
   1399 applying aberration correction.<wbr/></p>
   1400 <p>LEGACY devices will always be in FAST mode.<wbr/></p>
   1401             </td>
   1402           </tr>
   1403 
   1404 
   1405           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   1406            <!-- end of entry -->
   1407         
   1408         
   1409 
   1410       <!-- end of kind -->
   1411       </tbody>
   1412       <tr><td colspan="6" class="kind">dynamic</td></tr>
   1413 
   1414       <thead class="entries_header">
   1415         <tr>
   1416           <th class="th_name">Property Name</th>
   1417           <th class="th_type">Type</th>
   1418           <th class="th_description">Description</th>
   1419           <th class="th_units">Units</th>
   1420           <th class="th_range">Range</th>
   1421           <th class="th_tags">Tags</th>
   1422         </tr>
   1423       </thead>
   1424 
   1425       <tbody>
   1426 
   1427         
   1428 
   1429         
   1430 
   1431         
   1432 
   1433         
   1434 
   1435                 
   1436           <tr class="entry" id="dynamic_android.colorCorrection.mode">
   1437             <td class="entry_name
   1438              " rowspan="3">
   1439               android.<wbr/>color<wbr/>Correction.<wbr/>mode
   1440             </td>
   1441             <td class="entry_type">
   1442                 <span class="entry_type_name entry_type_name_enum">byte</span>
   1443 
   1444               <span class="entry_type_visibility"> [public]</span>
   1445 
   1446 
   1447               <span class="entry_type_hwlevel">[full] </span>
   1448 
   1449 
   1450 
   1451                 <ul class="entry_type_enum">
   1452                   <li>
   1453                     <span class="entry_type_enum_name">TRANSFORM_MATRIX</span>
   1454                     <span class="entry_type_enum_notes"><p>Use the <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> matrix
   1455 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> to do color conversion.<wbr/></p>
   1456 <p>All advanced white balance adjustments (not specified
   1457 by our white balance pipeline) must be disabled.<wbr/></p>
   1458 <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
   1459 TRANSFORM_<wbr/>MATRIX is ignored.<wbr/> The camera device will override
   1460 this value to either FAST or HIGH_<wbr/>QUALITY.<wbr/></p></span>
   1461                   </li>
   1462                   <li>
   1463                     <span class="entry_type_enum_name">FAST</span>
   1464                     <span class="entry_type_enum_notes"><p>Color correction processing must not slow down
   1465 capture rate relative to sensor raw output.<wbr/></p>
   1466 <p>Advanced white balance adjustments above and beyond
   1467 the specified white balance pipeline may be applied.<wbr/></p>
   1468 <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
   1469 the camera device uses the last frame's AWB values
   1470 (or defaults if AWB has never been run).<wbr/></p></span>
   1471                   </li>
   1472                   <li>
   1473                     <span class="entry_type_enum_name">HIGH_QUALITY</span>
   1474                     <span class="entry_type_enum_notes"><p>Color correction processing operates at improved
   1475 quality but reduced capture rate (relative to sensor raw
   1476 output).<wbr/></p>
   1477 <p>Advanced white balance adjustments above and beyond
   1478 the specified white balance pipeline may be applied.<wbr/></p>
   1479 <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
   1480 the camera device uses the last frame's AWB values
   1481 (or defaults if AWB has never been run).<wbr/></p></span>
   1482                   </li>
   1483                 </ul>
   1484 
   1485             </td> <!-- entry_type -->
   1486 
   1487             <td class="entry_description">
   1488               <p>The mode control selects how the image data is converted from the
   1489 sensor's native color into linear sRGB color.<wbr/></p>
   1490             </td>
   1491 
   1492             <td class="entry_units">
   1493             </td>
   1494 
   1495             <td class="entry_range">
   1496             </td>
   1497 
   1498             <td class="entry_tags">
   1499             </td>
   1500 
   1501           </tr>
   1502           <tr class="entries_header">
   1503             <th class="th_details" colspan="5">Details</th>
   1504           </tr>
   1505           <tr class="entry_cont">
   1506             <td class="entry_details" colspan="5">
   1507               <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
   1508 control is overridden by the AWB routine.<wbr/> When AWB is disabled,<wbr/> the
   1509 application controls how the color mapping is performed.<wbr/></p>
   1510 <p>We define the expected processing pipeline below.<wbr/> For consistency
   1511 across devices,<wbr/> this is always the case with TRANSFORM_<wbr/>MATRIX.<wbr/></p>
   1512 <p>When either FULL or HIGH_<wbr/>QUALITY is used,<wbr/> the camera device may
   1513 do additional processing but <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
   1514 <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> will still be provided by the
   1515 camera device (in the results) and be roughly correct.<wbr/></p>
   1516 <p>Switching to TRANSFORM_<wbr/>MATRIX and using the data provided from
   1517 FAST or HIGH_<wbr/>QUALITY will yield a picture with the same white point
   1518 as what was produced by the camera device in the earlier frame.<wbr/></p>
   1519 <p>The expected processing pipeline is as follows:</p>
   1520 <p><img alt="White balance processing pipeline" src="images/camera2/metadata/android.colorCorrection.mode/processing_pipeline.png"/></p>
   1521 <p>The white balance is encoded by two values,<wbr/> a 4-channel white-balance
   1522 gain vector (applied in the Bayer domain),<wbr/> and a 3x3 color transform
   1523 matrix (applied after demosaic).<wbr/></p>
   1524 <p>The 4-channel white-balance gains are defined as:</p>
   1525 <pre><code><a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> = [ R G_<wbr/>even G_<wbr/>odd B ]
   1526 </code></pre>
   1527 <p>where <code>G_<wbr/>even</code> is the gain for green pixels on even rows of the
   1528 output,<wbr/> and <code>G_<wbr/>odd</code> is the gain for green pixels on the odd rows.<wbr/>
   1529 These may be identical for a given camera device implementation; if
   1530 the camera device does not support a separate gain for even/<wbr/>odd green
   1531 channels,<wbr/> it will use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
   1532 <code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
   1533 <p>The matrices for color transforms are defined as a 9-entry vector:</p>
   1534 <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 ]
   1535 </code></pre>
   1536 <p>which define a transform from input sensor colors,<wbr/> <code>P_<wbr/>in = [ r g b ]</code>,<wbr/>
   1537 to output linear sRGB,<wbr/> <code>P_<wbr/>out = [ r' g' b' ]</code>,<wbr/></p>
   1538 <p>with colors as follows:</p>
   1539 <pre><code>r' = I0r + I1g + I2b
   1540 g' = I3r + I4g + I5b
   1541 b' = I6r + I7g + I8b
   1542 </code></pre>
   1543 <p>Both the input and output value ranges must match.<wbr/> Overflow/<wbr/>underflow
   1544 values are clipped to fit within the range.<wbr/></p>
   1545             </td>
   1546           </tr>
   1547 
   1548 
   1549           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   1550            <!-- end of entry -->
   1551         
   1552                 
   1553           <tr class="entry" id="dynamic_android.colorCorrection.transform">
   1554             <td class="entry_name
   1555              " rowspan="3">
   1556               android.<wbr/>color<wbr/>Correction.<wbr/>transform
   1557             </td>
   1558             <td class="entry_type">
   1559                 <span class="entry_type_name">rational</span>
   1560                 <span class="entry_type_container">x</span>
   1561 
   1562                 <span class="entry_type_array">
   1563                   3 x 3
   1564                 </span>
   1565               <span class="entry_type_visibility"> [public as colorSpaceTransform]</span>
   1566 
   1567 
   1568               <span class="entry_type_hwlevel">[full] </span>
   1569 
   1570 
   1571                 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
   1572 
   1573 
   1574             </td> <!-- entry_type -->
   1575 
   1576             <td class="entry_description">
   1577               <p>A color transform matrix to use to transform
   1578 from sensor RGB color space to output linear sRGB color space.<wbr/></p>
   1579             </td>
   1580 
   1581             <td class="entry_units">
   1582               Unitless scale factors
   1583             </td>
   1584 
   1585             <td class="entry_range">
   1586             </td>
   1587 
   1588             <td class="entry_tags">
   1589             </td>
   1590 
   1591           </tr>
   1592           <tr class="entries_header">
   1593             <th class="th_details" colspan="5">Details</th>
   1594           </tr>
   1595           <tr class="entry_cont">
   1596             <td class="entry_details" colspan="5">
   1597               <p>This matrix is either set by the camera device when the request
   1598 <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
   1599 directly by the application in the request when the
   1600 <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
   1601 <p>In the latter case,<wbr/> the camera device may round the matrix to account
   1602 for precision issues; the final rounded matrix should be reported back
   1603 in this matrix result metadata.<wbr/> The transform should keep the magnitude
   1604 of the output color values within <code>[0,<wbr/> 1.<wbr/>0]</code> (assuming input color
   1605 values is within the normalized range <code>[0,<wbr/> 1.<wbr/>0]</code>),<wbr/> or clipping may occur.<wbr/></p>
   1606             </td>
   1607           </tr>
   1608 
   1609 
   1610           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   1611            <!-- end of entry -->
   1612         
   1613                 
   1614           <tr class="entry" id="dynamic_android.colorCorrection.gains">
   1615             <td class="entry_name
   1616              " rowspan="5">
   1617               android.<wbr/>color<wbr/>Correction.<wbr/>gains
   1618             </td>
   1619             <td class="entry_type">
   1620                 <span class="entry_type_name">float</span>
   1621                 <span class="entry_type_container">x</span>
   1622 
   1623                 <span class="entry_type_array">
   1624                   4
   1625                 </span>
   1626               <span class="entry_type_visibility"> [public as rggbChannelVector]</span>
   1627 
   1628 
   1629               <span class="entry_type_hwlevel">[full] </span>
   1630 
   1631 
   1632                 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
   1633 
   1634 
   1635             </td> <!-- entry_type -->
   1636 
   1637             <td class="entry_description">
   1638               <p>Gains applying to Bayer raw color channels for
   1639 white-balance.<wbr/></p>
   1640             </td>
   1641 
   1642             <td class="entry_units">
   1643               Unitless gain factors
   1644             </td>
   1645 
   1646             <td class="entry_range">
   1647             </td>
   1648 
   1649             <td class="entry_tags">
   1650             </td>
   1651 
   1652           </tr>
   1653           <tr class="entries_header">
   1654             <th class="th_details" colspan="5">Details</th>
   1655           </tr>
   1656           <tr class="entry_cont">
   1657             <td class="entry_details" colspan="5">
   1658               <p>These per-channel gains are either set by the camera device
   1659 when the request <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not
   1660 TRANSFORM_<wbr/>MATRIX,<wbr/> or directly by the application in the
   1661 request when the <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is
   1662 TRANSFORM_<wbr/>MATRIX.<wbr/></p>
   1663 <p>The gains in the result metadata are the gains actually
   1664 applied by the camera device to the current frame.<wbr/></p>
   1665             </td>
   1666           </tr>
   1667 
   1668           <tr class="entries_header">
   1669             <th class="th_details" colspan="5">HAL Implementation Details</th>
   1670           </tr>
   1671           <tr class="entry_cont">
   1672             <td class="entry_details" colspan="5">
   1673               <p>The 4-channel white-balance gains are defined in
   1674 the order of <code>[R G_<wbr/>even G_<wbr/>odd B]</code>,<wbr/> where <code>G_<wbr/>even</code> is the gain
   1675 for green pixels on even rows of the output,<wbr/> and <code>G_<wbr/>odd</code>
   1676 is the gain for green pixels on the odd rows.<wbr/></p>
   1677 <p>If a HAL does not support a separate gain for even/<wbr/>odd green
   1678 channels,<wbr/> it must use the <code>G_<wbr/>even</code> value,<wbr/> and write
   1679 <code>G_<wbr/>odd</code> equal to <code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
   1680             </td>
   1681           </tr>
   1682 
   1683           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   1684            <!-- end of entry -->
   1685         
   1686                 
   1687           <tr class="entry" id="dynamic_android.colorCorrection.aberrationMode">
   1688             <td class="entry_name
   1689              " rowspan="3">
   1690               android.<wbr/>color<wbr/>Correction.<wbr/>aberration<wbr/>Mode
   1691             </td>
   1692             <td class="entry_type">
   1693                 <span class="entry_type_name entry_type_name_enum">byte</span>
   1694 
   1695               <span class="entry_type_visibility"> [public]</span>
   1696 
   1697 
   1698               <span class="entry_type_hwlevel">[legacy] </span>
   1699 
   1700 
   1701 
   1702                 <ul class="entry_type_enum">
   1703                   <li>
   1704                     <span class="entry_type_enum_name">OFF</span>
   1705                     <span class="entry_type_enum_notes"><p>No aberration correction is applied.<wbr/></p></span>
   1706                   </li>
   1707                   <li>
   1708                     <span class="entry_type_enum_name">FAST</span>
   1709                     <span class="entry_type_enum_notes"><p>Aberration correction will not slow down capture rate
   1710 relative to sensor raw output.<wbr/></p></span>
   1711                   </li>
   1712                   <li>
   1713                     <span class="entry_type_enum_name">HIGH_QUALITY</span>
   1714                     <span class="entry_type_enum_notes"><p>Aberration correction operates at improved quality but reduced
   1715 capture rate (relative to sensor raw output).<wbr/></p></span>
   1716                   </li>
   1717                 </ul>
   1718 
   1719             </td> <!-- entry_type -->
   1720 
   1721             <td class="entry_description">
   1722               <p>Mode of operation for the chromatic aberration correction algorithm.<wbr/></p>
   1723             </td>
   1724 
   1725             <td class="entry_units">
   1726             </td>
   1727 
   1728             <td class="entry_range">
   1729               <p><a href="#static_android.colorCorrection.availableAberrationModes">android.<wbr/>color<wbr/>Correction.<wbr/>available<wbr/>Aberration<wbr/>Modes</a></p>
   1730             </td>
   1731 
   1732             <td class="entry_tags">
   1733             </td>
   1734 
   1735           </tr>
   1736           <tr class="entries_header">
   1737             <th class="th_details" colspan="5">Details</th>
   1738           </tr>
   1739           <tr class="entry_cont">
   1740             <td class="entry_details" colspan="5">
   1741               <p>Chromatic (color) aberration is caused by the fact that different wavelengths of light
   1742 can not focus on the same point after exiting from the lens.<wbr/> This metadata defines
   1743 the high level control of chromatic aberration correction algorithm,<wbr/> which aims to
   1744 minimize the chromatic artifacts that may occur along the object boundaries in an
   1745 image.<wbr/></p>
   1746 <p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean that camera device determined aberration
   1747 correction will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device will
   1748 use the highest-quality aberration correction algorithms,<wbr/> even if it slows down
   1749 capture rate.<wbr/> FAST means the camera device will not slow down capture rate when
   1750 applying aberration correction.<wbr/></p>
   1751 <p>LEGACY devices will always be in FAST mode.<wbr/></p>
   1752             </td>
   1753           </tr>
   1754 
   1755 
   1756           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   1757            <!-- end of entry -->
   1758         
   1759         
   1760 
   1761       <!-- end of kind -->
   1762       </tbody>
   1763       <tr><td colspan="6" class="kind">static</td></tr>
   1764 
   1765       <thead class="entries_header">
   1766         <tr>
   1767           <th class="th_name">Property Name</th>
   1768           <th class="th_type">Type</th>
   1769           <th class="th_description">Description</th>
   1770           <th class="th_units">Units</th>
   1771           <th class="th_range">Range</th>
   1772           <th class="th_tags">Tags</th>
   1773         </tr>
   1774       </thead>
   1775 
   1776       <tbody>
   1777 
   1778         
   1779 
   1780         
   1781 
   1782         
   1783 
   1784         
   1785 
   1786                 
   1787           <tr class="entry" id="static_android.colorCorrection.availableAberrationModes">
   1788             <td class="entry_name
   1789              " rowspan="3">
   1790               android.<wbr/>color<wbr/>Correction.<wbr/>available<wbr/>Aberration<wbr/>Modes
   1791             </td>
   1792             <td class="entry_type">
   1793                 <span class="entry_type_name">byte</span>
   1794                 <span class="entry_type_container">x</span>
   1795 
   1796                 <span class="entry_type_array">
   1797                   n
   1798                 </span>
   1799               <span class="entry_type_visibility"> [public as enumList]</span>
   1800 
   1801 
   1802               <span class="entry_type_hwlevel">[legacy] </span>
   1803 
   1804 
   1805                 <div class="entry_type_notes">list of enums</div>
   1806 
   1807 
   1808             </td> <!-- entry_type -->
   1809 
   1810             <td class="entry_description">
   1811               <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
   1812 supported by this camera device.<wbr/></p>
   1813             </td>
   1814 
   1815             <td class="entry_units">
   1816             </td>
   1817 
   1818             <td class="entry_range">
   1819               <p>Any value listed in <a href="#controls_android.colorCorrection.aberrationMode">android.<wbr/>color<wbr/>Correction.<wbr/>aberration<wbr/>Mode</a></p>
   1820             </td>
   1821 
   1822             <td class="entry_tags">
   1823               <ul class="entry_tags">
   1824                   <li><a href="#tag_V1">V1</a></li>
   1825               </ul>
   1826             </td>
   1827 
   1828           </tr>
   1829           <tr class="entries_header">
   1830             <th class="th_details" colspan="5">Details</th>
   1831           </tr>
   1832           <tr class="entry_cont">
   1833             <td class="entry_details" colspan="5">
   1834               <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
   1835 aberration correction modes are available for a device,<wbr/> this list will solely include
   1836 OFF mode.<wbr/> All camera devices will support either OFF or FAST mode.<wbr/></p>
   1837 <p>Camera devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability will always list
   1838 OFF mode.<wbr/> This includes all FULL level devices.<wbr/></p>
   1839 <p>LEGACY devices will always only support FAST mode.<wbr/></p>
   1840             </td>
   1841           </tr>
   1842 
   1843 
   1844           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   1845            <!-- end of entry -->
   1846         
   1847         
   1848 
   1849       <!-- end of kind -->
   1850       </tbody>
   1851 
   1852   <!-- end of section -->
   1853   <tr><td colspan="6" id="section_control" class="section">control</td></tr>
   1854 
   1855 
   1856       <tr><td colspan="6" class="kind">controls</td></tr>
   1857 
   1858       <thead class="entries_header">
   1859         <tr>
   1860           <th class="th_name">Property Name</th>
   1861           <th class="th_type">Type</th>
   1862           <th class="th_description">Description</th>
   1863           <th class="th_units">Units</th>
   1864           <th class="th_range">Range</th>
   1865           <th class="th_tags">Tags</th>
   1866         </tr>
   1867       </thead>
   1868 
   1869       <tbody>
   1870 
   1871         
   1872 
   1873         
   1874 
   1875         
   1876 
   1877         
   1878 
   1879                 
   1880           <tr class="entry" id="controls_android.control.aeAntibandingMode">
   1881             <td class="entry_name
   1882              " rowspan="5">
   1883               android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode
   1884             </td>
   1885             <td class="entry_type">
   1886                 <span class="entry_type_name entry_type_name_enum">byte</span>
   1887 
   1888               <span class="entry_type_visibility"> [public]</span>
   1889 
   1890 
   1891               <span class="entry_type_hwlevel">[legacy] </span>
   1892 
   1893 
   1894 
   1895                 <ul class="entry_type_enum">
   1896                   <li>
   1897                     <span class="entry_type_enum_name">OFF</span>
   1898                     <span class="entry_type_enum_notes"><p>The camera device will not adjust exposure duration to
   1899 avoid banding problems.<wbr/></p></span>
   1900                   </li>
   1901                   <li>
   1902                     <span class="entry_type_enum_name">50HZ</span>
   1903                     <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
   1904 avoid banding problems with 50Hz illumination sources.<wbr/></p></span>
   1905                   </li>
   1906                   <li>
   1907                     <span class="entry_type_enum_name">60HZ</span>
   1908                     <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
   1909 avoid banding problems with 60Hz illumination
   1910 sources.<wbr/></p></span>
   1911                   </li>
   1912                   <li>
   1913                     <span class="entry_type_enum_name">AUTO</span>
   1914                     <span class="entry_type_enum_notes"><p>The camera device will automatically adapt its
   1915 antibanding routine to the current illumination
   1916 condition.<wbr/> This is the default mode if AUTO is
   1917 available on given camera device.<wbr/></p></span>
   1918                   </li>
   1919                 </ul>
   1920 
   1921             </td> <!-- entry_type -->
   1922 
   1923             <td class="entry_description">
   1924               <p>The desired setting for the camera device's auto-exposure
   1925 algorithm's antibanding compensation.<wbr/></p>
   1926             </td>
   1927 
   1928             <td class="entry_units">
   1929             </td>
   1930 
   1931             <td class="entry_range">
   1932               <p><a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a></p>
   1933             </td>
   1934 
   1935             <td class="entry_tags">
   1936               <ul class="entry_tags">
   1937                   <li><a href="#tag_BC">BC</a></li>
   1938               </ul>
   1939             </td>
   1940 
   1941           </tr>
   1942           <tr class="entries_header">
   1943             <th class="th_details" colspan="5">Details</th>
   1944           </tr>
   1945           <tr class="entry_cont">
   1946             <td class="entry_details" colspan="5">
   1947               <p>Some kinds of lighting fixtures,<wbr/> such as some fluorescent
   1948 lights,<wbr/> flicker at the rate of the power supply frequency
   1949 (60Hz or 50Hz,<wbr/> depending on country).<wbr/> While this is
   1950 typically not noticeable to a person,<wbr/> it can be visible to
   1951 a camera device.<wbr/> If a camera sets its exposure time to the
   1952 wrong value,<wbr/> the flicker may become visible in the
   1953 viewfinder as flicker or in a final captured image,<wbr/> as a
   1954 set of variable-brightness bands across the image.<wbr/></p>
   1955 <p>Therefore,<wbr/> the auto-exposure routines of camera devices
   1956 include antibanding routines that ensure that the chosen
   1957 exposure value will not cause such banding.<wbr/> The choice of
   1958 exposure time depends on the rate of flicker,<wbr/> which the
   1959 camera device can detect automatically,<wbr/> or the expected
   1960 rate can be selected by the application using this
   1961 control.<wbr/></p>
   1962 <p>A given camera device may not support all of the possible
   1963 options for the antibanding mode.<wbr/> The
   1964 <a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a> key contains
   1965 the available modes for a given camera device.<wbr/></p>
   1966 <p>AUTO mode is the default if it is available on given
   1967 camera device.<wbr/> When AUTO mode is not available,<wbr/> the
   1968 default will be either 50HZ or 60HZ,<wbr/> and both 50HZ
   1969 and 60HZ will be available.<wbr/></p>
   1970 <p>If manual exposure control is enabled (by setting
   1971 <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/>
   1972 then this setting has no effect,<wbr/> and the application must
   1973 ensure it selects exposure times that do not cause banding
   1974 issues.<wbr/> The <a href="#dynamic_android.statistics.sceneFlicker">android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker</a> key can assist
   1975 the application in this.<wbr/></p>
   1976             </td>
   1977           </tr>
   1978 
   1979           <tr class="entries_header">
   1980             <th class="th_details" colspan="5">HAL Implementation Details</th>
   1981           </tr>
   1982           <tr class="entry_cont">
   1983             <td class="entry_details" colspan="5">
   1984               <p>For all capture request templates,<wbr/> this field must be set
   1985 to AUTO if AUTO mode is available.<wbr/> If AUTO is not available,<wbr/>
   1986 the default must be either 50HZ or 60HZ,<wbr/> and both 50HZ and
   1987 60HZ must be available.<wbr/></p>
   1988 <p>If manual exposure control is enabled (by setting
   1989 <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/>
   1990 then the exposure values provided by the application must not be
   1991 adjusted for antibanding.<wbr/></p>
   1992             </td>
   1993           </tr>
   1994 
   1995           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   1996            <!-- end of entry -->
   1997         
   1998                 
   1999           <tr class="entry" id="controls_android.control.aeExposureCompensation">
   2000             <td class="entry_name
   2001              " rowspan="3">
   2002               android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation
   2003             </td>
   2004             <td class="entry_type">
   2005                 <span class="entry_type_name">int32</span>
   2006 
   2007               <span class="entry_type_visibility"> [public]</span>
   2008 
   2009 
   2010               <span class="entry_type_hwlevel">[legacy] </span>
   2011 
   2012 
   2013 
   2014 
   2015             </td> <!-- entry_type -->
   2016 
   2017             <td class="entry_description">
   2018               <p>Adjustment to auto-exposure (AE) target image
   2019 brightness.<wbr/></p>
   2020             </td>
   2021 
   2022             <td class="entry_units">
   2023               Compensation steps
   2024             </td>
   2025 
   2026             <td class="entry_range">
   2027               <p><a href="#static_android.control.aeCompensationRange">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range</a></p>
   2028             </td>
   2029 
   2030             <td class="entry_tags">
   2031               <ul class="entry_tags">
   2032                   <li><a href="#tag_BC">BC</a></li>
   2033               </ul>
   2034             </td>
   2035 
   2036           </tr>
   2037           <tr class="entries_header">
   2038             <th class="th_details" colspan="5">Details</th>
   2039           </tr>
   2040           <tr class="entry_cont">
   2041             <td class="entry_details" colspan="5">
   2042               <p>The adjustment is measured as a count of steps,<wbr/> with the
   2043 step size defined by <a href="#static_android.control.aeCompensationStep">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step</a> and the
   2044 allowed range by <a href="#static_android.control.aeCompensationRange">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range</a>.<wbr/></p>
   2045 <p>For example,<wbr/> if the exposure value (EV) step is 0.<wbr/>333,<wbr/> '6'
   2046 will mean an exposure compensation of +2 EV; -3 will mean an
   2047 exposure compensation of -1 EV.<wbr/> One EV represents a doubling
   2048 of image brightness.<wbr/> Note that this control will only be
   2049 effective if <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> <code>!=</code> OFF.<wbr/> This control
   2050 will take effect even when <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> <code>== true</code>.<wbr/></p>
   2051 <p>In the event of exposure compensation value being changed,<wbr/> camera device
   2052 may take several frames to reach the newly requested exposure target.<wbr/>
   2053 During that time,<wbr/> <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> field will be in the SEARCHING
   2054 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
   2055 change from SEARCHING to either CONVERGED,<wbr/> LOCKED (if AE lock is enabled),<wbr/> or
   2056 FLASH_<wbr/>REQUIRED (if the scene is too dark for still capture).<wbr/></p>
   2057             </td>
   2058           </tr>
   2059 
   2060 
   2061           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   2062            <!-- end of entry -->
   2063         
   2064                 
   2065           <tr class="entry" id="controls_android.control.aeLock">
   2066             <td class="entry_name
   2067              " rowspan="3">
   2068               android.<wbr/>control.<wbr/>ae<wbr/>Lock
   2069             </td>
   2070             <td class="entry_type">
   2071                 <span class="entry_type_name entry_type_name_enum">byte</span>
   2072 
   2073               <span class="entry_type_visibility"> [public as boolean]</span>
   2074 
   2075 
   2076               <span class="entry_type_hwlevel">[legacy] </span>
   2077 
   2078 
   2079 
   2080                 <ul class="entry_type_enum">
   2081                   <li>
   2082                     <span class="entry_type_enum_name">OFF</span>
   2083                     <span class="entry_type_enum_notes"><p>Auto-exposure lock is disabled; the AE algorithm
   2084 is free to update its parameters.<wbr/></p></span>
   2085                   </li>
   2086                   <li>
   2087                     <span class="entry_type_enum_name">ON</span>
   2088                     <span class="entry_type_enum_notes"><p>Auto-exposure lock is enabled; the AE algorithm
   2089 must not update the exposure and sensitivity parameters
   2090 while the lock is active.<wbr/></p>
   2091 <p><a href="#controls_android.control.aeExposureCompensation">android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation</a> setting changes
   2092 will still take effect while auto-exposure is locked.<wbr/></p>
   2093 <p>Some rare LEGACY devices may not support
   2094 this,<wbr/> in which case the value will always be overridden to OFF.<wbr/></p></span>
   2095                   </li>
   2096                 </ul>
   2097 
   2098             </td> <!-- entry_type -->
   2099 
   2100             <td class="entry_description">
   2101               <p>Whether auto-exposure (AE) is currently locked to its latest
   2102 calculated values.<wbr/></p>
   2103             </td>
   2104 
   2105             <td class="entry_units">
   2106             </td>
   2107 
   2108             <td class="entry_range">
   2109             </td>
   2110 
   2111             <td class="entry_tags">
   2112               <ul class="entry_tags">
   2113                   <li><a href="#tag_BC">BC</a></li>
   2114               </ul>
   2115             </td>
   2116 
   2117           </tr>
   2118           <tr class="entries_header">
   2119             <th class="th_details" colspan="5">Details</th>
   2120           </tr>
   2121           <tr class="entry_cont">
   2122             <td class="entry_details" colspan="5">
   2123               <p>When set to <code>true</code> (ON),<wbr/> the AE algorithm is locked to its latest parameters,<wbr/>
   2124 and will not change exposure settings until the lock is set to <code>false</code> (OFF).<wbr/></p>
   2125 <p>Note that even when AE is locked,<wbr/> the flash may be fired if
   2126 the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is ON_<wbr/>AUTO_<wbr/>FLASH /<wbr/>
   2127 ON_<wbr/>ALWAYS_<wbr/>FLASH /<wbr/> ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE.<wbr/></p>
   2128 <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
   2129 is ON,<wbr/> the camera device will still adjust its exposure value.<wbr/></p>
   2130 <p>If AE precapture is triggered (see <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>)
   2131 when AE is already locked,<wbr/> the camera device will not change the exposure time
   2132 (<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>)
   2133 parameters.<wbr/> The flash may be fired if the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>
   2134 is ON_<wbr/>AUTO_<wbr/>FLASH/<wbr/>ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE and the scene is too dark.<wbr/> If the
   2135 <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/></p>
   2136 <p>Since the camera device has a pipeline of in-flight requests,<wbr/> the settings that
   2137 get locked do not necessarily correspond to the settings that were present in the
   2138 latest capture result received from the camera device,<wbr/> since additional captures
   2139 and AE updates may have occurred even before the result was sent out.<wbr/> If an
   2140 application is switching between automatic and manual control and wishes to eliminate
   2141 any flicker during the switch,<wbr/> the following procedure is recommended:</p>
   2142 <ol>
   2143 <li>Starting in auto-AE mode:</li>
   2144 <li>Lock AE</li>
   2145 <li>Wait for the first result to be output that has the AE locked</li>
   2146 <li>Copy exposure settings from that result into a request,<wbr/> set the request to manual AE</li>
   2147 <li>Submit the capture request,<wbr/> proceed to run manual AE as desired.<wbr/></li>
   2148 </ol>
   2149 <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>
   2150             </td>
   2151           </tr>
   2152 
   2153 
   2154           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   2155            <!-- end of entry -->
   2156         
   2157                 
   2158           <tr class="entry" id="controls_android.control.aeMode">
   2159             <td class="entry_name
   2160              " rowspan="3">
   2161               android.<wbr/>control.<wbr/>ae<wbr/>Mode
   2162             </td>
   2163             <td class="entry_type">
   2164                 <span class="entry_type_name entry_type_name_enum">byte</span>
   2165 
   2166               <span class="entry_type_visibility"> [public]</span>
   2167 
   2168 
   2169               <span class="entry_type_hwlevel">[legacy] </span>
   2170 
   2171 
   2172 
   2173                 <ul class="entry_type_enum">
   2174                   <li>
   2175                     <span class="entry_type_enum_name">OFF</span>
   2176                     <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled.<wbr/></p>
   2177 <p>The application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
   2178 <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
   2179 <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera
   2180 device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's
   2181 a flash unit for this camera device.<wbr/></p>
   2182 <p>Note that auto-white balance (AWB) and auto-focus (AF)
   2183 behavior is device dependent when AE is in OFF mode.<wbr/>
   2184 To have consistent behavior across different devices,<wbr/>
   2185 it is recommended to either set AWB and AF to OFF mode
   2186 or lock AWB and AF before setting AE to OFF.<wbr/>
   2187 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/>
   2188 <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>
   2189 for more details.<wbr/></p>
   2190 <p>LEGACY devices do not support the OFF mode and will
   2191 override attempts to use this value to ON.<wbr/></p></span>
   2192                   </li>
   2193                   <li>
   2194                     <span class="entry_type_enum_name">ON</span>
   2195                     <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
   2196 with no flash control.<wbr/></p>
   2197 <p>The application's values for
   2198 <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
   2199 <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
   2200 <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The
   2201 application has control over the various
   2202 android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
   2203                   </li>
   2204                   <li>
   2205                     <span class="entry_type_enum_name">ON_AUTO_FLASH</span>
   2206                     <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
   2207 the camera's flash unit,<wbr/> firing it in low-light
   2208 conditions.<wbr/></p>
   2209 <p>The flash may be fired during a precapture sequence
   2210 (triggered by <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and
   2211 may be fired for captures for which the
   2212 <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
   2213 STILL_<wbr/>CAPTURE</p></span>
   2214                   </li>
   2215                   <li>
   2216                     <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span>
   2217                     <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
   2218 the camera's flash unit,<wbr/> always firing it for still
   2219 captures.<wbr/></p>
   2220 <p>The flash may be fired during a precapture sequence
   2221 (triggered by <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and
   2222 will always be fired for captures for which the
   2223 <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
   2224 STILL_<wbr/>CAPTURE</p></span>
   2225                   </li>
   2226                   <li>
   2227                     <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span>
   2228                     <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
   2229 reduction.<wbr/></p>
   2230 <p>If deemed necessary by the camera device,<wbr/> a red eye
   2231 reduction flash will fire during the precapture
   2232 sequence.<wbr/></p></span>
   2233                   </li>
   2234                 </ul>
   2235 
   2236             </td> <!-- entry_type -->
   2237 
   2238             <td class="entry_description">
   2239               <p>The desired mode for the camera device's
   2240 auto-exposure routine.<wbr/></p>
   2241             </td>
   2242 
   2243             <td class="entry_units">
   2244             </td>
   2245 
   2246             <td class="entry_range">
   2247               <p><a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a></p>
   2248             </td>
   2249 
   2250             <td class="entry_tags">
   2251               <ul class="entry_tags">
   2252                   <li><a href="#tag_BC">BC</a></li>
   2253               </ul>
   2254             </td>
   2255 
   2256           </tr>
   2257           <tr class="entries_header">
   2258             <th class="th_details" colspan="5">Details</th>
   2259           </tr>
   2260           <tr class="entry_cont">
   2261             <td class="entry_details" colspan="5">
   2262               <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
   2263 AUTO.<wbr/></p>
   2264 <p>When set to any of the ON modes,<wbr/> the camera device's
   2265 auto-exposure routine is enabled,<wbr/> overriding the
   2266 application's selected exposure time,<wbr/> sensor sensitivity,<wbr/>
   2267 and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
   2268 <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
   2269 <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes
   2270 is selected,<wbr/> the camera device's flash unit controls are
   2271 also overridden.<wbr/></p>
   2272 <p>The FLASH modes are only available if the camera device
   2273 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>
   2274 <p>If flash TORCH mode is desired,<wbr/> this field must be set to
   2275 ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p>
   2276 <p>When set to any of the ON modes,<wbr/> the values chosen by the
   2277 camera device auto-exposure routine for the overridden
   2278 fields for a given capture will be available in its
   2279 CaptureResult.<wbr/></p>
   2280             </td>
   2281           </tr>
   2282 
   2283 
   2284           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   2285            <!-- end of entry -->
   2286         
   2287                 
   2288           <tr class="entry" id="controls_android.control.aeRegions">
   2289             <td class="entry_name
   2290              " rowspan="5">
   2291               android.<wbr/>control.<wbr/>ae<wbr/>Regions
   2292             </td>
   2293             <td class="entry_type">
   2294                 <span class="entry_type_name">int32</span>
   2295                 <span class="entry_type_container">x</span>
   2296 
   2297                 <span class="entry_type_array">
   2298                   5 x area_count
   2299                 </span>
   2300               <span class="entry_type_visibility"> [public as meteringRectangle]</span>
   2301 
   2302 
   2303 
   2304 
   2305 
   2306 
   2307             </td> <!-- entry_type -->
   2308 
   2309             <td class="entry_description">
   2310               <p>List of metering areas to use for auto-exposure adjustment.<wbr/></p>
   2311             </td>
   2312 
   2313             <td class="entry_units">
   2314               Pixel coordinates within android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
   2315             </td>
   2316 
   2317             <td class="entry_range">
   2318               <p>Coordinates must be between <code>[(0,<wbr/>0),<wbr/> (width,<wbr/> height))</code> of
   2319 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></p>
   2320             </td>
   2321 
   2322             <td class="entry_tags">
   2323               <ul class="entry_tags">
   2324                   <li><a href="#tag_BC">BC</a></li>
   2325               </ul>
   2326             </td>
   2327 
   2328           </tr>
   2329           <tr class="entries_header">
   2330             <th class="th_details" colspan="5">Details</th>
   2331           </tr>
   2332           <tr class="entry_cont">
   2333             <td class="entry_details" colspan="5">
   2334               <p>Not available if <a href="#static_android.control.maxRegionsAe">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Ae</a> is 0.<wbr/>
   2335 Otherwise will always be present.<wbr/></p>
   2336 <p>The maximum number of regions supported by the device is determined by the value
   2337 of <a href="#static_android.control.maxRegionsAe">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Ae</a>.<wbr/></p>
   2338 <p>The coordinate system is based on the active pixel array,<wbr/>
   2339 with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
   2340 (<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
   2341 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
   2342 bottom-right pixel in the active pixel array.<wbr/></p>
   2343 <p>The weight must be within <code>[0,<wbr/> 1000]</code>,<wbr/> and represents a weight
   2344 for every pixel in the area.<wbr/> This means that a large metering area
   2345 with the same weight as a smaller area will have more effect in
   2346 the metering result.<wbr/> Metering areas can partially overlap and the
   2347 camera device will add the weights in the overlap region.<wbr/></p>
   2348 <p>The weights are relative to weights of other exposure metering regions,<wbr/> so if only one
   2349 region is used,<wbr/> all non-zero weights will have the same effect.<wbr/> A region with 0
   2350 weight is ignored.<wbr/></p>
   2351 <p>If all regions have 0 weight,<wbr/> then no specific metering area needs to be used by the
   2352 camera device.<wbr/></p>
   2353 <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
   2354 capture result metadata,<wbr/> the camera device will ignore the sections outside the crop
   2355 region and output only the intersection rectangle as the metering region in the result
   2356 metadata.<wbr/>  If the region is entirely outside the crop region,<wbr/> it will be ignored and
   2357 not reported in the result metadata.<wbr/></p>
   2358             </td>
   2359           </tr>
   2360 
   2361           <tr class="entries_header">
   2362             <th class="th_details" colspan="5">HAL Implementation Details</th>
   2363           </tr>
   2364           <tr class="entry_cont">
   2365             <td class="entry_details" colspan="5">
   2366               <p>The HAL level representation of MeteringRectangle[] is a
   2367 int[5 * area_<wbr/>count].<wbr/>
   2368 Every five elements represent a metering region of
   2369 (xmin,<wbr/> ymin,<wbr/> xmax,<wbr/> ymax,<wbr/> weight).<wbr/>
   2370 The rectangle is defined to be inclusive on xmin and ymin,<wbr/> but
   2371 exclusive on xmax and ymax.<wbr/></p>
   2372             </td>
   2373           </tr>
   2374 
   2375           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   2376            <!-- end of entry -->
   2377         
   2378                 
   2379           <tr class="entry" id="controls_android.control.aeTargetFpsRange">
   2380             <td class="entry_name
   2381              " rowspan="3">
   2382               android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range
   2383             </td>
   2384             <td class="entry_type">
   2385                 <span class="entry_type_name">int32</span>
   2386                 <span class="entry_type_container">x</span>
   2387 
   2388                 <span class="entry_type_array">
   2389                   2
   2390                 </span>
   2391               <span class="entry_type_visibility"> [public as rangeInt]</span>
   2392 
   2393 
   2394               <span class="entry_type_hwlevel">[legacy] </span>
   2395 
   2396 
   2397 
   2398 
   2399             </td> <!-- entry_type -->
   2400 
   2401             <td class="entry_description">
   2402               <p>Range over which the auto-exposure routine can
   2403 adjust the capture frame rate to maintain good
   2404 exposure.<wbr/></p>
   2405             </td>
   2406 
   2407             <td class="entry_units">
   2408               Frames per second (FPS)
   2409             </td>
   2410 
   2411             <td class="entry_range">
   2412               <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>
   2413             </td>
   2414 
   2415             <td class="entry_tags">
   2416               <ul class="entry_tags">
   2417                   <li><a href="#tag_BC">BC</a></li>
   2418               </ul>
   2419             </td>
   2420 
   2421           </tr>
   2422           <tr class="entries_header">
   2423             <th class="th_details" colspan="5">Details</th>
   2424           </tr>
   2425           <tr class="entry_cont">
   2426             <td class="entry_details" colspan="5">
   2427               <p>Only constrains auto-exposure (AE) algorithm,<wbr/> not
   2428 manual control of <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a> and
   2429 <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>.<wbr/></p>
   2430             </td>
   2431           </tr>
   2432 
   2433 
   2434           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   2435            <!-- end of entry -->
   2436         
   2437                 
   2438           <tr class="entry" id="controls_android.control.aePrecaptureTrigger">
   2439             <td class="entry_name
   2440              " rowspan="3">
   2441               android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger
   2442             </td>
   2443             <td class="entry_type">
   2444                 <span class="entry_type_name entry_type_name_enum">byte</span>
   2445 
   2446               <span class="entry_type_visibility"> [public]</span>
   2447 
   2448 
   2449               <span class="entry_type_hwlevel">[limited] </span>
   2450 
   2451 
   2452 
   2453                 <ul class="entry_type_enum">
   2454                   <li>
   2455                     <span class="entry_type_enum_name">IDLE</span>
   2456                     <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
   2457                   </li>
   2458                   <li>
   2459                     <span class="entry_type_enum_name">START</span>
   2460                     <span class="entry_type_enum_notes"><p>The precapture metering sequence will be started
   2461 by the camera device.<wbr/></p>
   2462 <p>The exact effect of the precapture trigger depends on
   2463 the current AE mode and state.<wbr/></p></span>
   2464                   </li>
   2465                 </ul>
   2466 
   2467             </td> <!-- entry_type -->
   2468 
   2469             <td class="entry_description">
   2470               <p>Whether the camera device will trigger a precapture
   2471 metering sequence when it processes this request.<wbr/></p>
   2472             </td>
   2473 
   2474             <td class="entry_units">
   2475             </td>
   2476 
   2477             <td class="entry_range">
   2478             </td>
   2479 
   2480             <td class="entry_tags">
   2481               <ul class="entry_tags">
   2482                   <li><a href="#tag_BC">BC</a></li>
   2483               </ul>
   2484             </td>
   2485 
   2486           </tr>
   2487           <tr class="entries_header">
   2488             <th class="th_details" colspan="5">Details</th>
   2489           </tr>
   2490           <tr class="entry_cont">
   2491             <td class="entry_details" colspan="5">
   2492               <p>This entry is normally set to IDLE,<wbr/> or is not
   2493 included at all in the request settings.<wbr/> When included and
   2494 set to START,<wbr/> the camera device will trigger the auto-exposure (AE)
   2495 precapture metering sequence.<wbr/></p>
   2496 <p>The precapture sequence should be triggered before starting a
   2497 high-quality still capture for final metering decisions to
   2498 be made,<wbr/> and for firing pre-capture flash pulses to estimate
   2499 scene brightness and required final capture flash power,<wbr/> when
   2500 the flash is enabled.<wbr/></p>
   2501 <p>Normally,<wbr/> this entry should be set to START for only a
   2502 single request,<wbr/> and the application should wait until the
   2503 sequence completes before starting a new one.<wbr/></p>
   2504 <p>When a precapture metering sequence is finished,<wbr/> the camera device
   2505 may lock the auto-exposure routine internally to be able to accurately expose the
   2506 subsequent still capture image (<code><a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> == STILL_<wbr/>CAPTURE</code>).<wbr/>
   2507 For this case,<wbr/> the AE may not resume normal scan if no subsequent still capture is
   2508 submitted.<wbr/> To ensure that the AE routine restarts normal scan,<wbr/> the application should
   2509 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
   2510 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
   2511 still capture request after the precapture sequence completes.<wbr/></p>
   2512 <p>The exact effect of auto-exposure (AE) precapture trigger
   2513 depends on the current AE mode and state; see
   2514 <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> for AE precapture state transition
   2515 details.<wbr/></p>
   2516 <p>On LEGACY-level devices,<wbr/> the precapture trigger is not supported;
   2517 capturing a high-resolution JPEG image will automatically trigger a
   2518 precapture sequence before the high-resolution capture,<wbr/> including
   2519 potentially firing a pre-capture flash.<wbr/></p>
   2520             </td>
   2521           </tr>
   2522 
   2523 
   2524           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   2525            <!-- end of entry -->
   2526         
   2527                 
   2528           <tr class="entry" id="controls_android.control.afMode">
   2529             <td class="entry_name
   2530              " rowspan="5">
   2531               android.<wbr/>control.<wbr/>af<wbr/>Mode
   2532             </td>
   2533             <td class="entry_type">
   2534                 <span class="entry_type_name entry_type_name_enum">byte</span>
   2535 
   2536               <span class="entry_type_visibility"> [public]</span>
   2537 
   2538 
   2539               <span class="entry_type_hwlevel">[legacy] </span>
   2540 
   2541 
   2542 
   2543                 <ul class="entry_type_enum">
   2544                   <li>
   2545                     <span class="entry_type_enum_name">OFF</span>
   2546                     <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
   2547 <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
   2548 application.<wbr/></p></span>
   2549                   </li>
   2550                   <li>
   2551                     <span class="entry_type_enum_name">AUTO</span>
   2552                     <span class="entry_type_enum_notes"><p>Basic automatic focus mode.<wbr/></p>
   2553 <p>In this mode,<wbr/> the lens does not move unless
   2554 the autofocus trigger action is called.<wbr/> When that trigger
   2555 is activated,<wbr/> AF will transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
   2556 the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
   2557 <p>Always supported if lens is not fixed focus.<wbr/></p>
   2558 <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
   2559 is fixed-focus.<wbr/></p>
   2560 <p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
   2561 and sets the AF state to INACTIVE.<wbr/></p></span>
   2562                   </li>
   2563                   <li>
   2564                     <span class="entry_type_enum_name">MACRO</span>
   2565                     <span class="entry_type_enum_notes"><p>Close-up focusing mode.<wbr/></p>
   2566 <p>In this mode,<wbr/> the lens does not move unless the
   2567 autofocus trigger action is called.<wbr/> When that trigger is
   2568 activated,<wbr/> AF will transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
   2569 the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/> This
   2570 mode is optimized for focusing on objects very close to
   2571 the camera.<wbr/></p>
   2572 <p>When that trigger is activated,<wbr/> AF will transition to
   2573 ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or
   2574 NOT_<wbr/>FOCUSED).<wbr/> Triggering cancel AF resets the lens
   2575 position to default,<wbr/> and sets the AF state to
   2576 INACTIVE.<wbr/></p></span>
   2577                   </li>
   2578                   <li>
   2579                     <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
   2580                     <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
   2581 position continually to attempt to provide a
   2582 constantly-in-focus image stream.<wbr/></p>
   2583 <p>The focusing behavior should be suitable for good quality
   2584 video recording; typically this means slower focus
   2585 movement and no overshoots.<wbr/> When the AF trigger is not
   2586 involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/>
   2587 and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED
   2588 states as appropriate.<wbr/> When the AF trigger is activated,<wbr/>
   2589 the algorithm should immediately transition into
   2590 AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
   2591 lens position until a cancel AF trigger is received.<wbr/></p>
   2592 <p>Once cancel is received,<wbr/> the algorithm should transition
   2593 back to INACTIVE and resume passive scan.<wbr/> Note that this
   2594 behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an
   2595 ongoing PASSIVE_<wbr/>SCAN must immediately be
   2596 canceled.<wbr/></p></span>
   2597                   </li>
   2598                   <li>
   2599                     <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
   2600                     <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
   2601 position continually to attempt to provide a
   2602 constantly-in-focus image stream.<wbr/></p>
   2603 <p>The focusing behavior should be suitable for still image
   2604 capture; typically this means focusing as fast as
   2605 possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF
   2606 algorithm should start in INACTIVE state,<wbr/> and then
   2607 transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as
   2608 appropriate as it attempts to maintain focus.<wbr/> When the AF
   2609 trigger is activated,<wbr/> the algorithm should finish its
   2610 PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into
   2611 AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
   2612 lens position until a cancel AF trigger is received.<wbr/></p>
   2613 <p>When the AF cancel trigger is activated,<wbr/> the algorithm
   2614 should transition back to INACTIVE and then act as if it
   2615 has just been started.<wbr/></p></span>
   2616                   </li>
   2617                   <li>
   2618                     <span class="entry_type_enum_name">EDOF</span>
   2619                     <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus) mode.<wbr/></p>
   2620 <p>The camera device will produce images with an extended
   2621 depth of field automatically; no special focusing
   2622 operations need to be done before taking a picture.<wbr/></p>
   2623 <p>AF triggers are ignored,<wbr/> and the AF state will always be
   2624 INACTIVE.<wbr/></p></span>
   2625                   </li>
   2626                 </ul>
   2627 
   2628             </td> <!-- entry_type -->
   2629 
   2630             <td class="entry_description">
   2631               <p>Whether auto-focus (AF) is currently enabled,<wbr/> and what
   2632 mode it is set to.<wbr/></p>
   2633             </td>
   2634 
   2635             <td class="entry_units">
   2636             </td>
   2637 
   2638             <td class="entry_range">
   2639               <p><a href="#static_android.control.afAvailableModes">android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes</a></p>
   2640             </td>
   2641 
   2642             <td class="entry_tags">
   2643               <ul class="entry_tags">
   2644                   <li><a href="#tag_BC">BC</a></li>
   2645               </ul>
   2646             </td>
   2647 
   2648           </tr>
   2649           <tr class="entries_header">
   2650             <th class="th_details" colspan="5">Details</th>
   2651           </tr>
   2652           <tr class="entry_cont">
   2653             <td class="entry_details" colspan="5">
   2654               <p>Only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> = AUTO and the lens is not fixed focus
   2655 (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
   2656 when <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/> the behavior of AF is device
   2657 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
   2658 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>
   2659 <p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
   2660 the camera device will report the current AF status in <a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a>
   2661 in result metadata.<wbr/></p>
   2662             </td>
   2663           </tr>
   2664 
   2665           <tr class="entries_header">
   2666             <th class="th_details" colspan="5">HAL Implementation Details</th>
   2667           </tr>
   2668           <tr class="entry_cont">
   2669             <td class="entry_details" colspan="5">
   2670               <p>When afMode is AUTO or MACRO,<wbr/> the lens must not move until an AF trigger is sent in a
   2671 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
   2672 up with either FOCUSED_<wbr/>LOCKED or NOT_<wbr/>FOCUSED_<wbr/>LOCKED state (see
   2673 <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
   2674 locked and will not move.<wbr/> If camera movement (e.<wbr/>g.<wbr/> tilting camera) causes the lens to move
   2675 after the lens is locked,<wbr/> the HAL must compensate this movement appropriately such that
   2676 the same focal plane remains in focus.<wbr/></p>
   2677 <p>When afMode is one of the continuous auto focus modes,<wbr/> the HAL is free to start a AF
   2678 scan whenever it's not locked.<wbr/> When the lens is locked after an AF trigger
   2679 (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
   2680 same lock behavior as above.<wbr/></p>
   2681 <p>When afMode is OFF,<wbr/> the application controls focus manually.<wbr/> The accuracy of the
   2682 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/>
   2683 However,<wbr/> the lens must not move regardless of the camera movement for any focus distance
   2684 manual control.<wbr/></p>
   2685 <p>To put this in concrete terms,<wbr/> if the camera has lens elements which may move based on
   2686 camera orientation or motion (e.<wbr/>g.<wbr/> due to gravity),<wbr/> then the HAL must drive the lens to
   2687 remain in a fixed position invariant to the camera's orientation or motion,<wbr/> for example,<wbr/>
   2688 by using accelerometer measurements in the lens control logic.<wbr/> This is a typical issue
   2689 that will arise on camera modules with open-loop VCMs.<wbr/></p>
   2690             </td>
   2691           </tr>
   2692 
   2693           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   2694            <!-- end of entry -->
   2695         
   2696                 
   2697           <tr class="entry" id="controls_android.control.afRegions">
   2698             <td class="entry_name
   2699              " rowspan="5">
   2700               android.<wbr/>control.<wbr/>af<wbr/>Regions
   2701             </td>
   2702             <td class="entry_type">
   2703                 <span class="entry_type_name">int32</span>
   2704                 <span class="entry_type_container">x</span>
   2705 
   2706                 <span class="entry_type_array">
   2707                   5 x area_count
   2708                 </span>
   2709               <span class="entry_type_visibility"> [public as meteringRectangle]</span>
   2710 
   2711 
   2712 
   2713 
   2714 
   2715 
   2716             </td> <!-- entry_type -->
   2717 
   2718             <td class="entry_description">
   2719               <p>List of metering areas to use for auto-focus.<wbr/></p>
   2720             </td>
   2721 
   2722             <td class="entry_units">
   2723               Pixel coordinates within android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
   2724             </td>
   2725 
   2726             <td class="entry_range">
   2727               <p>Coordinates must be between <code>[(0,<wbr/>0),<wbr/> (width,<wbr/> height))</code> of
   2728 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></p>
   2729             </td>
   2730 
   2731             <td class="entry_tags">
   2732               <ul class="entry_tags">
   2733                   <li><a href="#tag_BC">BC</a></li>
   2734               </ul>
   2735             </td>
   2736 
   2737           </tr>
   2738           <tr class="entries_header">
   2739             <th class="th_details" colspan="5">Details</th>
   2740           </tr>
   2741           <tr class="entry_cont">
   2742             <td class="entry_details" colspan="5">
   2743               <p>Not available if <a href="#static_android.control.maxRegionsAf">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Af</a> is 0.<wbr/>
   2744 Otherwise will always be present.<wbr/></p>
   2745 <p>The maximum number of focus areas supported by the device is determined by the value
   2746 of <a href="#static_android.control.maxRegionsAf">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Af</a>.<wbr/></p>
   2747 <p>The coordinate system is based on the active pixel array,<wbr/>
   2748 with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
   2749 (<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
   2750 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
   2751 bottom-right pixel in the active pixel array.<wbr/></p>
   2752 <p>The weight must be within <code>[0,<wbr/> 1000]</code>,<wbr/> and represents a weight
   2753 for every pixel in the area.<wbr/> This means that a large metering area
   2754 with the same weight as a smaller area will have more effect in
   2755 the metering result.<wbr/> Metering areas can partially overlap and the
   2756 camera device will add the weights in the overlap region.<wbr/></p>
   2757 <p>The weights are relative to weights of other metering regions,<wbr/> so if only one region
   2758 is used,<wbr/> all non-zero weights will have the same effect.<wbr/> A region with 0 weight is
   2759 ignored.<wbr/></p>
   2760 <p>If all regions have 0 weight,<wbr/> then no specific metering area needs to be used by the
   2761 camera device.<wbr/></p>
   2762 <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
   2763 capture result metadata,<wbr/> the camera device will ignore the sections outside the crop
   2764 region and output only the intersection rectangle as the metering region in the result
   2765 metadata.<wbr/> If the region is entirely outside the crop region,<wbr/> it will be ignored and
   2766 not reported in the result metadata.<wbr/></p>
   2767             </td>
   2768           </tr>
   2769 
   2770           <tr class="entries_header">
   2771             <th class="th_details" colspan="5">HAL Implementation Details</th>
   2772           </tr>
   2773           <tr class="entry_cont">
   2774             <td class="entry_details" colspan="5">
   2775               <p>The HAL level representation of MeteringRectangle[] is a
   2776 int[5 * area_<wbr/>count].<wbr/>
   2777 Every five elements represent a metering region of
   2778 (xmin,<wbr/> ymin,<wbr/> xmax,<wbr/> ymax,<wbr/> weight).<wbr/>
   2779 The rectangle is defined to be inclusive on xmin and ymin,<wbr/> but
   2780 exclusive on xmax and ymax.<wbr/></p>
   2781             </td>
   2782           </tr>
   2783 
   2784           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   2785            <!-- end of entry -->
   2786         
   2787                 
   2788           <tr class="entry" id="controls_android.control.afTrigger">
   2789             <td class="entry_name
   2790              " rowspan="3">
   2791               android.<wbr/>control.<wbr/>af<wbr/>Trigger
   2792             </td>
   2793             <td class="entry_type">
   2794                 <span class="entry_type_name entry_type_name_enum">byte</span>
   2795 
   2796               <span class="entry_type_visibility"> [public]</span>
   2797 
   2798 
   2799               <span class="entry_type_hwlevel">[legacy] </span>
   2800 
   2801 
   2802 
   2803                 <ul class="entry_type_enum">
   2804                   <li>
   2805                     <span class="entry_type_enum_name">IDLE</span>
   2806                     <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
   2807                   </li>
   2808                   <li>
   2809                     <span class="entry_type_enum_name">START</span>
   2810                     <span class="entry_type_enum_notes"><p>Autofocus will trigger now.<wbr/></p></span>
   2811                   </li>
   2812                   <li>
   2813                     <span class="entry_type_enum_name">CANCEL</span>
   2814                     <span class="entry_type_enum_notes"><p>Autofocus will return to its initial
   2815 state,<wbr/> and cancel any currently active trigger.<wbr/></p></span>
   2816                   </li>
   2817                 </ul>
   2818 
   2819             </td> <!-- entry_type -->
   2820 
   2821             <td class="entry_description">
   2822               <p>Whether the camera device will trigger autofocus for this request.<wbr/></p>
   2823             </td>
   2824 
   2825             <td class="entry_units">
   2826             </td>
   2827 
   2828             <td class="entry_range">
   2829             </td>
   2830 
   2831             <td class="entry_tags">
   2832               <ul class="entry_tags">
   2833                   <li><a href="#tag_BC">BC</a></li>
   2834               </ul>
   2835             </td>
   2836 
   2837           </tr>
   2838           <tr class="entries_header">
   2839             <th class="th_details" colspan="5">Details</th>
   2840           </tr>
   2841           <tr class="entry_cont">
   2842             <td class="entry_details" colspan="5">
   2843               <p>This entry is normally set to IDLE,<wbr/> or is not
   2844 included at all in the request settings.<wbr/></p>
   2845 <p>When included and set to START,<wbr/> the camera device will trigger the
   2846 autofocus algorithm.<wbr/> If autofocus is disabled,<wbr/> this trigger has no effect.<wbr/></p>
   2847 <p>When set to CANCEL,<wbr/> the camera device will cancel any active trigger,<wbr/>
   2848 and return to its initial AF state.<wbr/></p>
   2849 <p>Generally,<wbr/> applications should set this entry to START or CANCEL for only a
   2850 single capture,<wbr/> and then return it to IDLE (or not set at all).<wbr/> Specifying
   2851 START for multiple captures in a row means restarting the AF operation over
   2852 and over again.<wbr/></p>
   2853 <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>
   2854             </td>
   2855           </tr>
   2856 
   2857 
   2858           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   2859            <!-- end of entry -->
   2860         
   2861                 
   2862           <tr class="entry" id="controls_android.control.awbLock">
   2863             <td class="entry_name
   2864              " rowspan="3">
   2865               android.<wbr/>control.<wbr/>awb<wbr/>Lock
   2866             </td>
   2867             <td class="entry_type">
   2868                 <span class="entry_type_name entry_type_name_enum">byte</span>
   2869 
   2870               <span class="entry_type_visibility"> [public as boolean]</span>
   2871 
   2872 
   2873               <span class="entry_type_hwlevel">[legacy] </span>
   2874 
   2875 
   2876 
   2877                 <ul class="entry_type_enum">
   2878                   <li>
   2879                     <span class="entry_type_enum_name">OFF</span>
   2880                     <span class="entry_type_enum_notes"><p>Auto-white balance lock is disabled; the AWB
   2881 algorithm is free to update its parameters if in AUTO
   2882 mode.<wbr/></p></span>
   2883                   </li>
   2884                   <li>
   2885                     <span class="entry_type_enum_name">ON</span>
   2886                     <span class="entry_type_enum_notes"><p>Auto-white balance lock is enabled; the AWB
   2887 algorithm will not update its parameters while the lock
   2888 is active.<wbr/></p></span>
   2889                   </li>
   2890                 </ul>
   2891 
   2892             </td> <!-- entry_type -->
   2893 
   2894             <td class="entry_description">
   2895               <p>Whether auto-white balance (AWB) is currently locked to its
   2896 latest calculated values.<wbr/></p>
   2897             </td>
   2898 
   2899             <td class="entry_units">
   2900             </td>
   2901 
   2902             <td class="entry_range">
   2903             </td>
   2904 
   2905             <td class="entry_tags">
   2906               <ul class="entry_tags">
   2907                   <li><a href="#tag_BC">BC</a></li>
   2908               </ul>
   2909             </td>
   2910 
   2911           </tr>
   2912           <tr class="entries_header">
   2913             <th class="th_details" colspan="5">Details</th>
   2914           </tr>
   2915           <tr class="entry_cont">
   2916             <td class="entry_details" colspan="5">
   2917               <p>When set to <code>true</code> (ON),<wbr/> the AWB algorithm is locked to its latest parameters,<wbr/>
   2918 and will not change color balance settings until the lock is set to <code>false</code> (OFF).<wbr/></p>
   2919 <p>Since the camera device has a pipeline of in-flight requests,<wbr/> the settings that
   2920 get locked do not necessarily correspond to the settings that were present in the
   2921 latest capture result received from the camera device,<wbr/> since additional captures
   2922 and AWB updates may have occurred even before the result was sent out.<wbr/> If an
   2923 application is switching between automatic and manual control and wishes to eliminate
   2924 any flicker during the switch,<wbr/> the following procedure is recommended:</p>
   2925 <ol>
   2926 <li>Starting in auto-AWB mode:</li>
   2927 <li>Lock AWB</li>
   2928 <li>Wait for the first result to be output that has the AWB locked</li>
   2929 <li>Copy AWB settings from that result into a request,<wbr/> set the request to manual AWB</li>
   2930 <li>Submit the capture request,<wbr/> proceed to run manual AWB as desired.<wbr/></li>
   2931 </ol>
   2932 <p>Note that AWB lock is only meaningful when
   2933 <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> is in the AUTO mode; in other modes,<wbr/>
   2934 AWB is already fixed to a specific setting.<wbr/></p>
   2935 <p>Some LEGACY devices may not support ON; the value is then overridden to OFF.<wbr/></p>
   2936             </td>
   2937           </tr>
   2938 
   2939 
   2940           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   2941            <!-- end of entry -->
   2942         
   2943                 
   2944           <tr class="entry" id="controls_android.control.awbMode">
   2945             <td class="entry_name
   2946              " rowspan="3">
   2947               android.<wbr/>control.<wbr/>awb<wbr/>Mode
   2948             </td>
   2949             <td class="entry_type">
   2950                 <span class="entry_type_name entry_type_name_enum">byte</span>
   2951 
   2952               <span class="entry_type_visibility"> [public]</span>
   2953 
   2954 
   2955               <span class="entry_type_hwlevel">[legacy] </span>
   2956 
   2957 
   2958 
   2959                 <ul class="entry_type_enum">
   2960                   <li>
   2961                     <span class="entry_type_enum_name">OFF</span>
   2962                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled.<wbr/></p>
   2963 <p>The application-selected color transform matrix
   2964 (<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
   2965 (<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
   2966 device for manual white balance control.<wbr/></p></span>
   2967                   </li>
   2968                   <li>
   2969                     <span class="entry_type_enum_name">AUTO</span>
   2970                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is active.<wbr/></p>
   2971 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
   2972 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
   2973 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
   2974 values used by the camera device for the transform and gains
   2975 will be available in the capture result for this request.<wbr/></p></span>
   2976                   </li>
   2977                   <li>
   2978                     <span class="entry_type_enum_name">INCANDESCENT</span>
   2979                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
   2980 the camera device uses incandescent light as the assumed scene
   2981 illumination for white balance.<wbr/></p>
   2982 <p>While the exact white balance transforms are up to the
   2983 camera device,<wbr/> they will approximately match the CIE
   2984 standard illuminant A.<wbr/></p>
   2985 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
   2986 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
   2987 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
   2988 values used by the camera device for the transform and gains
   2989 will be available in the capture result for this request.<wbr/></p></span>
   2990                   </li>
   2991                   <li>
   2992                     <span class="entry_type_enum_name">FLUORESCENT</span>
   2993                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
   2994 the camera device uses fluorescent light as the assumed scene
   2995 illumination for white balance.<wbr/></p>
   2996 <p>While the exact white balance transforms are up to the
   2997 camera device,<wbr/> they will approximately match the CIE
   2998 standard illuminant F2.<wbr/></p>
   2999 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
   3000 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
   3001 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
   3002 values used by the camera device for the transform and gains
   3003 will be available in the capture result for this request.<wbr/></p></span>
   3004                   </li>
   3005                   <li>
   3006                     <span class="entry_type_enum_name">WARM_FLUORESCENT</span>
   3007                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
   3008 the camera device uses warm fluorescent light as the assumed scene
   3009 illumination for white balance.<wbr/></p>
   3010 <p>While the exact white balance transforms are up to the
   3011 camera device,<wbr/> they will approximately match the CIE
   3012 standard illuminant F4.<wbr/></p>
   3013 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
   3014 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
   3015 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
   3016 values used by the camera device for the transform and gains
   3017 will be available in the capture result for this request.<wbr/></p></span>
   3018                   </li>
   3019                   <li>
   3020                     <span class="entry_type_enum_name">DAYLIGHT</span>
   3021                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
   3022 the camera device uses daylight light as the assumed scene
   3023 illumination for white balance.<wbr/></p>
   3024 <p>While the exact white balance transforms are up to the
   3025 camera device,<wbr/> they will approximately match the CIE
   3026 standard illuminant D65.<wbr/></p>
   3027 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
   3028 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
   3029 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
   3030 values used by the camera device for the transform and gains
   3031 will be available in the capture result for this request.<wbr/></p></span>
   3032                   </li>
   3033                   <li>
   3034                     <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span>
   3035                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
   3036 the camera device uses cloudy daylight light as the assumed scene
   3037 illumination for white balance.<wbr/></p>
   3038 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
   3039 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
   3040 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
   3041 values used by the camera device for the transform and gains
   3042 will be available in the capture result for this request.<wbr/></p></span>
   3043                   </li>
   3044                   <li>
   3045                     <span class="entry_type_enum_name">TWILIGHT</span>
   3046                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
   3047 the camera device uses twilight light as the assumed scene
   3048 illumination for white balance.<wbr/></p>
   3049 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
   3050 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
   3051 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
   3052 values used by the camera device for the transform and gains
   3053 will be available in the capture result for this request.<wbr/></p></span>
   3054                   </li>
   3055                   <li>
   3056                     <span class="entry_type_enum_name">SHADE</span>
   3057                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
   3058 the camera device uses shade light as the assumed scene
   3059 illumination for white balance.<wbr/></p>
   3060 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
   3061 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
   3062 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
   3063 values used by the camera device for the transform and gains
   3064 will be available in the capture result for this request.<wbr/></p></span>
   3065                   </li>
   3066                 </ul>
   3067 
   3068             </td> <!-- entry_type -->
   3069 
   3070             <td class="entry_description">
   3071               <p>Whether auto-white balance (AWB) is currently setting the color
   3072 transform fields,<wbr/> and what its illumination target
   3073 is.<wbr/></p>
   3074             </td>
   3075 
   3076             <td class="entry_units">
   3077             </td>
   3078 
   3079             <td class="entry_range">
   3080               <p><a href="#static_android.control.awbAvailableModes">android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes</a></p>
   3081             </td>
   3082 
   3083             <td class="entry_tags">
   3084               <ul class="entry_tags">
   3085                   <li><a href="#tag_BC">BC</a></li>
   3086               </ul>
   3087             </td>
   3088 
   3089           </tr>
   3090           <tr class="entries_header">
   3091             <th class="th_details" colspan="5">Details</th>
   3092           </tr>
   3093           <tr class="entry_cont">
   3094             <td class="entry_details" colspan="5">
   3095               <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
   3096 <p>When set to the ON mode,<wbr/> the camera device's auto-white balance
   3097 routine is enabled,<wbr/> overriding the application's selected
   3098 <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
   3099 <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>
   3100 is OFF,<wbr/> the behavior of AWB is device dependent.<wbr/> It is recommened to
   3101 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
   3102 setting AE mode to OFF.<wbr/></p>
   3103 <p>When set to the OFF mode,<wbr/> the camera device's auto-white balance
   3104 routine is disabled.<wbr/> The application manually controls the white
   3105 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>
   3106 and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
   3107 <p>When set to any other modes,<wbr/> the camera device's auto-white
   3108 balance routine is disabled.<wbr/> The camera device uses each
   3109 particular illumination target for white balance
   3110 adjustment.<wbr/> The application's values for
   3111 <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/>
   3112 <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
   3113 <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> are ignored.<wbr/></p>
   3114             </td>
   3115           </tr>
   3116 
   3117 
   3118           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   3119            <!-- end of entry -->
   3120         
   3121                 
   3122           <tr class="entry" id="controls_android.control.awbRegions">
   3123             <td class="entry_name
   3124              " rowspan="5">
   3125               android.<wbr/>control.<wbr/>awb<wbr/>Regions
   3126             </td>
   3127             <td class="entry_type">
   3128                 <span class="entry_type_name">int32</span>
   3129                 <span class="entry_type_container">x</span>
   3130 
   3131                 <span class="entry_type_array">
   3132                   5 x area_count
   3133                 </span>
   3134               <span class="entry_type_visibility"> [public as meteringRectangle]</span>
   3135 
   3136 
   3137 
   3138 
   3139 
   3140 
   3141             </td> <!-- entry_type -->
   3142 
   3143             <td class="entry_description">
   3144               <p>List of metering areas to use for auto-white-balance illuminant
   3145 estimation.<wbr/></p>
   3146             </td>
   3147 
   3148             <td class="entry_units">
   3149               Pixel coordinates within android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
   3150             </td>
   3151 
   3152             <td class="entry_range">
   3153               <p>Coordinates must be between <code>[(0,<wbr/>0),<wbr/> (width,<wbr/> height))</code> of
   3154 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></p>
   3155             </td>
   3156 
   3157             <td class="entry_tags">
   3158               <ul class="entry_tags">
   3159                   <li><a href="#tag_BC">BC</a></li>
   3160               </ul>
   3161             </td>
   3162 
   3163           </tr>
   3164           <tr class="entries_header">
   3165             <th class="th_details" colspan="5">Details</th>
   3166           </tr>
   3167           <tr class="entry_cont">
   3168             <td class="entry_details" colspan="5">
   3169               <p>Not available if <a href="#static_android.control.maxRegionsAwb">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Awb</a> is 0.<wbr/>
   3170 Otherwise will always be present.<wbr/></p>
   3171 <p>The maximum number of regions supported by the device is determined by the value
   3172 of <a href="#static_android.control.maxRegionsAwb">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Awb</a>.<wbr/></p>
   3173 <p>The coordinate system is based on the active pixel array,<wbr/>
   3174 with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
   3175 (<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
   3176 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
   3177 bottom-right pixel in the active pixel array.<wbr/></p>
   3178 <p>The weight must range from 0 to 1000,<wbr/> and represents a weight
   3179 for every pixel in the area.<wbr/> This means that a large metering area
   3180 with the same weight as a smaller area will have more effect in
   3181 the metering result.<wbr/> Metering areas can partially overlap and the
   3182 camera device will add the weights in the overlap region.<wbr/></p>
   3183 <p>The weights are relative to weights of other white balance metering regions,<wbr/> so if
   3184 only one region is used,<wbr/> all non-zero weights will have the same effect.<wbr/> A region with
   3185 0 weight is ignored.<wbr/></p>
   3186 <p>If all regions have 0 weight,<wbr/> then no specific metering area needs to be used by the
   3187 camera device.<wbr/></p>
   3188 <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
   3189 capture result metadata,<wbr/> the camera device will ignore the sections outside the crop
   3190 region and output only the intersection rectangle as the metering region in the result
   3191 metadata.<wbr/>  If the region is entirely outside the crop region,<wbr/> it will be ignored and
   3192 not reported in the result metadata.<wbr/></p>
   3193             </td>
   3194           </tr>
   3195 
   3196           <tr class="entries_header">
   3197             <th class="th_details" colspan="5">HAL Implementation Details</th>
   3198           </tr>
   3199           <tr class="entry_cont">
   3200             <td class="entry_details" colspan="5">
   3201               <p>The HAL level representation of MeteringRectangle[] is a
   3202 int[5 * area_<wbr/>count].<wbr/>
   3203 Every five elements represent a metering region of
   3204 (xmin,<wbr/> ymin,<wbr/> xmax,<wbr/> ymax,<wbr/> weight).<wbr/>
   3205 The rectangle is defined to be inclusive on xmin and ymin,<wbr/> but
   3206 exclusive on xmax and ymax.<wbr/></p>
   3207             </td>
   3208           </tr>
   3209 
   3210           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   3211            <!-- end of entry -->
   3212         
   3213                 
   3214           <tr class="entry" id="controls_android.control.captureIntent">
   3215             <td class="entry_name
   3216              " rowspan="3">
   3217               android.<wbr/>control.<wbr/>capture<wbr/>Intent
   3218             </td>
   3219             <td class="entry_type">
   3220                 <span class="entry_type_name entry_type_name_enum">byte</span>
   3221 
   3222               <span class="entry_type_visibility"> [public]</span>
   3223 
   3224 
   3225               <span class="entry_type_hwlevel">[legacy] </span>
   3226 
   3227 
   3228 
   3229                 <ul class="entry_type_enum">
   3230                   <li>
   3231                     <span class="entry_type_enum_name">CUSTOM</span>
   3232                     <span class="entry_type_enum_notes"><p>The goal of this request doesn't fall into the other
   3233 categories.<wbr/> The camera device will default to preview-like
   3234 behavior.<wbr/></p></span>
   3235                   </li>
   3236                   <li>
   3237                     <span class="entry_type_enum_name">PREVIEW</span>
   3238                     <span class="entry_type_enum_notes"><p>This request is for a preview-like use case.<wbr/></p>
   3239 <p>The precapture trigger may be used to start off a metering
   3240 w/<wbr/>flash sequence.<wbr/></p></span>
   3241                   </li>
   3242                   <li>
   3243                     <span class="entry_type_enum_name">STILL_CAPTURE</span>
   3244                     <span class="entry_type_enum_notes"><p>This request is for a still capture-type
   3245 use case.<wbr/></p>
   3246 <p>If the flash unit is under automatic control,<wbr/> it may fire as needed.<wbr/></p></span>
   3247                   </li>
   3248                   <li>
   3249                     <span class="entry_type_enum_name">VIDEO_RECORD</span>
   3250                     <span class="entry_type_enum_notes"><p>This request is for a video recording
   3251 use case.<wbr/></p></span>
   3252                   </li>
   3253                   <li>
   3254                     <span class="entry_type_enum_name">VIDEO_SNAPSHOT</span>
   3255                     <span class="entry_type_enum_notes"><p>This request is for a video snapshot (still
   3256 image while recording video) use case.<wbr/></p>
   3257 <p>The camera device should take the highest-quality image
   3258 possible (given the other settings) without disrupting the
   3259 frame rate of video recording.<wbr/>  </p></span>
   3260                   </li>
   3261                   <li>
   3262                     <span class="entry_type_enum_name">ZERO_SHUTTER_LAG</span>
   3263                     <span class="entry_type_enum_notes"><p>This request is for a ZSL usecase; the
   3264 application will stream full-resolution images and
   3265 reprocess one or several later for a final
   3266 capture.<wbr/></p></span>
   3267                   </li>
   3268                   <li>
   3269                     <span class="entry_type_enum_name">MANUAL</span>
   3270                     <span class="entry_type_enum_notes"><p>This request is for manual capture use case where
   3271 the applications want to directly control the capture parameters.<wbr/></p>
   3272 <p>For example,<wbr/> the application may wish to manually control
   3273 <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>
   3274                   </li>
   3275                 </ul>
   3276 
   3277             </td> <!-- entry_type -->
   3278 
   3279             <td class="entry_description">
   3280               <p>Information to the camera device 3A (auto-exposure,<wbr/>
   3281 auto-focus,<wbr/> auto-white balance) routines about the purpose
   3282 of this capture,<wbr/> to help the camera device to decide optimal 3A
   3283 strategy.<wbr/></p>
   3284             </td>
   3285 
   3286             <td class="entry_units">
   3287             </td>
   3288 
   3289             <td class="entry_range">
   3290             </td>
   3291 
   3292             <td class="entry_tags">
   3293               <ul class="entry_tags">
   3294                   <li><a href="#tag_BC">BC</a></li>
   3295               </ul>
   3296             </td>
   3297 
   3298           </tr>
   3299           <tr class="entries_header">
   3300             <th class="th_details" colspan="5">Details</th>
   3301           </tr>
   3302           <tr class="entry_cont">
   3303             <td class="entry_details" colspan="5">
   3304               <p>This control (except for MANUAL) is only effective if
   3305 <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF</code> and any 3A routine is active.<wbr/></p>
   3306 <p>ZERO_<wbr/>SHUTTER_<wbr/>LAG will be supported if <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>
   3307 contains ZSL.<wbr/> MANUAL will be supported if <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>
   3308 contains MANUAL_<wbr/>SENSOR.<wbr/> Other intent values are always supported.<wbr/></p>
   3309             </td>
   3310           </tr>
   3311 
   3312 
   3313           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   3314            <!-- end of entry -->
   3315         
   3316                 
   3317           <tr class="entry" id="controls_android.control.effectMode">
   3318             <td class="entry_name
   3319              " rowspan="3">
   3320               android.<wbr/>control.<wbr/>effect<wbr/>Mode
   3321             </td>
   3322             <td class="entry_type">
   3323                 <span class="entry_type_name entry_type_name_enum">byte</span>
   3324 
   3325               <span class="entry_type_visibility"> [public]</span>
   3326 
   3327 
   3328               <span class="entry_type_hwlevel">[legacy] </span>
   3329 
   3330 
   3331 
   3332                 <ul class="entry_type_enum">
   3333                   <li>
   3334                     <span class="entry_type_enum_name">OFF</span>
   3335                     <span class="entry_type_enum_notes"><p>No color effect will be applied.<wbr/></p></span>
   3336                   </li>
   3337                   <li>
   3338                     <span class="entry_type_enum_name">MONO</span>
   3339                     <span class="entry_type_enum_optional">[optional]</span>
   3340                     <span class="entry_type_enum_notes"><p>A "monocolor" effect where the image is mapped into
   3341 a single color.<wbr/></p>
   3342 <p>This will typically be grayscale.<wbr/></p></span>
   3343                   </li>
   3344                   <li>
   3345                     <span class="entry_type_enum_name">NEGATIVE</span>
   3346                     <span class="entry_type_enum_optional">[optional]</span>
   3347                     <span class="entry_type_enum_notes"><p>A "photo-negative" effect where the image's colors
   3348 are inverted.<wbr/></p></span>
   3349                   </li>
   3350                   <li>
   3351                     <span class="entry_type_enum_name">SOLARIZE</span>
   3352                     <span class="entry_type_enum_optional">[optional]</span>
   3353                     <span class="entry_type_enum_notes"><p>A "solarisation" effect (Sabattier effect) where the
   3354 image is wholly or partially reversed in
   3355 tone.<wbr/></p></span>
   3356                   </li>
   3357                   <li>
   3358                     <span class="entry_type_enum_name">SEPIA</span>
   3359                     <span class="entry_type_enum_optional">[optional]</span>
   3360                     <span class="entry_type_enum_notes"><p>A "sepia" effect where the image is mapped into warm
   3361 gray,<wbr/> red,<wbr/> and brown tones.<wbr/></p></span>
   3362                   </li>
   3363                   <li>
   3364                     <span class="entry_type_enum_name">POSTERIZE</span>
   3365                     <span class="entry_type_enum_optional">[optional]</span>
   3366                     <span class="entry_type_enum_notes"><p>A "posterization" effect where the image uses
   3367 discrete regions of tone rather than a continuous
   3368 gradient of tones.<wbr/></p></span>
   3369                   </li>
   3370                   <li>
   3371                     <span class="entry_type_enum_name">WHITEBOARD</span>
   3372                     <span class="entry_type_enum_optional">[optional]</span>
   3373                     <span class="entry_type_enum_notes"><p>A "whiteboard" effect where the image is typically displayed
   3374 as regions of white,<wbr/> with black or grey details.<wbr/></p></span>
   3375                   </li>
   3376                   <li>
   3377                     <span class="entry_type_enum_name">BLACKBOARD</span>
   3378                     <span class="entry_type_enum_optional">[optional]</span>
   3379                     <span class="entry_type_enum_notes"><p>A "blackboard" effect where the image is typically displayed
   3380 as regions of black,<wbr/> with white or grey details.<wbr/></p></span>
   3381                   </li>
   3382                   <li>
   3383                     <span class="entry_type_enum_name">AQUA</span>
   3384                     <span class="entry_type_enum_optional">[optional]</span>
   3385                     <span class="entry_type_enum_notes"><p>An "aqua" effect where a blue hue is added to the image.<wbr/></p></span>
   3386                   </li>
   3387                 </ul>
   3388 
   3389             </td> <!-- entry_type -->
   3390 
   3391             <td class="entry_description">
   3392               <p>A special color effect to apply.<wbr/></p>
   3393             </td>
   3394 
   3395             <td class="entry_units">
   3396             </td>
   3397 
   3398             <td class="entry_range">
   3399               <p><a href="#static_android.control.availableEffects">android.<wbr/>control.<wbr/>available<wbr/>Effects</a></p>
   3400             </td>
   3401 
   3402             <td class="entry_tags">
   3403               <ul class="entry_tags">
   3404                   <li><a href="#tag_BC">BC</a></li>
   3405               </ul>
   3406             </td>
   3407 
   3408           </tr>
   3409           <tr class="entries_header">
   3410             <th class="th_details" colspan="5">Details</th>
   3411           </tr>
   3412           <tr class="entry_cont">
   3413             <td class="entry_details" colspan="5">
   3414               <p>When this mode is set,<wbr/> a color effect will be applied
   3415 to images produced by the camera device.<wbr/> The interpretation
   3416 and implementation of these color effects is left to the
   3417 implementor of the camera device,<wbr/> and should not be
   3418 depended on to be consistent (or present) across all
   3419 devices.<wbr/></p>
   3420             </td>
   3421           </tr>
   3422 
   3423 
   3424           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   3425            <!-- end of entry -->
   3426         
   3427                 
   3428           <tr class="entry" id="controls_android.control.mode">
   3429             <td class="entry_name
   3430              " rowspan="3">
   3431               android.<wbr/>control.<wbr/>mode
   3432             </td>
   3433             <td class="entry_type">
   3434                 <span class="entry_type_name entry_type_name_enum">byte</span>
   3435 
   3436               <span class="entry_type_visibility"> [public]</span>
   3437 
   3438 
   3439               <span class="entry_type_hwlevel">[legacy] </span>
   3440 
   3441 
   3442 
   3443                 <ul class="entry_type_enum">
   3444                   <li>
   3445                     <span class="entry_type_enum_name">OFF</span>
   3446                     <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/></p>
   3447 <p>All control by the device's metering and focusing (3A)
   3448 routines is disabled,<wbr/> and no other settings in
   3449 android.<wbr/>control.<wbr/>* have any effect,<wbr/> except that
   3450 <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> may be used by the camera
   3451 device to select post-processing values for processing
   3452 blocks that do not allow for manual control,<wbr/> or are not
   3453 exposed by the camera API.<wbr/></p>
   3454 <p>However,<wbr/> the camera device's 3A routines may continue to
   3455 collect statistics and update their internal state so that
   3456 when control is switched to AUTO mode,<wbr/> good control values
   3457 can be immediately applied.<wbr/></p></span>
   3458                   </li>
   3459                   <li>
   3460                     <span class="entry_type_enum_name">AUTO</span>
   3461                     <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/></p>
   3462 <p>Manual control of capture parameters is disabled.<wbr/> All
   3463 controls in android.<wbr/>control.<wbr/>* besides sceneMode take
   3464 effect.<wbr/></p></span>
   3465                   </li>
   3466                   <li>
   3467                     <span class="entry_type_enum_name">USE_SCENE_MODE</span>
   3468                     <span class="entry_type_enum_notes"><p>Use a specific scene mode.<wbr/></p>
   3469 <p>Enabling this disables control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and
   3470 control.<wbr/>afMode controls; the camera device will ignore
   3471 those settings while USE_<wbr/>SCENE_<wbr/>MODE is active (except for
   3472 FACE_<wbr/>PRIORITY scene mode).<wbr/> Other control entries are still
   3473 active.<wbr/>  This setting can only be used if scene mode is
   3474 supported (i.<wbr/>e.<wbr/> <a href="#static_android.control.availableSceneModes">android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes</a>
   3475 contain some modes other than DISABLED).<wbr/></p></span>
   3476                   </li>
   3477                   <li>
   3478                     <span class="entry_type_enum_name">OFF_KEEP_STATE</span>
   3479                     <span class="entry_type_enum_notes"><p>Same as OFF mode,<wbr/> except that this capture will not be
   3480 used by camera device background auto-exposure,<wbr/> auto-white balance and
   3481 auto-focus algorithms (3A) to update their statistics.<wbr/></p>
   3482 <p>Specifically,<wbr/> the 3A routines are locked to the last
   3483 values set from a request with AUTO,<wbr/> OFF,<wbr/> or
   3484 USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> and any statistics or state updates
   3485 collected from manual captures with OFF_<wbr/>KEEP_<wbr/>STATE will be
   3486 discarded by the camera device.<wbr/></p></span>
   3487                   </li>
   3488                 </ul>
   3489 
   3490             </td> <!-- entry_type -->
   3491 
   3492             <td class="entry_description">
   3493               <p>Overall mode of 3A (auto-exposure,<wbr/> auto-white-balance,<wbr/> auto-focus) control
   3494 routines.<wbr/></p>
   3495             </td>
   3496 
   3497             <td class="entry_units">
   3498             </td>
   3499 
   3500             <td class="entry_range">
   3501             </td>
   3502 
   3503             <td class="entry_tags">
   3504               <ul class="entry_tags">
   3505                   <li><a href="#tag_BC">BC</a></li>
   3506               </ul>
   3507             </td>
   3508 
   3509           </tr>
   3510           <tr class="entries_header">
   3511             <th class="th_details" colspan="5">Details</th>
   3512           </tr>
   3513           <tr class="entry_cont">
   3514             <td class="entry_details" colspan="5">
   3515               <p>This is a top-level 3A control switch.<wbr/> When set to OFF,<wbr/> all 3A control
   3516 by the camera device is disabled.<wbr/> The application must set the fields for
   3517 capture parameters itself.<wbr/></p>
   3518 <p>When set to AUTO,<wbr/> the individual algorithm controls in
   3519 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>
   3520 <p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
   3521 android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device implements
   3522 one of the scene mode settings (such as ACTION,<wbr/> SUNSET,<wbr/> or PARTY)
   3523 as it wishes.<wbr/> The camera device scene mode 3A settings are provided by
   3524 <a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
   3525 <p>When set to OFF_<wbr/>KEEP_<wbr/>STATE,<wbr/> it is similar to OFF mode,<wbr/> the only difference
   3526 is that this frame will not be used by camera device background 3A statistics
   3527 update,<wbr/> as if this frame is never captured.<wbr/> This mode can be used in the scenario
   3528 where the application doesn't want a 3A manual control capture to affect
   3529 the subsequent auto 3A capture results.<wbr/></p>
   3530 <p>LEGACY mode devices will only support AUTO and USE_<wbr/>SCENE_<wbr/>MODE modes.<wbr/>
   3531 LIMITED mode devices will only support OFF and OFF_<wbr/>KEEP_<wbr/>STATE if they
   3532 support the MANUAL_<wbr/>SENSOR and MANUAL_<wbr/>POST_<wbr/>PROCSESING capabilities.<wbr/>
   3533 FULL mode devices will always support OFF and OFF_<wbr/>KEEP_<wbr/>STATE.<wbr/></p>
   3534             </td>
   3535           </tr>
   3536 
   3537 
   3538           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   3539            <!-- end of entry -->
   3540         
   3541                 
   3542           <tr class="entry" id="controls_android.control.sceneMode">
   3543             <td class="entry_name
   3544              " rowspan="5">
   3545               android.<wbr/>control.<wbr/>scene<wbr/>Mode
   3546             </td>
   3547             <td class="entry_type">
   3548                 <span class="entry_type_name entry_type_name_enum">byte</span>
   3549 
   3550               <span class="entry_type_visibility"> [public]</span>
   3551 
   3552 
   3553               <span class="entry_type_hwlevel">[legacy] </span>
   3554 
   3555 
   3556 
   3557                 <ul class="entry_type_enum">
   3558                   <li>
   3559                     <span class="entry_type_enum_name">DISABLED</span>
   3560                     <span class="entry_type_enum_value">0</span>
   3561                     <span class="entry_type_enum_notes"><p>Indicates that no scene modes are set for a given capture request.<wbr/></p></span>
   3562                   </li>
   3563                   <li>
   3564                     <span class="entry_type_enum_name">FACE_PRIORITY</span>
   3565                     <span class="entry_type_enum_notes"><p>If face detection support exists,<wbr/> use face
   3566 detection data for auto-focus,<wbr/> auto-white balance,<wbr/> and
   3567 auto-exposure routines.<wbr/></p>
   3568 <p>If face detection statistics are disabled
   3569 (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/>
   3570 this should still operate correctly (but will not return
   3571 face detection statistics to the framework).<wbr/></p>
   3572 <p>Unlike the other scene modes,<wbr/> <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
   3573 <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>
   3574 remain active when FACE_<wbr/>PRIORITY is set.<wbr/></p></span>
   3575                   </li>
   3576                   <li>
   3577                     <span class="entry_type_enum_name">ACTION</span>
   3578                     <span class="entry_type_enum_optional">[optional]</span>
   3579                     <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving objects.<wbr/></p>
   3580 <p>Similar to SPORTS.<wbr/></p></span>
   3581                   </li>
   3582                   <li>
   3583                     <span class="entry_type_enum_name">PORTRAIT</span>
   3584                     <span class="entry_type_enum_optional">[optional]</span>
   3585                     <span class="entry_type_enum_notes"><p>Optimized for still photos of people.<wbr/></p></span>
   3586                   </li>
   3587                   <li>
   3588                     <span class="entry_type_enum_name">LANDSCAPE</span>
   3589                     <span class="entry_type_enum_optional">[optional]</span>
   3590                     <span class="entry_type_enum_notes"><p>Optimized for photos of distant macroscopic objects.<wbr/></p></span>
   3591                   </li>
   3592                   <li>
   3593                     <span class="entry_type_enum_name">NIGHT</span>
   3594                     <span class="entry_type_enum_optional">[optional]</span>
   3595                     <span class="entry_type_enum_notes"><p>Optimized for low-light settings.<wbr/></p></span>
   3596                   </li>
   3597                   <li>
   3598                     <span class="entry_type_enum_name">NIGHT_PORTRAIT</span>
   3599                     <span class="entry_type_enum_optional">[optional]</span>
   3600                     <span class="entry_type_enum_notes"><p>Optimized for still photos of people in low-light
   3601 settings.<wbr/></p></span>
   3602                   </li>
   3603                   <li>
   3604                     <span class="entry_type_enum_name">THEATRE</span>
   3605                     <span class="entry_type_enum_optional">[optional]</span>
   3606                     <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings where flash must
   3607 remain off.<wbr/></p></span>
   3608                   </li>
   3609                   <li>
   3610                     <span class="entry_type_enum_name">BEACH</span>
   3611                     <span class="entry_type_enum_optional">[optional]</span>
   3612                     <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor beach settings.<wbr/></p></span>
   3613                   </li>
   3614                   <li>
   3615                     <span class="entry_type_enum_name">SNOW</span>
   3616                     <span class="entry_type_enum_optional">[optional]</span>
   3617                     <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor settings containing snow.<wbr/></p></span>
   3618                   </li>
   3619                   <li>
   3620                     <span class="entry_type_enum_name">SUNSET</span>
   3621                     <span class="entry_type_enum_optional">[optional]</span>
   3622                     <span class="entry_type_enum_notes"><p>Optimized for scenes of the setting sun.<wbr/></p></span>
   3623                   </li>
   3624                   <li>
   3625                     <span class="entry_type_enum_name">STEADYPHOTO</span>
   3626                     <span class="entry_type_enum_optional">[optional]</span>
   3627                     <span class="entry_type_enum_notes"><p>Optimized to avoid blurry photos due to small amounts of
   3628 device motion (for example: due to hand shake).<wbr/></p></span>
   3629                   </li>
   3630                   <li>
   3631                     <span class="entry_type_enum_name">FIREWORKS</span>
   3632                     <span class="entry_type_enum_optional">[optional]</span>
   3633                     <span class="entry_type_enum_notes"><p>Optimized for nighttime photos of fireworks.<wbr/></p></span>
   3634                   </li>
   3635                   <li>
   3636                     <span class="entry_type_enum_name">SPORTS</span>
   3637                     <span class="entry_type_enum_optional">[optional]</span>
   3638                     <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving people.<wbr/></p>
   3639 <p>Similar to ACTION.<wbr/></p></span>
   3640                   </li>
   3641                   <li>
   3642                     <span class="entry_type_enum_name">PARTY</span>
   3643                     <span class="entry_type_enum_optional">[optional]</span>
   3644                     <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings with multiple moving
   3645 people.<wbr/></p></span>
   3646                   </li>
   3647                   <li>
   3648                     <span class="entry_type_enum_name">CANDLELIGHT</span>
   3649                     <span class="entry_type_enum_optional">[optional]</span>
   3650                     <span class="entry_type_enum_notes"><p>Optimized for dim settings where the main light source
   3651 is a flame.<wbr/></p></span>
   3652                   </li>
   3653                   <li>
   3654                     <span class="entry_type_enum_name">BARCODE</span>
   3655                     <span class="entry_type_enum_optional">[optional]</span>
   3656                     <span class="entry_type_enum_notes"><p>Optimized for accurately capturing a photo of barcode
   3657 for use by camera applications that wish to read the
   3658 barcode value.<wbr/></p></span>
   3659                   </li>
   3660                   <li>
   3661                     <span class="entry_type_enum_name">HIGH_SPEED_VIDEO</span>
   3662                     <span class="entry_type_enum_optional">[optional]</span>
   3663                     <span class="entry_type_enum_notes"><p>Optimized for high speed video recording (frame rate &gt;=60fps) use case.<wbr/></p>
   3664 <p>The supported high speed video sizes and fps ranges are specified in
   3665 <a href="#static_android.control.availableHighSpeedVideoConfigurations">android.<wbr/>control.<wbr/>available<wbr/>High<wbr/>Speed<wbr/>Video<wbr/>Configurations</a>.<wbr/> To get desired
   3666 output frame rates,<wbr/> the application is only allowed to select video size
   3667 and fps range combinations listed in this static metadata.<wbr/> The fps range
   3668 can be control via <a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a>.<wbr/></p>
   3669 <p>In this mode,<wbr/> the camera device will override aeMode,<wbr/> awbMode,<wbr/> and afMode to
   3670 ON,<wbr/> ON,<wbr/> and CONTINUOUS_<wbr/>VIDEO,<wbr/> respectively.<wbr/> All post-processing block mode
   3671 controls will be overridden to be FAST.<wbr/> Therefore,<wbr/> no manual control of capture
   3672 and post-processing parameters is possible.<wbr/> All other controls operate the
   3673 same as when <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == AUTO.<wbr/> This means that all other
   3674 android.<wbr/>control.<wbr/>* fields continue to work,<wbr/> such as</p>
   3675 <ul>
   3676 <li><a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a></li>
   3677 <li><a href="#controls_android.control.aeExposureCompensation">android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation</a></li>
   3678 <li><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a></li>
   3679 <li><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a></li>
   3680 <li><a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a></li>
   3681 <li><a href="#controls_android.control.aeRegions">android.<wbr/>control.<wbr/>ae<wbr/>Regions</a></li>
   3682 <li><a href="#controls_android.control.afRegions">android.<wbr/>control.<wbr/>af<wbr/>Regions</a></li>
   3683 <li><a href="#controls_android.control.awbRegions">android.<wbr/>control.<wbr/>awb<wbr/>Regions</a></li>
   3684 <li><a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a></li>
   3685 <li><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a></li>
   3686 </ul>
   3687 <p>Outside of android.<wbr/>control.<wbr/>*,<wbr/> the following controls will work:</p>
   3688 <ul>
   3689 <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>
   3690 <li><a href="#controls_android.lens.opticalStabilizationMode">android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode</a> (if it is supported)</li>
   3691 <li><a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a></li>
   3692 <li><a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a></li>
   3693 </ul>
   3694 <p>For high speed recording use case,<wbr/> the actual maximum supported frame rate may
   3695 be lower than what camera can output,<wbr/> depending on the destination Surfaces for
   3696 the image data.<wbr/> For example,<wbr/> if the destination surface is from video encoder,<wbr/>
   3697 the application need check if the video encoder is capable of supporting the
   3698 high frame rate for a given video size,<wbr/> or it will end up with lower recording
   3699 frame rate.<wbr/> If the destination surface is from preview window,<wbr/> the preview frame
   3700 rate will be bounded by the screen refresh rate.<wbr/></p>
   3701 <p>The camera device will only support up to 2 output high speed streams
   3702 (processed non-stalling format defined in <a href="#static_android.request.maxNumOutputStreams">android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Streams</a>)
   3703 in this mode.<wbr/> This control will be effective only if all of below conditions are true:</p>
   3704 <ul>
   3705 <li>The application created no more than maxNumHighSpeedStreams processed non-stalling
   3706 format output streams,<wbr/> where maxNumHighSpeedStreams is calculated as
   3707 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>
   3708 <li>The stream sizes are selected from the sizes reported by
   3709 <a href="#static_android.control.availableHighSpeedVideoConfigurations">android.<wbr/>control.<wbr/>available<wbr/>High<wbr/>Speed<wbr/>Video<wbr/>Configurations</a>.<wbr/></li>
   3710 <li>No processed non-stalling or raw streams are configured.<wbr/></li>
   3711 </ul>
   3712 <p>When above conditions are NOT satistied,<wbr/> the controls of this mode and
   3713 <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/>
   3714 the camera device will fall back to <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> <code>==</code> AUTO,<wbr/>
   3715 and the returned capture result metadata will give the fps range choosen
   3716 by the camera device.<wbr/></p>
   3717 <p>Switching into or out of this mode may trigger some camera ISP/<wbr/>sensor
   3718 reconfigurations,<wbr/> which may introduce extra latency.<wbr/> It is recommended that
   3719 the application avoids unnecessary scene mode switch as much as possible.<wbr/></p></span>
   3720                   </li>
   3721                   <li>
   3722                     <span class="entry_type_enum_name">HDR</span>
   3723                     <span class="entry_type_enum_optional">[optional]</span>
   3724                     <span class="entry_type_enum_notes"><p>Turn on a device-specific high dynamic range (HDR) mode.<wbr/></p>
   3725 <p>In this scene mode,<wbr/> the camera device captures images
   3726 that keep a larger range of scene illumination levels
   3727 visible in the final image.<wbr/> For example,<wbr/> when taking a
   3728 picture of a object in front of a bright window,<wbr/> both
   3729 the object and the scene through the window may be
   3730 visible when using HDR mode,<wbr/> while in normal AUTO mode,<wbr/>
   3731 one or the other may be poorly exposed.<wbr/> As a tradeoff,<wbr/>
   3732 HDR mode generally takes much longer to capture a single
   3733 image,<wbr/> has no user control,<wbr/> and may have other artifacts
   3734 depending on the HDR method used.<wbr/></p>
   3735 <p>Therefore,<wbr/> HDR captures operate at a much slower rate
   3736 than regular captures.<wbr/></p>
   3737 <p>In this mode,<wbr/> on LIMITED or FULL devices,<wbr/> when a request
   3738 is made with a <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> of
   3739 STILL_<wbr/>CAPTURE,<wbr/> the camera device will capture an image
   3740 using a high dynamic range capture technique.<wbr/>  On LEGACY
   3741 devices,<wbr/> captures that target a JPEG-format output will
   3742 be captured with HDR,<wbr/> and the capture intent is not
   3743 relevant.<wbr/></p>
   3744 <p>The HDR capture may involve the device capturing a burst
   3745 of images internally and combining them into one,<wbr/> or it
   3746 may involve the device using specialized high dynamic
   3747 range capture hardware.<wbr/> In all cases,<wbr/> a single image is
   3748 produced in response to a capture request submitted
   3749 while in HDR mode.<wbr/></p>
   3750 <p>Since substantial post-processing is generally needed to
   3751 produce an HDR image,<wbr/> only YUV and JPEG outputs are
   3752 supported for LIMITED/<wbr/>FULL device HDR captures,<wbr/> and only
   3753 JPEG outputs are supported for LEGACY HDR
   3754 captures.<wbr/> Using a RAW output for HDR capture is not
   3755 supported.<wbr/></p></span>
   3756                   </li>
   3757                 </ul>
   3758 
   3759             </td> <!-- entry_type -->
   3760 
   3761             <td class="entry_description">
   3762               <p>Control for which scene mode is currently active.<wbr/></p>
   3763             </td>
   3764 
   3765             <td class="entry_units">
   3766             </td>
   3767 
   3768             <td class="entry_range">
   3769               <p><a href="#static_android.control.availableSceneModes">android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes</a></p>
   3770             </td>
   3771 
   3772             <td class="entry_tags">
   3773               <ul class="entry_tags">
   3774                   <li><a href="#tag_BC">BC</a></li>
   3775               </ul>
   3776             </td>
   3777 
   3778           </tr>
   3779           <tr class="entries_header">
   3780             <th class="th_details" colspan="5">Details</th>
   3781           </tr>
   3782           <tr class="entry_cont">
   3783             <td class="entry_details" colspan="5">
   3784               <p>Scene modes are custom camera modes optimized for a certain set of conditions and
   3785 capture settings.<wbr/></p>
   3786 <p>This is the mode that that is active when
   3787 <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/>
   3788 these modes will disable <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
   3789 <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>
   3790 <p>The interpretation and implementation of these scene modes is left
   3791 to the implementor of the camera device.<wbr/> Their behavior will not be
   3792 consistent across all devices,<wbr/> and any given device may only implement
   3793 a subset of these modes.<wbr/></p>
   3794             </td>
   3795           </tr>
   3796 
   3797           <tr class="entries_header">
   3798             <th class="th_details" colspan="5">HAL Implementation Details</th>
   3799           </tr>
   3800           <tr class="entry_cont">
   3801             <td class="entry_details" colspan="5">
   3802               <p>HAL implementations that include scene modes are expected to provide
   3803 the per-scene settings to use for <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
   3804 <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
   3805 <a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
   3806 <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/>
   3807 the HAL must list supported video size and fps range in
   3808 <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/>
   3809 1280x720,<wbr/> if the HAL has two different sensor configurations for normal streaming
   3810 mode and high speed streaming,<wbr/> when this scene mode is set/<wbr/>reset in a sequence of capture
   3811 requests,<wbr/> the HAL may have to switch between different sensor modes.<wbr/></p>
   3812             </td>
   3813           </tr>
   3814 
   3815           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   3816            <!-- end of entry -->
   3817         
   3818                 
   3819           <tr class="entry" id="controls_android.control.videoStabilizationMode">
   3820             <td class="entry_name
   3821              " rowspan="3">
   3822               android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode
   3823             </td>
   3824             <td class="entry_type">
   3825                 <span class="entry_type_name entry_type_name_enum">byte</span>
   3826 
   3827               <span class="entry_type_visibility"> [public]</span>
   3828 
   3829 
   3830               <span class="entry_type_hwlevel">[legacy] </span>
   3831 
   3832 
   3833 
   3834                 <ul class="entry_type_enum">
   3835                   <li>
   3836                     <span class="entry_type_enum_name">OFF</span>
   3837                     <span class="entry_type_enum_notes"><p>Video stabilization is disabled.<wbr/></p></span>
   3838                   </li>
   3839                   <li>
   3840                     <span class="entry_type_enum_name">ON</span>
   3841                     <span class="entry_type_enum_notes"><p>Video stabilization is enabled.<wbr/></p></span>
   3842                   </li>
   3843                 </ul>
   3844 
   3845             </td> <!-- entry_type -->
   3846 
   3847             <td class="entry_description">
   3848               <p>Whether video stabilization is
   3849 active.<wbr/></p>
   3850             </td>
   3851 
   3852             <td class="entry_units">
   3853             </td>
   3854 
   3855             <td class="entry_range">
   3856             </td>
   3857 
   3858             <td class="entry_tags">
   3859               <ul class="entry_tags">
   3860                   <li><a href="#tag_BC">BC</a></li>
   3861               </ul>
   3862             </td>
   3863 
   3864           </tr>
   3865           <tr class="entries_header">
   3866             <th class="th_details" colspan="5">Details</th>
   3867           </tr>
   3868           <tr class="entry_cont">
   3869             <td class="entry_details" colspan="5">
   3870               <p>Video stabilization automatically translates and scales images from
   3871 the camera in order to stabilize motion between consecutive frames.<wbr/></p>
   3872 <p>If enabled,<wbr/> video stabilization can modify the
   3873 <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a> to keep the video stream stabilized.<wbr/></p>
   3874 <p>Switching between different video stabilization modes may take several
   3875 frames to initialize,<wbr/> the camera device will report the current mode
   3876 in capture result metadata.<wbr/> For example,<wbr/> When "ON" mode is requested,<wbr/>
   3877 the video stabilization modes in the first several capture results may
   3878 still be "OFF",<wbr/> and it will become "ON" when the initialization is
   3879 done.<wbr/></p>
   3880 <p>If a camera device supports both this mode and OIS
   3881 (<a href="#controls_android.lens.opticalStabilizationMode">android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode</a>),<wbr/> turning both modes on may
   3882 produce undesirable interaction,<wbr/> so it is recommended not to enable
   3883 both at the same time.<wbr/></p>
   3884             </td>
   3885           </tr>
   3886 
   3887 
   3888           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   3889            <!-- end of entry -->
   3890         
   3891         
   3892 
   3893       <!-- end of kind -->
   3894       </tbody>
   3895       <tr><td colspan="6" class="kind">static</td></tr>
   3896 
   3897       <thead class="entries_header">
   3898         <tr>
   3899           <th class="th_name">Property Name</th>
   3900           <th class="th_type">Type</th>
   3901           <th class="th_description">Description</th>
   3902           <th class="th_units">Units</th>
   3903           <th class="th_range">Range</th>
   3904           <th class="th_tags">Tags</th>
   3905         </tr>
   3906       </thead>
   3907 
   3908       <tbody>
   3909 
   3910         
   3911 
   3912         
   3913 
   3914         
   3915 
   3916         
   3917 
   3918                 
   3919           <tr class="entry" id="static_android.control.aeAvailableAntibandingModes">
   3920             <td class="entry_name
   3921              " rowspan="3">
   3922               android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes
   3923             </td>
   3924             <td class="entry_type">
   3925                 <span class="entry_type_name">byte</span>
   3926                 <span class="entry_type_container">x</span>
   3927 
   3928                 <span class="entry_type_array">
   3929                   n
   3930                 </span>
   3931               <span class="entry_type_visibility"> [public as enumList]</span>
   3932 
   3933 
   3934               <span class="entry_type_hwlevel">[legacy] </span>
   3935 
   3936 
   3937                 <div class="entry_type_notes">list of enums</div>
   3938 
   3939 
   3940             </td> <!-- entry_type -->
   3941 
   3942             <td class="entry_description">
   3943               <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
   3944 supported by this camera device.<wbr/></p>
   3945             </td>
   3946 
   3947             <td class="entry_units">
   3948             </td>
   3949 
   3950             <td class="entry_range">
   3951               <p>Any value listed in <a href="#controls_android.control.aeAntibandingMode">android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode</a></p>
   3952             </td>
   3953 
   3954             <td class="entry_tags">
   3955               <ul class="entry_tags">
   3956                   <li><a href="#tag_BC">BC</a></li>
   3957               </ul>
   3958             </td>
   3959 
   3960           </tr>
   3961           <tr class="entries_header">
   3962             <th class="th_details" colspan="5">Details</th>
   3963           </tr>
   3964           <tr class="entry_cont">
   3965             <td class="entry_details" colspan="5">
   3966               <p>Not all of the auto-exposure anti-banding modes may be
   3967 supported by a given camera device.<wbr/> This field lists the
   3968 valid anti-banding modes that the application may request
   3969 for this camera device with the
   3970 <a href="#controls_android.control.aeAntibandingMode">android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode</a> control.<wbr/></p>
   3971             </td>
   3972           </tr>
   3973 
   3974 
   3975           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   3976            <!-- end of entry -->
   3977         
   3978                 
   3979           <tr class="entry" id="static_android.control.aeAvailableModes">
   3980             <td class="entry_name
   3981              " rowspan="3">
   3982               android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes
   3983             </td>
   3984             <td class="entry_type">
   3985                 <span class="entry_type_name">byte</span>
   3986                 <span class="entry_type_container">x</span>
   3987 
   3988                 <span class="entry_type_array">
   3989                   n
   3990                 </span>
   3991               <span class="entry_type_visibility"> [public as enumList]</span>
   3992 
   3993 
   3994               <span class="entry_type_hwlevel">[legacy] </span>
   3995 
   3996 
   3997                 <div class="entry_type_notes">list of enums</div>
   3998 
   3999 
   4000             </td> <!-- entry_type -->
   4001 
   4002             <td class="entry_description">
   4003               <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
   4004 device.<wbr/></p>
   4005             </td>
   4006 
   4007             <td class="entry_units">
   4008             </td>
   4009 
   4010             <td class="entry_range">
   4011               <p>Any value listed in <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a></p>
   4012             </td>
   4013 
   4014             <td class="entry_tags">
   4015               <ul class="entry_tags">
   4016                   <li><a href="#tag_BC">BC</a></li>
   4017               </ul>
   4018             </td>
   4019 
   4020           </tr>
   4021           <tr class="entries_header">
   4022             <th class="th_details" colspan="5">Details</th>
   4023           </tr>
   4024           <tr class="entry_cont">
   4025             <td class="entry_details" colspan="5">
   4026               <p>Not all the auto-exposure modes may be supported by a
   4027 given camera device,<wbr/> especially if no flash unit is
   4028 available.<wbr/> This entry lists the valid modes for
   4029 <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> for this camera device.<wbr/></p>
   4030 <p>All camera devices support ON,<wbr/> and all camera devices with flash
   4031 units support ON_<wbr/>AUTO_<wbr/>FLASH and ON_<wbr/>ALWAYS_<wbr/>FLASH.<wbr/></p>
   4032 <p>FULL mode camera devices always support OFF mode,<wbr/>
   4033 which enables application control of camera exposure time,<wbr/>
   4034 sensitivity,<wbr/> and frame duration.<wbr/></p>
   4035 <p>LEGACY mode camera devices never support OFF mode.<wbr/>
   4036 LIMITED mode devices support OFF if they support the MANUAL_<wbr/>SENSOR
   4037 capability.<wbr/></p>
   4038             </td>
   4039           </tr>
   4040 
   4041 
   4042           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   4043            <!-- end of entry -->
   4044         
   4045                 
   4046           <tr class="entry" id="static_android.control.aeAvailableTargetFpsRanges">
   4047             <td class="entry_name
   4048              " rowspan="3">
   4049               android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges
   4050             </td>
   4051             <td class="entry_type">
   4052                 <span class="entry_type_name">int32</span>
   4053                 <span class="entry_type_container">x</span>
   4054 
   4055                 <span class="entry_type_array">
   4056                   2 x n
   4057                 </span>
   4058               <span class="entry_type_visibility"> [public as rangeInt]</span>
   4059 
   4060 
   4061               <span class="entry_type_hwlevel">[legacy] </span>
   4062 
   4063 
   4064                 <div class="entry_type_notes">list of pairs of frame rates</div>
   4065 
   4066 
   4067             </td> <!-- entry_type -->
   4068 
   4069             <td class="entry_description">
   4070               <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
   4071 this camera device.<wbr/></p>
   4072             </td>
   4073 
   4074             <td class="entry_units">
   4075               Frames per second (FPS)
   4076             </td>
   4077 
   4078             <td class="entry_range">
   4079             </td>
   4080 
   4081             <td class="entry_tags">
   4082               <ul class="entry_tags">
   4083                   <li><a href="#tag_BC">BC</a></li>
   4084               </ul>
   4085             </td>
   4086 
   4087           </tr>
   4088           <tr class="entries_header">
   4089             <th class="th_details" colspan="5">Details</th>
   4090           </tr>
   4091           <tr class="entry_cont">
   4092             <td class="entry_details" colspan="5">
   4093               <p>For devices at the LIMITED level or above,<wbr/> this list will include at least (30,<wbr/> 30) for
   4094 constant-framerate recording.<wbr/></p>
   4095             </td>
   4096           </tr>
   4097 
   4098 
   4099           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   4100            <!-- end of entry -->
   4101         
   4102                 
   4103           <tr class="entry" id="static_android.control.aeCompensationRange">
   4104             <td class="entry_name
   4105              " rowspan="1">
   4106               android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range
   4107             </td>
   4108             <td class="entry_type">
   4109                 <span class="entry_type_name">int32</span>
   4110                 <span class="entry_type_container">x</span>
   4111 
   4112                 <span class="entry_type_array">
   4113                   2
   4114                 </span>
   4115               <span class="entry_type_visibility"> [public as rangeInt]</span>
   4116 
   4117 
   4118               <span class="entry_type_hwlevel">[legacy] </span>
   4119 
   4120 
   4121 
   4122 
   4123             </td> <!-- entry_type -->
   4124 
   4125             <td class="entry_description">
   4126               <p>Maximum and minimum exposure compensation values for
   4127 <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/>
   4128 that are supported by this camera device.<wbr/></p>
   4129             </td>
   4130 
   4131             <td class="entry_units">
   4132             </td>
   4133 
   4134             <td class="entry_range">
   4135               <p>Range [0,<wbr/>0] indicates that exposure compensation is not supported.<wbr/></p>
   4136 <p>For LIMITED and FULL devices,<wbr/> range must follow below requirements if exposure
   4137 compensation is supported (<code>range != [0,<wbr/> 0]</code>):</p>
   4138 <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>
   4139 <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>
   4140 <p>LEGACY devices may support a smaller range than this.<wbr/></p>
   4141             </td>
   4142 
   4143             <td class="entry_tags">
   4144               <ul class="entry_tags">
   4145                   <li><a href="#tag_BC">BC</a></li>
   4146               </ul>
   4147             </td>
   4148 
   4149           </tr>
   4150 
   4151 
   4152           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   4153            <!-- end of entry -->
   4154         
   4155                 
   4156           <tr class="entry" id="static_android.control.aeCompensationStep">
   4157             <td class="entry_name
   4158              " rowspan="5">
   4159               android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step
   4160             </td>
   4161             <td class="entry_type">
   4162                 <span class="entry_type_name">rational</span>
   4163 
   4164               <span class="entry_type_visibility"> [public]</span>
   4165 
   4166 
   4167               <span class="entry_type_hwlevel">[legacy] </span>
   4168 
   4169 
   4170 
   4171 
   4172             </td> <!-- entry_type -->
   4173 
   4174             <td class="entry_description">
   4175               <p>Smallest step by which the exposure compensation
   4176 can be changed.<wbr/></p>
   4177             </td>
   4178 
   4179             <td class="entry_units">
   4180               Exposure Value (EV)
   4181             </td>
   4182 
   4183             <td class="entry_range">
   4184             </td>
   4185 
   4186             <td class="entry_tags">
   4187               <ul class="entry_tags">
   4188                   <li><a href="#tag_BC">BC</a></li>
   4189               </ul>
   4190             </td>
   4191 
   4192           </tr>
   4193           <tr class="entries_header">
   4194             <th class="th_details" colspan="5">Details</th>
   4195           </tr>
   4196           <tr class="entry_cont">
   4197             <td class="entry_details" colspan="5">
   4198               <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
   4199 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
   4200 that the target EV offset for the auto-exposure routine is -1 EV.<wbr/></p>
   4201 <p>One unit of EV compensation changes the brightness of the captured image by a factor
   4202 of two.<wbr/> +1 EV doubles the image brightness,<wbr/> while -1 EV halves the image brightness.<wbr/></p>
   4203             </td>
   4204           </tr>
   4205 
   4206           <tr class="entries_header">
   4207             <th class="th_details" colspan="5">HAL Implementation Details</th>
   4208           </tr>
   4209           <tr class="entry_cont">
   4210             <td class="entry_details" colspan="5">
   4211               <p>This must be less than or equal to 1/<wbr/>2.<wbr/></p>
   4212             </td>
   4213           </tr>
   4214 
   4215           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   4216            <!-- end of entry -->
   4217         
   4218                 
   4219           <tr class="entry" id="static_android.control.afAvailableModes">
   4220             <td class="entry_name
   4221              " rowspan="3">
   4222               android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes
   4223             </td>
   4224             <td class="entry_type">
   4225                 <span class="entry_type_name">byte</span>
   4226                 <span class="entry_type_container">x</span>
   4227 
   4228                 <span class="entry_type_array">
   4229                   n
   4230                 </span>
   4231               <span class="entry_type_visibility"> [public as enumList]</span>
   4232 
   4233 
   4234               <span class="entry_type_hwlevel">[legacy] </span>
   4235 
   4236 
   4237                 <div class="entry_type_notes">List of enums</div>
   4238 
   4239 
   4240             </td> <!-- entry_type -->
   4241 
   4242             <td class="entry_description">
   4243               <p>List of auto-focus (AF) modes for <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> that are
   4244 supported by this camera device.<wbr/></p>
   4245             </td>
   4246 
   4247             <td class="entry_units">
   4248             </td>
   4249 
   4250             <td class="entry_range">
   4251               <p>Any value listed in <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a></p>
   4252             </td>
   4253 
   4254             <td class="entry_tags">
   4255               <ul class="entry_tags">
   4256                   <li><a href="#tag_BC">BC</a></li>
   4257               </ul>
   4258             </td>
   4259 
   4260           </tr>
   4261           <tr class="entries_header">
   4262             <th class="th_details" colspan="5">Details</th>
   4263           </tr>
   4264           <tr class="entry_cont">
   4265             <td class="entry_details" colspan="5">
   4266               <p>Not all the auto-focus modes may be supported by a
   4267 given camera device.<wbr/> This entry lists the valid modes for
   4268 <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> for this camera device.<wbr/></p>
   4269 <p>All LIMITED and FULL mode camera devices will support OFF mode,<wbr/> and all
   4270 camera devices with adjustable focuser units
   4271 (<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>
   4272 <p>LEGACY devices will support OFF mode only if they support
   4273 focusing to infinity (by also setting <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> to
   4274 <code>0.<wbr/>0f</code>).<wbr/></p>
   4275             </td>
   4276           </tr>
   4277 
   4278 
   4279           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   4280            <!-- end of entry -->
   4281         
   4282                 
   4283           <tr class="entry" id="static_android.control.availableEffects">
   4284             <td class="entry_name
   4285              " rowspan="3">
   4286               android.<wbr/>control.<wbr/>available<wbr/>Effects
   4287             </td>
   4288             <td class="entry_type">
   4289                 <span class="entry_type_name">byte</span>
   4290                 <span class="entry_type_container">x</span>
   4291 
   4292                 <span class="entry_type_array">
   4293                   n
   4294                 </span>
   4295               <span class="entry_type_visibility"> [public as enumList]</span>
   4296 
   4297 
   4298               <span class="entry_type_hwlevel">[legacy] </span>
   4299 
   4300 
   4301                 <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>effect<wbr/>Mode).<wbr/></div>
   4302 
   4303 
   4304             </td> <!-- entry_type -->
   4305 
   4306             <td class="entry_description">
   4307               <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
   4308 device.<wbr/></p>
   4309             </td>
   4310 
   4311             <td class="entry_units">
   4312             </td>
   4313 
   4314             <td class="entry_range">
   4315               <p>Any value listed in <a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a></p>
   4316             </td>
   4317 
   4318             <td class="entry_tags">
   4319               <ul class="entry_tags">
   4320                   <li><a href="#tag_BC">BC</a></li>
   4321               </ul>
   4322             </td>
   4323 
   4324           </tr>
   4325           <tr class="entries_header">
   4326             <th class="th_details" colspan="5">Details</th>
   4327           </tr>
   4328           <tr class="entry_cont">
   4329             <td class="entry_details" colspan="5">
   4330               <p>This list contains the color effect modes that can be applied to
   4331 images produced by the camera device.<wbr/>
   4332 Implementations are not expected to be consistent across all devices.<wbr/>
   4333 If no color effect modes are available for a device,<wbr/> this will only list
   4334 OFF.<wbr/></p>
   4335 <p>A color effect will only be applied if
   4336 <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF.<wbr/>  OFF is always included in this list.<wbr/></p>
   4337 <p>This control has no effect on the operation of other control routines such
   4338 as auto-exposure,<wbr/> white balance,<wbr/> or focus.<wbr/></p>
   4339             </td>
   4340           </tr>
   4341 
   4342 
   4343           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   4344            <!-- end of entry -->
   4345         
   4346                 
   4347           <tr class="entry" id="static_android.control.availableSceneModes">
   4348             <td class="entry_name
   4349              " rowspan="3">
   4350               android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes
   4351             </td>
   4352             <td class="entry_type">
   4353                 <span class="entry_type_name">byte</span>
   4354                 <span class="entry_type_container">x</span>
   4355 
   4356                 <span class="entry_type_array">
   4357                   n
   4358                 </span>
   4359               <span class="entry_type_visibility"> [public as enumList]</span>
   4360 
   4361 
   4362               <span class="entry_type_hwlevel">[legacy] </span>
   4363 
   4364 
   4365                 <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>scene<wbr/>Mode).<wbr/></div>
   4366 
   4367 
   4368             </td> <!-- entry_type -->
   4369 
   4370             <td class="entry_description">
   4371               <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
   4372 device.<wbr/></p>
   4373             </td>
   4374 
   4375             <td class="entry_units">
   4376             </td>
   4377 
   4378             <td class="entry_range">
   4379               <p>Any value listed in <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a></p>
   4380             </td>
   4381 
   4382             <td class="entry_tags">
   4383               <ul class="entry_tags">
   4384                   <li><a href="#tag_BC">BC</a></li>
   4385               </ul>
   4386             </td>
   4387 
   4388           </tr>
   4389           <tr class="entries_header">
   4390             <th class="th_details" colspan="5">Details</th>
   4391           </tr>
   4392           <tr class="entry_cont">
   4393             <td class="entry_details" colspan="5">
   4394               <p>This list contains scene modes that can be set for the camera device.<wbr/>
   4395 Only scene modes that have been fully implemented for the
   4396 camera device may be included here.<wbr/> Implementations are not expected
   4397 to be consistent across all devices.<wbr/></p>
   4398 <p>If no scene modes are supported by the camera device,<wbr/> this
   4399 will be set to DISABLED.<wbr/> Otherwise DISABLED will not be listed.<wbr/></p>
   4400 <p>FACE_<wbr/>PRIORITY is always listed if face detection is
   4401 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;
   4402 0</code>).<wbr/></p>
   4403             </td>
   4404           </tr>
   4405 
   4406 
   4407           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   4408            <!-- end of entry -->
   4409         
   4410                 
   4411           <tr class="entry" id="static_android.control.availableVideoStabilizationModes">
   4412             <td class="entry_name
   4413              " rowspan="3">
   4414               android.<wbr/>control.<wbr/>available<wbr/>Video<wbr/>Stabilization<wbr/>Modes
   4415             </td>
   4416             <td class="entry_type">
   4417                 <span class="entry_type_name">byte</span>
   4418                 <span class="entry_type_container">x</span>
   4419 
   4420                 <span class="entry_type_array">
   4421                   n
   4422                 </span>
   4423               <span class="entry_type_visibility"> [public as enumList]</span>
   4424 
   4425 
   4426               <span class="entry_type_hwlevel">[legacy] </span>
   4427 
   4428 
   4429                 <div class="entry_type_notes">List of enums.<wbr/></div>
   4430 
   4431 
   4432             </td> <!-- entry_type -->
   4433 
   4434             <td class="entry_description">
   4435               <p>List of video stabilization modes for <a href="#controls_android.control.videoStabilizationMode">android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode</a>
   4436 that are supported by this camera device.<wbr/></p>
   4437             </td>
   4438 
   4439             <td class="entry_units">
   4440             </td>
   4441 
   4442             <td class="entry_range">
   4443               <p>Any value listed in <a href="#controls_android.control.videoStabilizationMode">android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode</a></p>
   4444             </td>
   4445 
   4446             <td class="entry_tags">
   4447               <ul class="entry_tags">
   4448                   <li><a href="#tag_BC">BC</a></li>
   4449               </ul>
   4450             </td>
   4451 
   4452           </tr>
   4453           <tr class="entries_header">
   4454             <th class="th_details" colspan="5">Details</th>
   4455           </tr>
   4456           <tr class="entry_cont">
   4457             <td class="entry_details" colspan="5">
   4458               <p>OFF will always be listed.<wbr/></p>
   4459             </td>
   4460           </tr>
   4461 
   4462 
   4463           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   4464            <!-- end of entry -->
   4465         
   4466                 
   4467           <tr class="entry" id="static_android.control.awbAvailableModes">
   4468             <td class="entry_name
   4469              " rowspan="3">
   4470               android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes
   4471             </td>
   4472             <td class="entry_type">
   4473                 <span class="entry_type_name">byte</span>
   4474                 <span class="entry_type_container">x</span>
   4475 
   4476                 <span class="entry_type_array">
   4477                   n
   4478                 </span>
   4479               <span class="entry_type_visibility"> [public as enumList]</span>
   4480 
   4481 
   4482               <span class="entry_type_hwlevel">[legacy] </span>
   4483 
   4484 
   4485                 <div class="entry_type_notes">List of enums</div>
   4486 
   4487 
   4488             </td> <!-- entry_type -->
   4489 
   4490             <td class="entry_description">
   4491               <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
   4492 camera device.<wbr/></p>
   4493             </td>
   4494 
   4495             <td class="entry_units">
   4496             </td>
   4497 
   4498             <td class="entry_range">
   4499               <p>Any value listed in <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a></p>
   4500             </td>
   4501 
   4502             <td class="entry_tags">
   4503               <ul class="entry_tags">
   4504                   <li><a href="#tag_BC">BC</a></li>
   4505               </ul>
   4506             </td>
   4507 
   4508           </tr>
   4509           <tr class="entries_header">
   4510             <th class="th_details" colspan="5">Details</th>
   4511           </tr>
   4512           <tr class="entry_cont">
   4513             <td class="entry_details" colspan="5">
   4514               <p>Not all the auto-white-balance modes may be supported by a
   4515 given camera device.<wbr/> This entry lists the valid modes for
   4516 <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> for this camera device.<wbr/></p>
   4517 <p>All camera devices will support ON mode.<wbr/></p>
   4518 <p>Camera devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability will always support OFF
   4519 mode,<wbr/> which enables application control of white balance,<wbr/> by using
   4520 <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
   4521 mode camera devices.<wbr/></p>
   4522             </td>
   4523           </tr>
   4524 
   4525 
   4526           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   4527            <!-- end of entry -->
   4528         
   4529                 
   4530           <tr class="entry" id="static_android.control.maxRegions">
   4531             <td class="entry_name
   4532              " rowspan="1">
   4533               android.<wbr/>control.<wbr/>max<wbr/>Regions
   4534             </td>
   4535             <td class="entry_type">
   4536                 <span class="entry_type_name">int32</span>
   4537                 <span class="entry_type_container">x</span>
   4538 
   4539                 <span class="entry_type_array">
   4540                   3
   4541                 </span>
   4542               <span class="entry_type_visibility"> [hidden]</span>
   4543 
   4544 
   4545               <span class="entry_type_hwlevel">[legacy] </span>
   4546 
   4547 
   4548 
   4549 
   4550             </td> <!-- entry_type -->
   4551 
   4552             <td class="entry_description">
   4553               <p>List of the maximum number of regions that can be used for metering in
   4554 auto-exposure (AE),<wbr/> auto-white balance (AWB),<wbr/> and auto-focus (AF);
   4555 this corresponds to the the maximum number of elements in
   4556 <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/>
   4557 and <a href="#controls_android.control.afRegions">android.<wbr/>control.<wbr/>af<wbr/>Regions</a>.<wbr/></p>
   4558             </td>
   4559 
   4560             <td class="entry_units">
   4561             </td>
   4562 
   4563             <td class="entry_range">
   4564               <p>Value must be &gt;= 0 for each element.<wbr/> For full-capability devices
   4565 this value must be &gt;= 1 for AE and AF.<wbr/> The order of the elements is:
   4566 <code>(AE,<wbr/> AWB,<wbr/> AF)</code>.<wbr/></p>
   4567             </td>
   4568 
   4569             <td class="entry_tags">
   4570               <ul class="entry_tags">
   4571                   <li><a href="#tag_BC">BC</a></li>
   4572               </ul>
   4573             </td>
   4574 
   4575           </tr>
   4576 
   4577 
   4578           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   4579            <!-- end of entry -->
   4580         
   4581                 
   4582           <tr class="entry" id="static_android.control.maxRegionsAe">
   4583             <td class="entry_name
   4584              " rowspan="5">
   4585               android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Ae
   4586             </td>
   4587             <td class="entry_type">
   4588                 <span class="entry_type_name">int32</span>
   4589 
   4590               <span class="entry_type_visibility"> [public]</span>
   4591 
   4592               <span class="entry_type_synthetic">[synthetic] </span>
   4593 
   4594               <span class="entry_type_hwlevel">[legacy] </span>
   4595 
   4596 
   4597 
   4598 
   4599             </td> <!-- entry_type -->
   4600 
   4601             <td class="entry_description">
   4602               <p>The maximum number of metering regions that can be used by the auto-exposure (AE)
   4603 routine.<wbr/></p>
   4604             </td>
   4605 
   4606             <td class="entry_units">
   4607             </td>
   4608 
   4609             <td class="entry_range">
   4610               <p>Value will be &gt;= 0.<wbr/> For FULL-capability devices,<wbr/> this
   4611 value will be &gt;= 1.<wbr/></p>
   4612             </td>
   4613 
   4614             <td class="entry_tags">
   4615             </td>
   4616 
   4617           </tr>
   4618           <tr class="entries_header">
   4619             <th class="th_details" colspan="5">Details</th>
   4620           </tr>
   4621           <tr class="entry_cont">
   4622             <td class="entry_details" colspan="5">
   4623               <p>This corresponds to the the maximum allowed number of elements in
   4624 <a href="#controls_android.control.aeRegions">android.<wbr/>control.<wbr/>ae<wbr/>Regions</a>.<wbr/></p>
   4625             </td>
   4626           </tr>
   4627 
   4628           <tr class="entries_header">
   4629             <th class="th_details" colspan="5">HAL Implementation Details</th>
   4630           </tr>
   4631           <tr class="entry_cont">
   4632             <td class="entry_details" colspan="5">
   4633               <p>This entry is private to the framework.<wbr/> Fill in
   4634 maxRegions to have this entry be automatically populated.<wbr/></p>
   4635             </td>
   4636           </tr>
   4637 
   4638           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   4639            <!-- end of entry -->
   4640         
   4641                 
   4642           <tr class="entry" id="static_android.control.maxRegionsAwb">
   4643             <td class="entry_name
   4644              " rowspan="5">
   4645               android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Awb
   4646             </td>
   4647             <td class="entry_type">
   4648                 <span class="entry_type_name">int32</span>
   4649 
   4650               <span class="entry_type_visibility"> [public]</span>
   4651 
   4652               <span class="entry_type_synthetic">[synthetic] </span>
   4653 
   4654               <span class="entry_type_hwlevel">[legacy] </span>
   4655 
   4656 
   4657 
   4658 
   4659             </td> <!-- entry_type -->
   4660 
   4661             <td class="entry_description">
   4662               <p>The maximum number of metering regions that can be used by the auto-white balance (AWB)
   4663 routine.<wbr/></p>
   4664             </td>
   4665 
   4666             <td class="entry_units">
   4667             </td>
   4668 
   4669             <td class="entry_range">
   4670               <p>Value will be &gt;= 0.<wbr/></p>
   4671             </td>
   4672 
   4673             <td class="entry_tags">
   4674             </td>
   4675 
   4676           </tr>
   4677           <tr class="entries_header">
   4678             <th class="th_details" colspan="5">Details</th>
   4679           </tr>
   4680           <tr class="entry_cont">
   4681             <td class="entry_details" colspan="5">
   4682               <p>This corresponds to the the maximum allowed number of elements in
   4683 <a href="#controls_android.control.awbRegions">android.<wbr/>control.<wbr/>awb<wbr/>Regions</a>.<wbr/></p>
   4684             </td>
   4685           </tr>
   4686 
   4687           <tr class="entries_header">
   4688             <th class="th_details" colspan="5">HAL Implementation Details</th>
   4689           </tr>
   4690           <tr class="entry_cont">
   4691             <td class="entry_details" colspan="5">
   4692               <p>This entry is private to the framework.<wbr/> Fill in
   4693 maxRegions to have this entry be automatically populated.<wbr/></p>
   4694             </td>
   4695           </tr>
   4696 
   4697           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   4698            <!-- end of entry -->
   4699         
   4700                 
   4701           <tr class="entry" id="static_android.control.maxRegionsAf">
   4702             <td class="entry_name
   4703              " rowspan="5">
   4704               android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Af
   4705             </td>
   4706             <td class="entry_type">
   4707                 <span class="entry_type_name">int32</span>
   4708 
   4709               <span class="entry_type_visibility"> [public]</span>
   4710 
   4711               <span class="entry_type_synthetic">[synthetic] </span>
   4712 
   4713               <span class="entry_type_hwlevel">[legacy] </span>
   4714 
   4715 
   4716 
   4717 
   4718             </td> <!-- entry_type -->
   4719 
   4720             <td class="entry_description">
   4721               <p>The maximum number of metering regions that can be used by the auto-focus (AF) routine.<wbr/></p>
   4722             </td>
   4723 
   4724             <td class="entry_units">
   4725             </td>
   4726 
   4727             <td class="entry_range">
   4728               <p>Value will be &gt;= 0.<wbr/> For FULL-capability devices,<wbr/> this
   4729 value will be &gt;= 1.<wbr/></p>
   4730             </td>
   4731 
   4732             <td class="entry_tags">
   4733             </td>
   4734 
   4735           </tr>
   4736           <tr class="entries_header">
   4737             <th class="th_details" colspan="5">Details</th>
   4738           </tr>
   4739           <tr class="entry_cont">
   4740             <td class="entry_details" colspan="5">
   4741               <p>This corresponds to the the maximum allowed number of elements in
   4742 <a href="#controls_android.control.afRegions">android.<wbr/>control.<wbr/>af<wbr/>Regions</a>.<wbr/></p>
   4743             </td>
   4744           </tr>
   4745 
   4746           <tr class="entries_header">
   4747             <th class="th_details" colspan="5">HAL Implementation Details</th>
   4748           </tr>
   4749           <tr class="entry_cont">
   4750             <td class="entry_details" colspan="5">
   4751               <p>This entry is private to the framework.<wbr/> Fill in
   4752 maxRegions to have this entry be automatically populated.<wbr/></p>
   4753             </td>
   4754           </tr>
   4755 
   4756           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   4757            <!-- end of entry -->
   4758         
   4759                 
   4760           <tr class="entry" id="static_android.control.sceneModeOverrides">
   4761             <td class="entry_name
   4762              " rowspan="5">
   4763               android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides
   4764             </td>
   4765             <td class="entry_type">
   4766                 <span class="entry_type_name">byte</span>
   4767                 <span class="entry_type_container">x</span>
   4768 
   4769                 <span class="entry_type_array">
   4770                   3 x length(availableSceneModes)
   4771                 </span>
   4772               <span class="entry_type_visibility"> [system]</span>
   4773 
   4774 
   4775               <span class="entry_type_hwlevel">[limited] </span>
   4776 
   4777 
   4778 
   4779 
   4780             </td> <!-- entry_type -->
   4781 
   4782             <td class="entry_description">
   4783               <p>Ordered list of auto-exposure,<wbr/> auto-white balance,<wbr/> and auto-focus
   4784 settings to use with each available scene mode.<wbr/></p>
   4785             </td>
   4786 
   4787             <td class="entry_units">
   4788             </td>
   4789 
   4790             <td class="entry_range">
   4791               <p>For each available scene mode,<wbr/> the list must contain three
   4792 entries containing the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
   4793 <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
   4794 by the camera device.<wbr/> The entry order is <code>(aeMode,<wbr/> awbMode,<wbr/> afMode)</code>
   4795 where aeMode has the lowest index position.<wbr/></p>
   4796             </td>
   4797 
   4798             <td class="entry_tags">
   4799               <ul class="entry_tags">
   4800                   <li><a href="#tag_BC">BC</a></li>
   4801               </ul>
   4802             </td>
   4803 
   4804           </tr>
   4805           <tr class="entries_header">
   4806             <th class="th_details" colspan="5">Details</th>
   4807           </tr>
   4808           <tr class="entry_cont">
   4809             <td class="entry_details" colspan="5">
   4810               <p>When a scene mode is enabled,<wbr/> the camera device is expected
   4811 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/>
   4812 and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> with its preferred settings for
   4813 that scene mode.<wbr/></p>
   4814 <p>The order of this list matches that of availableSceneModes,<wbr/>
   4815 with 3 entries for each mode.<wbr/>  The overrides listed
   4816 for FACE_<wbr/>PRIORITY are ignored,<wbr/> since for that
   4817 mode the application-set <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
   4818 <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
   4819 used instead,<wbr/> matching the behavior when <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>
   4820 is set to AUTO.<wbr/> It is recommended that the FACE_<wbr/>PRIORITY
   4821 overrides should be set to 0.<wbr/></p>
   4822 <p>For example,<wbr/> if availableSceneModes contains
   4823 <code>(FACE_<wbr/>PRIORITY,<wbr/> ACTION,<wbr/> NIGHT)</code>,<wbr/>  then the camera framework
   4824 expects sceneModeOverrides to have 9 entries formatted like:
   4825 <code>(0,<wbr/> 0,<wbr/> 0,<wbr/> ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> AUTO,<wbr/> CONTINUOUS_<wbr/>PICTURE,<wbr/>
   4826 ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> INCANDESCENT,<wbr/> AUTO)</code>.<wbr/></p>
   4827             </td>
   4828           </tr>
   4829 
   4830           <tr class="entries_header">
   4831             <th class="th_details" colspan="5">HAL Implementation Details</th>
   4832           </tr>
   4833           <tr class="entry_cont">
   4834             <td class="entry_details" colspan="5">
   4835               <p>To maintain backward compatibility,<wbr/> this list will be made available
   4836 in the static metadata of the camera service.<wbr/>  The camera service will
   4837 use these values to set <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
   4838 <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
   4839 mode other than FACE_<wbr/>PRIORITY.<wbr/></p>
   4840             </td>
   4841           </tr>
   4842 
   4843           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   4844            <!-- end of entry -->
   4845         
   4846                 
   4847           <tr class="entry" id="static_android.control.availableHighSpeedVideoConfigurations">
   4848             <td class="entry_name
   4849              " rowspan="5">
   4850               android.<wbr/>control.<wbr/>available<wbr/>High<wbr/>Speed<wbr/>Video<wbr/>Configurations
   4851             </td>
   4852             <td class="entry_type">
   4853                 <span class="entry_type_name">int32</span>
   4854                 <span class="entry_type_container">x</span>
   4855 
   4856                 <span class="entry_type_array">
   4857                   4 x n
   4858                 </span>
   4859               <span class="entry_type_visibility"> [hidden as highSpeedVideoConfiguration]</span>
   4860 
   4861 
   4862               <span class="entry_type_hwlevel">[limited] </span>
   4863 
   4864 
   4865 
   4866 
   4867             </td> <!-- entry_type -->
   4868 
   4869             <td class="entry_description">
   4870               <p>List of available high speed video size and fps range configurations
   4871 supported by the camera device,<wbr/> in the format of (width,<wbr/> height,<wbr/> fps_<wbr/>min,<wbr/> fps_<wbr/>max).<wbr/></p>
   4872             </td>
   4873 
   4874             <td class="entry_units">
   4875             </td>
   4876 
   4877             <td class="entry_range">
   4878               <p>For each configuration,<wbr/> the fps_<wbr/>max &gt;= 60fps.<wbr/></p>
   4879             </td>
   4880 
   4881             <td class="entry_tags">
   4882               <ul class="entry_tags">
   4883                   <li><a href="#tag_V1">V1</a></li>
   4884               </ul>
   4885             </td>
   4886 
   4887           </tr>
   4888           <tr class="entries_header">
   4889             <th class="th_details" colspan="5">Details</th>
   4890           </tr>
   4891           <tr class="entry_cont">
   4892             <td class="entry_details" colspan="5">
   4893               <p>When HIGH_<wbr/>SPEED_<wbr/>VIDEO is supported in <a href="#static_android.control.availableSceneModes">android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes</a>,<wbr/>
   4894 this metadata will list the supported high speed video size and fps range
   4895 configurations.<wbr/> All the sizes listed in this configuration will be a subset
   4896 of the sizes reported by StreamConfigurationMap#getOutputSizes for processed
   4897 non-stalling formats.<wbr/></p>
   4898 <p>For the high speed video use case,<wbr/> where the application will set
   4899 <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a> to HIGH_<wbr/>SPEED_<wbr/>VIDEO in capture requests,<wbr/> the application must
   4900 select the video size and fps range from this metadata to configure the recording and
   4901 preview streams and setup the recording requests.<wbr/> For example,<wbr/> if the application intends
   4902 to do high speed recording,<wbr/> it can select the maximum size reported by this metadata to
   4903 configure output streams.<wbr/> Once the size is selected,<wbr/> application can filter this metadata
   4904 by selected size and get the supported fps ranges,<wbr/> and use these fps ranges to setup the
   4905 recording requests.<wbr/> Note that for the use case of multiple output streams,<wbr/> application
   4906 must select one unique size from this metadata to use.<wbr/> Otherwise a request error might
   4907 occur.<wbr/></p>
   4908 <p>For normal video recording use case,<wbr/> where some application will NOT set
   4909 <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a> to HIGH_<wbr/>SPEED_<wbr/>VIDEO in capture requests,<wbr/> the fps ranges
   4910 reported in this metadata must not be used to setup capture requests,<wbr/> or it will cause
   4911 request error.<wbr/></p>
   4912             </td>
   4913           </tr>
   4914 
   4915           <tr class="entries_header">
   4916             <th class="th_details" colspan="5">HAL Implementation Details</th>
   4917           </tr>
   4918           <tr class="entry_cont">
   4919             <td class="entry_details" colspan="5">
   4920               <p>All the sizes listed in this configuration will be a subset of the sizes reported by
   4921 <a href="#static_android.scaler.availableStreamConfigurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stream<wbr/>Configurations</a> for processed non-stalling output formats.<wbr/>
   4922 Note that for all high speed video configurations,<wbr/> HAL must be able to support a minimum
   4923 of two streams,<wbr/> though the application might choose to configure just one stream.<wbr/></p>
   4924 <p>Since the HIGH_<wbr/>SPEED_<wbr/>VIDEO mode may be turned on for preview view only case,<wbr/> the preview
   4925 fps is bounded by device refresh rate (e.<wbr/>g.<wbr/> 60fps).<wbr/> For a given resolution,<wbr/> it is
   4926 recommended that this list includes some fps ranges (e.<wbr/>g.<wbr/> [30,<wbr/> 60]) that is suitable
   4927 for preview only streaming case.<wbr/></p>
   4928             </td>
   4929           </tr>
   4930 
   4931           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   4932            <!-- end of entry -->
   4933         
   4934         
   4935 
   4936       <!-- end of kind -->
   4937       </tbody>
   4938       <tr><td colspan="6" class="kind">dynamic</td></tr>
   4939 
   4940       <thead class="entries_header">
   4941         <tr>
   4942           <th class="th_name">Property Name</th>
   4943           <th class="th_type">Type</th>
   4944           <th class="th_description">Description</th>
   4945           <th class="th_units">Units</th>
   4946           <th class="th_range">Range</th>
   4947           <th class="th_tags">Tags</th>
   4948         </tr>
   4949       </thead>
   4950 
   4951       <tbody>
   4952 
   4953         
   4954 
   4955         
   4956 
   4957         
   4958 
   4959         
   4960 
   4961                 
   4962           <tr class="entry" id="dynamic_android.control.aePrecaptureId">
   4963             <td class="entry_name
   4964                 entry_name_deprecated
   4965              " rowspan="3">
   4966               android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Id
   4967             </td>
   4968             <td class="entry_type">
   4969                 <span class="entry_type_name">int32</span>
   4970 
   4971               <span class="entry_type_visibility"> [system]</span>
   4972 
   4973 
   4974 
   4975               <span class="entry_type_deprecated">[deprecated] </span>
   4976 
   4977 
   4978 
   4979             </td> <!-- entry_type -->
   4980 
   4981             <td class="entry_description">
   4982               <p>The ID sent with the latest
   4983 CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING call</p>
   4984             </td>
   4985 
   4986             <td class="entry_units">
   4987             </td>
   4988 
   4989             <td class="entry_range">
   4990               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   4991             </td>
   4992 
   4993             <td class="entry_tags">
   4994             </td>
   4995 
   4996           </tr>
   4997           <tr class="entries_header">
   4998             <th class="th_details" colspan="5">Details</th>
   4999           </tr>
   5000           <tr class="entry_cont">
   5001             <td class="entry_details" colspan="5">
   5002               <p>Must be 0 if no
   5003 CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING trigger received yet
   5004 by HAL.<wbr/> Always updated even if AE algorithm ignores the
   5005 trigger</p>
   5006             </td>
   5007           </tr>
   5008 
   5009 
   5010           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   5011            <!-- end of entry -->
   5012         
   5013                 
   5014           <tr class="entry" id="dynamic_android.control.aeAntibandingMode">
   5015             <td class="entry_name
   5016              " rowspan="5">
   5017               android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode
   5018             </td>
   5019             <td class="entry_type">
   5020                 <span class="entry_type_name entry_type_name_enum">byte</span>
   5021 
   5022               <span class="entry_type_visibility"> [public]</span>
   5023 
   5024 
   5025               <span class="entry_type_hwlevel">[legacy] </span>
   5026 
   5027 
   5028 
   5029                 <ul class="entry_type_enum">
   5030                   <li>
   5031                     <span class="entry_type_enum_name">OFF</span>
   5032                     <span class="entry_type_enum_notes"><p>The camera device will not adjust exposure duration to
   5033 avoid banding problems.<wbr/></p></span>
   5034                   </li>
   5035                   <li>
   5036                     <span class="entry_type_enum_name">50HZ</span>
   5037                     <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
   5038 avoid banding problems with 50Hz illumination sources.<wbr/></p></span>
   5039                   </li>
   5040                   <li>
   5041                     <span class="entry_type_enum_name">60HZ</span>
   5042                     <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
   5043 avoid banding problems with 60Hz illumination
   5044 sources.<wbr/></p></span>
   5045                   </li>
   5046                   <li>
   5047                     <span class="entry_type_enum_name">AUTO</span>
   5048                     <span class="entry_type_enum_notes"><p>The camera device will automatically adapt its
   5049 antibanding routine to the current illumination
   5050 condition.<wbr/> This is the default mode if AUTO is
   5051 available on given camera device.<wbr/></p></span>
   5052                   </li>
   5053                 </ul>
   5054 
   5055             </td> <!-- entry_type -->
   5056 
   5057             <td class="entry_description">
   5058               <p>The desired setting for the camera device's auto-exposure
   5059 algorithm's antibanding compensation.<wbr/></p>
   5060             </td>
   5061 
   5062             <td class="entry_units">
   5063             </td>
   5064 
   5065             <td class="entry_range">
   5066               <p><a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a></p>
   5067             </td>
   5068 
   5069             <td class="entry_tags">
   5070               <ul class="entry_tags">
   5071                   <li><a href="#tag_BC">BC</a></li>
   5072               </ul>
   5073             </td>
   5074 
   5075           </tr>
   5076           <tr class="entries_header">
   5077             <th class="th_details" colspan="5">Details</th>
   5078           </tr>
   5079           <tr class="entry_cont">
   5080             <td class="entry_details" colspan="5">
   5081               <p>Some kinds of lighting fixtures,<wbr/> such as some fluorescent
   5082 lights,<wbr/> flicker at the rate of the power supply frequency
   5083 (60Hz or 50Hz,<wbr/> depending on country).<wbr/> While this is
   5084 typically not noticeable to a person,<wbr/> it can be visible to
   5085 a camera device.<wbr/> If a camera sets its exposure time to the
   5086 wrong value,<wbr/> the flicker may become visible in the
   5087 viewfinder as flicker or in a final captured image,<wbr/> as a
   5088 set of variable-brightness bands across the image.<wbr/></p>
   5089 <p>Therefore,<wbr/> the auto-exposure routines of camera devices
   5090 include antibanding routines that ensure that the chosen
   5091 exposure value will not cause such banding.<wbr/> The choice of
   5092 exposure time depends on the rate of flicker,<wbr/> which the
   5093 camera device can detect automatically,<wbr/> or the expected
   5094 rate can be selected by the application using this
   5095 control.<wbr/></p>
   5096 <p>A given camera device may not support all of the possible
   5097 options for the antibanding mode.<wbr/> The
   5098 <a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a> key contains
   5099 the available modes for a given camera device.<wbr/></p>
   5100 <p>AUTO mode is the default if it is available on given
   5101 camera device.<wbr/> When AUTO mode is not available,<wbr/> the
   5102 default will be either 50HZ or 60HZ,<wbr/> and both 50HZ
   5103 and 60HZ will be available.<wbr/></p>
   5104 <p>If manual exposure control is enabled (by setting
   5105 <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/>
   5106 then this setting has no effect,<wbr/> and the application must
   5107 ensure it selects exposure times that do not cause banding
   5108 issues.<wbr/> The <a href="#dynamic_android.statistics.sceneFlicker">android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker</a> key can assist
   5109 the application in this.<wbr/></p>
   5110             </td>
   5111           </tr>
   5112 
   5113           <tr class="entries_header">
   5114             <th class="th_details" colspan="5">HAL Implementation Details</th>
   5115           </tr>
   5116           <tr class="entry_cont">
   5117             <td class="entry_details" colspan="5">
   5118               <p>For all capture request templates,<wbr/> this field must be set
   5119 to AUTO if AUTO mode is available.<wbr/> If AUTO is not available,<wbr/>
   5120 the default must be either 50HZ or 60HZ,<wbr/> and both 50HZ and
   5121 60HZ must be available.<wbr/></p>
   5122 <p>If manual exposure control is enabled (by setting
   5123 <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/>
   5124 then the exposure values provided by the application must not be
   5125 adjusted for antibanding.<wbr/></p>
   5126             </td>
   5127           </tr>
   5128 
   5129           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   5130            <!-- end of entry -->
   5131         
   5132                 
   5133           <tr class="entry" id="dynamic_android.control.aeExposureCompensation">
   5134             <td class="entry_name
   5135              " rowspan="3">
   5136               android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation
   5137             </td>
   5138             <td class="entry_type">
   5139                 <span class="entry_type_name">int32</span>
   5140 
   5141               <span class="entry_type_visibility"> [public]</span>
   5142 
   5143 
   5144               <span class="entry_type_hwlevel">[legacy] </span>
   5145 
   5146 
   5147 
   5148 
   5149             </td> <!-- entry_type -->
   5150 
   5151             <td class="entry_description">
   5152               <p>Adjustment to auto-exposure (AE) target image
   5153 brightness.<wbr/></p>
   5154             </td>
   5155 
   5156             <td class="entry_units">
   5157               Compensation steps
   5158             </td>
   5159 
   5160             <td class="entry_range">
   5161               <p><a href="#static_android.control.aeCompensationRange">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range</a></p>
   5162             </td>
   5163 
   5164             <td class="entry_tags">
   5165               <ul class="entry_tags">
   5166                   <li><a href="#tag_BC">BC</a></li>
   5167               </ul>
   5168             </td>
   5169 
   5170           </tr>
   5171           <tr class="entries_header">
   5172             <th class="th_details" colspan="5">Details</th>
   5173           </tr>
   5174           <tr class="entry_cont">
   5175             <td class="entry_details" colspan="5">
   5176               <p>The adjustment is measured as a count of steps,<wbr/> with the
   5177 step size defined by <a href="#static_android.control.aeCompensationStep">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step</a> and the
   5178 allowed range by <a href="#static_android.control.aeCompensationRange">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range</a>.<wbr/></p>
   5179 <p>For example,<wbr/> if the exposure value (EV) step is 0.<wbr/>333,<wbr/> '6'
   5180 will mean an exposure compensation of +2 EV; -3 will mean an
   5181 exposure compensation of -1 EV.<wbr/> One EV represents a doubling
   5182 of image brightness.<wbr/> Note that this control will only be
   5183 effective if <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> <code>!=</code> OFF.<wbr/> This control
   5184 will take effect even when <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> <code>== true</code>.<wbr/></p>
   5185 <p>In the event of exposure compensation value being changed,<wbr/> camera device
   5186 may take several frames to reach the newly requested exposure target.<wbr/>
   5187 During that time,<wbr/> <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> field will be in the SEARCHING
   5188 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
   5189 change from SEARCHING to either CONVERGED,<wbr/> LOCKED (if AE lock is enabled),<wbr/> or
   5190 FLASH_<wbr/>REQUIRED (if the scene is too dark for still capture).<wbr/></p>
   5191             </td>
   5192           </tr>
   5193 
   5194 
   5195           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   5196            <!-- end of entry -->
   5197         
   5198                 
   5199           <tr class="entry" id="dynamic_android.control.aeLock">
   5200             <td class="entry_name
   5201              " rowspan="3">
   5202               android.<wbr/>control.<wbr/>ae<wbr/>Lock
   5203             </td>
   5204             <td class="entry_type">
   5205                 <span class="entry_type_name entry_type_name_enum">byte</span>
   5206 
   5207               <span class="entry_type_visibility"> [public as boolean]</span>
   5208 
   5209 
   5210               <span class="entry_type_hwlevel">[legacy] </span>
   5211 
   5212 
   5213 
   5214                 <ul class="entry_type_enum">
   5215                   <li>
   5216                     <span class="entry_type_enum_name">OFF</span>
   5217                     <span class="entry_type_enum_notes"><p>Auto-exposure lock is disabled; the AE algorithm
   5218 is free to update its parameters.<wbr/></p></span>
   5219                   </li>
   5220                   <li>
   5221                     <span class="entry_type_enum_name">ON</span>
   5222                     <span class="entry_type_enum_notes"><p>Auto-exposure lock is enabled; the AE algorithm
   5223 must not update the exposure and sensitivity parameters
   5224 while the lock is active.<wbr/></p>
   5225 <p><a href="#controls_android.control.aeExposureCompensation">android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation</a> setting changes
   5226 will still take effect while auto-exposure is locked.<wbr/></p>
   5227 <p>Some rare LEGACY devices may not support
   5228 this,<wbr/> in which case the value will always be overridden to OFF.<wbr/></p></span>
   5229                   </li>
   5230                 </ul>
   5231 
   5232             </td> <!-- entry_type -->
   5233 
   5234             <td class="entry_description">
   5235               <p>Whether auto-exposure (AE) is currently locked to its latest
   5236 calculated values.<wbr/></p>
   5237             </td>
   5238 
   5239             <td class="entry_units">
   5240             </td>
   5241 
   5242             <td class="entry_range">
   5243             </td>
   5244 
   5245             <td class="entry_tags">
   5246               <ul class="entry_tags">
   5247                   <li><a href="#tag_BC">BC</a></li>
   5248               </ul>
   5249             </td>
   5250 
   5251           </tr>
   5252           <tr class="entries_header">
   5253             <th class="th_details" colspan="5">Details</th>
   5254           </tr>
   5255           <tr class="entry_cont">
   5256             <td class="entry_details" colspan="5">
   5257               <p>When set to <code>true</code> (ON),<wbr/> the AE algorithm is locked to its latest parameters,<wbr/>
   5258 and will not change exposure settings until the lock is set to <code>false</code> (OFF).<wbr/></p>
   5259 <p>Note that even when AE is locked,<wbr/> the flash may be fired if
   5260 the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is ON_<wbr/>AUTO_<wbr/>FLASH /<wbr/>
   5261 ON_<wbr/>ALWAYS_<wbr/>FLASH /<wbr/> ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE.<wbr/></p>
   5262 <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
   5263 is ON,<wbr/> the camera device will still adjust its exposure value.<wbr/></p>
   5264 <p>If AE precapture is triggered (see <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>)
   5265 when AE is already locked,<wbr/> the camera device will not change the exposure time
   5266 (<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>)
   5267 parameters.<wbr/> The flash may be fired if the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>
   5268 is ON_<wbr/>AUTO_<wbr/>FLASH/<wbr/>ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE and the scene is too dark.<wbr/> If the
   5269 <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/></p>
   5270 <p>Since the camera device has a pipeline of in-flight requests,<wbr/> the settings that
   5271 get locked do not necessarily correspond to the settings that were present in the
   5272 latest capture result received from the camera device,<wbr/> since additional captures
   5273 and AE updates may have occurred even before the result was sent out.<wbr/> If an
   5274 application is switching between automatic and manual control and wishes to eliminate
   5275 any flicker during the switch,<wbr/> the following procedure is recommended:</p>
   5276 <ol>
   5277 <li>Starting in auto-AE mode:</li>
   5278 <li>Lock AE</li>
   5279 <li>Wait for the first result to be output that has the AE locked</li>
   5280 <li>Copy exposure settings from that result into a request,<wbr/> set the request to manual AE</li>
   5281 <li>Submit the capture request,<wbr/> proceed to run manual AE as desired.<wbr/></li>
   5282 </ol>
   5283 <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>
   5284             </td>
   5285           </tr>
   5286 
   5287 
   5288           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   5289            <!-- end of entry -->
   5290         
   5291                 
   5292           <tr class="entry" id="dynamic_android.control.aeMode">
   5293             <td class="entry_name
   5294              " rowspan="3">
   5295               android.<wbr/>control.<wbr/>ae<wbr/>Mode
   5296             </td>
   5297             <td class="entry_type">
   5298                 <span class="entry_type_name entry_type_name_enum">byte</span>
   5299 
   5300               <span class="entry_type_visibility"> [public]</span>
   5301 
   5302 
   5303               <span class="entry_type_hwlevel">[legacy] </span>
   5304 
   5305 
   5306 
   5307                 <ul class="entry_type_enum">
   5308                   <li>
   5309                     <span class="entry_type_enum_name">OFF</span>
   5310                     <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled.<wbr/></p>
   5311 <p>The application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
   5312 <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
   5313 <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera
   5314 device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's
   5315 a flash unit for this camera device.<wbr/></p>
   5316 <p>Note that auto-white balance (AWB) and auto-focus (AF)
   5317 behavior is device dependent when AE is in OFF mode.<wbr/>
   5318 To have consistent behavior across different devices,<wbr/>
   5319 it is recommended to either set AWB and AF to OFF mode
   5320 or lock AWB and AF before setting AE to OFF.<wbr/>
   5321 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/>
   5322 <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>
   5323 for more details.<wbr/></p>
   5324 <p>LEGACY devices do not support the OFF mode and will
   5325 override attempts to use this value to ON.<wbr/></p></span>
   5326                   </li>
   5327                   <li>
   5328                     <span class="entry_type_enum_name">ON</span>
   5329                     <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
   5330 with no flash control.<wbr/></p>
   5331 <p>The application's values for
   5332 <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
   5333 <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
   5334 <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The
   5335 application has control over the various
   5336 android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
   5337                   </li>
   5338                   <li>
   5339                     <span class="entry_type_enum_name">ON_AUTO_FLASH</span>
   5340                     <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
   5341 the camera's flash unit,<wbr/> firing it in low-light
   5342 conditions.<wbr/></p>
   5343 <p>The flash may be fired during a precapture sequence
   5344 (triggered by <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and
   5345 may be fired for captures for which the
   5346 <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
   5347 STILL_<wbr/>CAPTURE</p></span>
   5348                   </li>
   5349                   <li>
   5350                     <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span>
   5351                     <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
   5352 the camera's flash unit,<wbr/> always firing it for still
   5353 captures.<wbr/></p>
   5354 <p>The flash may be fired during a precapture sequence
   5355 (triggered by <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and
   5356 will always be fired for captures for which the
   5357 <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
   5358 STILL_<wbr/>CAPTURE</p></span>
   5359                   </li>
   5360                   <li>
   5361                     <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span>
   5362                     <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
   5363 reduction.<wbr/></p>
   5364 <p>If deemed necessary by the camera device,<wbr/> a red eye
   5365 reduction flash will fire during the precapture
   5366 sequence.<wbr/></p></span>
   5367                   </li>
   5368                 </ul>
   5369 
   5370             </td> <!-- entry_type -->
   5371 
   5372             <td class="entry_description">
   5373               <p>The desired mode for the camera device's
   5374 auto-exposure routine.<wbr/></p>
   5375             </td>
   5376 
   5377             <td class="entry_units">
   5378             </td>
   5379 
   5380             <td class="entry_range">
   5381               <p><a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a></p>
   5382             </td>
   5383 
   5384             <td class="entry_tags">
   5385               <ul class="entry_tags">
   5386                   <li><a href="#tag_BC">BC</a></li>
   5387               </ul>
   5388             </td>
   5389 
   5390           </tr>
   5391           <tr class="entries_header">
   5392             <th class="th_details" colspan="5">Details</th>
   5393           </tr>
   5394           <tr class="entry_cont">
   5395             <td class="entry_details" colspan="5">
   5396               <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
   5397 AUTO.<wbr/></p>
   5398 <p>When set to any of the ON modes,<wbr/> the camera device's
   5399 auto-exposure routine is enabled,<wbr/> overriding the
   5400 application's selected exposure time,<wbr/> sensor sensitivity,<wbr/>
   5401 and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
   5402 <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
   5403 <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes
   5404 is selected,<wbr/> the camera device's flash unit controls are
   5405 also overridden.<wbr/></p>
   5406 <p>The FLASH modes are only available if the camera device
   5407 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>
   5408 <p>If flash TORCH mode is desired,<wbr/> this field must be set to
   5409 ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p>
   5410 <p>When set to any of the ON modes,<wbr/> the values chosen by the
   5411 camera device auto-exposure routine for the overridden
   5412 fields for a given capture will be available in its
   5413 CaptureResult.<wbr/></p>
   5414             </td>
   5415           </tr>
   5416 
   5417 
   5418           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   5419            <!-- end of entry -->
   5420         
   5421                 
   5422           <tr class="entry" id="dynamic_android.control.aeRegions">
   5423             <td class="entry_name
   5424              " rowspan="5">
   5425               android.<wbr/>control.<wbr/>ae<wbr/>Regions
   5426             </td>
   5427             <td class="entry_type">
   5428                 <span class="entry_type_name">int32</span>
   5429                 <span class="entry_type_container">x</span>
   5430 
   5431                 <span class="entry_type_array">
   5432                   5 x area_count
   5433                 </span>
   5434               <span class="entry_type_visibility"> [public as meteringRectangle]</span>
   5435 
   5436 
   5437 
   5438 
   5439 
   5440 
   5441             </td> <!-- entry_type -->
   5442 
   5443             <td class="entry_description">
   5444               <p>List of metering areas to use for auto-exposure adjustment.<wbr/></p>
   5445             </td>
   5446 
   5447             <td class="entry_units">
   5448               Pixel coordinates within android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
   5449             </td>
   5450 
   5451             <td class="entry_range">
   5452               <p>Coordinates must be between <code>[(0,<wbr/>0),<wbr/> (width,<wbr/> height))</code> of
   5453 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></p>
   5454             </td>
   5455 
   5456             <td class="entry_tags">
   5457               <ul class="entry_tags">
   5458                   <li><a href="#tag_BC">BC</a></li>
   5459               </ul>
   5460             </td>
   5461 
   5462           </tr>
   5463           <tr class="entries_header">
   5464             <th class="th_details" colspan="5">Details</th>
   5465           </tr>
   5466           <tr class="entry_cont">
   5467             <td class="entry_details" colspan="5">
   5468               <p>Not available if <a href="#static_android.control.maxRegionsAe">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Ae</a> is 0.<wbr/>
   5469 Otherwise will always be present.<wbr/></p>
   5470 <p>The maximum number of regions supported by the device is determined by the value
   5471 of <a href="#static_android.control.maxRegionsAe">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Ae</a>.<wbr/></p>
   5472 <p>The coordinate system is based on the active pixel array,<wbr/>
   5473 with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
   5474 (<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
   5475 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
   5476 bottom-right pixel in the active pixel array.<wbr/></p>
   5477 <p>The weight must be within <code>[0,<wbr/> 1000]</code>,<wbr/> and represents a weight
   5478 for every pixel in the area.<wbr/> This means that a large metering area
   5479 with the same weight as a smaller area will have more effect in
   5480 the metering result.<wbr/> Metering areas can partially overlap and the
   5481 camera device will add the weights in the overlap region.<wbr/></p>
   5482 <p>The weights are relative to weights of other exposure metering regions,<wbr/> so if only one
   5483 region is used,<wbr/> all non-zero weights will have the same effect.<wbr/> A region with 0
   5484 weight is ignored.<wbr/></p>
   5485 <p>If all regions have 0 weight,<wbr/> then no specific metering area needs to be used by the
   5486 camera device.<wbr/></p>
   5487 <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
   5488 capture result metadata,<wbr/> the camera device will ignore the sections outside the crop
   5489 region and output only the intersection rectangle as the metering region in the result
   5490 metadata.<wbr/>  If the region is entirely outside the crop region,<wbr/> it will be ignored and
   5491 not reported in the result metadata.<wbr/></p>
   5492             </td>
   5493           </tr>
   5494 
   5495           <tr class="entries_header">
   5496             <th class="th_details" colspan="5">HAL Implementation Details</th>
   5497           </tr>
   5498           <tr class="entry_cont">
   5499             <td class="entry_details" colspan="5">
   5500               <p>The HAL level representation of MeteringRectangle[] is a
   5501 int[5 * area_<wbr/>count].<wbr/>
   5502 Every five elements represent a metering region of
   5503 (xmin,<wbr/> ymin,<wbr/> xmax,<wbr/> ymax,<wbr/> weight).<wbr/>
   5504 The rectangle is defined to be inclusive on xmin and ymin,<wbr/> but
   5505 exclusive on xmax and ymax.<wbr/></p>
   5506             </td>
   5507           </tr>
   5508 
   5509           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   5510            <!-- end of entry -->
   5511         
   5512                 
   5513           <tr class="entry" id="dynamic_android.control.aeTargetFpsRange">
   5514             <td class="entry_name
   5515              " rowspan="3">
   5516               android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range
   5517             </td>
   5518             <td class="entry_type">
   5519                 <span class="entry_type_name">int32</span>
   5520                 <span class="entry_type_container">x</span>
   5521 
   5522                 <span class="entry_type_array">
   5523                   2
   5524                 </span>
   5525               <span class="entry_type_visibility"> [public as rangeInt]</span>
   5526 
   5527 
   5528               <span class="entry_type_hwlevel">[legacy] </span>
   5529 
   5530 
   5531 
   5532 
   5533             </td> <!-- entry_type -->
   5534 
   5535             <td class="entry_description">
   5536               <p>Range over which the auto-exposure routine can
   5537 adjust the capture frame rate to maintain good
   5538 exposure.<wbr/></p>
   5539             </td>
   5540 
   5541             <td class="entry_units">
   5542               Frames per second (FPS)
   5543             </td>
   5544 
   5545             <td class="entry_range">
   5546               <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>
   5547             </td>
   5548 
   5549             <td class="entry_tags">
   5550               <ul class="entry_tags">
   5551                   <li><a href="#tag_BC">BC</a></li>
   5552               </ul>
   5553             </td>
   5554 
   5555           </tr>
   5556           <tr class="entries_header">
   5557             <th class="th_details" colspan="5">Details</th>
   5558           </tr>
   5559           <tr class="entry_cont">
   5560             <td class="entry_details" colspan="5">
   5561               <p>Only constrains auto-exposure (AE) algorithm,<wbr/> not
   5562 manual control of <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a> and
   5563 <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>.<wbr/></p>
   5564             </td>
   5565           </tr>
   5566 
   5567 
   5568           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   5569            <!-- end of entry -->
   5570         
   5571                 
   5572           <tr class="entry" id="dynamic_android.control.aePrecaptureTrigger">
   5573             <td class="entry_name
   5574              " rowspan="3">
   5575               android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger
   5576             </td>
   5577             <td class="entry_type">
   5578                 <span class="entry_type_name entry_type_name_enum">byte</span>
   5579 
   5580               <span class="entry_type_visibility"> [public]</span>
   5581 
   5582 
   5583               <span class="entry_type_hwlevel">[limited] </span>
   5584 
   5585 
   5586 
   5587                 <ul class="entry_type_enum">
   5588                   <li>
   5589                     <span class="entry_type_enum_name">IDLE</span>
   5590                     <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
   5591                   </li>
   5592                   <li>
   5593                     <span class="entry_type_enum_name">START</span>
   5594                     <span class="entry_type_enum_notes"><p>The precapture metering sequence will be started
   5595 by the camera device.<wbr/></p>
   5596 <p>The exact effect of the precapture trigger depends on
   5597 the current AE mode and state.<wbr/></p></span>
   5598                   </li>
   5599                 </ul>
   5600 
   5601             </td> <!-- entry_type -->
   5602 
   5603             <td class="entry_description">
   5604               <p>Whether the camera device will trigger a precapture
   5605 metering sequence when it processes this request.<wbr/></p>
   5606             </td>
   5607 
   5608             <td class="entry_units">
   5609             </td>
   5610 
   5611             <td class="entry_range">
   5612             </td>
   5613 
   5614             <td class="entry_tags">
   5615               <ul class="entry_tags">
   5616                   <li><a href="#tag_BC">BC</a></li>
   5617               </ul>
   5618             </td>
   5619 
   5620           </tr>
   5621           <tr class="entries_header">
   5622             <th class="th_details" colspan="5">Details</th>
   5623           </tr>
   5624           <tr class="entry_cont">
   5625             <td class="entry_details" colspan="5">
   5626               <p>This entry is normally set to IDLE,<wbr/> or is not
   5627 included at all in the request settings.<wbr/> When included and
   5628 set to START,<wbr/> the camera device will trigger the auto-exposure (AE)
   5629 precapture metering sequence.<wbr/></p>
   5630 <p>The precapture sequence should be triggered before starting a
   5631 high-quality still capture for final metering decisions to
   5632 be made,<wbr/> and for firing pre-capture flash pulses to estimate
   5633 scene brightness and required final capture flash power,<wbr/> when
   5634 the flash is enabled.<wbr/></p>
   5635 <p>Normally,<wbr/> this entry should be set to START for only a
   5636 single request,<wbr/> and the application should wait until the
   5637 sequence completes before starting a new one.<wbr/></p>
   5638 <p>When a precapture metering sequence is finished,<wbr/> the camera device
   5639 may lock the auto-exposure routine internally to be able to accurately expose the
   5640 subsequent still capture image (<code><a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> == STILL_<wbr/>CAPTURE</code>).<wbr/>
   5641 For this case,<wbr/> the AE may not resume normal scan if no subsequent still capture is
   5642 submitted.<wbr/> To ensure that the AE routine restarts normal scan,<wbr/> the application should
   5643 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
   5644 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
   5645 still capture request after the precapture sequence completes.<wbr/></p>
   5646 <p>The exact effect of auto-exposure (AE) precapture trigger
   5647 depends on the current AE mode and state; see
   5648 <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> for AE precapture state transition
   5649 details.<wbr/></p>
   5650 <p>On LEGACY-level devices,<wbr/> the precapture trigger is not supported;
   5651 capturing a high-resolution JPEG image will automatically trigger a
   5652 precapture sequence before the high-resolution capture,<wbr/> including
   5653 potentially firing a pre-capture flash.<wbr/></p>
   5654             </td>
   5655           </tr>
   5656 
   5657 
   5658           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   5659            <!-- end of entry -->
   5660         
   5661                 
   5662           <tr class="entry" id="dynamic_android.control.aeState">
   5663             <td class="entry_name
   5664              " rowspan="3">
   5665               android.<wbr/>control.<wbr/>ae<wbr/>State
   5666             </td>
   5667             <td class="entry_type">
   5668                 <span class="entry_type_name entry_type_name_enum">byte</span>
   5669 
   5670               <span class="entry_type_visibility"> [public]</span>
   5671 
   5672 
   5673               <span class="entry_type_hwlevel">[limited] </span>
   5674 
   5675 
   5676 
   5677                 <ul class="entry_type_enum">
   5678                   <li>
   5679                     <span class="entry_type_enum_name">INACTIVE</span>
   5680                     <span class="entry_type_enum_notes"><p>AE is off or recently reset.<wbr/></p>
   5681 <p>When a camera device is opened,<wbr/> it starts in
   5682 this state.<wbr/> This is a transient state,<wbr/> the camera device may skip reporting
   5683 this state in capture result.<wbr/></p></span>
   5684                   </li>
   5685                   <li>
   5686                     <span class="entry_type_enum_name">SEARCHING</span>
   5687                     <span class="entry_type_enum_notes"><p>AE doesn't yet have a good set of control values
   5688 for the current scene.<wbr/></p>
   5689 <p>This is a transient state,<wbr/> the camera device may skip
   5690 reporting this state in capture result.<wbr/></p></span>
   5691                   </li>
   5692                   <li>
   5693                     <span class="entry_type_enum_name">CONVERGED</span>
   5694                     <span class="entry_type_enum_notes"><p>AE has a good set of control values for the
   5695 current scene.<wbr/></p></span>
   5696                   </li>
   5697                   <li>
   5698                     <span class="entry_type_enum_name">LOCKED</span>
   5699                     <span class="entry_type_enum_notes"><p>AE has been locked.<wbr/></p></span>
   5700                   </li>
   5701                   <li>
   5702                     <span class="entry_type_enum_name">FLASH_REQUIRED</span>
   5703                     <span class="entry_type_enum_notes"><p>AE has a good set of control values,<wbr/> but flash
   5704 needs to be fired for good quality still
   5705 capture.<wbr/></p></span>
   5706                   </li>
   5707                   <li>
   5708                     <span class="entry_type_enum_name">PRECAPTURE</span>
   5709                     <span class="entry_type_enum_notes"><p>AE has been asked to do a precapture sequence
   5710 and is currently executing it.<wbr/></p>
   5711 <p>Precapture can be triggered through setting
   5712 <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> to START.<wbr/></p>
   5713 <p>Once PRECAPTURE completes,<wbr/> AE will transition to CONVERGED
   5714 or FLASH_<wbr/>REQUIRED as appropriate.<wbr/> This is a transient
   5715 state,<wbr/> the camera device may skip reporting this state in
   5716 capture result.<wbr/></p></span>
   5717                   </li>
   5718                 </ul>
   5719 
   5720             </td> <!-- entry_type -->
   5721 
   5722             <td class="entry_description">
   5723               <p>Current state of the auto-exposure (AE) algorithm.<wbr/></p>
   5724             </td>
   5725 
   5726             <td class="entry_units">
   5727             </td>
   5728 
   5729             <td class="entry_range">
   5730             </td>
   5731 
   5732             <td class="entry_tags">
   5733             </td>
   5734 
   5735           </tr>
   5736           <tr class="entries_header">
   5737             <th class="th_details" colspan="5">Details</th>
   5738           </tr>
   5739           <tr class="entry_cont">
   5740             <td class="entry_details" colspan="5">
   5741               <p>Switching between or enabling AE modes (<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>) always
   5742 resets the AE state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
   5743 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
   5744 the algorithm states to INACTIVE.<wbr/></p>
   5745 <p>The camera device can do several state transitions between two results,<wbr/> if it is
   5746 allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
   5747 seen in a result.<wbr/></p>
   5748 <p>The state in the result is the state for this image (in sync with this image): if
   5749 AE state becomes CONVERGED,<wbr/> then the image data associated with this result should
   5750 be good to use.<wbr/></p>
   5751 <p>Below are state transition tables for different AE modes.<wbr/></p>
   5752 <table>
   5753 <thead>
   5754 <tr>
   5755 <th align="center">State</th>
   5756 <th align="center">Transition Cause</th>
   5757 <th align="center">New State</th>
   5758 <th align="center">Notes</th>
   5759 </tr>
   5760 </thead>
   5761 <tbody>
   5762 <tr>
   5763 <td align="center">INACTIVE</td>
   5764 <td align="center"></td>
   5765 <td align="center">INACTIVE</td>
   5766 <td align="center">Camera device auto exposure algorithm is disabled</td>
   5767 </tr>
   5768 </tbody>
   5769 </table>
   5770 <p>When <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is AE_<wbr/>MODE_<wbr/>ON_<wbr/>*:</p>
   5771 <table>
   5772 <thead>
   5773 <tr>
   5774 <th align="center">State</th>
   5775 <th align="center">Transition Cause</th>
   5776 <th align="center">New State</th>
   5777 <th align="center">Notes</th>
   5778 </tr>
   5779 </thead>
   5780 <tbody>
   5781 <tr>
   5782 <td align="center">INACTIVE</td>
   5783 <td align="center">Camera device initiates AE scan</td>
   5784 <td align="center">SEARCHING</td>
   5785 <td align="center">Values changing</td>
   5786 </tr>
   5787 <tr>
   5788 <td align="center">INACTIVE</td>
   5789 <td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
   5790 <td align="center">LOCKED</td>
   5791 <td align="center">Values locked</td>
   5792 </tr>
   5793 <tr>
   5794 <td align="center">SEARCHING</td>
   5795 <td align="center">Camera device finishes AE scan</td>
   5796 <td align="center">CONVERGED</td>
   5797 <td align="center">Good values,<wbr/> not changing</td>
   5798 </tr>
   5799 <tr>
   5800 <td align="center">SEARCHING</td>
   5801 <td align="center">Camera device finishes AE scan</td>
   5802 <td align="center">FLASH_<wbr/>REQUIRED</td>
   5803 <td align="center">Converged but too dark w/<wbr/>o flash</td>
   5804 </tr>
   5805 <tr>
   5806 <td align="center">SEARCHING</td>
   5807 <td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
   5808 <td align="center">LOCKED</td>
   5809 <td align="center">Values locked</td>
   5810 </tr>
   5811 <tr>
   5812 <td align="center">CONVERGED</td>
   5813 <td align="center">Camera device initiates AE scan</td>
   5814 <td align="center">SEARCHING</td>
   5815 <td align="center">Values changing</td>
   5816 </tr>
   5817 <tr>
   5818 <td align="center">CONVERGED</td>
   5819 <td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
   5820 <td align="center">LOCKED</td>
   5821 <td align="center">Values locked</td>
   5822 </tr>
   5823 <tr>
   5824 <td align="center">FLASH_<wbr/>REQUIRED</td>
   5825 <td align="center">Camera device initiates AE scan</td>
   5826 <td align="center">SEARCHING</td>
   5827 <td align="center">Values changing</td>
   5828 </tr>
   5829 <tr>
   5830 <td align="center">FLASH_<wbr/>REQUIRED</td>
   5831 <td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
   5832 <td align="center">LOCKED</td>
   5833 <td align="center">Values locked</td>
   5834 </tr>
   5835 <tr>
   5836 <td align="center">LOCKED</td>
   5837 <td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
   5838 <td align="center">SEARCHING</td>
   5839 <td align="center">Values not good after unlock</td>
   5840 </tr>
   5841 <tr>
   5842 <td align="center">LOCKED</td>
   5843 <td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
   5844 <td align="center">CONVERGED</td>
   5845 <td align="center">Values good after unlock</td>
   5846 </tr>
   5847 <tr>
   5848 <td align="center">LOCKED</td>
   5849 <td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
   5850 <td align="center">FLASH_<wbr/>REQUIRED</td>
   5851 <td align="center">Exposure good,<wbr/> but too dark</td>
   5852 </tr>
   5853 <tr>
   5854 <td align="center">PRECAPTURE</td>
   5855 <td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
   5856 <td align="center">CONVERGED</td>
   5857 <td align="center">Ready for high-quality capture</td>
   5858 </tr>
   5859 <tr>
   5860 <td align="center">PRECAPTURE</td>
   5861 <td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
   5862 <td align="center">LOCKED</td>
   5863 <td align="center">Ready for high-quality capture</td>
   5864 </tr>
   5865 <tr>
   5866 <td align="center">Any state</td>
   5867 <td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is START</td>
   5868 <td align="center">PRECAPTURE</td>
   5869 <td align="center">Start AE precapture metering sequence</td>
   5870 </tr>
   5871 </tbody>
   5872 </table>
   5873 <p>For the above table,<wbr/> the camera device may skip reporting any state changes that happen
   5874 without application intervention (i.<wbr/>e.<wbr/> mode switch,<wbr/> trigger,<wbr/> locking).<wbr/> Any state that
   5875 can be skipped in that manner is called a transient state.<wbr/></p>
   5876 <p>For example,<wbr/> for above AE modes (AE_<wbr/>MODE_<wbr/>ON_<wbr/>*),<wbr/> in addition to the state transitions
   5877 listed in above table,<wbr/> it is also legal for the camera device to skip one or more
   5878 transient states between two results.<wbr/> See below table for examples:</p>
   5879 <table>
   5880 <thead>
   5881 <tr>
   5882 <th align="center">State</th>
   5883 <th align="center">Transition Cause</th>
   5884 <th align="center">New State</th>
   5885 <th align="center">Notes</th>
   5886 </tr>
   5887 </thead>
   5888 <tbody>
   5889 <tr>
   5890 <td align="center">INACTIVE</td>
   5891 <td align="center">Camera device finished AE scan</td>
   5892 <td align="center">CONVERGED</td>
   5893 <td align="center">Values are already good,<wbr/> transient states are skipped by camera device.<wbr/></td>
   5894 </tr>
   5895 <tr>
   5896 <td align="center">Any state</td>
   5897 <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>
   5898 <td align="center">FLASH_<wbr/>REQUIRED</td>
   5899 <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>
   5900 </tr>
   5901 <tr>
   5902 <td align="center">Any state</td>
   5903 <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>
   5904 <td align="center">CONVERGED</td>
   5905 <td align="center">Converged after a precapture sequence,<wbr/> transient states are skipped by camera device.<wbr/></td>
   5906 </tr>
   5907 <tr>
   5908 <td align="center">CONVERGED</td>
   5909 <td align="center">Camera device finished AE scan</td>
   5910 <td align="center">FLASH_<wbr/>REQUIRED</td>
   5911 <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>
   5912 </tr>
   5913 <tr>
   5914 <td align="center">FLASH_<wbr/>REQUIRED</td>
   5915 <td align="center">Camera device finished AE scan</td>
   5916 <td align="center">CONVERGED</td>
   5917 <td align="center">Converged after a new scan,<wbr/> transient states are skipped by camera device.<wbr/></td>
   5918 </tr>
   5919 </tbody>
   5920 </table>
   5921             </td>
   5922           </tr>
   5923 
   5924 
   5925           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   5926            <!-- end of entry -->
   5927         
   5928                 
   5929           <tr class="entry" id="dynamic_android.control.afMode">
   5930             <td class="entry_name
   5931              " rowspan="5">
   5932               android.<wbr/>control.<wbr/>af<wbr/>Mode
   5933             </td>
   5934             <td class="entry_type">
   5935                 <span class="entry_type_name entry_type_name_enum">byte</span>
   5936 
   5937               <span class="entry_type_visibility"> [public]</span>
   5938 
   5939 
   5940               <span class="entry_type_hwlevel">[legacy] </span>
   5941 
   5942 
   5943 
   5944                 <ul class="entry_type_enum">
   5945                   <li>
   5946                     <span class="entry_type_enum_name">OFF</span>
   5947                     <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
   5948 <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
   5949 application.<wbr/></p></span>
   5950                   </li>
   5951                   <li>
   5952                     <span class="entry_type_enum_name">AUTO</span>
   5953                     <span class="entry_type_enum_notes"><p>Basic automatic focus mode.<wbr/></p>
   5954 <p>In this mode,<wbr/> the lens does not move unless
   5955 the autofocus trigger action is called.<wbr/> When that trigger
   5956 is activated,<wbr/> AF will transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
   5957 the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
   5958 <p>Always supported if lens is not fixed focus.<wbr/></p>
   5959 <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
   5960 is fixed-focus.<wbr/></p>
   5961 <p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
   5962 and sets the AF state to INACTIVE.<wbr/></p></span>
   5963                   </li>
   5964                   <li>
   5965                     <span class="entry_type_enum_name">MACRO</span>
   5966                     <span class="entry_type_enum_notes"><p>Close-up focusing mode.<wbr/></p>
   5967 <p>In this mode,<wbr/> the lens does not move unless the
   5968 autofocus trigger action is called.<wbr/> When that trigger is
   5969 activated,<wbr/> AF will transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
   5970 the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/> This
   5971 mode is optimized for focusing on objects very close to
   5972 the camera.<wbr/></p>
   5973 <p>When that trigger is activated,<wbr/> AF will transition to
   5974 ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or
   5975 NOT_<wbr/>FOCUSED).<wbr/> Triggering cancel AF resets the lens
   5976 position to default,<wbr/> and sets the AF state to
   5977 INACTIVE.<wbr/></p></span>
   5978                   </li>
   5979                   <li>
   5980                     <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
   5981                     <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
   5982 position continually to attempt to provide a
   5983 constantly-in-focus image stream.<wbr/></p>
   5984 <p>The focusing behavior should be suitable for good quality
   5985 video recording; typically this means slower focus
   5986 movement and no overshoots.<wbr/> When the AF trigger is not
   5987 involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/>
   5988 and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED
   5989 states as appropriate.<wbr/> When the AF trigger is activated,<wbr/>
   5990 the algorithm should immediately transition into
   5991 AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
   5992 lens position until a cancel AF trigger is received.<wbr/></p>
   5993 <p>Once cancel is received,<wbr/> the algorithm should transition
   5994 back to INACTIVE and resume passive scan.<wbr/> Note that this
   5995 behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an
   5996 ongoing PASSIVE_<wbr/>SCAN must immediately be
   5997 canceled.<wbr/></p></span>
   5998                   </li>
   5999                   <li>
   6000                     <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
   6001                     <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
   6002 position continually to attempt to provide a
   6003 constantly-in-focus image stream.<wbr/></p>
   6004 <p>The focusing behavior should be suitable for still image
   6005 capture; typically this means focusing as fast as
   6006 possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF
   6007 algorithm should start in INACTIVE state,<wbr/> and then
   6008 transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as
   6009 appropriate as it attempts to maintain focus.<wbr/> When the AF
   6010 trigger is activated,<wbr/> the algorithm should finish its
   6011 PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into
   6012 AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
   6013 lens position until a cancel AF trigger is received.<wbr/></p>
   6014 <p>When the AF cancel trigger is activated,<wbr/> the algorithm
   6015 should transition back to INACTIVE and then act as if it
   6016 has just been started.<wbr/></p></span>
   6017                   </li>
   6018                   <li>
   6019                     <span class="entry_type_enum_name">EDOF</span>
   6020                     <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus) mode.<wbr/></p>
   6021 <p>The camera device will produce images with an extended
   6022 depth of field automatically; no special focusing
   6023 operations need to be done before taking a picture.<wbr/></p>
   6024 <p>AF triggers are ignored,<wbr/> and the AF state will always be
   6025 INACTIVE.<wbr/></p></span>
   6026                   </li>
   6027                 </ul>
   6028 
   6029             </td> <!-- entry_type -->
   6030 
   6031             <td class="entry_description">
   6032               <p>Whether auto-focus (AF) is currently enabled,<wbr/> and what
   6033 mode it is set to.<wbr/></p>
   6034             </td>
   6035 
   6036             <td class="entry_units">
   6037             </td>
   6038 
   6039             <td class="entry_range">
   6040               <p><a href="#static_android.control.afAvailableModes">android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes</a></p>
   6041             </td>
   6042 
   6043             <td class="entry_tags">
   6044               <ul class="entry_tags">
   6045                   <li><a href="#tag_BC">BC</a></li>
   6046               </ul>
   6047             </td>
   6048 
   6049           </tr>
   6050           <tr class="entries_header">
   6051             <th class="th_details" colspan="5">Details</th>
   6052           </tr>
   6053           <tr class="entry_cont">
   6054             <td class="entry_details" colspan="5">
   6055               <p>Only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> = AUTO and the lens is not fixed focus
   6056 (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
   6057 when <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/> the behavior of AF is device
   6058 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
   6059 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>
   6060 <p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
   6061 the camera device will report the current AF status in <a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a>
   6062 in result metadata.<wbr/></p>
   6063             </td>
   6064           </tr>
   6065 
   6066           <tr class="entries_header">
   6067             <th class="th_details" colspan="5">HAL Implementation Details</th>
   6068           </tr>
   6069           <tr class="entry_cont">
   6070             <td class="entry_details" colspan="5">
   6071               <p>When afMode is AUTO or MACRO,<wbr/> the lens must not move until an AF trigger is sent in a
   6072 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
   6073 up with either FOCUSED_<wbr/>LOCKED or NOT_<wbr/>FOCUSED_<wbr/>LOCKED state (see
   6074 <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
   6075 locked and will not move.<wbr/> If camera movement (e.<wbr/>g.<wbr/> tilting camera) causes the lens to move
   6076 after the lens is locked,<wbr/> the HAL must compensate this movement appropriately such that
   6077 the same focal plane remains in focus.<wbr/></p>
   6078 <p>When afMode is one of the continuous auto focus modes,<wbr/> the HAL is free to start a AF
   6079 scan whenever it's not locked.<wbr/> When the lens is locked after an AF trigger
   6080 (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
   6081 same lock behavior as above.<wbr/></p>
   6082 <p>When afMode is OFF,<wbr/> the application controls focus manually.<wbr/> The accuracy of the
   6083 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/>
   6084 However,<wbr/> the lens must not move regardless of the camera movement for any focus distance
   6085 manual control.<wbr/></p>
   6086 <p>To put this in concrete terms,<wbr/> if the camera has lens elements which may move based on
   6087 camera orientation or motion (e.<wbr/>g.<wbr/> due to gravity),<wbr/> then the HAL must drive the lens to
   6088 remain in a fixed position invariant to the camera's orientation or motion,<wbr/> for example,<wbr/>
   6089 by using accelerometer measurements in the lens control logic.<wbr/> This is a typical issue
   6090 that will arise on camera modules with open-loop VCMs.<wbr/></p>
   6091             </td>
   6092           </tr>
   6093 
   6094           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   6095            <!-- end of entry -->
   6096         
   6097                 
   6098           <tr class="entry" id="dynamic_android.control.afRegions">
   6099             <td class="entry_name
   6100              " rowspan="5">
   6101               android.<wbr/>control.<wbr/>af<wbr/>Regions
   6102             </td>
   6103             <td class="entry_type">
   6104                 <span class="entry_type_name">int32</span>
   6105                 <span class="entry_type_container">x</span>
   6106 
   6107                 <span class="entry_type_array">
   6108                   5 x area_count
   6109                 </span>
   6110               <span class="entry_type_visibility"> [public as meteringRectangle]</span>
   6111 
   6112 
   6113 
   6114 
   6115 
   6116 
   6117             </td> <!-- entry_type -->
   6118 
   6119             <td class="entry_description">
   6120               <p>List of metering areas to use for auto-focus.<wbr/></p>
   6121             </td>
   6122 
   6123             <td class="entry_units">
   6124               Pixel coordinates within android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
   6125             </td>
   6126 
   6127             <td class="entry_range">
   6128               <p>Coordinates must be between <code>[(0,<wbr/>0),<wbr/> (width,<wbr/> height))</code> of
   6129 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></p>
   6130             </td>
   6131 
   6132             <td class="entry_tags">
   6133               <ul class="entry_tags">
   6134                   <li><a href="#tag_BC">BC</a></li>
   6135               </ul>
   6136             </td>
   6137 
   6138           </tr>
   6139           <tr class="entries_header">
   6140             <th class="th_details" colspan="5">Details</th>
   6141           </tr>
   6142           <tr class="entry_cont">
   6143             <td class="entry_details" colspan="5">
   6144               <p>Not available if <a href="#static_android.control.maxRegionsAf">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Af</a> is 0.<wbr/>
   6145 Otherwise will always be present.<wbr/></p>
   6146 <p>The maximum number of focus areas supported by the device is determined by the value
   6147 of <a href="#static_android.control.maxRegionsAf">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Af</a>.<wbr/></p>
   6148 <p>The coordinate system is based on the active pixel array,<wbr/>
   6149 with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
   6150 (<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
   6151 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
   6152 bottom-right pixel in the active pixel array.<wbr/></p>
   6153 <p>The weight must be within <code>[0,<wbr/> 1000]</code>,<wbr/> and represents a weight
   6154 for every pixel in the area.<wbr/> This means that a large metering area
   6155 with the same weight as a smaller area will have more effect in
   6156 the metering result.<wbr/> Metering areas can partially overlap and the
   6157 camera device will add the weights in the overlap region.<wbr/></p>
   6158 <p>The weights are relative to weights of other metering regions,<wbr/> so if only one region
   6159 is used,<wbr/> all non-zero weights will have the same effect.<wbr/> A region with 0 weight is
   6160 ignored.<wbr/></p>
   6161 <p>If all regions have 0 weight,<wbr/> then no specific metering area needs to be used by the
   6162 camera device.<wbr/></p>
   6163 <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
   6164 capture result metadata,<wbr/> the camera device will ignore the sections outside the crop
   6165 region and output only the intersection rectangle as the metering region in the result
   6166 metadata.<wbr/> If the region is entirely outside the crop region,<wbr/> it will be ignored and
   6167 not reported in the result metadata.<wbr/></p>
   6168             </td>
   6169           </tr>
   6170 
   6171           <tr class="entries_header">
   6172             <th class="th_details" colspan="5">HAL Implementation Details</th>
   6173           </tr>
   6174           <tr class="entry_cont">
   6175             <td class="entry_details" colspan="5">
   6176               <p>The HAL level representation of MeteringRectangle[] is a
   6177 int[5 * area_<wbr/>count].<wbr/>
   6178 Every five elements represent a metering region of
   6179 (xmin,<wbr/> ymin,<wbr/> xmax,<wbr/> ymax,<wbr/> weight).<wbr/>
   6180 The rectangle is defined to be inclusive on xmin and ymin,<wbr/> but
   6181 exclusive on xmax and ymax.<wbr/></p>
   6182             </td>
   6183           </tr>
   6184 
   6185           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   6186            <!-- end of entry -->
   6187         
   6188                 
   6189           <tr class="entry" id="dynamic_android.control.afTrigger">
   6190             <td class="entry_name
   6191              " rowspan="3">
   6192               android.<wbr/>control.<wbr/>af<wbr/>Trigger
   6193             </td>
   6194             <td class="entry_type">
   6195                 <span class="entry_type_name entry_type_name_enum">byte</span>
   6196 
   6197               <span class="entry_type_visibility"> [public]</span>
   6198 
   6199 
   6200               <span class="entry_type_hwlevel">[legacy] </span>
   6201 
   6202 
   6203 
   6204                 <ul class="entry_type_enum">
   6205                   <li>
   6206                     <span class="entry_type_enum_name">IDLE</span>
   6207                     <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
   6208                   </li>
   6209                   <li>
   6210                     <span class="entry_type_enum_name">START</span>
   6211                     <span class="entry_type_enum_notes"><p>Autofocus will trigger now.<wbr/></p></span>
   6212                   </li>
   6213                   <li>
   6214                     <span class="entry_type_enum_name">CANCEL</span>
   6215                     <span class="entry_type_enum_notes"><p>Autofocus will return to its initial
   6216 state,<wbr/> and cancel any currently active trigger.<wbr/></p></span>
   6217                   </li>
   6218                 </ul>
   6219 
   6220             </td> <!-- entry_type -->
   6221 
   6222             <td class="entry_description">
   6223               <p>Whether the camera device will trigger autofocus for this request.<wbr/></p>
   6224             </td>
   6225 
   6226             <td class="entry_units">
   6227             </td>
   6228 
   6229             <td class="entry_range">
   6230             </td>
   6231 
   6232             <td class="entry_tags">
   6233               <ul class="entry_tags">
   6234                   <li><a href="#tag_BC">BC</a></li>
   6235               </ul>
   6236             </td>
   6237 
   6238           </tr>
   6239           <tr class="entries_header">
   6240             <th class="th_details" colspan="5">Details</th>
   6241           </tr>
   6242           <tr class="entry_cont">
   6243             <td class="entry_details" colspan="5">
   6244               <p>This entry is normally set to IDLE,<wbr/> or is not
   6245 included at all in the request settings.<wbr/></p>
   6246 <p>When included and set to START,<wbr/> the camera device will trigger the
   6247 autofocus algorithm.<wbr/> If autofocus is disabled,<wbr/> this trigger has no effect.<wbr/></p>
   6248 <p>When set to CANCEL,<wbr/> the camera device will cancel any active trigger,<wbr/>
   6249 and return to its initial AF state.<wbr/></p>
   6250 <p>Generally,<wbr/> applications should set this entry to START or CANCEL for only a
   6251 single capture,<wbr/> and then return it to IDLE (or not set at all).<wbr/> Specifying
   6252 START for multiple captures in a row means restarting the AF operation over
   6253 and over again.<wbr/></p>
   6254 <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>
   6255             </td>
   6256           </tr>
   6257 
   6258 
   6259           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   6260            <!-- end of entry -->
   6261         
   6262                 
   6263           <tr class="entry" id="dynamic_android.control.afState">
   6264             <td class="entry_name
   6265              " rowspan="3">
   6266               android.<wbr/>control.<wbr/>af<wbr/>State
   6267             </td>
   6268             <td class="entry_type">
   6269                 <span class="entry_type_name entry_type_name_enum">byte</span>
   6270 
   6271               <span class="entry_type_visibility"> [public]</span>
   6272 
   6273 
   6274               <span class="entry_type_hwlevel">[legacy] </span>
   6275 
   6276 
   6277 
   6278                 <ul class="entry_type_enum">
   6279                   <li>
   6280                     <span class="entry_type_enum_name">INACTIVE</span>
   6281                     <span class="entry_type_enum_notes"><p>AF is off or has not yet tried to scan/<wbr/>been asked
   6282 to scan.<wbr/></p>
   6283 <p>When a camera device is opened,<wbr/> it starts in this
   6284 state.<wbr/> This is a transient state,<wbr/> the camera device may
   6285 skip reporting this state in capture
   6286 result.<wbr/></p></span>
   6287                   </li>
   6288                   <li>
   6289                     <span class="entry_type_enum_name">PASSIVE_SCAN</span>
   6290                     <span class="entry_type_enum_notes"><p>AF is currently performing an AF scan initiated the
   6291 camera device in a continuous autofocus mode.<wbr/></p>
   6292 <p>Only used by CONTINUOUS_<wbr/>* AF modes.<wbr/> This is a transient
   6293 state,<wbr/> the camera device may skip reporting this state in
   6294 capture result.<wbr/></p></span>
   6295                   </li>
   6296                   <li>
   6297                     <span class="entry_type_enum_name">PASSIVE_FOCUSED</span>
   6298                     <span class="entry_type_enum_notes"><p>AF currently believes it is in focus,<wbr/> but may
   6299 restart scanning at any time.<wbr/></p>
   6300 <p>Only used by CONTINUOUS_<wbr/>* AF modes.<wbr/> This is a transient
   6301 state,<wbr/> the camera device may skip reporting this state in
   6302 capture result.<wbr/></p></span>
   6303                   </li>
   6304                   <li>
   6305                     <span class="entry_type_enum_name">ACTIVE_SCAN</span>
   6306                     <span class="entry_type_enum_notes"><p>AF is performing an AF scan because it was
   6307 triggered by AF trigger.<wbr/></p>
   6308 <p>Only used by AUTO or MACRO AF modes.<wbr/> This is a transient
   6309 state,<wbr/> the camera device may skip reporting this state in
   6310 capture result.<wbr/></p></span>
   6311                   </li>
   6312                   <li>
   6313                     <span class="entry_type_enum_name">FOCUSED_LOCKED</span>
   6314                     <span class="entry_type_enum_notes"><p>AF believes it is focused correctly and has locked
   6315 focus.<wbr/></p>
   6316 <p>This state is reached only after an explicit START AF trigger has been
   6317 sent (<a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a>),<wbr/> when good focus has been obtained.<wbr/></p>
   6318 <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
   6319 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>
   6320                   </li>
   6321                   <li>
   6322                     <span class="entry_type_enum_name">NOT_FOCUSED_LOCKED</span>
   6323                     <span class="entry_type_enum_notes"><p>AF has failed to focus successfully and has locked
   6324 focus.<wbr/></p>
   6325 <p>This state is reached only after an explicit START AF trigger has been
   6326 sent (<a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a>),<wbr/> when good focus cannot be obtained.<wbr/></p>
   6327 <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
   6328 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>
   6329                   </li>
   6330                   <li>
   6331                     <span class="entry_type_enum_name">PASSIVE_UNFOCUSED</span>
   6332                     <span class="entry_type_enum_notes"><p>AF finished a passive scan without finding focus,<wbr/>
   6333 and may restart scanning at any time.<wbr/></p>
   6334 <p>Only used by CONTINUOUS_<wbr/>* AF modes.<wbr/> This is a transient state,<wbr/> the camera
   6335 device may skip reporting this state in capture result.<wbr/></p>
   6336 <p>LEGACY camera devices do not support this state.<wbr/> When a passive
   6337 scan has finished,<wbr/> it will always go to PASSIVE_<wbr/>FOCUSED.<wbr/></p></span>
   6338                   </li>
   6339                 </ul>
   6340 
   6341             </td> <!-- entry_type -->
   6342 
   6343             <td class="entry_description">
   6344               <p>Current state of auto-focus (AF) algorithm.<wbr/></p>
   6345             </td>
   6346 
   6347             <td class="entry_units">
   6348             </td>
   6349 
   6350             <td class="entry_range">
   6351             </td>
   6352 
   6353             <td class="entry_tags">
   6354             </td>
   6355 
   6356           </tr>
   6357           <tr class="entries_header">
   6358             <th class="th_details" colspan="5">Details</th>
   6359           </tr>
   6360           <tr class="entry_cont">
   6361             <td class="entry_details" colspan="5">
   6362               <p>Switching between or enabling AF modes (<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>) always
   6363 resets the AF state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
   6364 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
   6365 the algorithm states to INACTIVE.<wbr/></p>
   6366 <p>The camera device can do several state transitions between two results,<wbr/> if it is
   6367 allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
   6368 seen in a result.<wbr/></p>
   6369 <p>The state in the result is the state for this image (in sync with this image): if
   6370 AF state becomes FOCUSED,<wbr/> then the image data associated with this result should
   6371 be sharp.<wbr/></p>
   6372 <p>Below are state transition tables for different AF modes.<wbr/></p>
   6373 <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>
   6374 <table>
   6375 <thead>
   6376 <tr>
   6377 <th align="center">State</th>
   6378 <th align="center">Transition Cause</th>
   6379 <th align="center">New State</th>
   6380 <th align="center">Notes</th>
   6381 </tr>
   6382 </thead>
   6383 <tbody>
   6384 <tr>
   6385 <td align="center">INACTIVE</td>
   6386 <td align="center"></td>
   6387 <td align="center">INACTIVE</td>
   6388 <td align="center">Never changes</td>
   6389 </tr>
   6390 </tbody>
   6391 </table>
   6392 <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>
   6393 <table>
   6394 <thead>
   6395 <tr>
   6396 <th align="center">State</th>
   6397 <th align="center">Transition Cause</th>
   6398 <th align="center">New State</th>
   6399 <th align="center">Notes</th>
   6400 </tr>
   6401 </thead>
   6402 <tbody>
   6403 <tr>
   6404 <td align="center">INACTIVE</td>
   6405 <td align="center">AF_<wbr/>TRIGGER</td>
   6406 <td align="center">ACTIVE_<wbr/>SCAN</td>
   6407 <td align="center">Start AF sweep,<wbr/> Lens now moving</td>
   6408 </tr>
   6409 <tr>
   6410 <td align="center">ACTIVE_<wbr/>SCAN</td>
   6411 <td align="center">AF sweep done</td>
   6412 <td align="center">FOCUSED_<wbr/>LOCKED</td>
   6413 <td align="center">Focused,<wbr/> Lens now locked</td>
   6414 </tr>
   6415 <tr>
   6416 <td align="center">ACTIVE_<wbr/>SCAN</td>
   6417 <td align="center">AF sweep done</td>
   6418 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
   6419 <td align="center">Not focused,<wbr/> Lens now locked</td>
   6420 </tr>
   6421 <tr>
   6422 <td align="center">ACTIVE_<wbr/>SCAN</td>
   6423 <td align="center">AF_<wbr/>CANCEL</td>
   6424 <td align="center">INACTIVE</td>
   6425 <td align="center">Cancel/<wbr/>reset AF,<wbr/> Lens now locked</td>
   6426 </tr>
   6427 <tr>
   6428 <td align="center">FOCUSED_<wbr/>LOCKED</td>
   6429 <td align="center">AF_<wbr/>CANCEL</td>
   6430 <td align="center">INACTIVE</td>
   6431 <td align="center">Cancel/<wbr/>reset AF</td>
   6432 </tr>
   6433 <tr>
   6434 <td align="center">FOCUSED_<wbr/>LOCKED</td>
   6435 <td align="center">AF_<wbr/>TRIGGER</td>
   6436 <td align="center">ACTIVE_<wbr/>SCAN</td>
   6437 <td align="center">Start new sweep,<wbr/> Lens now moving</td>
   6438 </tr>
   6439 <tr>
   6440 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
   6441 <td align="center">AF_<wbr/>CANCEL</td>
   6442 <td align="center">INACTIVE</td>
   6443 <td align="center">Cancel/<wbr/>reset AF</td>
   6444 </tr>
   6445 <tr>
   6446 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
   6447 <td align="center">AF_<wbr/>TRIGGER</td>
   6448 <td align="center">ACTIVE_<wbr/>SCAN</td>
   6449 <td align="center">Start new sweep,<wbr/> Lens now moving</td>
   6450 </tr>
   6451 <tr>
   6452 <td align="center">Any state</td>
   6453 <td align="center">Mode change</td>
   6454 <td align="center">INACTIVE</td>
   6455 <td align="center"></td>
   6456 </tr>
   6457 </tbody>
   6458 </table>
   6459 <p>For the above table,<wbr/> the camera device may skip reporting any state changes that happen
   6460 without application intervention (i.<wbr/>e.<wbr/> mode switch,<wbr/> trigger,<wbr/> locking).<wbr/> Any state that
   6461 can be skipped in that manner is called a transient state.<wbr/></p>
   6462 <p>For example,<wbr/> for these AF modes (AF_<wbr/>MODE_<wbr/>AUTO and AF_<wbr/>MODE_<wbr/>MACRO),<wbr/> in addition to the
   6463 state transitions listed in above table,<wbr/> it is also legal for the camera device to skip
   6464 one or more transient states between two results.<wbr/> See below table for examples:</p>
   6465 <table>
   6466 <thead>
   6467 <tr>
   6468 <th align="center">State</th>
   6469 <th align="center">Transition Cause</th>
   6470 <th align="center">New State</th>
   6471 <th align="center">Notes</th>
   6472 </tr>
   6473 </thead>
   6474 <tbody>
   6475 <tr>
   6476 <td align="center">INACTIVE</td>
   6477 <td align="center">AF_<wbr/>TRIGGER</td>
   6478 <td align="center">FOCUSED_<wbr/>LOCKED</td>
   6479 <td align="center">Focus is already good or good after a scan,<wbr/> lens is now locked.<wbr/></td>
   6480 </tr>
   6481 <tr>
   6482 <td align="center">INACTIVE</td>
   6483 <td align="center">AF_<wbr/>TRIGGER</td>
   6484 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
   6485 <td align="center">Focus failed after a scan,<wbr/> lens is now locked.<wbr/></td>
   6486 </tr>
   6487 <tr>
   6488 <td align="center">FOCUSED_<wbr/>LOCKED</td>
   6489 <td align="center">AF_<wbr/>TRIGGER</td>
   6490 <td align="center">FOCUSED_<wbr/>LOCKED</td>
   6491 <td align="center">Focus is already good or good after a scan,<wbr/> lens is now locked.<wbr/></td>
   6492 </tr>
   6493 <tr>
   6494 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
   6495 <td align="center">AF_<wbr/>TRIGGER</td>
   6496 <td align="center">FOCUSED_<wbr/>LOCKED</td>
   6497 <td align="center">Focus is good after a scan,<wbr/> lens is not locked.<wbr/></td>
   6498 </tr>
   6499 </tbody>
   6500 </table>
   6501 <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>
   6502 <table>
   6503 <thead>
   6504 <tr>
   6505 <th align="center">State</th>
   6506 <th align="center">Transition Cause</th>
   6507 <th align="center">New State</th>
   6508 <th align="center">Notes</th>
   6509 </tr>
   6510 </thead>
   6511 <tbody>
   6512 <tr>
   6513 <td align="center">INACTIVE</td>
   6514 <td align="center">Camera device initiates new scan</td>
   6515 <td align="center">PASSIVE_<wbr/>SCAN</td>
   6516 <td align="center">Start AF scan,<wbr/> Lens now moving</td>
   6517 </tr>
   6518 <tr>
   6519 <td align="center">INACTIVE</td>
   6520 <td align="center">AF_<wbr/>TRIGGER</td>
   6521 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
   6522 <td align="center">AF state query,<wbr/> Lens now locked</td>
   6523 </tr>
   6524 <tr>
   6525 <td align="center">PASSIVE_<wbr/>SCAN</td>
   6526 <td align="center">Camera device completes current scan</td>
   6527 <td align="center">PASSIVE_<wbr/>FOCUSED</td>
   6528 <td align="center">End AF scan,<wbr/> Lens now locked</td>
   6529 </tr>
   6530 <tr>
   6531 <td align="center">PASSIVE_<wbr/>SCAN</td>
   6532 <td align="center">Camera device fails current scan</td>
   6533 <td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
   6534 <td align="center">End AF scan,<wbr/> Lens now locked</td>
   6535 </tr>
   6536 <tr>
   6537 <td align="center">PASSIVE_<wbr/>SCAN</td>
   6538 <td align="center">AF_<wbr/>TRIGGER</td>
   6539 <td align="center">FOCUSED_<wbr/>LOCKED</td>
   6540 <td align="center">Immediate transition,<wbr/> if focus is good.<wbr/> Lens now locked</td>
   6541 </tr>
   6542 <tr>
   6543 <td align="center">PASSIVE_<wbr/>SCAN</td>
   6544 <td align="center">AF_<wbr/>TRIGGER</td>
   6545 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
   6546 <td align="center">Immediate transition,<wbr/> if focus is bad.<wbr/> Lens now locked</td>
   6547 </tr>
   6548 <tr>
   6549 <td align="center">PASSIVE_<wbr/>SCAN</td>
   6550 <td align="center">AF_<wbr/>CANCEL</td>
   6551 <td align="center">INACTIVE</td>
   6552 <td align="center">Reset lens position,<wbr/> Lens now locked</td>
   6553 </tr>
   6554 <tr>
   6555 <td align="center">PASSIVE_<wbr/>FOCUSED</td>
   6556 <td align="center">Camera device initiates new scan</td>
   6557 <td align="center">PASSIVE_<wbr/>SCAN</td>
   6558 <td align="center">Start AF scan,<wbr/> Lens now moving</td>
   6559 </tr>
   6560 <tr>
   6561 <td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
   6562 <td align="center">Camera device initiates new scan</td>
   6563 <td align="center">PASSIVE_<wbr/>SCAN</td>
   6564 <td align="center">Start AF scan,<wbr/> Lens now moving</td>
   6565 </tr>
   6566 <tr>
   6567 <td align="center">PASSIVE_<wbr/>FOCUSED</td>
   6568 <td align="center">AF_<wbr/>TRIGGER</td>
   6569 <td align="center">FOCUSED_<wbr/>LOCKED</td>
   6570 <td align="center">Immediate transition,<wbr/> lens now locked</td>
   6571 </tr>
   6572 <tr>
   6573 <td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
   6574 <td align="center">AF_<wbr/>TRIGGER</td>
   6575 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
   6576 <td align="center">Immediate transition,<wbr/> lens now locked</td>
   6577 </tr>
   6578 <tr>
   6579 <td align="center">FOCUSED_<wbr/>LOCKED</td>
   6580 <td align="center">AF_<wbr/>TRIGGER</td>
   6581 <td align="center">FOCUSED_<wbr/>LOCKED</td>
   6582 <td align="center">No effect</td>
   6583 </tr>
   6584 <tr>
   6585 <td align="center">FOCUSED_<wbr/>LOCKED</td>
   6586 <td align="center">AF_<wbr/>CANCEL</td>
   6587 <td align="center">INACTIVE</td>
   6588 <td align="center">Restart AF scan</td>
   6589 </tr>
   6590 <tr>
   6591 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
   6592 <td align="center">AF_<wbr/>TRIGGER</td>
   6593 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
   6594 <td align="center">No effect</td>
   6595 </tr>
   6596 <tr>
   6597 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
   6598 <td align="center">AF_<wbr/>CANCEL</td>
   6599 <td align="center">INACTIVE</td>
   6600 <td align="center">Restart AF scan</td>
   6601 </tr>
   6602 </tbody>
   6603 </table>
   6604 <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>
   6605 <table>
   6606 <thead>
   6607 <tr>
   6608 <th align="center">State</th>
   6609 <th align="center">Transition Cause</th>
   6610 <th align="center">New State</th>
   6611 <th align="center">Notes</th>
   6612 </tr>
   6613 </thead>
   6614 <tbody>
   6615 <tr>
   6616 <td align="center">INACTIVE</td>
   6617 <td align="center">Camera device initiates new scan</td>
   6618 <td align="center">PASSIVE_<wbr/>SCAN</td>
   6619 <td align="center">Start AF scan,<wbr/> Lens now moving</td>
   6620 </tr>
   6621 <tr>
   6622 <td align="center">INACTIVE</td>
   6623 <td align="center">AF_<wbr/>TRIGGER</td>
   6624 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
   6625 <td align="center">AF state query,<wbr/> Lens now locked</td>
   6626 </tr>
   6627 <tr>
   6628 <td align="center">PASSIVE_<wbr/>SCAN</td>
   6629 <td align="center">Camera device completes current scan</td>
   6630 <td align="center">PASSIVE_<wbr/>FOCUSED</td>
   6631 <td align="center">End AF scan,<wbr/> Lens now locked</td>
   6632 </tr>
   6633 <tr>
   6634 <td align="center">PASSIVE_<wbr/>SCAN</td>
   6635 <td align="center">Camera device fails current scan</td>
   6636 <td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
   6637 <td align="center">End AF scan,<wbr/> Lens now locked</td>
   6638 </tr>
   6639 <tr>
   6640 <td align="center">PASSIVE_<wbr/>SCAN</td>
   6641 <td align="center">AF_<wbr/>TRIGGER</td>
   6642 <td align="center">FOCUSED_<wbr/>LOCKED</td>
   6643 <td align="center">Eventual transition once the focus is good.<wbr/> Lens now locked</td>
   6644 </tr>
   6645 <tr>
   6646 <td align="center">PASSIVE_<wbr/>SCAN</td>
   6647 <td align="center">AF_<wbr/>TRIGGER</td>
   6648 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
   6649 <td align="center">Eventual transition if cannot find focus.<wbr/> Lens now locked</td>
   6650 </tr>
   6651 <tr>
   6652 <td align="center">PASSIVE_<wbr/>SCAN</td>
   6653 <td align="center">AF_<wbr/>CANCEL</td>
   6654 <td align="center">INACTIVE</td>
   6655 <td align="center">Reset lens position,<wbr/> Lens now locked</td>
   6656 </tr>
   6657 <tr>
   6658 <td align="center">PASSIVE_<wbr/>FOCUSED</td>
   6659 <td align="center">Camera device initiates new scan</td>
   6660 <td align="center">PASSIVE_<wbr/>SCAN</td>
   6661 <td align="center">Start AF scan,<wbr/> Lens now moving</td>
   6662 </tr>
   6663 <tr>
   6664 <td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
   6665 <td align="center">Camera device initiates new scan</td>
   6666 <td align="center">PASSIVE_<wbr/>SCAN</td>
   6667 <td align="center">Start AF scan,<wbr/> Lens now moving</td>
   6668 </tr>
   6669 <tr>
   6670 <td align="center">PASSIVE_<wbr/>FOCUSED</td>
   6671 <td align="center">AF_<wbr/>TRIGGER</td>
   6672 <td align="center">FOCUSED_<wbr/>LOCKED</td>
   6673 <td align="center">Immediate trans.<wbr/> Lens now locked</td>
   6674 </tr>
   6675 <tr>
   6676 <td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
   6677 <td align="center">AF_<wbr/>TRIGGER</td>
   6678 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
   6679 <td align="center">Immediate trans.<wbr/> Lens now locked</td>
   6680 </tr>
   6681 <tr>
   6682 <td align="center">FOCUSED_<wbr/>LOCKED</td>
   6683 <td align="center">AF_<wbr/>TRIGGER</td>
   6684 <td align="center">FOCUSED_<wbr/>LOCKED</td>
   6685 <td align="center">No effect</td>
   6686 </tr>
   6687 <tr>
   6688 <td align="center">FOCUSED_<wbr/>LOCKED</td>
   6689 <td align="center">AF_<wbr/>CANCEL</td>
   6690 <td align="center">INACTIVE</td>
   6691 <td align="center">Restart AF scan</td>
   6692 </tr>
   6693 <tr>
   6694 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
   6695 <td align="center">AF_<wbr/>TRIGGER</td>
   6696 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
   6697 <td align="center">No effect</td>
   6698 </tr>
   6699 <tr>
   6700 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
   6701 <td align="center">AF_<wbr/>CANCEL</td>
   6702 <td align="center">INACTIVE</td>
   6703 <td align="center">Restart AF scan</td>
   6704 </tr>
   6705 </tbody>
   6706 </table>
   6707 <p>When switch between AF_<wbr/>MODE_<wbr/>CONTINUOUS_<wbr/>* (CAF modes) and AF_<wbr/>MODE_<wbr/>AUTO/<wbr/>AF_<wbr/>MODE_<wbr/>MACRO
   6708 (AUTO modes),<wbr/> the initial INACTIVE or PASSIVE_<wbr/>SCAN states may be skipped by the
   6709 camera device.<wbr/> When a trigger is included in a mode switch request,<wbr/> the trigger
   6710 will be evaluated in the context of the new mode in the request.<wbr/>
   6711 See below table for examples:</p>
   6712 <table>
   6713 <thead>
   6714 <tr>
   6715 <th align="center">State</th>
   6716 <th align="center">Transition Cause</th>
   6717 <th align="center">New State</th>
   6718 <th align="center">Notes</th>
   6719 </tr>
   6720 </thead>
   6721 <tbody>
   6722 <tr>
   6723 <td align="center">any state</td>
   6724 <td align="center">CAF--&gt;AUTO mode switch</td>
   6725 <td align="center">INACTIVE</td>
   6726 <td align="center">Mode switch without trigger,<wbr/> initial state must be INACTIVE</td>
   6727 </tr>
   6728 <tr>
   6729 <td align="center">any state</td>
   6730 <td align="center">CAF--&gt;AUTO mode switch with AF_<wbr/>TRIGGER</td>
   6731 <td align="center">trigger-reachable states from INACTIVE</td>
   6732 <td align="center">Mode switch with trigger,<wbr/> INACTIVE is skipped</td>
   6733 </tr>
   6734 <tr>
   6735 <td align="center">any state</td>
   6736 <td align="center">AUTO--&gt;CAF mode switch</td>
   6737 <td align="center">passively reachable states from INACTIVE</td>
   6738 <td align="center">Mode switch without trigger,<wbr/> passive transient state is skipped</td>
   6739 </tr>
   6740 </tbody>
   6741 </table>
   6742             </td>
   6743           </tr>
   6744 
   6745 
   6746           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   6747            <!-- end of entry -->
   6748         
   6749                 
   6750           <tr class="entry" id="dynamic_android.control.afTriggerId">
   6751             <td class="entry_name
   6752                 entry_name_deprecated
   6753              " rowspan="3">
   6754               android.<wbr/>control.<wbr/>af<wbr/>Trigger<wbr/>Id
   6755             </td>
   6756             <td class="entry_type">
   6757                 <span class="entry_type_name">int32</span>
   6758 
   6759               <span class="entry_type_visibility"> [system]</span>
   6760 
   6761 
   6762 
   6763               <span class="entry_type_deprecated">[deprecated] </span>
   6764 
   6765 
   6766 
   6767             </td> <!-- entry_type -->
   6768 
   6769             <td class="entry_description">
   6770               <p>The ID sent with the latest
   6771 CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS call</p>
   6772             </td>
   6773 
   6774             <td class="entry_units">
   6775             </td>
   6776 
   6777             <td class="entry_range">
   6778               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   6779             </td>
   6780 
   6781             <td class="entry_tags">
   6782             </td>
   6783 
   6784           </tr>
   6785           <tr class="entries_header">
   6786             <th class="th_details" colspan="5">Details</th>
   6787           </tr>
   6788           <tr class="entry_cont">
   6789             <td class="entry_details" colspan="5">
   6790               <p>Must be 0 if no CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS trigger
   6791 received yet by HAL.<wbr/> Always updated even if AF algorithm
   6792 ignores the trigger</p>
   6793             </td>
   6794           </tr>
   6795 
   6796 
   6797           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   6798            <!-- end of entry -->
   6799         
   6800                 
   6801           <tr class="entry" id="dynamic_android.control.awbLock">
   6802             <td class="entry_name
   6803              " rowspan="3">
   6804               android.<wbr/>control.<wbr/>awb<wbr/>Lock
   6805             </td>
   6806             <td class="entry_type">
   6807                 <span class="entry_type_name entry_type_name_enum">byte</span>
   6808 
   6809               <span class="entry_type_visibility"> [public as boolean]</span>
   6810 
   6811 
   6812               <span class="entry_type_hwlevel">[legacy] </span>
   6813 
   6814 
   6815 
   6816                 <ul class="entry_type_enum">
   6817                   <li>
   6818                     <span class="entry_type_enum_name">OFF</span>
   6819                     <span class="entry_type_enum_notes"><p>Auto-white balance lock is disabled; the AWB
   6820 algorithm is free to update its parameters if in AUTO
   6821 mode.<wbr/></p></span>
   6822                   </li>
   6823                   <li>
   6824                     <span class="entry_type_enum_name">ON</span>
   6825                     <span class="entry_type_enum_notes"><p>Auto-white balance lock is enabled; the AWB
   6826 algorithm will not update its parameters while the lock
   6827 is active.<wbr/></p></span>
   6828                   </li>
   6829                 </ul>
   6830 
   6831             </td> <!-- entry_type -->
   6832 
   6833             <td class="entry_description">
   6834               <p>Whether auto-white balance (AWB) is currently locked to its
   6835 latest calculated values.<wbr/></p>
   6836             </td>
   6837 
   6838             <td class="entry_units">
   6839             </td>
   6840 
   6841             <td class="entry_range">
   6842             </td>
   6843 
   6844             <td class="entry_tags">
   6845               <ul class="entry_tags">
   6846                   <li><a href="#tag_BC">BC</a></li>
   6847               </ul>
   6848             </td>
   6849 
   6850           </tr>
   6851           <tr class="entries_header">
   6852             <th class="th_details" colspan="5">Details</th>
   6853           </tr>
   6854           <tr class="entry_cont">
   6855             <td class="entry_details" colspan="5">
   6856               <p>When set to <code>true</code> (ON),<wbr/> the AWB algorithm is locked to its latest parameters,<wbr/>
   6857 and will not change color balance settings until the lock is set to <code>false</code> (OFF).<wbr/></p>
   6858 <p>Since the camera device has a pipeline of in-flight requests,<wbr/> the settings that
   6859 get locked do not necessarily correspond to the settings that were present in the
   6860 latest capture result received from the camera device,<wbr/> since additional captures
   6861 and AWB updates may have occurred even before the result was sent out.<wbr/> If an
   6862 application is switching between automatic and manual control and wishes to eliminate
   6863 any flicker during the switch,<wbr/> the following procedure is recommended:</p>
   6864 <ol>
   6865 <li>Starting in auto-AWB mode:</li>
   6866 <li>Lock AWB</li>
   6867 <li>Wait for the first result to be output that has the AWB locked</li>
   6868 <li>Copy AWB settings from that result into a request,<wbr/> set the request to manual AWB</li>
   6869 <li>Submit the capture request,<wbr/> proceed to run manual AWB as desired.<wbr/></li>
   6870 </ol>
   6871 <p>Note that AWB lock is only meaningful when
   6872 <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> is in the AUTO mode; in other modes,<wbr/>
   6873 AWB is already fixed to a specific setting.<wbr/></p>
   6874 <p>Some LEGACY devices may not support ON; the value is then overridden to OFF.<wbr/></p>
   6875             </td>
   6876           </tr>
   6877 
   6878 
   6879           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   6880            <!-- end of entry -->
   6881         
   6882                 
   6883           <tr class="entry" id="dynamic_android.control.awbMode">
   6884             <td class="entry_name
   6885              " rowspan="3">
   6886               android.<wbr/>control.<wbr/>awb<wbr/>Mode
   6887             </td>
   6888             <td class="entry_type">
   6889                 <span class="entry_type_name entry_type_name_enum">byte</span>
   6890 
   6891               <span class="entry_type_visibility"> [public]</span>
   6892 
   6893 
   6894               <span class="entry_type_hwlevel">[legacy] </span>
   6895 
   6896 
   6897 
   6898                 <ul class="entry_type_enum">
   6899                   <li>
   6900                     <span class="entry_type_enum_name">OFF</span>
   6901                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled.<wbr/></p>
   6902 <p>The application-selected color transform matrix
   6903 (<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
   6904 (<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
   6905 device for manual white balance control.<wbr/></p></span>
   6906                   </li>
   6907                   <li>
   6908                     <span class="entry_type_enum_name">AUTO</span>
   6909                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is active.<wbr/></p>
   6910 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
   6911 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
   6912 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
   6913 values used by the camera device for the transform and gains
   6914 will be available in the capture result for this request.<wbr/></p></span>
   6915                   </li>
   6916                   <li>
   6917                     <span class="entry_type_enum_name">INCANDESCENT</span>
   6918                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
   6919 the camera device uses incandescent light as the assumed scene
   6920 illumination for white balance.<wbr/></p>
   6921 <p>While the exact white balance transforms are up to the
   6922 camera device,<wbr/> they will approximately match the CIE
   6923 standard illuminant A.<wbr/></p>
   6924 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
   6925 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
   6926 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
   6927 values used by the camera device for the transform and gains
   6928 will be available in the capture result for this request.<wbr/></p></span>
   6929                   </li>
   6930                   <li>
   6931                     <span class="entry_type_enum_name">FLUORESCENT</span>
   6932                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
   6933 the camera device uses fluorescent light as the assumed scene
   6934 illumination for white balance.<wbr/></p>
   6935 <p>While the exact white balance transforms are up to the
   6936 camera device,<wbr/> they will approximately match the CIE
   6937 standard illuminant F2.<wbr/></p>
   6938 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
   6939 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
   6940 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
   6941 values used by the camera device for the transform and gains
   6942 will be available in the capture result for this request.<wbr/></p></span>
   6943                   </li>
   6944                   <li>
   6945                     <span class="entry_type_enum_name">WARM_FLUORESCENT</span>
   6946                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
   6947 the camera device uses warm fluorescent light as the assumed scene
   6948 illumination for white balance.<wbr/></p>
   6949 <p>While the exact white balance transforms are up to the
   6950 camera device,<wbr/> they will approximately match the CIE
   6951 standard illuminant F4.<wbr/></p>
   6952 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
   6953 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
   6954 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
   6955 values used by the camera device for the transform and gains
   6956 will be available in the capture result for this request.<wbr/></p></span>
   6957                   </li>
   6958                   <li>
   6959                     <span class="entry_type_enum_name">DAYLIGHT</span>
   6960                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
   6961 the camera device uses daylight light as the assumed scene
   6962 illumination for white balance.<wbr/></p>
   6963 <p>While the exact white balance transforms are up to the
   6964 camera device,<wbr/> they will approximately match the CIE
   6965 standard illuminant D65.<wbr/></p>
   6966 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
   6967 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
   6968 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
   6969 values used by the camera device for the transform and gains
   6970 will be available in the capture result for this request.<wbr/></p></span>
   6971                   </li>
   6972                   <li>
   6973                     <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span>
   6974                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
   6975 the camera device uses cloudy daylight light as the assumed scene
   6976 illumination for white balance.<wbr/></p>
   6977 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
   6978 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
   6979 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
   6980 values used by the camera device for the transform and gains
   6981 will be available in the capture result for this request.<wbr/></p></span>
   6982                   </li>
   6983                   <li>
   6984                     <span class="entry_type_enum_name">TWILIGHT</span>
   6985                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
   6986 the camera device uses twilight light as the assumed scene
   6987 illumination for white balance.<wbr/></p>
   6988 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
   6989 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
   6990 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
   6991 values used by the camera device for the transform and gains
   6992 will be available in the capture result for this request.<wbr/></p></span>
   6993                   </li>
   6994                   <li>
   6995                     <span class="entry_type_enum_name">SHADE</span>
   6996                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
   6997 the camera device uses shade light as the assumed scene
   6998 illumination for white balance.<wbr/></p>
   6999 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
   7000 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
   7001 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
   7002 values used by the camera device for the transform and gains
   7003 will be available in the capture result for this request.<wbr/></p></span>
   7004                   </li>
   7005                 </ul>
   7006 
   7007             </td> <!-- entry_type -->
   7008 
   7009             <td class="entry_description">
   7010               <p>Whether auto-white balance (AWB) is currently setting the color
   7011 transform fields,<wbr/> and what its illumination target
   7012 is.<wbr/></p>
   7013             </td>
   7014 
   7015             <td class="entry_units">
   7016             </td>
   7017 
   7018             <td class="entry_range">
   7019               <p><a href="#static_android.control.awbAvailableModes">android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes</a></p>
   7020             </td>
   7021 
   7022             <td class="entry_tags">
   7023               <ul class="entry_tags">
   7024                   <li><a href="#tag_BC">BC</a></li>
   7025               </ul>
   7026             </td>
   7027 
   7028           </tr>
   7029           <tr class="entries_header">
   7030             <th class="th_details" colspan="5">Details</th>
   7031           </tr>
   7032           <tr class="entry_cont">
   7033             <td class="entry_details" colspan="5">
   7034               <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
   7035 <p>When set to the ON mode,<wbr/> the camera device's auto-white balance
   7036 routine is enabled,<wbr/> overriding the application's selected
   7037 <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
   7038 <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>
   7039 is OFF,<wbr/> the behavior of AWB is device dependent.<wbr/> It is recommened to
   7040 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
   7041 setting AE mode to OFF.<wbr/></p>
   7042 <p>When set to the OFF mode,<wbr/> the camera device's auto-white balance
   7043 routine is disabled.<wbr/> The application manually controls the white
   7044 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>
   7045 and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
   7046 <p>When set to any other modes,<wbr/> the camera device's auto-white
   7047 balance routine is disabled.<wbr/> The camera device uses each
   7048 particular illumination target for white balance
   7049 adjustment.<wbr/> The application's values for
   7050 <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/>
   7051 <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
   7052 <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> are ignored.<wbr/></p>
   7053             </td>
   7054           </tr>
   7055 
   7056 
   7057           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   7058            <!-- end of entry -->
   7059         
   7060                 
   7061           <tr class="entry" id="dynamic_android.control.awbRegions">
   7062             <td class="entry_name
   7063              " rowspan="5">
   7064               android.<wbr/>control.<wbr/>awb<wbr/>Regions
   7065             </td>
   7066             <td class="entry_type">
   7067                 <span class="entry_type_name">int32</span>
   7068                 <span class="entry_type_container">x</span>
   7069 
   7070                 <span class="entry_type_array">
   7071                   5 x area_count
   7072                 </span>
   7073               <span class="entry_type_visibility"> [public as meteringRectangle]</span>
   7074 
   7075 
   7076 
   7077 
   7078 
   7079 
   7080             </td> <!-- entry_type -->
   7081 
   7082             <td class="entry_description">
   7083               <p>List of metering areas to use for auto-white-balance illuminant
   7084 estimation.<wbr/></p>
   7085             </td>
   7086 
   7087             <td class="entry_units">
   7088               Pixel coordinates within android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
   7089             </td>
   7090 
   7091             <td class="entry_range">
   7092               <p>Coordinates must be between <code>[(0,<wbr/>0),<wbr/> (width,<wbr/> height))</code> of
   7093 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></p>
   7094             </td>
   7095 
   7096             <td class="entry_tags">
   7097               <ul class="entry_tags">
   7098                   <li><a href="#tag_BC">BC</a></li>
   7099               </ul>
   7100             </td>
   7101 
   7102           </tr>
   7103           <tr class="entries_header">
   7104             <th class="th_details" colspan="5">Details</th>
   7105           </tr>
   7106           <tr class="entry_cont">
   7107             <td class="entry_details" colspan="5">
   7108               <p>Not available if <a href="#static_android.control.maxRegionsAwb">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Awb</a> is 0.<wbr/>
   7109 Otherwise will always be present.<wbr/></p>
   7110 <p>The maximum number of regions supported by the device is determined by the value
   7111 of <a href="#static_android.control.maxRegionsAwb">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Awb</a>.<wbr/></p>
   7112 <p>The coordinate system is based on the active pixel array,<wbr/>
   7113 with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
   7114 (<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
   7115 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
   7116 bottom-right pixel in the active pixel array.<wbr/></p>
   7117 <p>The weight must range from 0 to 1000,<wbr/> and represents a weight
   7118 for every pixel in the area.<wbr/> This means that a large metering area
   7119 with the same weight as a smaller area will have more effect in
   7120 the metering result.<wbr/> Metering areas can partially overlap and the
   7121 camera device will add the weights in the overlap region.<wbr/></p>
   7122 <p>The weights are relative to weights of other white balance metering regions,<wbr/> so if
   7123 only one region is used,<wbr/> all non-zero weights will have the same effect.<wbr/> A region with
   7124 0 weight is ignored.<wbr/></p>
   7125 <p>If all regions have 0 weight,<wbr/> then no specific metering area needs to be used by the
   7126 camera device.<wbr/></p>
   7127 <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
   7128 capture result metadata,<wbr/> the camera device will ignore the sections outside the crop
   7129 region and output only the intersection rectangle as the metering region in the result
   7130 metadata.<wbr/>  If the region is entirely outside the crop region,<wbr/> it will be ignored and
   7131 not reported in the result metadata.<wbr/></p>
   7132             </td>
   7133           </tr>
   7134 
   7135           <tr class="entries_header">
   7136             <th class="th_details" colspan="5">HAL Implementation Details</th>
   7137           </tr>
   7138           <tr class="entry_cont">
   7139             <td class="entry_details" colspan="5">
   7140               <p>The HAL level representation of MeteringRectangle[] is a
   7141 int[5 * area_<wbr/>count].<wbr/>
   7142 Every five elements represent a metering region of
   7143 (xmin,<wbr/> ymin,<wbr/> xmax,<wbr/> ymax,<wbr/> weight).<wbr/>
   7144 The rectangle is defined to be inclusive on xmin and ymin,<wbr/> but
   7145 exclusive on xmax and ymax.<wbr/></p>
   7146             </td>
   7147           </tr>
   7148 
   7149           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   7150            <!-- end of entry -->
   7151         
   7152                 
   7153           <tr class="entry" id="dynamic_android.control.captureIntent">
   7154             <td class="entry_name
   7155              " rowspan="3">
   7156               android.<wbr/>control.<wbr/>capture<wbr/>Intent
   7157             </td>
   7158             <td class="entry_type">
   7159                 <span class="entry_type_name entry_type_name_enum">byte</span>
   7160 
   7161               <span class="entry_type_visibility"> [public]</span>
   7162 
   7163 
   7164               <span class="entry_type_hwlevel">[legacy] </span>
   7165 
   7166 
   7167 
   7168                 <ul class="entry_type_enum">
   7169                   <li>
   7170                     <span class="entry_type_enum_name">CUSTOM</span>
   7171                     <span class="entry_type_enum_notes"><p>The goal of this request doesn't fall into the other
   7172 categories.<wbr/> The camera device will default to preview-like
   7173 behavior.<wbr/></p></span>
   7174                   </li>
   7175                   <li>
   7176                     <span class="entry_type_enum_name">PREVIEW</span>
   7177                     <span class="entry_type_enum_notes"><p>This request is for a preview-like use case.<wbr/></p>
   7178 <p>The precapture trigger may be used to start off a metering
   7179 w/<wbr/>flash sequence.<wbr/></p></span>
   7180                   </li>
   7181                   <li>
   7182                     <span class="entry_type_enum_name">STILL_CAPTURE</span>
   7183                     <span class="entry_type_enum_notes"><p>This request is for a still capture-type
   7184 use case.<wbr/></p>
   7185 <p>If the flash unit is under automatic control,<wbr/> it may fire as needed.<wbr/></p></span>
   7186                   </li>
   7187                   <li>
   7188                     <span class="entry_type_enum_name">VIDEO_RECORD</span>
   7189                     <span class="entry_type_enum_notes"><p>This request is for a video recording
   7190 use case.<wbr/></p></span>
   7191                   </li>
   7192                   <li>
   7193                     <span class="entry_type_enum_name">VIDEO_SNAPSHOT</span>
   7194                     <span class="entry_type_enum_notes"><p>This request is for a video snapshot (still
   7195 image while recording video) use case.<wbr/></p>
   7196 <p>The camera device should take the highest-quality image
   7197 possible (given the other settings) without disrupting the
   7198 frame rate of video recording.<wbr/>  </p></span>
   7199                   </li>
   7200                   <li>
   7201                     <span class="entry_type_enum_name">ZERO_SHUTTER_LAG</span>
   7202                     <span class="entry_type_enum_notes"><p>This request is for a ZSL usecase; the
   7203 application will stream full-resolution images and
   7204 reprocess one or several later for a final
   7205 capture.<wbr/></p></span>
   7206                   </li>
   7207                   <li>
   7208                     <span class="entry_type_enum_name">MANUAL</span>
   7209                     <span class="entry_type_enum_notes"><p>This request is for manual capture use case where
   7210 the applications want to directly control the capture parameters.<wbr/></p>
   7211 <p>For example,<wbr/> the application may wish to manually control
   7212 <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>
   7213                   </li>
   7214                 </ul>
   7215 
   7216             </td> <!-- entry_type -->
   7217 
   7218             <td class="entry_description">
   7219               <p>Information to the camera device 3A (auto-exposure,<wbr/>
   7220 auto-focus,<wbr/> auto-white balance) routines about the purpose
   7221 of this capture,<wbr/> to help the camera device to decide optimal 3A
   7222 strategy.<wbr/></p>
   7223             </td>
   7224 
   7225             <td class="entry_units">
   7226             </td>
   7227 
   7228             <td class="entry_range">
   7229             </td>
   7230 
   7231             <td class="entry_tags">
   7232               <ul class="entry_tags">
   7233                   <li><a href="#tag_BC">BC</a></li>
   7234               </ul>
   7235             </td>
   7236 
   7237           </tr>
   7238           <tr class="entries_header">
   7239             <th class="th_details" colspan="5">Details</th>
   7240           </tr>
   7241           <tr class="entry_cont">
   7242             <td class="entry_details" colspan="5">
   7243               <p>This control (except for MANUAL) is only effective if
   7244 <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF</code> and any 3A routine is active.<wbr/></p>
   7245 <p>ZERO_<wbr/>SHUTTER_<wbr/>LAG will be supported if <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>
   7246 contains ZSL.<wbr/> MANUAL will be supported if <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>
   7247 contains MANUAL_<wbr/>SENSOR.<wbr/> Other intent values are always supported.<wbr/></p>
   7248             </td>
   7249           </tr>
   7250 
   7251 
   7252           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   7253            <!-- end of entry -->
   7254         
   7255                 
   7256           <tr class="entry" id="dynamic_android.control.awbState">
   7257             <td class="entry_name
   7258              " rowspan="3">
   7259               android.<wbr/>control.<wbr/>awb<wbr/>State
   7260             </td>
   7261             <td class="entry_type">
   7262                 <span class="entry_type_name entry_type_name_enum">byte</span>
   7263 
   7264               <span class="entry_type_visibility"> [public]</span>
   7265 
   7266 
   7267               <span class="entry_type_hwlevel">[limited] </span>
   7268 
   7269 
   7270 
   7271                 <ul class="entry_type_enum">
   7272                   <li>
   7273                     <span class="entry_type_enum_name">INACTIVE</span>
   7274                     <span class="entry_type_enum_notes"><p>AWB is not in auto mode,<wbr/> or has not yet started metering.<wbr/></p>
   7275 <p>When a camera device is opened,<wbr/> it starts in this
   7276 state.<wbr/> This is a transient state,<wbr/> the camera device may
   7277 skip reporting this state in capture
   7278 result.<wbr/></p></span>
   7279                   </li>
   7280                   <li>
   7281                     <span class="entry_type_enum_name">SEARCHING</span>
   7282                     <span class="entry_type_enum_notes"><p>AWB doesn't yet have a good set of control
   7283 values for the current scene.<wbr/></p>
   7284 <p>This is a transient state,<wbr/> the camera device
   7285 may skip reporting this state in capture result.<wbr/></p></span>
   7286                   </li>
   7287                   <li>
   7288                     <span class="entry_type_enum_name">CONVERGED</span>
   7289                     <span class="entry_type_enum_notes"><p>AWB has a good set of control values for the
   7290 current scene.<wbr/></p></span>
   7291                   </li>
   7292                   <li>
   7293                     <span class="entry_type_enum_name">LOCKED</span>
   7294                     <span class="entry_type_enum_notes"><p>AWB has been locked.<wbr/></p></span>
   7295                   </li>
   7296                 </ul>
   7297 
   7298             </td> <!-- entry_type -->
   7299 
   7300             <td class="entry_description">
   7301               <p>Current state of auto-white balance (AWB) algorithm.<wbr/></p>
   7302             </td>
   7303 
   7304             <td class="entry_units">
   7305             </td>
   7306 
   7307             <td class="entry_range">
   7308             </td>
   7309 
   7310             <td class="entry_tags">
   7311             </td>
   7312 
   7313           </tr>
   7314           <tr class="entries_header">
   7315             <th class="th_details" colspan="5">Details</th>
   7316           </tr>
   7317           <tr class="entry_cont">
   7318             <td class="entry_details" colspan="5">
   7319               <p>Switching between or enabling AWB modes (<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>) always
   7320 resets the AWB state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
   7321 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
   7322 the algorithm states to INACTIVE.<wbr/></p>
   7323 <p>The camera device can do several state transitions between two results,<wbr/> if it is
   7324 allowed by the state transition table.<wbr/> So INACTIVE may never actually be seen in
   7325 a result.<wbr/></p>
   7326 <p>The state in the result is the state for this image (in sync with this image): if
   7327 AWB state becomes CONVERGED,<wbr/> then the image data associated with this result should
   7328 be good to use.<wbr/></p>
   7329 <p>Below are state transition tables for different AWB modes.<wbr/></p>
   7330 <p>When <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != AWB_<wbr/>MODE_<wbr/>AUTO</code>:</p>
   7331 <table>
   7332 <thead>
   7333 <tr>
   7334 <th align="center">State</th>
   7335 <th align="center">Transition Cause</th>
   7336 <th align="center">New State</th>
   7337 <th align="center">Notes</th>
   7338 </tr>
   7339 </thead>
   7340 <tbody>
   7341 <tr>
   7342 <td align="center">INACTIVE</td>
   7343 <td align="center"></td>
   7344 <td align="center">INACTIVE</td>
   7345 <td align="center">Camera device auto white balance algorithm is disabled</td>
   7346 </tr>
   7347 </tbody>
   7348 </table>
   7349 <p>When <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> is AWB_<wbr/>MODE_<wbr/>AUTO:</p>
   7350 <table>
   7351 <thead>
   7352 <tr>
   7353 <th align="center">State</th>
   7354 <th align="center">Transition Cause</th>
   7355 <th align="center">New State</th>
   7356 <th align="center">Notes</th>
   7357 </tr>
   7358 </thead>
   7359 <tbody>
   7360 <tr>
   7361 <td align="center">INACTIVE</td>
   7362 <td align="center">Camera device initiates AWB scan</td>
   7363 <td align="center">SEARCHING</td>
   7364 <td align="center">Values changing</td>
   7365 </tr>
   7366 <tr>
   7367 <td align="center">INACTIVE</td>
   7368 <td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
   7369 <td align="center">LOCKED</td>
   7370 <td align="center">Values locked</td>
   7371 </tr>
   7372 <tr>
   7373 <td align="center">SEARCHING</td>
   7374 <td align="center">Camera device finishes AWB scan</td>
   7375 <td align="center">CONVERGED</td>
   7376 <td align="center">Good values,<wbr/> not changing</td>
   7377 </tr>
   7378 <tr>
   7379 <td align="center">SEARCHING</td>
   7380 <td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
   7381 <td align="center">LOCKED</td>
   7382 <td align="center">Values locked</td>
   7383 </tr>
   7384 <tr>
   7385 <td align="center">CONVERGED</td>
   7386 <td align="center">Camera device initiates AWB scan</td>
   7387 <td align="center">SEARCHING</td>
   7388 <td align="center">Values changing</td>
   7389 </tr>
   7390 <tr>
   7391 <td align="center">CONVERGED</td>
   7392 <td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
   7393 <td align="center">LOCKED</td>
   7394 <td align="center">Values locked</td>
   7395 </tr>
   7396 <tr>
   7397 <td align="center">LOCKED</td>
   7398 <td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
   7399 <td align="center">SEARCHING</td>
   7400 <td align="center">Values not good after unlock</td>
   7401 </tr>
   7402 </tbody>
   7403 </table>
   7404 <p>For the above table,<wbr/> the camera device may skip reporting any state changes that happen
   7405 without application intervention (i.<wbr/>e.<wbr/> mode switch,<wbr/> trigger,<wbr/> locking).<wbr/> Any state that
   7406 can be skipped in that manner is called a transient state.<wbr/></p>
   7407 <p>For example,<wbr/> for this AWB mode (AWB_<wbr/>MODE_<wbr/>AUTO),<wbr/> in addition to the state transitions
   7408 listed in above table,<wbr/> it is also legal for the camera device to skip one or more
   7409 transient states between two results.<wbr/> See below table for examples:</p>
   7410 <table>
   7411 <thead>
   7412 <tr>
   7413 <th align="center">State</th>
   7414 <th align="center">Transition Cause</th>
   7415 <th align="center">New State</th>
   7416 <th align="center">Notes</th>
   7417 </tr>
   7418 </thead>
   7419 <tbody>
   7420 <tr>
   7421 <td align="center">INACTIVE</td>
   7422 <td align="center">Camera device finished AWB scan</td>
   7423 <td align="center">CONVERGED</td>
   7424 <td align="center">Values are already good,<wbr/> transient states are skipped by camera device.<wbr/></td>
   7425 </tr>
   7426 <tr>
   7427 <td align="center">LOCKED</td>
   7428 <td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
   7429 <td align="center">CONVERGED</td>
   7430 <td align="center">Values good after unlock,<wbr/> transient states are skipped by camera device.<wbr/></td>
   7431 </tr>
   7432 </tbody>
   7433 </table>
   7434             </td>
   7435           </tr>
   7436 
   7437 
   7438           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   7439            <!-- end of entry -->
   7440         
   7441                 
   7442           <tr class="entry" id="dynamic_android.control.effectMode">
   7443             <td class="entry_name
   7444              " rowspan="3">
   7445               android.<wbr/>control.<wbr/>effect<wbr/>Mode
   7446             </td>
   7447             <td class="entry_type">
   7448                 <span class="entry_type_name entry_type_name_enum">byte</span>
   7449 
   7450               <span class="entry_type_visibility"> [public]</span>
   7451 
   7452 
   7453               <span class="entry_type_hwlevel">[legacy] </span>
   7454 
   7455 
   7456 
   7457                 <ul class="entry_type_enum">
   7458                   <li>
   7459                     <span class="entry_type_enum_name">OFF</span>
   7460                     <span class="entry_type_enum_notes"><p>No color effect will be applied.<wbr/></p></span>
   7461                   </li>
   7462                   <li>
   7463                     <span class="entry_type_enum_name">MONO</span>
   7464                     <span class="entry_type_enum_optional">[optional]</span>
   7465                     <span class="entry_type_enum_notes"><p>A "monocolor" effect where the image is mapped into
   7466 a single color.<wbr/></p>
   7467 <p>This will typically be grayscale.<wbr/></p></span>
   7468                   </li>
   7469                   <li>
   7470                     <span class="entry_type_enum_name">NEGATIVE</span>
   7471                     <span class="entry_type_enum_optional">[optional]</span>
   7472                     <span class="entry_type_enum_notes"><p>A "photo-negative" effect where the image's colors
   7473 are inverted.<wbr/></p></span>
   7474                   </li>
   7475                   <li>
   7476                     <span class="entry_type_enum_name">SOLARIZE</span>
   7477                     <span class="entry_type_enum_optional">[optional]</span>
   7478                     <span class="entry_type_enum_notes"><p>A "solarisation" effect (Sabattier effect) where the
   7479 image is wholly or partially reversed in
   7480 tone.<wbr/></p></span>
   7481                   </li>
   7482                   <li>
   7483                     <span class="entry_type_enum_name">SEPIA</span>
   7484                     <span class="entry_type_enum_optional">[optional]</span>
   7485                     <span class="entry_type_enum_notes"><p>A "sepia" effect where the image is mapped into warm
   7486 gray,<wbr/> red,<wbr/> and brown tones.<wbr/></p></span>
   7487                   </li>
   7488                   <li>
   7489                     <span class="entry_type_enum_name">POSTERIZE</span>
   7490                     <span class="entry_type_enum_optional">[optional]</span>
   7491                     <span class="entry_type_enum_notes"><p>A "posterization" effect where the image uses
   7492 discrete regions of tone rather than a continuous
   7493 gradient of tones.<wbr/></p></span>
   7494                   </li>
   7495                   <li>
   7496                     <span class="entry_type_enum_name">WHITEBOARD</span>
   7497                     <span class="entry_type_enum_optional">[optional]</span>
   7498                     <span class="entry_type_enum_notes"><p>A "whiteboard" effect where the image is typically displayed
   7499 as regions of white,<wbr/> with black or grey details.<wbr/></p></span>
   7500                   </li>
   7501                   <li>
   7502                     <span class="entry_type_enum_name">BLACKBOARD</span>
   7503                     <span class="entry_type_enum_optional">[optional]</span>
   7504                     <span class="entry_type_enum_notes"><p>A "blackboard" effect where the image is typically displayed
   7505 as regions of black,<wbr/> with white or grey details.<wbr/></p></span>
   7506                   </li>
   7507                   <li>
   7508                     <span class="entry_type_enum_name">AQUA</span>
   7509                     <span class="entry_type_enum_optional">[optional]</span>
   7510                     <span class="entry_type_enum_notes"><p>An "aqua" effect where a blue hue is added to the image.<wbr/></p></span>
   7511                   </li>
   7512                 </ul>
   7513 
   7514             </td> <!-- entry_type -->
   7515 
   7516             <td class="entry_description">
   7517               <p>A special color effect to apply.<wbr/></p>
   7518             </td>
   7519 
   7520             <td class="entry_units">
   7521             </td>
   7522 
   7523             <td class="entry_range">
   7524               <p><a href="#static_android.control.availableEffects">android.<wbr/>control.<wbr/>available<wbr/>Effects</a></p>
   7525             </td>
   7526 
   7527             <td class="entry_tags">
   7528               <ul class="entry_tags">
   7529                   <li><a href="#tag_BC">BC</a></li>
   7530               </ul>
   7531             </td>
   7532 
   7533           </tr>
   7534           <tr class="entries_header">
   7535             <th class="th_details" colspan="5">Details</th>
   7536           </tr>
   7537           <tr class="entry_cont">
   7538             <td class="entry_details" colspan="5">
   7539               <p>When this mode is set,<wbr/> a color effect will be applied
   7540 to images produced by the camera device.<wbr/> The interpretation
   7541 and implementation of these color effects is left to the
   7542 implementor of the camera device,<wbr/> and should not be
   7543 depended on to be consistent (or present) across all
   7544 devices.<wbr/></p>
   7545             </td>
   7546           </tr>
   7547 
   7548 
   7549           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   7550            <!-- end of entry -->
   7551         
   7552                 
   7553           <tr class="entry" id="dynamic_android.control.mode">
   7554             <td class="entry_name
   7555              " rowspan="3">
   7556               android.<wbr/>control.<wbr/>mode
   7557             </td>
   7558             <td class="entry_type">
   7559                 <span class="entry_type_name entry_type_name_enum">byte</span>
   7560 
   7561               <span class="entry_type_visibility"> [public]</span>
   7562 
   7563 
   7564               <span class="entry_type_hwlevel">[legacy] </span>
   7565 
   7566 
   7567 
   7568                 <ul class="entry_type_enum">
   7569                   <li>
   7570                     <span class="entry_type_enum_name">OFF</span>
   7571                     <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/></p>
   7572 <p>All control by the device's metering and focusing (3A)
   7573 routines is disabled,<wbr/> and no other settings in
   7574 android.<wbr/>control.<wbr/>* have any effect,<wbr/> except that
   7575 <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> may be used by the camera
   7576 device to select post-processing values for processing
   7577 blocks that do not allow for manual control,<wbr/> or are not
   7578 exposed by the camera API.<wbr/></p>
   7579 <p>However,<wbr/> the camera device's 3A routines may continue to
   7580 collect statistics and update their internal state so that
   7581 when control is switched to AUTO mode,<wbr/> good control values
   7582 can be immediately applied.<wbr/></p></span>
   7583                   </li>
   7584                   <li>
   7585                     <span class="entry_type_enum_name">AUTO</span>
   7586                     <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/></p>
   7587 <p>Manual control of capture parameters is disabled.<wbr/> All
   7588 controls in android.<wbr/>control.<wbr/>* besides sceneMode take
   7589 effect.<wbr/></p></span>
   7590                   </li>
   7591                   <li>
   7592                     <span class="entry_type_enum_name">USE_SCENE_MODE</span>
   7593                     <span class="entry_type_enum_notes"><p>Use a specific scene mode.<wbr/></p>
   7594 <p>Enabling this disables control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and
   7595 control.<wbr/>afMode controls; the camera device will ignore
   7596 those settings while USE_<wbr/>SCENE_<wbr/>MODE is active (except for
   7597 FACE_<wbr/>PRIORITY scene mode).<wbr/> Other control entries are still
   7598 active.<wbr/>  This setting can only be used if scene mode is
   7599 supported (i.<wbr/>e.<wbr/> <a href="#static_android.control.availableSceneModes">android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes</a>
   7600 contain some modes other than DISABLED).<wbr/></p></span>
   7601                   </li>
   7602                   <li>
   7603                     <span class="entry_type_enum_name">OFF_KEEP_STATE</span>
   7604                     <span class="entry_type_enum_notes"><p>Same as OFF mode,<wbr/> except that this capture will not be
   7605 used by camera device background auto-exposure,<wbr/> auto-white balance and
   7606 auto-focus algorithms (3A) to update their statistics.<wbr/></p>
   7607 <p>Specifically,<wbr/> the 3A routines are locked to the last
   7608 values set from a request with AUTO,<wbr/> OFF,<wbr/> or
   7609 USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> and any statistics or state updates
   7610 collected from manual captures with OFF_<wbr/>KEEP_<wbr/>STATE will be
   7611 discarded by the camera device.<wbr/></p></span>
   7612                   </li>
   7613                 </ul>
   7614 
   7615             </td> <!-- entry_type -->
   7616 
   7617             <td class="entry_description">
   7618               <p>Overall mode of 3A (auto-exposure,<wbr/> auto-white-balance,<wbr/> auto-focus) control
   7619 routines.<wbr/></p>
   7620             </td>
   7621 
   7622             <td class="entry_units">
   7623             </td>
   7624 
   7625             <td class="entry_range">
   7626             </td>
   7627 
   7628             <td class="entry_tags">
   7629               <ul class="entry_tags">
   7630                   <li><a href="#tag_BC">BC</a></li>
   7631               </ul>
   7632             </td>
   7633 
   7634           </tr>
   7635           <tr class="entries_header">
   7636             <th class="th_details" colspan="5">Details</th>
   7637           </tr>
   7638           <tr class="entry_cont">
   7639             <td class="entry_details" colspan="5">
   7640               <p>This is a top-level 3A control switch.<wbr/> When set to OFF,<wbr/> all 3A control
   7641 by the camera device is disabled.<wbr/> The application must set the fields for
   7642 capture parameters itself.<wbr/></p>
   7643 <p>When set to AUTO,<wbr/> the individual algorithm controls in
   7644 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>
   7645 <p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
   7646 android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device implements
   7647 one of the scene mode settings (such as ACTION,<wbr/> SUNSET,<wbr/> or PARTY)
   7648 as it wishes.<wbr/> The camera device scene mode 3A settings are provided by
   7649 <a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
   7650 <p>When set to OFF_<wbr/>KEEP_<wbr/>STATE,<wbr/> it is similar to OFF mode,<wbr/> the only difference
   7651 is that this frame will not be used by camera device background 3A statistics
   7652 update,<wbr/> as if this frame is never captured.<wbr/> This mode can be used in the scenario
   7653 where the application doesn't want a 3A manual control capture to affect
   7654 the subsequent auto 3A capture results.<wbr/></p>
   7655 <p>LEGACY mode devices will only support AUTO and USE_<wbr/>SCENE_<wbr/>MODE modes.<wbr/>
   7656 LIMITED mode devices will only support OFF and OFF_<wbr/>KEEP_<wbr/>STATE if they
   7657 support the MANUAL_<wbr/>SENSOR and MANUAL_<wbr/>POST_<wbr/>PROCSESING capabilities.<wbr/>
   7658 FULL mode devices will always support OFF and OFF_<wbr/>KEEP_<wbr/>STATE.<wbr/></p>
   7659             </td>
   7660           </tr>
   7661 
   7662 
   7663           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   7664            <!-- end of entry -->
   7665         
   7666                 
   7667           <tr class="entry" id="dynamic_android.control.sceneMode">
   7668             <td class="entry_name
   7669              " rowspan="5">
   7670               android.<wbr/>control.<wbr/>scene<wbr/>Mode
   7671             </td>
   7672             <td class="entry_type">
   7673                 <span class="entry_type_name entry_type_name_enum">byte</span>
   7674 
   7675               <span class="entry_type_visibility"> [public]</span>
   7676 
   7677 
   7678               <span class="entry_type_hwlevel">[legacy] </span>
   7679 
   7680 
   7681 
   7682                 <ul class="entry_type_enum">
   7683                   <li>
   7684                     <span class="entry_type_enum_name">DISABLED</span>
   7685                     <span class="entry_type_enum_value">0</span>
   7686                     <span class="entry_type_enum_notes"><p>Indicates that no scene modes are set for a given capture request.<wbr/></p></span>
   7687                   </li>
   7688                   <li>
   7689                     <span class="entry_type_enum_name">FACE_PRIORITY</span>
   7690                     <span class="entry_type_enum_notes"><p>If face detection support exists,<wbr/> use face
   7691 detection data for auto-focus,<wbr/> auto-white balance,<wbr/> and
   7692 auto-exposure routines.<wbr/></p>
   7693 <p>If face detection statistics are disabled
   7694 (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/>
   7695 this should still operate correctly (but will not return
   7696 face detection statistics to the framework).<wbr/></p>
   7697 <p>Unlike the other scene modes,<wbr/> <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
   7698 <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>
   7699 remain active when FACE_<wbr/>PRIORITY is set.<wbr/></p></span>
   7700                   </li>
   7701                   <li>
   7702                     <span class="entry_type_enum_name">ACTION</span>
   7703                     <span class="entry_type_enum_optional">[optional]</span>
   7704                     <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving objects.<wbr/></p>
   7705 <p>Similar to SPORTS.<wbr/></p></span>
   7706                   </li>
   7707                   <li>
   7708                     <span class="entry_type_enum_name">PORTRAIT</span>
   7709                     <span class="entry_type_enum_optional">[optional]</span>
   7710                     <span class="entry_type_enum_notes"><p>Optimized for still photos of people.<wbr/></p></span>
   7711                   </li>
   7712                   <li>
   7713                     <span class="entry_type_enum_name">LANDSCAPE</span>
   7714                     <span class="entry_type_enum_optional">[optional]</span>
   7715                     <span class="entry_type_enum_notes"><p>Optimized for photos of distant macroscopic objects.<wbr/></p></span>
   7716                   </li>
   7717                   <li>
   7718                     <span class="entry_type_enum_name">NIGHT</span>
   7719                     <span class="entry_type_enum_optional">[optional]</span>
   7720                     <span class="entry_type_enum_notes"><p>Optimized for low-light settings.<wbr/></p></span>
   7721                   </li>
   7722                   <li>
   7723                     <span class="entry_type_enum_name">NIGHT_PORTRAIT</span>
   7724                     <span class="entry_type_enum_optional">[optional]</span>
   7725                     <span class="entry_type_enum_notes"><p>Optimized for still photos of people in low-light
   7726 settings.<wbr/></p></span>
   7727                   </li>
   7728                   <li>
   7729                     <span class="entry_type_enum_name">THEATRE</span>
   7730                     <span class="entry_type_enum_optional">[optional]</span>
   7731                     <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings where flash must
   7732 remain off.<wbr/></p></span>
   7733                   </li>
   7734                   <li>
   7735                     <span class="entry_type_enum_name">BEACH</span>
   7736                     <span class="entry_type_enum_optional">[optional]</span>
   7737                     <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor beach settings.<wbr/></p></span>
   7738                   </li>
   7739                   <li>
   7740                     <span class="entry_type_enum_name">SNOW</span>
   7741                     <span class="entry_type_enum_optional">[optional]</span>
   7742                     <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor settings containing snow.<wbr/></p></span>
   7743                   </li>
   7744                   <li>
   7745                     <span class="entry_type_enum_name">SUNSET</span>
   7746                     <span class="entry_type_enum_optional">[optional]</span>
   7747                     <span class="entry_type_enum_notes"><p>Optimized for scenes of the setting sun.<wbr/></p></span>
   7748                   </li>
   7749                   <li>
   7750                     <span class="entry_type_enum_name">STEADYPHOTO</span>
   7751                     <span class="entry_type_enum_optional">[optional]</span>
   7752                     <span class="entry_type_enum_notes"><p>Optimized to avoid blurry photos due to small amounts of
   7753 device motion (for example: due to hand shake).<wbr/></p></span>
   7754                   </li>
   7755                   <li>
   7756                     <span class="entry_type_enum_name">FIREWORKS</span>
   7757                     <span class="entry_type_enum_optional">[optional]</span>
   7758                     <span class="entry_type_enum_notes"><p>Optimized for nighttime photos of fireworks.<wbr/></p></span>
   7759                   </li>
   7760                   <li>
   7761                     <span class="entry_type_enum_name">SPORTS</span>
   7762                     <span class="entry_type_enum_optional">[optional]</span>
   7763                     <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving people.<wbr/></p>
   7764 <p>Similar to ACTION.<wbr/></p></span>
   7765                   </li>
   7766                   <li>
   7767                     <span class="entry_type_enum_name">PARTY</span>
   7768                     <span class="entry_type_enum_optional">[optional]</span>
   7769                     <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings with multiple moving
   7770 people.<wbr/></p></span>
   7771                   </li>
   7772                   <li>
   7773                     <span class="entry_type_enum_name">CANDLELIGHT</span>
   7774                     <span class="entry_type_enum_optional">[optional]</span>
   7775                     <span class="entry_type_enum_notes"><p>Optimized for dim settings where the main light source
   7776 is a flame.<wbr/></p></span>
   7777                   </li>
   7778                   <li>
   7779                     <span class="entry_type_enum_name">BARCODE</span>
   7780                     <span class="entry_type_enum_optional">[optional]</span>
   7781                     <span class="entry_type_enum_notes"><p>Optimized for accurately capturing a photo of barcode
   7782 for use by camera applications that wish to read the
   7783 barcode value.<wbr/></p></span>
   7784                   </li>
   7785                   <li>
   7786                     <span class="entry_type_enum_name">HIGH_SPEED_VIDEO</span>
   7787                     <span class="entry_type_enum_optional">[optional]</span>
   7788                     <span class="entry_type_enum_notes"><p>Optimized for high speed video recording (frame rate &gt;=60fps) use case.<wbr/></p>
   7789 <p>The supported high speed video sizes and fps ranges are specified in
   7790 <a href="#static_android.control.availableHighSpeedVideoConfigurations">android.<wbr/>control.<wbr/>available<wbr/>High<wbr/>Speed<wbr/>Video<wbr/>Configurations</a>.<wbr/> To get desired
   7791 output frame rates,<wbr/> the application is only allowed to select video size
   7792 and fps range combinations listed in this static metadata.<wbr/> The fps range
   7793 can be control via <a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a>.<wbr/></p>
   7794 <p>In this mode,<wbr/> the camera device will override aeMode,<wbr/> awbMode,<wbr/> and afMode to
   7795 ON,<wbr/> ON,<wbr/> and CONTINUOUS_<wbr/>VIDEO,<wbr/> respectively.<wbr/> All post-processing block mode
   7796 controls will be overridden to be FAST.<wbr/> Therefore,<wbr/> no manual control of capture
   7797 and post-processing parameters is possible.<wbr/> All other controls operate the
   7798 same as when <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == AUTO.<wbr/> This means that all other
   7799 android.<wbr/>control.<wbr/>* fields continue to work,<wbr/> such as</p>
   7800 <ul>
   7801 <li><a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a></li>
   7802 <li><a href="#controls_android.control.aeExposureCompensation">android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation</a></li>
   7803 <li><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a></li>
   7804 <li><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a></li>
   7805 <li><a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a></li>
   7806 <li><a href="#controls_android.control.aeRegions">android.<wbr/>control.<wbr/>ae<wbr/>Regions</a></li>
   7807 <li><a href="#controls_android.control.afRegions">android.<wbr/>control.<wbr/>af<wbr/>Regions</a></li>
   7808 <li><a href="#controls_android.control.awbRegions">android.<wbr/>control.<wbr/>awb<wbr/>Regions</a></li>
   7809 <li><a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a></li>
   7810 <li><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a></li>
   7811 </ul>
   7812 <p>Outside of android.<wbr/>control.<wbr/>*,<wbr/> the following controls will work:</p>
   7813 <ul>
   7814 <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>
   7815 <li><a href="#controls_android.lens.opticalStabilizationMode">android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode</a> (if it is supported)</li>
   7816 <li><a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a></li>
   7817 <li><a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a></li>
   7818 </ul>
   7819 <p>For high speed recording use case,<wbr/> the actual maximum supported frame rate may
   7820 be lower than what camera can output,<wbr/> depending on the destination Surfaces for
   7821 the image data.<wbr/> For example,<wbr/> if the destination surface is from video encoder,<wbr/>
   7822 the application need check if the video encoder is capable of supporting the
   7823 high frame rate for a given video size,<wbr/> or it will end up with lower recording
   7824 frame rate.<wbr/> If the destination surface is from preview window,<wbr/> the preview frame
   7825 rate will be bounded by the screen refresh rate.<wbr/></p>
   7826 <p>The camera device will only support up to 2 output high speed streams
   7827 (processed non-stalling format defined in <a href="#static_android.request.maxNumOutputStreams">android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Streams</a>)
   7828 in this mode.<wbr/> This control will be effective only if all of below conditions are true:</p>
   7829 <ul>
   7830 <li>The application created no more than maxNumHighSpeedStreams processed non-stalling
   7831 format output streams,<wbr/> where maxNumHighSpeedStreams is calculated as
   7832 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>
   7833 <li>The stream sizes are selected from the sizes reported by
   7834 <a href="#static_android.control.availableHighSpeedVideoConfigurations">android.<wbr/>control.<wbr/>available<wbr/>High<wbr/>Speed<wbr/>Video<wbr/>Configurations</a>.<wbr/></li>
   7835 <li>No processed non-stalling or raw streams are configured.<wbr/></li>
   7836 </ul>
   7837 <p>When above conditions are NOT satistied,<wbr/> the controls of this mode and
   7838 <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/>
   7839 the camera device will fall back to <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> <code>==</code> AUTO,<wbr/>
   7840 and the returned capture result metadata will give the fps range choosen
   7841 by the camera device.<wbr/></p>
   7842 <p>Switching into or out of this mode may trigger some camera ISP/<wbr/>sensor
   7843 reconfigurations,<wbr/> which may introduce extra latency.<wbr/> It is recommended that
   7844 the application avoids unnecessary scene mode switch as much as possible.<wbr/></p></span>
   7845                   </li>
   7846                   <li>
   7847                     <span class="entry_type_enum_name">HDR</span>
   7848                     <span class="entry_type_enum_optional">[optional]</span>
   7849                     <span class="entry_type_enum_notes"><p>Turn on a device-specific high dynamic range (HDR) mode.<wbr/></p>
   7850 <p>In this scene mode,<wbr/> the camera device captures images
   7851 that keep a larger range of scene illumination levels
   7852 visible in the final image.<wbr/> For example,<wbr/> when taking a
   7853 picture of a object in front of a bright window,<wbr/> both
   7854 the object and the scene through the window may be
   7855 visible when using HDR mode,<wbr/> while in normal AUTO mode,<wbr/>
   7856 one or the other may be poorly exposed.<wbr/> As a tradeoff,<wbr/>
   7857 HDR mode generally takes much longer to capture a single
   7858 image,<wbr/> has no user control,<wbr/> and may have other artifacts
   7859 depending on the HDR method used.<wbr/></p>
   7860 <p>Therefore,<wbr/> HDR captures operate at a much slower rate
   7861 than regular captures.<wbr/></p>
   7862 <p>In this mode,<wbr/> on LIMITED or FULL devices,<wbr/> when a request
   7863 is made with a <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> of
   7864 STILL_<wbr/>CAPTURE,<wbr/> the camera device will capture an image
   7865 using a high dynamic range capture technique.<wbr/>  On LEGACY
   7866 devices,<wbr/> captures that target a JPEG-format output will
   7867 be captured with HDR,<wbr/> and the capture intent is not
   7868 relevant.<wbr/></p>
   7869 <p>The HDR capture may involve the device capturing a burst
   7870 of images internally and combining them into one,<wbr/> or it
   7871 may involve the device using specialized high dynamic
   7872 range capture hardware.<wbr/> In all cases,<wbr/> a single image is
   7873 produced in response to a capture request submitted
   7874 while in HDR mode.<wbr/></p>
   7875 <p>Since substantial post-processing is generally needed to
   7876 produce an HDR image,<wbr/> only YUV and JPEG outputs are
   7877 supported for LIMITED/<wbr/>FULL device HDR captures,<wbr/> and only
   7878 JPEG outputs are supported for LEGACY HDR
   7879 captures.<wbr/> Using a RAW output for HDR capture is not
   7880 supported.<wbr/></p></span>
   7881                   </li>
   7882                 </ul>
   7883 
   7884             </td> <!-- entry_type -->
   7885 
   7886             <td class="entry_description">
   7887               <p>Control for which scene mode is currently active.<wbr/></p>
   7888             </td>
   7889 
   7890             <td class="entry_units">
   7891             </td>
   7892 
   7893             <td class="entry_range">
   7894               <p><a href="#static_android.control.availableSceneModes">android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes</a></p>
   7895             </td>
   7896 
   7897             <td class="entry_tags">
   7898               <ul class="entry_tags">
   7899                   <li><a href="#tag_BC">BC</a></li>
   7900               </ul>
   7901             </td>
   7902 
   7903           </tr>
   7904           <tr class="entries_header">
   7905             <th class="th_details" colspan="5">Details</th>
   7906           </tr>
   7907           <tr class="entry_cont">
   7908             <td class="entry_details" colspan="5">
   7909               <p>Scene modes are custom camera modes optimized for a certain set of conditions and
   7910 capture settings.<wbr/></p>
   7911 <p>This is the mode that that is active when
   7912 <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/>
   7913 these modes will disable <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
   7914 <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>
   7915 <p>The interpretation and implementation of these scene modes is left
   7916 to the implementor of the camera device.<wbr/> Their behavior will not be
   7917 consistent across all devices,<wbr/> and any given device may only implement
   7918 a subset of these modes.<wbr/></p>
   7919             </td>
   7920           </tr>
   7921 
   7922           <tr class="entries_header">
   7923             <th class="th_details" colspan="5">HAL Implementation Details</th>
   7924           </tr>
   7925           <tr class="entry_cont">
   7926             <td class="entry_details" colspan="5">
   7927               <p>HAL implementations that include scene modes are expected to provide
   7928 the per-scene settings to use for <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
   7929 <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
   7930 <a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
   7931 <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/>
   7932 the HAL must list supported video size and fps range in
   7933 <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/>
   7934 1280x720,<wbr/> if the HAL has two different sensor configurations for normal streaming
   7935 mode and high speed streaming,<wbr/> when this scene mode is set/<wbr/>reset in a sequence of capture
   7936 requests,<wbr/> the HAL may have to switch between different sensor modes.<wbr/></p>
   7937             </td>
   7938           </tr>
   7939 
   7940           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   7941            <!-- end of entry -->
   7942         
   7943                 
   7944           <tr class="entry" id="dynamic_android.control.videoStabilizationMode">
   7945             <td class="entry_name
   7946              " rowspan="3">
   7947               android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode
   7948             </td>
   7949             <td class="entry_type">
   7950                 <span class="entry_type_name entry_type_name_enum">byte</span>
   7951 
   7952               <span class="entry_type_visibility"> [public]</span>
   7953 
   7954 
   7955               <span class="entry_type_hwlevel">[legacy] </span>
   7956 
   7957 
   7958 
   7959                 <ul class="entry_type_enum">
   7960                   <li>
   7961                     <span class="entry_type_enum_name">OFF</span>
   7962                     <span class="entry_type_enum_notes"><p>Video stabilization is disabled.<wbr/></p></span>
   7963                   </li>
   7964                   <li>
   7965                     <span class="entry_type_enum_name">ON</span>
   7966                     <span class="entry_type_enum_notes"><p>Video stabilization is enabled.<wbr/></p></span>
   7967                   </li>
   7968                 </ul>
   7969 
   7970             </td> <!-- entry_type -->
   7971 
   7972             <td class="entry_description">
   7973               <p>Whether video stabilization is
   7974 active.<wbr/></p>
   7975             </td>
   7976 
   7977             <td class="entry_units">
   7978             </td>
   7979 
   7980             <td class="entry_range">
   7981             </td>
   7982 
   7983             <td class="entry_tags">
   7984               <ul class="entry_tags">
   7985                   <li><a href="#tag_BC">BC</a></li>
   7986               </ul>
   7987             </td>
   7988 
   7989           </tr>
   7990           <tr class="entries_header">
   7991             <th class="th_details" colspan="5">Details</th>
   7992           </tr>
   7993           <tr class="entry_cont">
   7994             <td class="entry_details" colspan="5">
   7995               <p>Video stabilization automatically translates and scales images from
   7996 the camera in order to stabilize motion between consecutive frames.<wbr/></p>
   7997 <p>If enabled,<wbr/> video stabilization can modify the
   7998 <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a> to keep the video stream stabilized.<wbr/></p>
   7999 <p>Switching between different video stabilization modes may take several
   8000 frames to initialize,<wbr/> the camera device will report the current mode
   8001 in capture result metadata.<wbr/> For example,<wbr/> When "ON" mode is requested,<wbr/>
   8002 the video stabilization modes in the first several capture results may
   8003 still be "OFF",<wbr/> and it will become "ON" when the initialization is
   8004 done.<wbr/></p>
   8005 <p>If a camera device supports both this mode and OIS
   8006 (<a href="#controls_android.lens.opticalStabilizationMode">android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode</a>),<wbr/> turning both modes on may
   8007 produce undesirable interaction,<wbr/> so it is recommended not to enable
   8008 both at the same time.<wbr/></p>
   8009             </td>
   8010           </tr>
   8011 
   8012 
   8013           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   8014            <!-- end of entry -->
   8015         
   8016         
   8017 
   8018       <!-- end of kind -->
   8019       </tbody>
   8020 
   8021   <!-- end of section -->
   8022   <tr><td colspan="6" id="section_demosaic" class="section">demosaic</td></tr>
   8023 
   8024 
   8025       <tr><td colspan="6" class="kind">controls</td></tr>
   8026 
   8027       <thead class="entries_header">
   8028         <tr>
   8029           <th class="th_name">Property Name</th>
   8030           <th class="th_type">Type</th>
   8031           <th class="th_description">Description</th>
   8032           <th class="th_units">Units</th>
   8033           <th class="th_range">Range</th>
   8034           <th class="th_tags">Tags</th>
   8035         </tr>
   8036       </thead>
   8037 
   8038       <tbody>
   8039 
   8040         
   8041 
   8042         
   8043 
   8044         
   8045 
   8046         
   8047 
   8048                 
   8049           <tr class="entry" id="controls_android.demosaic.mode">
   8050             <td class="entry_name
   8051              " rowspan="1">
   8052               android.<wbr/>demosaic.<wbr/>mode
   8053             </td>
   8054             <td class="entry_type">
   8055                 <span class="entry_type_name entry_type_name_enum">byte</span>
   8056 
   8057               <span class="entry_type_visibility"> [system]</span>
   8058 
   8059 
   8060 
   8061 
   8062 
   8063                 <ul class="entry_type_enum">
   8064                   <li>
   8065                     <span class="entry_type_enum_name">FAST</span>
   8066                     <span class="entry_type_enum_notes"><p>Minimal or no slowdown of frame rate compared to
   8067 Bayer RAW output.<wbr/></p></span>
   8068                   </li>
   8069                   <li>
   8070                     <span class="entry_type_enum_name">HIGH_QUALITY</span>
   8071                     <span class="entry_type_enum_notes"><p>Improved processing quality but the frame rate is slowed down
   8072 relative to raw output.<wbr/></p></span>
   8073                   </li>
   8074                 </ul>
   8075 
   8076             </td> <!-- entry_type -->
   8077 
   8078             <td class="entry_description">
   8079               <p>Controls the quality of the demosaicing
   8080 processing.<wbr/></p>
   8081             </td>
   8082 
   8083             <td class="entry_units">
   8084             </td>
   8085 
   8086             <td class="entry_range">
   8087             </td>
   8088 
   8089             <td class="entry_tags">
   8090               <ul class="entry_tags">
   8091                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   8092               </ul>
   8093             </td>
   8094 
   8095           </tr>
   8096 
   8097 
   8098           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   8099            <!-- end of entry -->
   8100         
   8101         
   8102 
   8103       <!-- end of kind -->
   8104       </tbody>
   8105 
   8106   <!-- end of section -->
   8107   <tr><td colspan="6" id="section_edge" class="section">edge</td></tr>
   8108 
   8109 
   8110       <tr><td colspan="6" class="kind">controls</td></tr>
   8111 
   8112       <thead class="entries_header">
   8113         <tr>
   8114           <th class="th_name">Property Name</th>
   8115           <th class="th_type">Type</th>
   8116           <th class="th_description">Description</th>
   8117           <th class="th_units">Units</th>
   8118           <th class="th_range">Range</th>
   8119           <th class="th_tags">Tags</th>
   8120         </tr>
   8121       </thead>
   8122 
   8123       <tbody>
   8124 
   8125         
   8126 
   8127         
   8128 
   8129         
   8130 
   8131         
   8132 
   8133                 
   8134           <tr class="entry" id="controls_android.edge.mode">
   8135             <td class="entry_name
   8136              " rowspan="3">
   8137               android.<wbr/>edge.<wbr/>mode
   8138             </td>
   8139             <td class="entry_type">
   8140                 <span class="entry_type_name entry_type_name_enum">byte</span>
   8141 
   8142               <span class="entry_type_visibility"> [public]</span>
   8143 
   8144 
   8145               <span class="entry_type_hwlevel">[full] </span>
   8146 
   8147 
   8148 
   8149                 <ul class="entry_type_enum">
   8150                   <li>
   8151                     <span class="entry_type_enum_name">OFF</span>
   8152                     <span class="entry_type_enum_notes"><p>No edge enhancement is applied.<wbr/></p></span>
   8153                   </li>
   8154                   <li>
   8155                     <span class="entry_type_enum_name">FAST</span>
   8156                     <span class="entry_type_enum_notes"><p>Apply edge enhancement at a quality level that does not slow down frame rate relative to sensor
   8157 output</p></span>
   8158                   </li>
   8159                   <li>
   8160                     <span class="entry_type_enum_name">HIGH_QUALITY</span>
   8161                     <span class="entry_type_enum_notes"><p>Apply high-quality edge enhancement,<wbr/> at a cost of reducing output frame rate.<wbr/></p></span>
   8162                   </li>
   8163                 </ul>
   8164 
   8165             </td> <!-- entry_type -->
   8166 
   8167             <td class="entry_description">
   8168               <p>Operation mode for edge
   8169 enhancement.<wbr/></p>
   8170             </td>
   8171 
   8172             <td class="entry_units">
   8173             </td>
   8174 
   8175             <td class="entry_range">
   8176               <p><a href="#static_android.edge.availableEdgeModes">android.<wbr/>edge.<wbr/>available<wbr/>Edge<wbr/>Modes</a></p>
   8177             </td>
   8178 
   8179             <td class="entry_tags">
   8180               <ul class="entry_tags">
   8181                   <li><a href="#tag_V1">V1</a></li>
   8182               </ul>
   8183             </td>
   8184 
   8185           </tr>
   8186           <tr class="entries_header">
   8187             <th class="th_details" colspan="5">Details</th>
   8188           </tr>
   8189           <tr class="entry_cont">
   8190             <td class="entry_details" colspan="5">
   8191               <p>Edge enhancement improves sharpness and details in the captured image.<wbr/> OFF means
   8192 no enhancement will be applied by the camera device.<wbr/></p>
   8193 <p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
   8194 will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
   8195 camera device will use the highest-quality enhancement algorithms,<wbr/>
   8196 even if it slows down capture rate.<wbr/> FAST means the camera device will
   8197 not slow down capture rate when applying edge enhancement.<wbr/></p>
   8198             </td>
   8199           </tr>
   8200 
   8201 
   8202           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   8203            <!-- end of entry -->
   8204         
   8205                 
   8206           <tr class="entry" id="controls_android.edge.strength">
   8207             <td class="entry_name
   8208              " rowspan="1">
   8209               android.<wbr/>edge.<wbr/>strength
   8210             </td>
   8211             <td class="entry_type">
   8212                 <span class="entry_type_name">byte</span>
   8213 
   8214               <span class="entry_type_visibility"> [system]</span>
   8215 
   8216 
   8217 
   8218 
   8219 
   8220 
   8221             </td> <!-- entry_type -->
   8222 
   8223             <td class="entry_description">
   8224               <p>Control the amount of edge enhancement
   8225 applied to the images</p>
   8226             </td>
   8227 
   8228             <td class="entry_units">
   8229               1-10; 10 is maximum sharpening
   8230             </td>
   8231 
   8232             <td class="entry_range">
   8233             </td>
   8234 
   8235             <td class="entry_tags">
   8236               <ul class="entry_tags">
   8237                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   8238               </ul>
   8239             </td>
   8240 
   8241           </tr>
   8242 
   8243 
   8244           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   8245            <!-- end of entry -->
   8246         
   8247         
   8248 
   8249       <!-- end of kind -->
   8250       </tbody>
   8251       <tr><td colspan="6" class="kind">static</td></tr>
   8252 
   8253       <thead class="entries_header">
   8254         <tr>
   8255           <th class="th_name">Property Name</th>
   8256           <th class="th_type">Type</th>
   8257           <th class="th_description">Description</th>
   8258           <th class="th_units">Units</th>
   8259           <th class="th_range">Range</th>
   8260           <th class="th_tags">Tags</th>
   8261         </tr>
   8262       </thead>
   8263 
   8264       <tbody>
   8265 
   8266         
   8267 
   8268         
   8269 
   8270         
   8271 
   8272         
   8273 
   8274                 
   8275           <tr class="entry" id="static_android.edge.availableEdgeModes">
   8276             <td class="entry_name
   8277              " rowspan="3">
   8278               android.<wbr/>edge.<wbr/>available<wbr/>Edge<wbr/>Modes
   8279             </td>
   8280             <td class="entry_type">
   8281                 <span class="entry_type_name">byte</span>
   8282                 <span class="entry_type_container">x</span>
   8283 
   8284                 <span class="entry_type_array">
   8285                   n
   8286                 </span>
   8287               <span class="entry_type_visibility"> [public as enumList]</span>
   8288 
   8289 
   8290               <span class="entry_type_hwlevel">[full] </span>
   8291 
   8292 
   8293                 <div class="entry_type_notes">list of enums</div>
   8294 
   8295 
   8296             </td> <!-- entry_type -->
   8297 
   8298             <td class="entry_description">
   8299               <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
   8300 device.<wbr/></p>
   8301             </td>
   8302 
   8303             <td class="entry_units">
   8304             </td>
   8305 
   8306             <td class="entry_range">
   8307               <p>Any value listed in <a href="#controls_android.edge.mode">android.<wbr/>edge.<wbr/>mode</a></p>
   8308             </td>
   8309 
   8310             <td class="entry_tags">
   8311               <ul class="entry_tags">
   8312                   <li><a href="#tag_V1">V1</a></li>
   8313               </ul>
   8314             </td>
   8315 
   8316           </tr>
   8317           <tr class="entries_header">
   8318             <th class="th_details" colspan="5">Details</th>
   8319           </tr>
   8320           <tr class="entry_cont">
   8321             <td class="entry_details" colspan="5">
   8322               <p>Full-capability camera devices must always support OFF; all devices will list FAST.<wbr/></p>
   8323             </td>
   8324           </tr>
   8325 
   8326 
   8327           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   8328            <!-- end of entry -->
   8329         
   8330         
   8331 
   8332       <!-- end of kind -->
   8333       </tbody>
   8334       <tr><td colspan="6" class="kind">dynamic</td></tr>
   8335 
   8336       <thead class="entries_header">
   8337         <tr>
   8338           <th class="th_name">Property Name</th>
   8339           <th class="th_type">Type</th>
   8340           <th class="th_description">Description</th>
   8341           <th class="th_units">Units</th>
   8342           <th class="th_range">Range</th>
   8343           <th class="th_tags">Tags</th>
   8344         </tr>
   8345       </thead>
   8346 
   8347       <tbody>
   8348 
   8349         
   8350 
   8351         
   8352 
   8353         
   8354 
   8355         
   8356 
   8357                 
   8358           <tr class="entry" id="dynamic_android.edge.mode">
   8359             <td class="entry_name
   8360              " rowspan="3">
   8361               android.<wbr/>edge.<wbr/>mode
   8362             </td>
   8363             <td class="entry_type">
   8364                 <span class="entry_type_name entry_type_name_enum">byte</span>
   8365 
   8366               <span class="entry_type_visibility"> [public]</span>
   8367 
   8368 
   8369               <span class="entry_type_hwlevel">[full] </span>
   8370 
   8371 
   8372 
   8373                 <ul class="entry_type_enum">
   8374                   <li>
   8375                     <span class="entry_type_enum_name">OFF</span>
   8376                     <span class="entry_type_enum_notes"><p>No edge enhancement is applied.<wbr/></p></span>
   8377                   </li>
   8378                   <li>
   8379                     <span class="entry_type_enum_name">FAST</span>
   8380                     <span class="entry_type_enum_notes"><p>Apply edge enhancement at a quality level that does not slow down frame rate relative to sensor
   8381 output</p></span>
   8382                   </li>
   8383                   <li>
   8384                     <span class="entry_type_enum_name">HIGH_QUALITY</span>
   8385                     <span class="entry_type_enum_notes"><p>Apply high-quality edge enhancement,<wbr/> at a cost of reducing output frame rate.<wbr/></p></span>
   8386                   </li>
   8387                 </ul>
   8388 
   8389             </td> <!-- entry_type -->
   8390 
   8391             <td class="entry_description">
   8392               <p>Operation mode for edge
   8393 enhancement.<wbr/></p>
   8394             </td>
   8395 
   8396             <td class="entry_units">
   8397             </td>
   8398 
   8399             <td class="entry_range">
   8400               <p><a href="#static_android.edge.availableEdgeModes">android.<wbr/>edge.<wbr/>available<wbr/>Edge<wbr/>Modes</a></p>
   8401             </td>
   8402 
   8403             <td class="entry_tags">
   8404               <ul class="entry_tags">
   8405                   <li><a href="#tag_V1">V1</a></li>
   8406               </ul>
   8407             </td>
   8408 
   8409           </tr>
   8410           <tr class="entries_header">
   8411             <th class="th_details" colspan="5">Details</th>
   8412           </tr>
   8413           <tr class="entry_cont">
   8414             <td class="entry_details" colspan="5">
   8415               <p>Edge enhancement improves sharpness and details in the captured image.<wbr/> OFF means
   8416 no enhancement will be applied by the camera device.<wbr/></p>
   8417 <p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
   8418 will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
   8419 camera device will use the highest-quality enhancement algorithms,<wbr/>
   8420 even if it slows down capture rate.<wbr/> FAST means the camera device will
   8421 not slow down capture rate when applying edge enhancement.<wbr/></p>
   8422             </td>
   8423           </tr>
   8424 
   8425 
   8426           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   8427            <!-- end of entry -->
   8428         
   8429         
   8430 
   8431       <!-- end of kind -->
   8432       </tbody>
   8433 
   8434   <!-- end of section -->
   8435   <tr><td colspan="6" id="section_flash" class="section">flash</td></tr>
   8436 
   8437 
   8438       <tr><td colspan="6" class="kind">controls</td></tr>
   8439 
   8440       <thead class="entries_header">
   8441         <tr>
   8442           <th class="th_name">Property Name</th>
   8443           <th class="th_type">Type</th>
   8444           <th class="th_description">Description</th>
   8445           <th class="th_units">Units</th>
   8446           <th class="th_range">Range</th>
   8447           <th class="th_tags">Tags</th>
   8448         </tr>
   8449       </thead>
   8450 
   8451       <tbody>
   8452 
   8453         
   8454 
   8455         
   8456 
   8457         
   8458 
   8459         
   8460 
   8461                 
   8462           <tr class="entry" id="controls_android.flash.firingPower">
   8463             <td class="entry_name
   8464              " rowspan="3">
   8465               android.<wbr/>flash.<wbr/>firing<wbr/>Power
   8466             </td>
   8467             <td class="entry_type">
   8468                 <span class="entry_type_name">byte</span>
   8469 
   8470               <span class="entry_type_visibility"> [system]</span>
   8471 
   8472 
   8473 
   8474 
   8475 
   8476 
   8477             </td> <!-- entry_type -->
   8478 
   8479             <td class="entry_description">
   8480               <p>Power for flash firing/<wbr/>torch</p>
   8481             </td>
   8482 
   8483             <td class="entry_units">
   8484               10 is max power; 0 is no flash.<wbr/> Linear
   8485             </td>
   8486 
   8487             <td class="entry_range">
   8488               <p>0 - 10</p>
   8489             </td>
   8490 
   8491             <td class="entry_tags">
   8492               <ul class="entry_tags">
   8493                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   8494               </ul>
   8495             </td>
   8496 
   8497           </tr>
   8498           <tr class="entries_header">
   8499             <th class="th_details" colspan="5">Details</th>
   8500           </tr>
   8501           <tr class="entry_cont">
   8502             <td class="entry_details" colspan="5">
   8503               <p>Power for snapshot may use a different scale than
   8504 for torch mode.<wbr/> Only one entry for torch mode will be
   8505 used</p>
   8506             </td>
   8507           </tr>
   8508 
   8509 
   8510           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   8511            <!-- end of entry -->
   8512         
   8513                 
   8514           <tr class="entry" id="controls_android.flash.firingTime">
   8515             <td class="entry_name
   8516              " rowspan="3">
   8517               android.<wbr/>flash.<wbr/>firing<wbr/>Time
   8518             </td>
   8519             <td class="entry_type">
   8520                 <span class="entry_type_name">int64</span>
   8521 
   8522               <span class="entry_type_visibility"> [system]</span>
   8523 
   8524 
   8525 
   8526 
   8527 
   8528 
   8529             </td> <!-- entry_type -->
   8530 
   8531             <td class="entry_description">
   8532               <p>Firing time of flash relative to start of
   8533 exposure</p>
   8534             </td>
   8535 
   8536             <td class="entry_units">
   8537               nanoseconds
   8538             </td>
   8539 
   8540             <td class="entry_range">
   8541               <p>0-(exposure time-flash duration)</p>
   8542             </td>
   8543 
   8544             <td class="entry_tags">
   8545               <ul class="entry_tags">
   8546                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   8547               </ul>
   8548             </td>
   8549 
   8550           </tr>
   8551           <tr class="entries_header">
   8552             <th class="th_details" colspan="5">Details</th>
   8553           </tr>
   8554           <tr class="entry_cont">
   8555             <td class="entry_details" colspan="5">
   8556               <p>Clamped to (0,<wbr/> exposure time - flash
   8557 duration).<wbr/></p>
   8558             </td>
   8559           </tr>
   8560 
   8561 
   8562           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   8563            <!-- end of entry -->
   8564         
   8565                 
   8566           <tr class="entry" id="controls_android.flash.mode">
   8567             <td class="entry_name
   8568              " rowspan="3">
   8569               android.<wbr/>flash.<wbr/>mode
   8570             </td>
   8571             <td class="entry_type">
   8572                 <span class="entry_type_name entry_type_name_enum">byte</span>
   8573 
   8574               <span class="entry_type_visibility"> [public]</span>
   8575 
   8576 
   8577               <span class="entry_type_hwlevel">[legacy] </span>
   8578 
   8579 
   8580 
   8581                 <ul class="entry_type_enum">
   8582                   <li>
   8583                     <span class="entry_type_enum_name">OFF</span>
   8584                     <span class="entry_type_enum_notes"><p>Do not fire the flash for this capture.<wbr/></p></span>
   8585                   </li>
   8586                   <li>
   8587                     <span class="entry_type_enum_name">SINGLE</span>
   8588                     <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
   8589 for this capture.<wbr/></p></span>
   8590                   </li>
   8591                   <li>
   8592                     <span class="entry_type_enum_name">TORCH</span>
   8593                     <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
   8594                   </li>
   8595                 </ul>
   8596 
   8597             </td> <!-- entry_type -->
   8598 
   8599             <td class="entry_description">
   8600               <p>The desired mode for for the camera device's flash control.<wbr/></p>
   8601             </td>
   8602 
   8603             <td class="entry_units">
   8604             </td>
   8605 
   8606             <td class="entry_range">
   8607             </td>
   8608 
   8609             <td class="entry_tags">
   8610               <ul class="entry_tags">
   8611                   <li><a href="#tag_BC">BC</a></li>
   8612               </ul>
   8613             </td>
   8614 
   8615           </tr>
   8616           <tr class="entries_header">
   8617             <th class="th_details" colspan="5">Details</th>
   8618           </tr>
   8619           <tr class="entry_cont">
   8620             <td class="entry_details" colspan="5">
   8621               <p>This control is only effective when flash unit is available
   8622 (<code><a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> == true</code>).<wbr/></p>
   8623 <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/>
   8624 Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
   8625 ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
   8626 <p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
   8627 <p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
   8628 device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
   8629 control should be used along with auto-exposure (AE) precapture metering sequence
   8630 (<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>
   8631 <p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
   8632 for use cases such as preview,<wbr/> auto-focus assist,<wbr/> still capture,<wbr/> or video recording.<wbr/></p>
   8633 <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>
   8634             </td>
   8635           </tr>
   8636 
   8637 
   8638           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   8639            <!-- end of entry -->
   8640         
   8641         
   8642 
   8643       <!-- end of kind -->
   8644       </tbody>
   8645       <tr><td colspan="6" class="kind">static</td></tr>
   8646 
   8647       <thead class="entries_header">
   8648         <tr>
   8649           <th class="th_name">Property Name</th>
   8650           <th class="th_type">Type</th>
   8651           <th class="th_description">Description</th>
   8652           <th class="th_units">Units</th>
   8653           <th class="th_range">Range</th>
   8654           <th class="th_tags">Tags</th>
   8655         </tr>
   8656       </thead>
   8657 
   8658       <tbody>
   8659 
   8660         
   8661 
   8662         
   8663 
   8664         
   8665 
   8666         
   8667                 
   8668             
   8669 
   8670                 
   8671           <tr class="entry" id="static_android.flash.info.available">
   8672             <td class="entry_name
   8673              " rowspan="3">
   8674               android.<wbr/>flash.<wbr/>info.<wbr/>available
   8675             </td>
   8676             <td class="entry_type">
   8677                 <span class="entry_type_name entry_type_name_enum">byte</span>
   8678 
   8679               <span class="entry_type_visibility"> [public as boolean]</span>
   8680 
   8681 
   8682               <span class="entry_type_hwlevel">[legacy] </span>
   8683 
   8684 
   8685 
   8686                 <ul class="entry_type_enum">
   8687                   <li>
   8688                     <span class="entry_type_enum_name">FALSE</span>
   8689                   </li>
   8690                   <li>
   8691                     <span class="entry_type_enum_name">TRUE</span>
   8692                   </li>
   8693                 </ul>
   8694 
   8695             </td> <!-- entry_type -->
   8696 
   8697             <td class="entry_description">
   8698               <p>Whether this camera device has a
   8699 flash unit.<wbr/></p>
   8700             </td>
   8701 
   8702             <td class="entry_units">
   8703             </td>
   8704 
   8705             <td class="entry_range">
   8706             </td>
   8707 
   8708             <td class="entry_tags">
   8709               <ul class="entry_tags">
   8710                   <li><a href="#tag_BC">BC</a></li>
   8711               </ul>
   8712             </td>
   8713 
   8714           </tr>
   8715           <tr class="entries_header">
   8716             <th class="th_details" colspan="5">Details</th>
   8717           </tr>
   8718           <tr class="entry_cont">
   8719             <td class="entry_details" colspan="5">
   8720               <p>Will be <code>false</code> if no flash is available.<wbr/></p>
   8721 <p>If there is no flash unit,<wbr/> none of the flash controls do
   8722 anything.<wbr/></p>
   8723             </td>
   8724           </tr>
   8725 
   8726 
   8727           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   8728            <!-- end of entry -->
   8729         
   8730                 
   8731           <tr class="entry" id="static_android.flash.info.chargeDuration">
   8732             <td class="entry_name
   8733              " rowspan="3">
   8734               android.<wbr/>flash.<wbr/>info.<wbr/>charge<wbr/>Duration
   8735             </td>
   8736             <td class="entry_type">
   8737                 <span class="entry_type_name">int64</span>
   8738 
   8739               <span class="entry_type_visibility"> [system]</span>
   8740 
   8741 
   8742 
   8743 
   8744 
   8745 
   8746             </td> <!-- entry_type -->
   8747 
   8748             <td class="entry_description">
   8749               <p>Time taken before flash can fire
   8750 again</p>
   8751             </td>
   8752 
   8753             <td class="entry_units">
   8754               nanoseconds
   8755             </td>
   8756 
   8757             <td class="entry_range">
   8758               <p>0-1e9</p>
   8759             </td>
   8760 
   8761             <td class="entry_tags">
   8762               <ul class="entry_tags">
   8763                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   8764               </ul>
   8765             </td>
   8766 
   8767           </tr>
   8768           <tr class="entries_header">
   8769             <th class="th_details" colspan="5">Details</th>
   8770           </tr>
   8771           <tr class="entry_cont">
   8772             <td class="entry_details" colspan="5">
   8773               <p>1 second too long/<wbr/>too short for recharge? Should
   8774 this be power-dependent?</p>
   8775             </td>
   8776           </tr>
   8777 
   8778 
   8779           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   8780            <!-- end of entry -->
   8781         
   8782         
   8783         
   8784 
   8785                 
   8786           <tr class="entry" id="static_android.flash.colorTemperature">
   8787             <td class="entry_name
   8788              " rowspan="1">
   8789               android.<wbr/>flash.<wbr/>color<wbr/>Temperature
   8790             </td>
   8791             <td class="entry_type">
   8792                 <span class="entry_type_name">byte</span>
   8793 
   8794               <span class="entry_type_visibility"> [system]</span>
   8795 
   8796 
   8797 
   8798 
   8799 
   8800 
   8801             </td> <!-- entry_type -->
   8802 
   8803             <td class="entry_description">
   8804               <p>The x,<wbr/>y whitepoint of the
   8805 flash</p>
   8806             </td>
   8807 
   8808             <td class="entry_units">
   8809               pair of floats
   8810             </td>
   8811 
   8812             <td class="entry_range">
   8813               <p>0-1 for both</p>
   8814             </td>
   8815 
   8816             <td class="entry_tags">
   8817               <ul class="entry_tags">
   8818                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   8819               </ul>
   8820             </td>
   8821 
   8822           </tr>
   8823 
   8824 
   8825           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   8826            <!-- end of entry -->
   8827         
   8828                 
   8829           <tr class="entry" id="static_android.flash.maxEnergy">
   8830             <td class="entry_name
   8831              " rowspan="1">
   8832               android.<wbr/>flash.<wbr/>max<wbr/>Energy
   8833             </td>
   8834             <td class="entry_type">
   8835                 <span class="entry_type_name">byte</span>
   8836 
   8837               <span class="entry_type_visibility"> [system]</span>
   8838 
   8839 
   8840 
   8841 
   8842 
   8843 
   8844             </td> <!-- entry_type -->
   8845 
   8846             <td class="entry_description">
   8847               <p>Max energy output of the flash for a full
   8848 power single flash</p>
   8849             </td>
   8850 
   8851             <td class="entry_units">
   8852               lumen-seconds
   8853             </td>
   8854 
   8855             <td class="entry_range">
   8856               <p>&gt;= 0</p>
   8857             </td>
   8858 
   8859             <td class="entry_tags">
   8860               <ul class="entry_tags">
   8861                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   8862               </ul>
   8863             </td>
   8864 
   8865           </tr>
   8866 
   8867 
   8868           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   8869            <!-- end of entry -->
   8870         
   8871         
   8872 
   8873       <!-- end of kind -->
   8874       </tbody>
   8875       <tr><td colspan="6" class="kind">dynamic</td></tr>
   8876 
   8877       <thead class="entries_header">
   8878         <tr>
   8879           <th class="th_name">Property Name</th>
   8880           <th class="th_type">Type</th>
   8881           <th class="th_description">Description</th>
   8882           <th class="th_units">Units</th>
   8883           <th class="th_range">Range</th>
   8884           <th class="th_tags">Tags</th>
   8885         </tr>
   8886       </thead>
   8887 
   8888       <tbody>
   8889 
   8890         
   8891 
   8892         
   8893 
   8894         
   8895 
   8896         
   8897 
   8898                 
   8899           <tr class="entry" id="dynamic_android.flash.firingPower">
   8900             <td class="entry_name
   8901              " rowspan="3">
   8902               android.<wbr/>flash.<wbr/>firing<wbr/>Power
   8903             </td>
   8904             <td class="entry_type">
   8905                 <span class="entry_type_name">byte</span>
   8906 
   8907               <span class="entry_type_visibility"> [system]</span>
   8908 
   8909 
   8910 
   8911 
   8912 
   8913 
   8914             </td> <!-- entry_type -->
   8915 
   8916             <td class="entry_description">
   8917               <p>Power for flash firing/<wbr/>torch</p>
   8918             </td>
   8919 
   8920             <td class="entry_units">
   8921               10 is max power; 0 is no flash.<wbr/> Linear
   8922             </td>
   8923 
   8924             <td class="entry_range">
   8925               <p>0 - 10</p>
   8926             </td>
   8927 
   8928             <td class="entry_tags">
   8929               <ul class="entry_tags">
   8930                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   8931               </ul>
   8932             </td>
   8933 
   8934           </tr>
   8935           <tr class="entries_header">
   8936             <th class="th_details" colspan="5">Details</th>
   8937           </tr>
   8938           <tr class="entry_cont">
   8939             <td class="entry_details" colspan="5">
   8940               <p>Power for snapshot may use a different scale than
   8941 for torch mode.<wbr/> Only one entry for torch mode will be
   8942 used</p>
   8943             </td>
   8944           </tr>
   8945 
   8946 
   8947           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   8948            <!-- end of entry -->
   8949         
   8950                 
   8951           <tr class="entry" id="dynamic_android.flash.firingTime">
   8952             <td class="entry_name
   8953              " rowspan="3">
   8954               android.<wbr/>flash.<wbr/>firing<wbr/>Time
   8955             </td>
   8956             <td class="entry_type">
   8957                 <span class="entry_type_name">int64</span>
   8958 
   8959               <span class="entry_type_visibility"> [system]</span>
   8960 
   8961 
   8962 
   8963 
   8964 
   8965 
   8966             </td> <!-- entry_type -->
   8967 
   8968             <td class="entry_description">
   8969               <p>Firing time of flash relative to start of
   8970 exposure</p>
   8971             </td>
   8972 
   8973             <td class="entry_units">
   8974               nanoseconds
   8975             </td>
   8976 
   8977             <td class="entry_range">
   8978               <p>0-(exposure time-flash duration)</p>
   8979             </td>
   8980 
   8981             <td class="entry_tags">
   8982               <ul class="entry_tags">
   8983                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   8984               </ul>
   8985             </td>
   8986 
   8987           </tr>
   8988           <tr class="entries_header">
   8989             <th class="th_details" colspan="5">Details</th>
   8990           </tr>
   8991           <tr class="entry_cont">
   8992             <td class="entry_details" colspan="5">
   8993               <p>Clamped to (0,<wbr/> exposure time - flash
   8994 duration).<wbr/></p>
   8995             </td>
   8996           </tr>
   8997 
   8998 
   8999           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   9000            <!-- end of entry -->
   9001         
   9002                 
   9003           <tr class="entry" id="dynamic_android.flash.mode">
   9004             <td class="entry_name
   9005              " rowspan="3">
   9006               android.<wbr/>flash.<wbr/>mode
   9007             </td>
   9008             <td class="entry_type">
   9009                 <span class="entry_type_name entry_type_name_enum">byte</span>
   9010 
   9011               <span class="entry_type_visibility"> [public]</span>
   9012 
   9013 
   9014               <span class="entry_type_hwlevel">[legacy] </span>
   9015 
   9016 
   9017 
   9018                 <ul class="entry_type_enum">
   9019                   <li>
   9020                     <span class="entry_type_enum_name">OFF</span>
   9021                     <span class="entry_type_enum_notes"><p>Do not fire the flash for this capture.<wbr/></p></span>
   9022                   </li>
   9023                   <li>
   9024                     <span class="entry_type_enum_name">SINGLE</span>
   9025                     <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
   9026 for this capture.<wbr/></p></span>
   9027                   </li>
   9028                   <li>
   9029                     <span class="entry_type_enum_name">TORCH</span>
   9030                     <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
   9031                   </li>
   9032                 </ul>
   9033 
   9034             </td> <!-- entry_type -->
   9035 
   9036             <td class="entry_description">
   9037               <p>The desired mode for for the camera device's flash control.<wbr/></p>
   9038             </td>
   9039 
   9040             <td class="entry_units">
   9041             </td>
   9042 
   9043             <td class="entry_range">
   9044             </td>
   9045 
   9046             <td class="entry_tags">
   9047               <ul class="entry_tags">
   9048                   <li><a href="#tag_BC">BC</a></li>
   9049               </ul>
   9050             </td>
   9051 
   9052           </tr>
   9053           <tr class="entries_header">
   9054             <th class="th_details" colspan="5">Details</th>
   9055           </tr>
   9056           <tr class="entry_cont">
   9057             <td class="entry_details" colspan="5">
   9058               <p>This control is only effective when flash unit is available
   9059 (<code><a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> == true</code>).<wbr/></p>
   9060 <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/>
   9061 Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
   9062 ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
   9063 <p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
   9064 <p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
   9065 device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
   9066 control should be used along with auto-exposure (AE) precapture metering sequence
   9067 (<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>
   9068 <p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
   9069 for use cases such as preview,<wbr/> auto-focus assist,<wbr/> still capture,<wbr/> or video recording.<wbr/></p>
   9070 <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>
   9071             </td>
   9072           </tr>
   9073 
   9074 
   9075           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   9076            <!-- end of entry -->
   9077         
   9078                 
   9079           <tr class="entry" id="dynamic_android.flash.state">
   9080             <td class="entry_name
   9081              " rowspan="3">
   9082               android.<wbr/>flash.<wbr/>state
   9083             </td>
   9084             <td class="entry_type">
   9085                 <span class="entry_type_name entry_type_name_enum">byte</span>
   9086 
   9087               <span class="entry_type_visibility"> [public]</span>
   9088 
   9089 
   9090               <span class="entry_type_hwlevel">[limited] </span>
   9091 
   9092 
   9093 
   9094                 <ul class="entry_type_enum">
   9095                   <li>
   9096                     <span class="entry_type_enum_name">UNAVAILABLE</span>
   9097                     <span class="entry_type_enum_notes"><p>No flash on camera.<wbr/></p></span>
   9098                   </li>
   9099                   <li>
   9100                     <span class="entry_type_enum_name">CHARGING</span>
   9101                     <span class="entry_type_enum_notes"><p>Flash is charging and cannot be fired.<wbr/></p></span>
   9102                   </li>
   9103                   <li>
   9104                     <span class="entry_type_enum_name">READY</span>
   9105                     <span class="entry_type_enum_notes"><p>Flash is ready to fire.<wbr/></p></span>
   9106                   </li>
   9107                   <li>
   9108                     <span class="entry_type_enum_name">FIRED</span>
   9109                     <span class="entry_type_enum_notes"><p>Flash fired for this capture.<wbr/></p></span>
   9110                   </li>
   9111                   <li>
   9112                     <span class="entry_type_enum_name">PARTIAL</span>
   9113                     <span class="entry_type_enum_notes"><p>Flash partially illuminated this frame.<wbr/></p>
   9114 <p>This is usually due to the next or previous frame having
   9115 the flash fire,<wbr/> and the flash spilling into this capture
   9116 due to hardware limitations.<wbr/></p></span>
   9117                   </li>
   9118                 </ul>
   9119 
   9120             </td> <!-- entry_type -->
   9121 
   9122             <td class="entry_description">
   9123               <p>Current state of the flash
   9124 unit.<wbr/></p>
   9125             </td>
   9126 
   9127             <td class="entry_units">
   9128             </td>
   9129 
   9130             <td class="entry_range">
   9131             </td>
   9132 
   9133             <td class="entry_tags">
   9134             </td>
   9135 
   9136           </tr>
   9137           <tr class="entries_header">
   9138             <th class="th_details" colspan="5">Details</th>
   9139           </tr>
   9140           <tr class="entry_cont">
   9141             <td class="entry_details" colspan="5">
   9142               <p>When the camera device doesn't have flash unit
   9143 (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/>
   9144 Other states indicate the current flash status.<wbr/></p>
   9145 <p>In certain conditions,<wbr/> this will be available on LEGACY devices:</p>
   9146 <ul>
   9147 <li>Flash-less cameras always return UNAVAILABLE.<wbr/></li>
   9148 <li>Using <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> <code>==</code> ON_<wbr/>ALWAYS_<wbr/>FLASH
   9149    will always return FIRED.<wbr/></li>
   9150 <li>Using <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> <code>==</code> TORCH
   9151    will always return FIRED.<wbr/></li>
   9152 </ul>
   9153 <p>In all other conditions the state will not be available on
   9154 LEGACY devices (i.<wbr/>e.<wbr/> it will be <code>null</code>).<wbr/></p>
   9155             </td>
   9156           </tr>
   9157 
   9158 
   9159           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   9160            <!-- end of entry -->
   9161         
   9162         
   9163 
   9164       <!-- end of kind -->
   9165       </tbody>
   9166 
   9167   <!-- end of section -->
   9168   <tr><td colspan="6" id="section_hotPixel" class="section">hotPixel</td></tr>
   9169 
   9170 
   9171       <tr><td colspan="6" class="kind">controls</td></tr>
   9172 
   9173       <thead class="entries_header">
   9174         <tr>
   9175           <th class="th_name">Property Name</th>
   9176           <th class="th_type">Type</th>
   9177           <th class="th_description">Description</th>
   9178           <th class="th_units">Units</th>
   9179           <th class="th_range">Range</th>
   9180           <th class="th_tags">Tags</th>
   9181         </tr>
   9182       </thead>
   9183 
   9184       <tbody>
   9185 
   9186         
   9187 
   9188         
   9189 
   9190         
   9191 
   9192         
   9193 
   9194                 
   9195           <tr class="entry" id="controls_android.hotPixel.mode">
   9196             <td class="entry_name
   9197              " rowspan="3">
   9198               android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
   9199             </td>
   9200             <td class="entry_type">
   9201                 <span class="entry_type_name entry_type_name_enum">byte</span>
   9202 
   9203               <span class="entry_type_visibility"> [public]</span>
   9204 
   9205 
   9206 
   9207 
   9208 
   9209                 <ul class="entry_type_enum">
   9210                   <li>
   9211                     <span class="entry_type_enum_name">OFF</span>
   9212                     <span class="entry_type_enum_notes"><p>No hot pixel correction is applied.<wbr/></p>
   9213 <p>The frame rate must not be reduced relative to sensor raw output
   9214 for this option.<wbr/></p>
   9215 <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>
   9216                   </li>
   9217                   <li>
   9218                     <span class="entry_type_enum_name">FAST</span>
   9219                     <span class="entry_type_enum_notes"><p>Hot pixel correction is applied,<wbr/> without reducing frame
   9220 rate relative to sensor raw output.<wbr/></p>
   9221 <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>
   9222                   </li>
   9223                   <li>
   9224                     <span class="entry_type_enum_name">HIGH_QUALITY</span>
   9225                     <span class="entry_type_enum_notes"><p>High-quality hot pixel correction is applied,<wbr/> at a cost
   9226 of reducing frame rate relative to sensor raw output.<wbr/></p>
   9227 <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>
   9228                   </li>
   9229                 </ul>
   9230 
   9231             </td> <!-- entry_type -->
   9232 
   9233             <td class="entry_description">
   9234               <p>Operational mode for hot pixel correction.<wbr/></p>
   9235             </td>
   9236 
   9237             <td class="entry_units">
   9238             </td>
   9239 
   9240             <td class="entry_range">
   9241               <p><a href="#static_android.hotPixel.availableHotPixelModes">android.<wbr/>hot<wbr/>Pixel.<wbr/>available<wbr/>Hot<wbr/>Pixel<wbr/>Modes</a></p>
   9242             </td>
   9243 
   9244             <td class="entry_tags">
   9245               <ul class="entry_tags">
   9246                   <li><a href="#tag_V1">V1</a></li>
   9247                   <li><a href="#tag_RAW">RAW</a></li>
   9248               </ul>
   9249             </td>
   9250 
   9251           </tr>
   9252           <tr class="entries_header">
   9253             <th class="th_details" colspan="5">Details</th>
   9254           </tr>
   9255           <tr class="entry_cont">
   9256             <td class="entry_details" colspan="5">
   9257               <p>Hotpixel correction interpolates out,<wbr/> or otherwise removes,<wbr/> pixels
   9258 that do not accurately measure the incoming light (i.<wbr/>e.<wbr/> pixels that
   9259 are stuck at an arbitrary value or are oversensitive).<wbr/></p>
   9260             </td>
   9261           </tr>
   9262 
   9263 
   9264           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   9265            <!-- end of entry -->
   9266         
   9267         
   9268 
   9269       <!-- end of kind -->
   9270       </tbody>
   9271       <tr><td colspan="6" class="kind">static</td></tr>
   9272 
   9273       <thead class="entries_header">
   9274         <tr>
   9275           <th class="th_name">Property Name</th>
   9276           <th class="th_type">Type</th>
   9277           <th class="th_description">Description</th>
   9278           <th class="th_units">Units</th>
   9279           <th class="th_range">Range</th>
   9280           <th class="th_tags">Tags</th>
   9281         </tr>
   9282       </thead>
   9283 
   9284       <tbody>
   9285 
   9286         
   9287 
   9288         
   9289 
   9290         
   9291 
   9292         
   9293 
   9294                 
   9295           <tr class="entry" id="static_android.hotPixel.availableHotPixelModes">
   9296             <td class="entry_name
   9297              " rowspan="5">
   9298               android.<wbr/>hot<wbr/>Pixel.<wbr/>available<wbr/>Hot<wbr/>Pixel<wbr/>Modes
   9299             </td>
   9300             <td class="entry_type">
   9301                 <span class="entry_type_name">byte</span>
   9302                 <span class="entry_type_container">x</span>
   9303 
   9304                 <span class="entry_type_array">
   9305                   n
   9306                 </span>
   9307               <span class="entry_type_visibility"> [public as enumList]</span>
   9308 
   9309 
   9310 
   9311 
   9312                 <div class="entry_type_notes">list of enums</div>
   9313 
   9314 
   9315             </td> <!-- entry_type -->
   9316 
   9317             <td class="entry_description">
   9318               <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
   9319 camera device.<wbr/></p>
   9320             </td>
   9321 
   9322             <td class="entry_units">
   9323             </td>
   9324 
   9325             <td class="entry_range">
   9326               <p>Any value listed in <a href="#controls_android.hotPixel.mode">android.<wbr/>hot<wbr/>Pixel.<wbr/>mode</a></p>
   9327             </td>
   9328 
   9329             <td class="entry_tags">
   9330               <ul class="entry_tags">
   9331                   <li><a href="#tag_V1">V1</a></li>
   9332                   <li><a href="#tag_RAW">RAW</a></li>
   9333               </ul>
   9334             </td>
   9335 
   9336           </tr>
   9337           <tr class="entries_header">
   9338             <th class="th_details" colspan="5">Details</th>
   9339           </tr>
   9340           <tr class="entry_cont">
   9341             <td class="entry_details" colspan="5">
   9342               <p>FULL mode camera devices will always support FAST.<wbr/></p>
   9343             </td>
   9344           </tr>
   9345 
   9346           <tr class="entries_header">
   9347             <th class="th_details" colspan="5">HAL Implementation Details</th>
   9348           </tr>
   9349           <tr class="entry_cont">
   9350             <td class="entry_details" colspan="5">
   9351               <p>To avoid performance issues,<wbr/> there will be significantly fewer hot
   9352 pixels than actual pixels on the camera sensor.<wbr/></p>
   9353             </td>
   9354           </tr>
   9355 
   9356           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   9357            <!-- end of entry -->
   9358         
   9359         
   9360 
   9361       <!-- end of kind -->
   9362       </tbody>
   9363       <tr><td colspan="6" class="kind">dynamic</td></tr>
   9364 
   9365       <thead class="entries_header">
   9366         <tr>
   9367           <th class="th_name">Property Name</th>
   9368           <th class="th_type">Type</th>
   9369           <th class="th_description">Description</th>
   9370           <th class="th_units">Units</th>
   9371           <th class="th_range">Range</th>
   9372           <th class="th_tags">Tags</th>
   9373         </tr>
   9374       </thead>
   9375 
   9376       <tbody>
   9377 
   9378         
   9379 
   9380         
   9381 
   9382         
   9383 
   9384         
   9385 
   9386                 
   9387           <tr class="entry" id="dynamic_android.hotPixel.mode">
   9388             <td class="entry_name
   9389              " rowspan="3">
   9390               android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
   9391             </td>
   9392             <td class="entry_type">
   9393                 <span class="entry_type_name entry_type_name_enum">byte</span>
   9394 
   9395               <span class="entry_type_visibility"> [public]</span>
   9396 
   9397 
   9398 
   9399 
   9400 
   9401                 <ul class="entry_type_enum">
   9402                   <li>
   9403                     <span class="entry_type_enum_name">OFF</span>
   9404                     <span class="entry_type_enum_notes"><p>No hot pixel correction is applied.<wbr/></p>
   9405 <p>The frame rate must not be reduced relative to sensor raw output
   9406 for this option.<wbr/></p>
   9407 <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>
   9408                   </li>
   9409                   <li>
   9410                     <span class="entry_type_enum_name">FAST</span>
   9411                     <span class="entry_type_enum_notes"><p>Hot pixel correction is applied,<wbr/> without reducing frame
   9412 rate relative to sensor raw output.<wbr/></p>
   9413 <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>
   9414                   </li>
   9415                   <li>
   9416                     <span class="entry_type_enum_name">HIGH_QUALITY</span>
   9417                     <span class="entry_type_enum_notes"><p>High-quality hot pixel correction is applied,<wbr/> at a cost
   9418 of reducing frame rate relative to sensor raw output.<wbr/></p>
   9419 <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>
   9420                   </li>
   9421                 </ul>
   9422 
   9423             </td> <!-- entry_type -->
   9424 
   9425             <td class="entry_description">
   9426               <p>Operational mode for hot pixel correction.<wbr/></p>
   9427             </td>
   9428 
   9429             <td class="entry_units">
   9430             </td>
   9431 
   9432             <td class="entry_range">
   9433               <p><a href="#static_android.hotPixel.availableHotPixelModes">android.<wbr/>hot<wbr/>Pixel.<wbr/>available<wbr/>Hot<wbr/>Pixel<wbr/>Modes</a></p>
   9434             </td>
   9435 
   9436             <td class="entry_tags">
   9437               <ul class="entry_tags">
   9438                   <li><a href="#tag_V1">V1</a></li>
   9439                   <li><a href="#tag_RAW">RAW</a></li>
   9440               </ul>
   9441             </td>
   9442 
   9443           </tr>
   9444           <tr class="entries_header">
   9445             <th class="th_details" colspan="5">Details</th>
   9446           </tr>
   9447           <tr class="entry_cont">
   9448             <td class="entry_details" colspan="5">
   9449               <p>Hotpixel correction interpolates out,<wbr/> or otherwise removes,<wbr/> pixels
   9450 that do not accurately measure the incoming light (i.<wbr/>e.<wbr/> pixels that
   9451 are stuck at an arbitrary value or are oversensitive).<wbr/></p>
   9452             </td>
   9453           </tr>
   9454 
   9455 
   9456           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   9457            <!-- end of entry -->
   9458         
   9459         
   9460 
   9461       <!-- end of kind -->
   9462       </tbody>
   9463 
   9464   <!-- end of section -->
   9465   <tr><td colspan="6" id="section_jpeg" class="section">jpeg</td></tr>
   9466 
   9467 
   9468       <tr><td colspan="6" class="kind">controls</td></tr>
   9469 
   9470       <thead class="entries_header">
   9471         <tr>
   9472           <th class="th_name">Property Name</th>
   9473           <th class="th_type">Type</th>
   9474           <th class="th_description">Description</th>
   9475           <th class="th_units">Units</th>
   9476           <th class="th_range">Range</th>
   9477           <th class="th_tags">Tags</th>
   9478         </tr>
   9479       </thead>
   9480 
   9481       <tbody>
   9482 
   9483         
   9484 
   9485         
   9486 
   9487         
   9488 
   9489         
   9490 
   9491                 
   9492           <tr class="entry" id="controls_android.jpeg.gpsLocation">
   9493             <td class="entry_name
   9494              " rowspan="3">
   9495               android.<wbr/>jpeg.<wbr/>gps<wbr/>Location
   9496             </td>
   9497             <td class="entry_type">
   9498                 <span class="entry_type_name">byte</span>
   9499 
   9500               <span class="entry_type_visibility"> [public as location]</span>
   9501 
   9502               <span class="entry_type_synthetic">[synthetic] </span>
   9503 
   9504               <span class="entry_type_hwlevel">[legacy] </span>
   9505 
   9506 
   9507 
   9508 
   9509             </td> <!-- entry_type -->
   9510 
   9511             <td class="entry_description">
   9512               <p>A location object to use when generating image GPS metadata.<wbr/></p>
   9513             </td>
   9514 
   9515             <td class="entry_units">
   9516             </td>
   9517 
   9518             <td class="entry_range">
   9519             </td>
   9520 
   9521             <td class="entry_tags">
   9522             </td>
   9523 
   9524           </tr>
   9525           <tr class="entries_header">
   9526             <th class="th_details" colspan="5">Details</th>
   9527           </tr>
   9528           <tr class="entry_cont">
   9529             <td class="entry_details" colspan="5">
   9530               <p>Setting a location object in a request will include the GPS coordinates of the location
   9531 into any JPEG images captured based on the request.<wbr/> These coordinates can then be
   9532 viewed by anyone who receives the JPEG image.<wbr/></p>
   9533             </td>
   9534           </tr>
   9535 
   9536 
   9537           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   9538            <!-- end of entry -->
   9539         
   9540                 
   9541           <tr class="entry" id="controls_android.jpeg.gpsCoordinates">
   9542             <td class="entry_name
   9543              " rowspan="1">
   9544               android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
   9545             </td>
   9546             <td class="entry_type">
   9547                 <span class="entry_type_name">double</span>
   9548                 <span class="entry_type_container">x</span>
   9549 
   9550                 <span class="entry_type_array">
   9551                   3
   9552                 </span>
   9553               <span class="entry_type_visibility"> [hidden]</span>
   9554 
   9555 
   9556               <span class="entry_type_hwlevel">[legacy] </span>
   9557 
   9558 
   9559                 <div class="entry_type_notes">latitude,<wbr/> longitude,<wbr/> altitude.<wbr/> First two in degrees,<wbr/> the third in meters</div>
   9560 
   9561 
   9562             </td> <!-- entry_type -->
   9563 
   9564             <td class="entry_description">
   9565               <p>GPS coordinates to include in output JPEG
   9566 EXIF.<wbr/></p>
   9567             </td>
   9568 
   9569             <td class="entry_units">
   9570             </td>
   9571 
   9572             <td class="entry_range">
   9573               <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
   9574             </td>
   9575 
   9576             <td class="entry_tags">
   9577               <ul class="entry_tags">
   9578                   <li><a href="#tag_BC">BC</a></li>
   9579               </ul>
   9580             </td>
   9581 
   9582           </tr>
   9583 
   9584 
   9585           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   9586            <!-- end of entry -->
   9587         
   9588                 
   9589           <tr class="entry" id="controls_android.jpeg.gpsProcessingMethod">
   9590             <td class="entry_name
   9591              " rowspan="1">
   9592               android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
   9593             </td>
   9594             <td class="entry_type">
   9595                 <span class="entry_type_name">byte</span>
   9596 
   9597               <span class="entry_type_visibility"> [hidden as string]</span>
   9598 
   9599 
   9600               <span class="entry_type_hwlevel">[legacy] </span>
   9601 
   9602 
   9603 
   9604 
   9605             </td> <!-- entry_type -->
   9606 
   9607             <td class="entry_description">
   9608               <p>32 characters describing GPS algorithm to
   9609 include in EXIF.<wbr/></p>
   9610             </td>
   9611 
   9612             <td class="entry_units">
   9613               UTF-8 null-terminated string
   9614             </td>
   9615 
   9616             <td class="entry_range">
   9617             </td>
   9618 
   9619             <td class="entry_tags">
   9620               <ul class="entry_tags">
   9621                   <li><a href="#tag_BC">BC</a></li>
   9622               </ul>
   9623             </td>
   9624 
   9625           </tr>
   9626 
   9627 
   9628           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   9629            <!-- end of entry -->
   9630         
   9631                 
   9632           <tr class="entry" id="controls_android.jpeg.gpsTimestamp">
   9633             <td class="entry_name
   9634              " rowspan="1">
   9635               android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
   9636             </td>
   9637             <td class="entry_type">
   9638                 <span class="entry_type_name">int64</span>
   9639 
   9640               <span class="entry_type_visibility"> [hidden]</span>
   9641 
   9642 
   9643               <span class="entry_type_hwlevel">[legacy] </span>
   9644 
   9645 
   9646 
   9647 
   9648             </td> <!-- entry_type -->
   9649 
   9650             <td class="entry_description">
   9651               <p>Time GPS fix was made to include in
   9652 EXIF.<wbr/></p>
   9653             </td>
   9654 
   9655             <td class="entry_units">
   9656               UTC in seconds since January 1,<wbr/> 1970
   9657             </td>
   9658 
   9659             <td class="entry_range">
   9660             </td>
   9661 
   9662             <td class="entry_tags">
   9663               <ul class="entry_tags">
   9664                   <li><a href="#tag_BC">BC</a></li>
   9665               </ul>
   9666             </td>
   9667 
   9668           </tr>
   9669 
   9670 
   9671           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   9672            <!-- end of entry -->
   9673         
   9674                 
   9675           <tr class="entry" id="controls_android.jpeg.orientation">
   9676             <td class="entry_name
   9677              " rowspan="3">
   9678               android.<wbr/>jpeg.<wbr/>orientation
   9679             </td>
   9680             <td class="entry_type">
   9681                 <span class="entry_type_name">int32</span>
   9682 
   9683               <span class="entry_type_visibility"> [public]</span>
   9684 
   9685 
   9686               <span class="entry_type_hwlevel">[legacy] </span>
   9687 
   9688 
   9689 
   9690 
   9691             </td> <!-- entry_type -->
   9692 
   9693             <td class="entry_description">
   9694               <p>The orientation for a JPEG image.<wbr/></p>
   9695             </td>
   9696 
   9697             <td class="entry_units">
   9698               Degrees in multiples of 90
   9699             </td>
   9700 
   9701             <td class="entry_range">
   9702               <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
   9703             </td>
   9704 
   9705             <td class="entry_tags">
   9706               <ul class="entry_tags">
   9707                   <li><a href="#tag_BC">BC</a></li>
   9708               </ul>
   9709             </td>
   9710 
   9711           </tr>
   9712           <tr class="entries_header">
   9713             <th class="th_details" colspan="5">Details</th>
   9714           </tr>
   9715           <tr class="entry_cont">
   9716             <td class="entry_details" colspan="5">
   9717               <p>The clockwise rotation angle in degrees,<wbr/> relative to the orientation
   9718 to the camera,<wbr/> that the JPEG picture needs to be rotated by,<wbr/> to be viewed
   9719 upright.<wbr/></p>
   9720 <p>Camera devices may either encode this value into the JPEG EXIF header,<wbr/> or
   9721 rotate the image data to match this orientation.<wbr/></p>
   9722 <p>Note that this orientation is relative to the orientation of the camera sensor,<wbr/> given
   9723 by <a href="#static_android.sensor.orientation">android.<wbr/>sensor.<wbr/>orientation</a>.<wbr/></p>
   9724 <p>To translate from the device orientation given by the Android sensor APIs,<wbr/> the following
   9725 sample code may be used:</p>
   9726 <pre><code>private int getJpegOrientation(CameraCharacteristics c,<wbr/> int deviceOrientation) {
   9727     if (deviceOrientation == android.<wbr/>view.<wbr/>Orientation<wbr/>Event<wbr/>Listener.<wbr/>ORIENTATION_<wbr/>UNKNOWN) return 0;
   9728     int sensorOrientation = c.<wbr/>get(Camera<wbr/>Characteristics.<wbr/>SENSOR_<wbr/>ORIENTATION);
   9729 
   9730     //<wbr/> Round device orientation to a multiple of 90
   9731     deviceOrientation = (deviceOrientation + 45) /<wbr/> 90 * 90;
   9732 
   9733     //<wbr/> Reverse device orientation for front-facing cameras
   9734     boolean facingFront = c.<wbr/>get(Camera<wbr/>Characteristics.<wbr/>LENS_<wbr/>FACING) == Camera<wbr/>Characteristics.<wbr/>LENS_<wbr/>FACING_<wbr/>FRONT;
   9735     if (facingFront) deviceOrientation = -deviceOrientation;
   9736 
   9737     //<wbr/> Calculate desired JPEG orientation relative to camera orientation to make
   9738     //<wbr/> the image upright relative to the device orientation
   9739     int jpegOrientation = (sensorOrientation + deviceOrientation + 360) % 360;
   9740 
   9741     return jpegOrientation;
   9742 }
   9743 </code></pre>
   9744             </td>
   9745           </tr>
   9746 
   9747 
   9748           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   9749            <!-- end of entry -->
   9750         
   9751                 
   9752           <tr class="entry" id="controls_android.jpeg.quality">
   9753             <td class="entry_name
   9754              " rowspan="3">
   9755               android.<wbr/>jpeg.<wbr/>quality
   9756             </td>
   9757             <td class="entry_type">
   9758                 <span class="entry_type_name">byte</span>
   9759 
   9760               <span class="entry_type_visibility"> [public]</span>
   9761 
   9762 
   9763               <span class="entry_type_hwlevel">[legacy] </span>
   9764 
   9765 
   9766 
   9767 
   9768             </td> <!-- entry_type -->
   9769 
   9770             <td class="entry_description">
   9771               <p>Compression quality of the final JPEG
   9772 image.<wbr/></p>
   9773             </td>
   9774 
   9775             <td class="entry_units">
   9776             </td>
   9777 
   9778             <td class="entry_range">
   9779               <p>1-100; larger is higher quality</p>
   9780             </td>
   9781 
   9782             <td class="entry_tags">
   9783               <ul class="entry_tags">
   9784                   <li><a href="#tag_BC">BC</a></li>
   9785               </ul>
   9786             </td>
   9787 
   9788           </tr>
   9789           <tr class="entries_header">
   9790             <th class="th_details" colspan="5">Details</th>
   9791           </tr>
   9792           <tr class="entry_cont">
   9793             <td class="entry_details" colspan="5">
   9794               <p>85-95 is typical usage range.<wbr/></p>
   9795             </td>
   9796           </tr>
   9797 
   9798 
   9799           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   9800            <!-- end of entry -->
   9801         
   9802                 
   9803           <tr class="entry" id="controls_android.jpeg.thumbnailQuality">
   9804             <td class="entry_name
   9805              " rowspan="1">
   9806               android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
   9807             </td>
   9808             <td class="entry_type">
   9809                 <span class="entry_type_name">byte</span>
   9810 
   9811               <span class="entry_type_visibility"> [public]</span>
   9812 
   9813 
   9814               <span class="entry_type_hwlevel">[legacy] </span>
   9815 
   9816 
   9817 
   9818 
   9819             </td> <!-- entry_type -->
   9820 
   9821             <td class="entry_description">
   9822               <p>Compression quality of JPEG
   9823 thumbnail.<wbr/></p>
   9824             </td>
   9825 
   9826             <td class="entry_units">
   9827             </td>
   9828 
   9829             <td class="entry_range">
   9830               <p>1-100; larger is higher quality</p>
   9831             </td>
   9832 
   9833             <td class="entry_tags">
   9834               <ul class="entry_tags">
   9835                   <li><a href="#tag_BC">BC</a></li>
   9836               </ul>
   9837             </td>
   9838 
   9839           </tr>
   9840 
   9841 
   9842           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   9843            <!-- end of entry -->
   9844         
   9845                 
   9846           <tr class="entry" id="controls_android.jpeg.thumbnailSize">
   9847             <td class="entry_name
   9848              " rowspan="5">
   9849               android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
   9850             </td>
   9851             <td class="entry_type">
   9852                 <span class="entry_type_name">int32</span>
   9853                 <span class="entry_type_container">x</span>
   9854 
   9855                 <span class="entry_type_array">
   9856                   2
   9857                 </span>
   9858               <span class="entry_type_visibility"> [public as size]</span>
   9859 
   9860 
   9861               <span class="entry_type_hwlevel">[legacy] </span>
   9862 
   9863 
   9864 
   9865 
   9866             </td> <!-- entry_type -->
   9867 
   9868             <td class="entry_description">
   9869               <p>Resolution of embedded JPEG thumbnail.<wbr/></p>
   9870             </td>
   9871 
   9872             <td class="entry_units">
   9873             </td>
   9874 
   9875             <td class="entry_range">
   9876               <p><a href="#static_android.jpeg.availableThumbnailSizes">android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes</a></p>
   9877             </td>
   9878 
   9879             <td class="entry_tags">
   9880               <ul class="entry_tags">
   9881                   <li><a href="#tag_BC">BC</a></li>
   9882               </ul>
   9883             </td>
   9884 
   9885           </tr>
   9886           <tr class="entries_header">
   9887             <th class="th_details" colspan="5">Details</th>
   9888           </tr>
   9889           <tr class="entry_cont">
   9890             <td class="entry_details" colspan="5">
   9891               <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
   9892 but the captured JPEG will still be a valid image.<wbr/></p>
   9893 <p>For best results,<wbr/> when issuing a request for a JPEG image,<wbr/> the thumbnail size selected
   9894 should have the same aspect ratio as the main JPEG output.<wbr/></p>
   9895 <p>If the thumbnail image aspect ratio differs from the JPEG primary image aspect
   9896 ratio,<wbr/> the camera device creates the thumbnail by cropping it from the primary image.<wbr/>
   9897 For example,<wbr/> if the primary image has 4:3 aspect ratio,<wbr/> the thumbnail image has
   9898 16:9 aspect ratio,<wbr/> the primary image will be cropped vertically (letterbox) to
   9899 generate the thumbnail image.<wbr/> The thumbnail image will always have a smaller Field
   9900 Of View (FOV) than the primary image when aspect ratios differ.<wbr/></p>
   9901             </td>
   9902           </tr>
   9903 
   9904           <tr class="entries_header">
   9905             <th class="th_details" colspan="5">HAL Implementation Details</th>
   9906           </tr>
   9907           <tr class="entry_cont">
   9908             <td class="entry_details" colspan="5">
   9909               <p>The HAL must not squeeze or stretch the downscaled primary image to generate thumbnail.<wbr/>
   9910 The cropping must be done on the primary jpeg image rather than the sensor active array.<wbr/>
   9911 The stream cropping rule specified by "S5.<wbr/> Cropping" in camera3.<wbr/>h doesn't apply to the
   9912 thumbnail image cropping.<wbr/></p>
   9913             </td>
   9914           </tr>
   9915 
   9916           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   9917            <!-- end of entry -->
   9918         
   9919         
   9920 
   9921       <!-- end of kind -->
   9922       </tbody>
   9923       <tr><td colspan="6" class="kind">static</td></tr>
   9924 
   9925       <thead class="entries_header">
   9926         <tr>
   9927           <th class="th_name">Property Name</th>
   9928           <th class="th_type">Type</th>
   9929           <th class="th_description">Description</th>
   9930           <th class="th_units">Units</th>
   9931           <th class="th_range">Range</th>
   9932           <th class="th_tags">Tags</th>
   9933         </tr>
   9934       </thead>
   9935 
   9936       <tbody>
   9937 
   9938         
   9939 
   9940         
   9941 
   9942         
   9943 
   9944         
   9945 
   9946                 
   9947           <tr class="entry" id="static_android.jpeg.availableThumbnailSizes">
   9948             <td class="entry_name
   9949              " rowspan="3">
   9950               android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes
   9951             </td>
   9952             <td class="entry_type">
   9953                 <span class="entry_type_name">int32</span>
   9954                 <span class="entry_type_container">x</span>
   9955 
   9956                 <span class="entry_type_array">
   9957                   2 x n
   9958                 </span>
   9959               <span class="entry_type_visibility"> [public as size]</span>
   9960 
   9961 
   9962               <span class="entry_type_hwlevel">[legacy] </span>
   9963 
   9964 
   9965 
   9966 
   9967             </td> <!-- entry_type -->
   9968 
   9969             <td class="entry_description">
   9970               <p>List of JPEG thumbnail sizes for <a href="#controls_android.jpeg.thumbnailSize">android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size</a> supported by this
   9971 camera device.<wbr/></p>
   9972             </td>
   9973 
   9974             <td class="entry_units">
   9975             </td>
   9976 
   9977             <td class="entry_range">
   9978             </td>
   9979 
   9980             <td class="entry_tags">
   9981               <ul class="entry_tags">
   9982                   <li><a href="#tag_BC">BC</a></li>
   9983               </ul>
   9984             </td>
   9985 
   9986           </tr>
   9987           <tr class="entries_header">
   9988             <th class="th_details" colspan="5">Details</th>
   9989           </tr>
   9990           <tr class="entry_cont">
   9991             <td class="entry_details" colspan="5">
   9992               <p>This list will include at least one non-zero resolution,<wbr/> plus <code>(0,<wbr/>0)</code> for indicating no
   9993 thumbnail should be generated.<wbr/></p>
   9994 <p>Below condiditions will be satisfied for this size list:</p>
   9995 <ul>
   9996 <li>The sizes will be sorted by increasing pixel area (width x height).<wbr/>
   9997 If several resolutions have the same area,<wbr/> they will be sorted by increasing width.<wbr/></li>
   9998 <li>The aspect ratio of the largest thumbnail size will be same as the
   9999 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/>
   10000 The largest size is defined as the size that has the largest pixel area
   10001 in a given size list.<wbr/></li>
   10002 <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
   10003 one corresponding size that has the same aspect ratio in availableThumbnailSizes,<wbr/>
   10004 and vice versa.<wbr/></li>
   10005 <li>All non-<code>(0,<wbr/> 0)</code> sizes will have non-zero widths and heights.<wbr/></li>
   10006 </ul>
   10007             </td>
   10008           </tr>
   10009 
   10010 
   10011           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   10012            <!-- end of entry -->
   10013         
   10014                 
   10015           <tr class="entry" id="static_android.jpeg.maxSize">
   10016             <td class="entry_name
   10017              " rowspan="3">
   10018               android.<wbr/>jpeg.<wbr/>max<wbr/>Size
   10019             </td>
   10020             <td class="entry_type">
   10021                 <span class="entry_type_name">int32</span>
   10022 
   10023               <span class="entry_type_visibility"> [system]</span>
   10024 
   10025 
   10026 
   10027 
   10028 
   10029 
   10030             </td> <!-- entry_type -->
   10031 
   10032             <td class="entry_description">
   10033               <p>Maximum size in bytes for the compressed
   10034 JPEG buffer</p>
   10035             </td>
   10036 
   10037             <td class="entry_units">
   10038             </td>
   10039 
   10040             <td class="entry_range">
   10041               <p>Must be large enough to fit any JPEG produced by
   10042 the camera</p>
   10043             </td>
   10044 
   10045             <td class="entry_tags">
   10046             </td>
   10047 
   10048           </tr>
   10049           <tr class="entries_header">
   10050             <th class="th_details" colspan="5">Details</th>
   10051           </tr>
   10052           <tr class="entry_cont">
   10053             <td class="entry_details" colspan="5">
   10054               <p>This is used for sizing the gralloc buffers for
   10055 JPEG</p>
   10056             </td>
   10057           </tr>
   10058 
   10059 
   10060           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   10061            <!-- end of entry -->
   10062         
   10063         
   10064 
   10065       <!-- end of kind -->
   10066       </tbody>
   10067       <tr><td colspan="6" class="kind">dynamic</td></tr>
   10068 
   10069       <thead class="entries_header">
   10070         <tr>
   10071           <th class="th_name">Property Name</th>
   10072           <th class="th_type">Type</th>
   10073           <th class="th_description">Description</th>
   10074           <th class="th_units">Units</th>
   10075           <th class="th_range">Range</th>
   10076           <th class="th_tags">Tags</th>
   10077         </tr>
   10078       </thead>
   10079 
   10080       <tbody>
   10081 
   10082         
   10083 
   10084         
   10085 
   10086         
   10087 
   10088         
   10089 
   10090                 
   10091           <tr class="entry" id="dynamic_android.jpeg.gpsLocation">
   10092             <td class="entry_name
   10093              " rowspan="3">
   10094               android.<wbr/>jpeg.<wbr/>gps<wbr/>Location
   10095             </td>
   10096             <td class="entry_type">
   10097                 <span class="entry_type_name">byte</span>
   10098 
   10099               <span class="entry_type_visibility"> [public as location]</span>
   10100 
   10101               <span class="entry_type_synthetic">[synthetic] </span>
   10102 
   10103               <span class="entry_type_hwlevel">[legacy] </span>
   10104 
   10105 
   10106 
   10107 
   10108             </td> <!-- entry_type -->
   10109 
   10110             <td class="entry_description">
   10111               <p>A location object to use when generating image GPS metadata.<wbr/></p>
   10112             </td>
   10113 
   10114             <td class="entry_units">
   10115             </td>
   10116 
   10117             <td class="entry_range">
   10118             </td>
   10119 
   10120             <td class="entry_tags">
   10121             </td>
   10122 
   10123           </tr>
   10124           <tr class="entries_header">
   10125             <th class="th_details" colspan="5">Details</th>
   10126           </tr>
   10127           <tr class="entry_cont">
   10128             <td class="entry_details" colspan="5">
   10129               <p>Setting a location object in a request will include the GPS coordinates of the location
   10130 into any JPEG images captured based on the request.<wbr/> These coordinates can then be
   10131 viewed by anyone who receives the JPEG image.<wbr/></p>
   10132             </td>
   10133           </tr>
   10134 
   10135 
   10136           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   10137            <!-- end of entry -->
   10138         
   10139                 
   10140           <tr class="entry" id="dynamic_android.jpeg.gpsCoordinates">
   10141             <td class="entry_name
   10142              " rowspan="1">
   10143               android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
   10144             </td>
   10145             <td class="entry_type">
   10146                 <span class="entry_type_name">double</span>
   10147                 <span class="entry_type_container">x</span>
   10148 
   10149                 <span class="entry_type_array">
   10150                   3
   10151                 </span>
   10152               <span class="entry_type_visibility"> [hidden]</span>
   10153 
   10154 
   10155               <span class="entry_type_hwlevel">[legacy] </span>
   10156 
   10157 
   10158                 <div class="entry_type_notes">latitude,<wbr/> longitude,<wbr/> altitude.<wbr/> First two in degrees,<wbr/> the third in meters</div>
   10159 
   10160 
   10161             </td> <!-- entry_type -->
   10162 
   10163             <td class="entry_description">
   10164               <p>GPS coordinates to include in output JPEG
   10165 EXIF.<wbr/></p>
   10166             </td>
   10167 
   10168             <td class="entry_units">
   10169             </td>
   10170 
   10171             <td class="entry_range">
   10172               <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
   10173             </td>
   10174 
   10175             <td class="entry_tags">
   10176               <ul class="entry_tags">
   10177                   <li><a href="#tag_BC">BC</a></li>
   10178               </ul>
   10179             </td>
   10180 
   10181           </tr>
   10182 
   10183 
   10184           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   10185            <!-- end of entry -->
   10186         
   10187                 
   10188           <tr class="entry" id="dynamic_android.jpeg.gpsProcessingMethod">
   10189             <td class="entry_name
   10190              " rowspan="1">
   10191               android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
   10192             </td>
   10193             <td class="entry_type">
   10194                 <span class="entry_type_name">byte</span>
   10195 
   10196               <span class="entry_type_visibility"> [hidden as string]</span>
   10197 
   10198 
   10199               <span class="entry_type_hwlevel">[legacy] </span>
   10200 
   10201 
   10202 
   10203 
   10204             </td> <!-- entry_type -->
   10205 
   10206             <td class="entry_description">
   10207               <p>32 characters describing GPS algorithm to
   10208 include in EXIF.<wbr/></p>
   10209             </td>
   10210 
   10211             <td class="entry_units">
   10212               UTF-8 null-terminated string
   10213             </td>
   10214 
   10215             <td class="entry_range">
   10216             </td>
   10217 
   10218             <td class="entry_tags">
   10219               <ul class="entry_tags">
   10220                   <li><a href="#tag_BC">BC</a></li>
   10221               </ul>
   10222             </td>
   10223 
   10224           </tr>
   10225 
   10226 
   10227           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   10228            <!-- end of entry -->
   10229         
   10230                 
   10231           <tr class="entry" id="dynamic_android.jpeg.gpsTimestamp">
   10232             <td class="entry_name
   10233              " rowspan="1">
   10234               android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
   10235             </td>
   10236             <td class="entry_type">
   10237                 <span class="entry_type_name">int64</span>
   10238 
   10239               <span class="entry_type_visibility"> [hidden]</span>
   10240 
   10241 
   10242               <span class="entry_type_hwlevel">[legacy] </span>
   10243 
   10244 
   10245 
   10246 
   10247             </td> <!-- entry_type -->
   10248 
   10249             <td class="entry_description">
   10250               <p>Time GPS fix was made to include in
   10251 EXIF.<wbr/></p>
   10252             </td>
   10253 
   10254             <td class="entry_units">
   10255               UTC in seconds since January 1,<wbr/> 1970
   10256             </td>
   10257 
   10258             <td class="entry_range">
   10259             </td>
   10260 
   10261             <td class="entry_tags">
   10262               <ul class="entry_tags">
   10263                   <li><a href="#tag_BC">BC</a></li>
   10264               </ul>
   10265             </td>
   10266 
   10267           </tr>
   10268 
   10269 
   10270           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   10271            <!-- end of entry -->
   10272         
   10273                 
   10274           <tr class="entry" id="dynamic_android.jpeg.orientation">
   10275             <td class="entry_name
   10276              " rowspan="3">
   10277               android.<wbr/>jpeg.<wbr/>orientation
   10278             </td>
   10279             <td class="entry_type">
   10280                 <span class="entry_type_name">int32</span>
   10281 
   10282               <span class="entry_type_visibility"> [public]</span>
   10283 
   10284 
   10285               <span class="entry_type_hwlevel">[legacy] </span>
   10286 
   10287 
   10288 
   10289 
   10290             </td> <!-- entry_type -->
   10291 
   10292             <td class="entry_description">
   10293               <p>The orientation for a JPEG image.<wbr/></p>
   10294             </td>
   10295 
   10296             <td class="entry_units">
   10297               Degrees in multiples of 90
   10298             </td>
   10299 
   10300             <td class="entry_range">
   10301               <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
   10302             </td>
   10303 
   10304             <td class="entry_tags">
   10305               <ul class="entry_tags">
   10306                   <li><a href="#tag_BC">BC</a></li>
   10307               </ul>
   10308             </td>
   10309 
   10310           </tr>
   10311           <tr class="entries_header">
   10312             <th class="th_details" colspan="5">Details</th>
   10313           </tr>
   10314           <tr class="entry_cont">
   10315             <td class="entry_details" colspan="5">
   10316               <p>The clockwise rotation angle in degrees,<wbr/> relative to the orientation
   10317 to the camera,<wbr/> that the JPEG picture needs to be rotated by,<wbr/> to be viewed
   10318 upright.<wbr/></p>
   10319 <p>Camera devices may either encode this value into the JPEG EXIF header,<wbr/> or
   10320 rotate the image data to match this orientation.<wbr/></p>
   10321 <p>Note that this orientation is relative to the orientation of the camera sensor,<wbr/> given
   10322 by <a href="#static_android.sensor.orientation">android.<wbr/>sensor.<wbr/>orientation</a>.<wbr/></p>
   10323 <p>To translate from the device orientation given by the Android sensor APIs,<wbr/> the following
   10324 sample code may be used:</p>
   10325 <pre><code>private int getJpegOrientation(CameraCharacteristics c,<wbr/> int deviceOrientation) {
   10326     if (deviceOrientation == android.<wbr/>view.<wbr/>Orientation<wbr/>Event<wbr/>Listener.<wbr/>ORIENTATION_<wbr/>UNKNOWN) return 0;
   10327     int sensorOrientation = c.<wbr/>get(Camera<wbr/>Characteristics.<wbr/>SENSOR_<wbr/>ORIENTATION);
   10328 
   10329     //<wbr/> Round device orientation to a multiple of 90
   10330     deviceOrientation = (deviceOrientation + 45) /<wbr/> 90 * 90;
   10331 
   10332     //<wbr/> Reverse device orientation for front-facing cameras
   10333     boolean facingFront = c.<wbr/>get(Camera<wbr/>Characteristics.<wbr/>LENS_<wbr/>FACING) == Camera<wbr/>Characteristics.<wbr/>LENS_<wbr/>FACING_<wbr/>FRONT;
   10334     if (facingFront) deviceOrientation = -deviceOrientation;
   10335 
   10336     //<wbr/> Calculate desired JPEG orientation relative to camera orientation to make
   10337     //<wbr/> the image upright relative to the device orientation
   10338     int jpegOrientation = (sensorOrientation + deviceOrientation + 360) % 360;
   10339 
   10340     return jpegOrientation;
   10341 }
   10342 </code></pre>
   10343             </td>
   10344           </tr>
   10345 
   10346 
   10347           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   10348            <!-- end of entry -->
   10349         
   10350                 
   10351           <tr class="entry" id="dynamic_android.jpeg.quality">
   10352             <td class="entry_name
   10353              " rowspan="3">
   10354               android.<wbr/>jpeg.<wbr/>quality
   10355             </td>
   10356             <td class="entry_type">
   10357                 <span class="entry_type_name">byte</span>
   10358 
   10359               <span class="entry_type_visibility"> [public]</span>
   10360 
   10361 
   10362               <span class="entry_type_hwlevel">[legacy] </span>
   10363 
   10364 
   10365 
   10366 
   10367             </td> <!-- entry_type -->
   10368 
   10369             <td class="entry_description">
   10370               <p>Compression quality of the final JPEG
   10371 image.<wbr/></p>
   10372             </td>
   10373 
   10374             <td class="entry_units">
   10375             </td>
   10376 
   10377             <td class="entry_range">
   10378               <p>1-100; larger is higher quality</p>
   10379             </td>
   10380 
   10381             <td class="entry_tags">
   10382               <ul class="entry_tags">
   10383                   <li><a href="#tag_BC">BC</a></li>
   10384               </ul>
   10385             </td>
   10386 
   10387           </tr>
   10388           <tr class="entries_header">
   10389             <th class="th_details" colspan="5">Details</th>
   10390           </tr>
   10391           <tr class="entry_cont">
   10392             <td class="entry_details" colspan="5">
   10393               <p>85-95 is typical usage range.<wbr/></p>
   10394             </td>
   10395           </tr>
   10396 
   10397 
   10398           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   10399            <!-- end of entry -->
   10400         
   10401                 
   10402           <tr class="entry" id="dynamic_android.jpeg.size">
   10403             <td class="entry_name
   10404              " rowspan="3">
   10405               android.<wbr/>jpeg.<wbr/>size
   10406             </td>
   10407             <td class="entry_type">
   10408                 <span class="entry_type_name">int32</span>
   10409 
   10410               <span class="entry_type_visibility"> [system]</span>
   10411 
   10412 
   10413 
   10414 
   10415 
   10416 
   10417             </td> <!-- entry_type -->
   10418 
   10419             <td class="entry_description">
   10420               <p>The size of the compressed JPEG image,<wbr/> in
   10421 bytes</p>
   10422             </td>
   10423 
   10424             <td class="entry_units">
   10425             </td>
   10426 
   10427             <td class="entry_range">
   10428               <p>&gt;= 0</p>
   10429             </td>
   10430 
   10431             <td class="entry_tags">
   10432               <ul class="entry_tags">
   10433                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   10434               </ul>
   10435             </td>
   10436 
   10437           </tr>
   10438           <tr class="entries_header">
   10439             <th class="th_details" colspan="5">Details</th>
   10440           </tr>
   10441           <tr class="entry_cont">
   10442             <td class="entry_details" colspan="5">
   10443               <p>If no JPEG output is produced for the request,<wbr/>
   10444 this must be 0.<wbr/></p>
   10445 <p>Otherwise,<wbr/> this describes the real size of the compressed
   10446 JPEG image placed in the output stream.<wbr/>  More specifically,<wbr/>
   10447 if <a href="#static_android.jpeg.maxSize">android.<wbr/>jpeg.<wbr/>max<wbr/>Size</a> = 1000000,<wbr/> and a specific capture
   10448 has <a href="#dynamic_android.jpeg.size">android.<wbr/>jpeg.<wbr/>size</a> = 500000,<wbr/> then the output buffer from
   10449 the JPEG stream will be 1000000 bytes,<wbr/> of which the first
   10450 500000 make up the real data.<wbr/></p>
   10451             </td>
   10452           </tr>
   10453 
   10454 
   10455           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   10456            <!-- end of entry -->
   10457         
   10458                 
   10459           <tr class="entry" id="dynamic_android.jpeg.thumbnailQuality">
   10460             <td class="entry_name
   10461              " rowspan="1">
   10462               android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
   10463             </td>
   10464             <td class="entry_type">
   10465                 <span class="entry_type_name">byte</span>
   10466 
   10467               <span class="entry_type_visibility"> [public]</span>
   10468 
   10469 
   10470               <span class="entry_type_hwlevel">[legacy] </span>
   10471 
   10472 
   10473 
   10474 
   10475             </td> <!-- entry_type -->
   10476 
   10477             <td class="entry_description">
   10478               <p>Compression quality of JPEG
   10479 thumbnail.<wbr/></p>
   10480             </td>
   10481 
   10482             <td class="entry_units">
   10483             </td>
   10484 
   10485             <td class="entry_range">
   10486               <p>1-100; larger is higher quality</p>
   10487             </td>
   10488 
   10489             <td class="entry_tags">
   10490               <ul class="entry_tags">
   10491                   <li><a href="#tag_BC">BC</a></li>
   10492               </ul>
   10493             </td>
   10494 
   10495           </tr>
   10496 
   10497 
   10498           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   10499            <!-- end of entry -->
   10500         
   10501                 
   10502           <tr class="entry" id="dynamic_android.jpeg.thumbnailSize">
   10503             <td class="entry_name
   10504              " rowspan="5">
   10505               android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
   10506             </td>
   10507             <td class="entry_type">
   10508                 <span class="entry_type_name">int32</span>
   10509                 <span class="entry_type_container">x</span>
   10510 
   10511                 <span class="entry_type_array">
   10512                   2
   10513                 </span>
   10514               <span class="entry_type_visibility"> [public as size]</span>
   10515 
   10516 
   10517               <span class="entry_type_hwlevel">[legacy] </span>
   10518 
   10519 
   10520 
   10521 
   10522             </td> <!-- entry_type -->
   10523 
   10524             <td class="entry_description">
   10525               <p>Resolution of embedded JPEG thumbnail.<wbr/></p>
   10526             </td>
   10527 
   10528             <td class="entry_units">
   10529             </td>
   10530 
   10531             <td class="entry_range">
   10532               <p><a href="#static_android.jpeg.availableThumbnailSizes">android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes</a></p>
   10533             </td>
   10534 
   10535             <td class="entry_tags">
   10536               <ul class="entry_tags">
   10537                   <li><a href="#tag_BC">BC</a></li>
   10538               </ul>
   10539             </td>
   10540 
   10541           </tr>
   10542           <tr class="entries_header">
   10543             <th class="th_details" colspan="5">Details</th>
   10544           </tr>
   10545           <tr class="entry_cont">
   10546             <td class="entry_details" colspan="5">
   10547               <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
   10548 but the captured JPEG will still be a valid image.<wbr/></p>
   10549 <p>For best results,<wbr/> when issuing a request for a JPEG image,<wbr/> the thumbnail size selected
   10550 should have the same aspect ratio as the main JPEG output.<wbr/></p>
   10551 <p>If the thumbnail image aspect ratio differs from the JPEG primary image aspect
   10552 ratio,<wbr/> the camera device creates the thumbnail by cropping it from the primary image.<wbr/>
   10553 For example,<wbr/> if the primary image has 4:3 aspect ratio,<wbr/> the thumbnail image has
   10554 16:9 aspect ratio,<wbr/> the primary image will be cropped vertically (letterbox) to
   10555 generate the thumbnail image.<wbr/> The thumbnail image will always have a smaller Field
   10556 Of View (FOV) than the primary image when aspect ratios differ.<wbr/></p>
   10557             </td>
   10558           </tr>
   10559 
   10560           <tr class="entries_header">
   10561             <th class="th_details" colspan="5">HAL Implementation Details</th>
   10562           </tr>
   10563           <tr class="entry_cont">
   10564             <td class="entry_details" colspan="5">
   10565               <p>The HAL must not squeeze or stretch the downscaled primary image to generate thumbnail.<wbr/>
   10566 The cropping must be done on the primary jpeg image rather than the sensor active array.<wbr/>
   10567 The stream cropping rule specified by "S5.<wbr/> Cropping" in camera3.<wbr/>h doesn't apply to the
   10568 thumbnail image cropping.<wbr/></p>
   10569             </td>
   10570           </tr>
   10571 
   10572           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   10573            <!-- end of entry -->
   10574         
   10575         
   10576 
   10577       <!-- end of kind -->
   10578       </tbody>
   10579 
   10580   <!-- end of section -->
   10581   <tr><td colspan="6" id="section_lens" class="section">lens</td></tr>
   10582 
   10583 
   10584       <tr><td colspan="6" class="kind">controls</td></tr>
   10585 
   10586       <thead class="entries_header">
   10587         <tr>
   10588           <th class="th_name">Property Name</th>
   10589           <th class="th_type">Type</th>
   10590           <th class="th_description">Description</th>
   10591           <th class="th_units">Units</th>
   10592           <th class="th_range">Range</th>
   10593           <th class="th_tags">Tags</th>
   10594         </tr>
   10595       </thead>
   10596 
   10597       <tbody>
   10598 
   10599         
   10600 
   10601         
   10602 
   10603         
   10604 
   10605         
   10606 
   10607                 
   10608           <tr class="entry" id="controls_android.lens.aperture">
   10609             <td class="entry_name
   10610              " rowspan="3">
   10611               android.<wbr/>lens.<wbr/>aperture
   10612             </td>
   10613             <td class="entry_type">
   10614                 <span class="entry_type_name">float</span>
   10615 
   10616               <span class="entry_type_visibility"> [public]</span>
   10617 
   10618 
   10619               <span class="entry_type_hwlevel">[full] </span>
   10620 
   10621 
   10622 
   10623 
   10624             </td> <!-- entry_type -->
   10625 
   10626             <td class="entry_description">
   10627               <p>The desired lens aperture size,<wbr/> as a ratio of lens focal length to the
   10628 effective aperture diameter.<wbr/></p>
   10629             </td>
   10630 
   10631             <td class="entry_units">
   10632               The f-number (f/<wbr/>N)
   10633             </td>
   10634 
   10635             <td class="entry_range">
   10636               <p><a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a></p>
   10637             </td>
   10638 
   10639             <td class="entry_tags">
   10640               <ul class="entry_tags">
   10641                   <li><a href="#tag_V1">V1</a></li>
   10642               </ul>
   10643             </td>
   10644 
   10645           </tr>
   10646           <tr class="entries_header">
   10647             <th class="th_details" colspan="5">Details</th>
   10648           </tr>
   10649           <tr class="entry_cont">
   10650             <td class="entry_details" colspan="5">
   10651               <p>Setting this value is only supported on the camera devices that have a variable
   10652 aperture lens.<wbr/></p>
   10653 <p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
   10654 this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
   10655 <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>
   10656 to achieve manual exposure control.<wbr/></p>
   10657 <p>The requested aperture value may take several frames to reach the
   10658 requested value; the camera device will report the current (intermediate)
   10659 aperture size in capture result metadata while the aperture is changing.<wbr/>
   10660 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>
   10661 <p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
   10662 the ON modes,<wbr/> this will be overridden by the camera device
   10663 auto-exposure algorithm,<wbr/> the overridden values are then provided
   10664 back to the user in the corresponding result.<wbr/></p>
   10665             </td>
   10666           </tr>
   10667 
   10668 
   10669           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   10670            <!-- end of entry -->
   10671         
   10672                 
   10673           <tr class="entry" id="controls_android.lens.filterDensity">
   10674             <td class="entry_name
   10675              " rowspan="3">
   10676               android.<wbr/>lens.<wbr/>filter<wbr/>Density
   10677             </td>
   10678             <td class="entry_type">
   10679                 <span class="entry_type_name">float</span>
   10680 
   10681               <span class="entry_type_visibility"> [public]</span>
   10682 
   10683 
   10684               <span class="entry_type_hwlevel">[full] </span>
   10685 
   10686 
   10687 
   10688 
   10689             </td> <!-- entry_type -->
   10690 
   10691             <td class="entry_description">
   10692               <p>The desired setting for the lens neutral density filter(s).<wbr/></p>
   10693             </td>
   10694 
   10695             <td class="entry_units">
   10696               Exposure Value (EV)
   10697             </td>
   10698 
   10699             <td class="entry_range">
   10700               <p><a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a></p>
   10701             </td>
   10702 
   10703             <td class="entry_tags">
   10704               <ul class="entry_tags">
   10705                   <li><a href="#tag_V1">V1</a></li>
   10706               </ul>
   10707             </td>
   10708 
   10709           </tr>
   10710           <tr class="entries_header">
   10711             <th class="th_details" colspan="5">Details</th>
   10712           </tr>
   10713           <tr class="entry_cont">
   10714             <td class="entry_details" colspan="5">
   10715               <p>This control will not be supported on most camera devices.<wbr/></p>
   10716 <p>Lens filters are typically used to lower the amount of light the
   10717 sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
   10718 step is the standard logarithmic representation,<wbr/> which are
   10719 non-negative,<wbr/> and inversely proportional to the amount of light
   10720 hitting the sensor.<wbr/>  For example,<wbr/> setting this to 0 would result
   10721 in no reduction of the incoming light,<wbr/> and setting this to 2 would
   10722 mean that the filter is set to reduce incoming light by two stops
   10723 (allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
   10724 <p>It may take several frames before the lens filter density changes
   10725 to the requested value.<wbr/> While the filter density is still changing,<wbr/>
   10726 <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
   10727             </td>
   10728           </tr>
   10729 
   10730 
   10731           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   10732            <!-- end of entry -->
   10733         
   10734                 
   10735           <tr class="entry" id="controls_android.lens.focalLength">
   10736             <td class="entry_name
   10737              " rowspan="3">
   10738               android.<wbr/>lens.<wbr/>focal<wbr/>Length
   10739             </td>
   10740             <td class="entry_type">
   10741                 <span class="entry_type_name">float</span>
   10742 
   10743               <span class="entry_type_visibility"> [public]</span>
   10744 
   10745 
   10746               <span class="entry_type_hwlevel">[legacy] </span>
   10747 
   10748 
   10749 
   10750 
   10751             </td> <!-- entry_type -->
   10752 
   10753             <td class="entry_description">
   10754               <p>The desired lens focal length; used for optical zoom.<wbr/></p>
   10755             </td>
   10756 
   10757             <td class="entry_units">
   10758               Millimeters
   10759             </td>
   10760 
   10761             <td class="entry_range">
   10762               <p><a href="#static_android.lens.info.availableFocalLengths">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths</a></p>
   10763             </td>
   10764 
   10765             <td class="entry_tags">
   10766               <ul class="entry_tags">
   10767                   <li><a href="#tag_V1">V1</a></li>
   10768               </ul>
   10769             </td>
   10770 
   10771           </tr>
   10772           <tr class="entries_header">
   10773             <th class="th_details" colspan="5">Details</th>
   10774           </tr>
   10775           <tr class="entry_cont">
   10776             <td class="entry_details" colspan="5">
   10777               <p>This setting controls the physical focal length of the camera
   10778 device's lens.<wbr/> Changing the focal length changes the field of
   10779 view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
   10780 <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
   10781 setting won't be applied instantaneously,<wbr/> and it may take several
   10782 frames before the lens can change to the requested focal length.<wbr/>
   10783 While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
   10784 be set to MOVING.<wbr/></p>
   10785 <p>Optical zoom will not be supported on most devices.<wbr/></p>
   10786             </td>
   10787           </tr>
   10788 
   10789 
   10790           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   10791            <!-- end of entry -->
   10792         
   10793                 
   10794           <tr class="entry" id="controls_android.lens.focusDistance">
   10795             <td class="entry_name
   10796              " rowspan="3">
   10797               android.<wbr/>lens.<wbr/>focus<wbr/>Distance
   10798             </td>
   10799             <td class="entry_type">
   10800                 <span class="entry_type_name">float</span>
   10801 
   10802               <span class="entry_type_visibility"> [public]</span>
   10803 
   10804 
   10805               <span class="entry_type_hwlevel">[full] </span>
   10806 
   10807 
   10808 
   10809 
   10810             </td> <!-- entry_type -->
   10811 
   10812             <td class="entry_description">
   10813               <p>Desired distance to plane of sharpest focus,<wbr/>
   10814 measured from frontmost surface of the lens.<wbr/></p>
   10815             </td>
   10816 
   10817             <td class="entry_units">
   10818               See android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details
   10819             </td>
   10820 
   10821             <td class="entry_range">
   10822               <p>&gt;= 0</p>
   10823             </td>
   10824 
   10825             <td class="entry_tags">
   10826               <ul class="entry_tags">
   10827                   <li><a href="#tag_BC">BC</a></li>
   10828                   <li><a href="#tag_V1">V1</a></li>
   10829               </ul>
   10830             </td>
   10831 
   10832           </tr>
   10833           <tr class="entries_header">
   10834             <th class="th_details" colspan="5">Details</th>
   10835           </tr>
   10836           <tr class="entry_cont">
   10837             <td class="entry_details" colspan="5">
   10838               <p>This control can be used for setting manual focus,<wbr/> on devices that support
   10839 the MANUAL_<wbr/>SENSOR capability and have a variable-focus lens (see
   10840 <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a>).<wbr/></p>
   10841 <p>A value of <code>0.<wbr/>0f</code> means infinity focus.<wbr/> The value set will be clamped to
   10842 <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>
   10843 <p>Like <a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>,<wbr/> this setting won't be applied
   10844 instantaneously,<wbr/> and it may take several frames before the lens
   10845 can move to the requested focus distance.<wbr/> While the lens is still moving,<wbr/>
   10846 <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
   10847 <p>LEGACY devices support at most setting this to <code>0.<wbr/>0f</code>
   10848 for infinity focus.<wbr/></p>
   10849             </td>
   10850           </tr>
   10851 
   10852 
   10853           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   10854            <!-- end of entry -->
   10855         
   10856                 
   10857           <tr class="entry" id="controls_android.lens.opticalStabilizationMode">
   10858             <td class="entry_name
   10859              " rowspan="3">
   10860               android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
   10861             </td>
   10862             <td class="entry_type">
   10863                 <span class="entry_type_name entry_type_name_enum">byte</span>
   10864 
   10865               <span class="entry_type_visibility"> [public]</span>
   10866 
   10867 
   10868               <span class="entry_type_hwlevel">[limited] </span>
   10869 
   10870 
   10871 
   10872                 <ul class="entry_type_enum">
   10873                   <li>
   10874                     <span class="entry_type_enum_name">OFF</span>
   10875                     <span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
   10876                   </li>
   10877                   <li>
   10878                     <span class="entry_type_enum_name">ON</span>
   10879                     <span class="entry_type_enum_optional">[optional]</span>
   10880                     <span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
   10881                   </li>
   10882                 </ul>
   10883 
   10884             </td> <!-- entry_type -->
   10885 
   10886             <td class="entry_description">
   10887               <p>Sets whether the camera device uses optical image stabilization (OIS)
   10888 when capturing images.<wbr/></p>
   10889             </td>
   10890 
   10891             <td class="entry_units">
   10892             </td>
   10893 
   10894             <td class="entry_range">
   10895               <p><a href="#static_android.lens.info.availableOpticalStabilization">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization</a></p>
   10896             </td>
   10897 
   10898             <td class="entry_tags">
   10899               <ul class="entry_tags">
   10900                   <li><a href="#tag_V1">V1</a></li>
   10901               </ul>
   10902             </td>
   10903 
   10904           </tr>
   10905           <tr class="entries_header">
   10906             <th class="th_details" colspan="5">Details</th>
   10907           </tr>
   10908           <tr class="entry_cont">
   10909             <td class="entry_details" colspan="5">
   10910               <p>OIS is used to compensate for motion blur due to small
   10911 movements of the camera during capture.<wbr/> Unlike digital image
   10912 stabilization (<a href="#controls_android.control.videoStabilizationMode">android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode</a>),<wbr/> OIS
   10913 makes use of mechanical elements to stabilize the camera
   10914 sensor,<wbr/> and thus allows for longer exposure times before
   10915 camera shake becomes apparent.<wbr/></p>
   10916 <p>Switching between different optical stabilization modes may take several
   10917 frames to initialize,<wbr/> the camera device will report the current mode in
   10918 capture result metadata.<wbr/> For example,<wbr/> When "ON" mode is requested,<wbr/> the
   10919 optical stabilization modes in the first several capture results may still
   10920 be "OFF",<wbr/> and it will become "ON" when the initialization is done.<wbr/></p>
   10921 <p>If a camera device supports both OIS and digital image stabilization
   10922 (<a href="#controls_android.control.videoStabilizationMode">android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode</a>),<wbr/> turning both modes on may produce undesirable
   10923 interaction,<wbr/> so it is recommended not to enable both at the same time.<wbr/></p>
   10924 <p>Not all devices will support OIS; see
   10925 <a href="#static_android.lens.info.availableOpticalStabilization">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization</a> for
   10926 available controls.<wbr/></p>
   10927             </td>
   10928           </tr>
   10929 
   10930 
   10931           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   10932            <!-- end of entry -->
   10933         
   10934         
   10935 
   10936       <!-- end of kind -->
   10937       </tbody>
   10938       <tr><td colspan="6" class="kind">static</td></tr>
   10939 
   10940       <thead class="entries_header">
   10941         <tr>
   10942           <th class="th_name">Property Name</th>
   10943           <th class="th_type">Type</th>
   10944           <th class="th_description">Description</th>
   10945           <th class="th_units">Units</th>
   10946           <th class="th_range">Range</th>
   10947           <th class="th_tags">Tags</th>
   10948         </tr>
   10949       </thead>
   10950 
   10951       <tbody>
   10952 
   10953         
   10954 
   10955         
   10956 
   10957         
   10958 
   10959         
   10960                 
   10961             
   10962 
   10963                 
   10964           <tr class="entry" id="static_android.lens.info.availableApertures">
   10965             <td class="entry_name
   10966              " rowspan="3">
   10967               android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures
   10968             </td>
   10969             <td class="entry_type">
   10970                 <span class="entry_type_name">float</span>
   10971                 <span class="entry_type_container">x</span>
   10972 
   10973                 <span class="entry_type_array">
   10974                   n
   10975                 </span>
   10976               <span class="entry_type_visibility"> [public]</span>
   10977 
   10978 
   10979               <span class="entry_type_hwlevel">[full] </span>
   10980 
   10981 
   10982 
   10983 
   10984             </td> <!-- entry_type -->
   10985 
   10986             <td class="entry_description">
   10987               <p>List of aperture size values for <a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a> that are
   10988 supported by this camera device.<wbr/></p>
   10989             </td>
   10990 
   10991             <td class="entry_units">
   10992               The aperture f-number
   10993             </td>
   10994 
   10995             <td class="entry_range">
   10996             </td>
   10997 
   10998             <td class="entry_tags">
   10999               <ul class="entry_tags">
   11000                   <li><a href="#tag_V1">V1</a></li>
   11001               </ul>
   11002             </td>
   11003 
   11004           </tr>
   11005           <tr class="entries_header">
   11006             <th class="th_details" colspan="5">Details</th>
   11007           </tr>
   11008           <tr class="entry_cont">
   11009             <td class="entry_details" colspan="5">
   11010               <p>If the camera device doesn't support a variable lens aperture,<wbr/>
   11011 this list will contain only one value,<wbr/> which is the fixed aperture size.<wbr/></p>
   11012 <p>If the camera device supports a variable aperture,<wbr/> the aperture values
   11013 in this list will be sorted in ascending order.<wbr/></p>
   11014             </td>
   11015           </tr>
   11016 
   11017 
   11018           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   11019            <!-- end of entry -->
   11020         
   11021                 
   11022           <tr class="entry" id="static_android.lens.info.availableFilterDensities">
   11023             <td class="entry_name
   11024              " rowspan="3">
   11025               android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities
   11026             </td>
   11027             <td class="entry_type">
   11028                 <span class="entry_type_name">float</span>
   11029                 <span class="entry_type_container">x</span>
   11030 
   11031                 <span class="entry_type_array">
   11032                   n
   11033                 </span>
   11034               <span class="entry_type_visibility"> [public]</span>
   11035 
   11036 
   11037               <span class="entry_type_hwlevel">[full] </span>
   11038 
   11039 
   11040 
   11041 
   11042             </td> <!-- entry_type -->
   11043 
   11044             <td class="entry_description">
   11045               <p>List of neutral density filter values for
   11046 <a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a> that are supported by this camera device.<wbr/></p>
   11047             </td>
   11048 
   11049             <td class="entry_units">
   11050               Exposure value (EV)
   11051             </td>
   11052 
   11053             <td class="entry_range">
   11054               <p>Values are &gt;= 0</p>
   11055             </td>
   11056 
   11057             <td class="entry_tags">
   11058               <ul class="entry_tags">
   11059                   <li><a href="#tag_V1">V1</a></li>
   11060               </ul>
   11061             </td>
   11062 
   11063           </tr>
   11064           <tr class="entries_header">
   11065             <th class="th_details" colspan="5">Details</th>
   11066           </tr>
   11067           <tr class="entry_cont">
   11068             <td class="entry_details" colspan="5">
   11069               <p>If a neutral density filter is not supported by this camera device,<wbr/>
   11070 this list will contain only 0.<wbr/> Otherwise,<wbr/> this list will include every
   11071 filter density supported by the camera device,<wbr/> in ascending order.<wbr/></p>
   11072             </td>
   11073           </tr>
   11074 
   11075 
   11076           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   11077            <!-- end of entry -->
   11078         
   11079                 
   11080           <tr class="entry" id="static_android.lens.info.availableFocalLengths">
   11081             <td class="entry_name
   11082              " rowspan="3">
   11083               android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths
   11084             </td>
   11085             <td class="entry_type">
   11086                 <span class="entry_type_name">float</span>
   11087                 <span class="entry_type_container">x</span>
   11088 
   11089                 <span class="entry_type_array">
   11090                   n
   11091                 </span>
   11092               <span class="entry_type_visibility"> [public]</span>
   11093 
   11094 
   11095               <span class="entry_type_hwlevel">[legacy] </span>
   11096 
   11097 
   11098                 <div class="entry_type_notes">The list of available focal lengths</div>
   11099 
   11100 
   11101             </td> <!-- entry_type -->
   11102 
   11103             <td class="entry_description">
   11104               <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
   11105 device.<wbr/></p>
   11106             </td>
   11107 
   11108             <td class="entry_units">
   11109               Millimeters
   11110             </td>
   11111 
   11112             <td class="entry_range">
   11113               <p>Values are &gt; 0</p>
   11114             </td>
   11115 
   11116             <td class="entry_tags">
   11117               <ul class="entry_tags">
   11118                   <li><a href="#tag_BC">BC</a></li>
   11119                   <li><a href="#tag_V1">V1</a></li>
   11120               </ul>
   11121             </td>
   11122 
   11123           </tr>
   11124           <tr class="entries_header">
   11125             <th class="th_details" colspan="5">Details</th>
   11126           </tr>
   11127           <tr class="entry_cont">
   11128             <td class="entry_details" colspan="5">
   11129               <p>If optical zoom is not supported,<wbr/> this list will only contain
   11130 a single value corresponding to the fixed focal length of the
   11131 device.<wbr/> Otherwise,<wbr/> this list will include every focal length supported
   11132 by the camera device,<wbr/> in ascending order.<wbr/></p>
   11133             </td>
   11134           </tr>
   11135 
   11136 
   11137           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   11138            <!-- end of entry -->
   11139         
   11140                 
   11141           <tr class="entry" id="static_android.lens.info.availableOpticalStabilization">
   11142             <td class="entry_name
   11143              " rowspan="3">
   11144               android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization
   11145             </td>
   11146             <td class="entry_type">
   11147                 <span class="entry_type_name">byte</span>
   11148                 <span class="entry_type_container">x</span>
   11149 
   11150                 <span class="entry_type_array">
   11151                   n
   11152                 </span>
   11153               <span class="entry_type_visibility"> [public as enumList]</span>
   11154 
   11155 
   11156               <span class="entry_type_hwlevel">[limited] </span>
   11157 
   11158 
   11159                 <div class="entry_type_notes">list of enums</div>
   11160 
   11161 
   11162             </td> <!-- entry_type -->
   11163 
   11164             <td class="entry_description">
   11165               <p>List of optical image stabilization (OIS) modes for
   11166 <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>
   11167             </td>
   11168 
   11169             <td class="entry_units">
   11170             </td>
   11171 
   11172             <td class="entry_range">
   11173               <p>Any value listed in <a href="#controls_android.lens.opticalStabilizationMode">android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode</a></p>
   11174             </td>
   11175 
   11176             <td class="entry_tags">
   11177               <ul class="entry_tags">
   11178                   <li><a href="#tag_V1">V1</a></li>
   11179               </ul>
   11180             </td>
   11181 
   11182           </tr>
   11183           <tr class="entries_header">
   11184             <th class="th_details" colspan="5">Details</th>
   11185           </tr>
   11186           <tr class="entry_cont">
   11187             <td class="entry_details" colspan="5">
   11188               <p>If OIS is not supported by a given camera device,<wbr/> this list will
   11189 contain only OFF.<wbr/></p>
   11190             </td>
   11191           </tr>
   11192 
   11193 
   11194           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   11195            <!-- end of entry -->
   11196         
   11197                 
   11198           <tr class="entry" id="static_android.lens.info.hyperfocalDistance">
   11199             <td class="entry_name
   11200              " rowspan="3">
   11201               android.<wbr/>lens.<wbr/>info.<wbr/>hyperfocal<wbr/>Distance
   11202             </td>
   11203             <td class="entry_type">
   11204                 <span class="entry_type_name">float</span>
   11205 
   11206               <span class="entry_type_visibility"> [public]</span>
   11207 
   11208 
   11209               <span class="entry_type_hwlevel">[limited] </span>
   11210 
   11211 
   11212 
   11213 
   11214             </td> <!-- entry_type -->
   11215 
   11216             <td class="entry_description">
   11217               <p>Hyperfocal distance for this lens.<wbr/></p>
   11218             </td>
   11219 
   11220             <td class="entry_units">
   11221               See android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details
   11222             </td>
   11223 
   11224             <td class="entry_range">
   11225               <p>If lens is fixed focus,<wbr/> &gt;= 0.<wbr/> If lens has focuser unit,<wbr/> the value is
   11226 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>
   11227             </td>
   11228 
   11229             <td class="entry_tags">
   11230             </td>
   11231 
   11232           </tr>
   11233           <tr class="entries_header">
   11234             <th class="th_details" colspan="5">Details</th>
   11235           </tr>
   11236           <tr class="entry_cont">
   11237             <td class="entry_details" colspan="5">
   11238               <p>If the lens is not fixed focus,<wbr/> the camera device will report this
   11239 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>
   11240             </td>
   11241           </tr>
   11242 
   11243 
   11244           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   11245            <!-- end of entry -->
   11246         
   11247                 
   11248           <tr class="entry" id="static_android.lens.info.minimumFocusDistance">
   11249             <td class="entry_name
   11250              " rowspan="5">
   11251               android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance
   11252             </td>
   11253             <td class="entry_type">
   11254                 <span class="entry_type_name">float</span>
   11255 
   11256               <span class="entry_type_visibility"> [public]</span>
   11257 
   11258 
   11259               <span class="entry_type_hwlevel">[limited] </span>
   11260 
   11261 
   11262 
   11263 
   11264             </td> <!-- entry_type -->
   11265 
   11266             <td class="entry_description">
   11267               <p>Shortest distance from frontmost surface
   11268 of the lens that can be brought into sharp focus.<wbr/></p>
   11269             </td>
   11270 
   11271             <td class="entry_units">
   11272               See android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details
   11273             </td>
   11274 
   11275             <td class="entry_range">
   11276               <p>&gt;= 0</p>
   11277             </td>
   11278 
   11279             <td class="entry_tags">
   11280               <ul class="entry_tags">
   11281                   <li><a href="#tag_V1">V1</a></li>
   11282               </ul>
   11283             </td>
   11284 
   11285           </tr>
   11286           <tr class="entries_header">
   11287             <th class="th_details" colspan="5">Details</th>
   11288           </tr>
   11289           <tr class="entry_cont">
   11290             <td class="entry_details" colspan="5">
   11291               <p>If the lens is fixed-focus,<wbr/> this will be
   11292 0.<wbr/></p>
   11293             </td>
   11294           </tr>
   11295 
   11296           <tr class="entries_header">
   11297             <th class="th_details" colspan="5">HAL Implementation Details</th>
   11298           </tr>
   11299           <tr class="entry_cont">
   11300             <td class="entry_details" colspan="5">
   11301               <p>Mandatory for FULL devices; LIMITED devices
   11302 must always set this value to 0 for fixed-focus; and may omit
   11303 the minimum focus distance otherwise.<wbr/></p>
   11304 <p>This field is also mandatory for all devices advertising
   11305 the MANUAL_<wbr/>SENSOR capability.<wbr/></p>
   11306             </td>
   11307           </tr>
   11308 
   11309           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   11310            <!-- end of entry -->
   11311         
   11312                 
   11313           <tr class="entry" id="static_android.lens.info.shadingMapSize">
   11314             <td class="entry_name
   11315              " rowspan="3">
   11316               android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size
   11317             </td>
   11318             <td class="entry_type">
   11319                 <span class="entry_type_name">int32</span>
   11320                 <span class="entry_type_container">x</span>
   11321 
   11322                 <span class="entry_type_array">
   11323                   2
   11324                 </span>
   11325               <span class="entry_type_visibility"> [hidden as size]</span>
   11326 
   11327 
   11328               <span class="entry_type_hwlevel">[full] </span>
   11329 
   11330 
   11331                 <div class="entry_type_notes">width and height (N,<wbr/> M) of lens shading map provided by the camera device.<wbr/></div>
   11332 
   11333 
   11334             </td> <!-- entry_type -->
   11335 
   11336             <td class="entry_description">
   11337               <p>Dimensions of lens shading map.<wbr/></p>
   11338             </td>
   11339 
   11340             <td class="entry_units">
   11341             </td>
   11342 
   11343             <td class="entry_range">
   11344               <p>Both values &gt;= 1</p>
   11345             </td>
   11346 
   11347             <td class="entry_tags">
   11348               <ul class="entry_tags">
   11349                   <li><a href="#tag_V1">V1</a></li>
   11350               </ul>
   11351             </td>
   11352 
   11353           </tr>
   11354           <tr class="entries_header">
   11355             <th class="th_details" colspan="5">Details</th>
   11356           </tr>
   11357           <tr class="entry_cont">
   11358             <td class="entry_details" colspan="5">
   11359               <p>The map should be on the order of 30-40 rows and columns,<wbr/> and
   11360 must be smaller than 64x64.<wbr/></p>
   11361             </td>
   11362           </tr>
   11363 
   11364 
   11365           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   11366            <!-- end of entry -->
   11367         
   11368                 
   11369           <tr class="entry" id="static_android.lens.info.focusDistanceCalibration">
   11370             <td class="entry_name
   11371              " rowspan="5">
   11372               android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration
   11373             </td>
   11374             <td class="entry_type">
   11375                 <span class="entry_type_name entry_type_name_enum">byte</span>
   11376 
   11377               <span class="entry_type_visibility"> [public]</span>
   11378 
   11379 
   11380               <span class="entry_type_hwlevel">[limited] </span>
   11381 
   11382 
   11383 
   11384                 <ul class="entry_type_enum">
   11385                   <li>
   11386                     <span class="entry_type_enum_name">UNCALIBRATED</span>
   11387                     <span class="entry_type_enum_notes"><p>The lens focus distance is not accurate,<wbr/> and the units used for
   11388 <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> do not correspond to any physical units.<wbr/></p>
   11389 <p>Setting the lens to the same focus distance on separate occasions may
   11390 result in a different real focus distance,<wbr/> depending on factors such
   11391 as the orientation of the device,<wbr/> the age of the focusing mechanism,<wbr/>
   11392 and the device temperature.<wbr/> The focus distance value will still be
   11393 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
   11394 represents the farthest focus.<wbr/></p></span>
   11395                   </li>
   11396                   <li>
   11397                     <span class="entry_type_enum_name">APPROXIMATE</span>
   11398                     <span class="entry_type_enum_notes"><p>The lens focus distance is measured in diopters.<wbr/></p>
   11399 <p>However,<wbr/> setting the lens to the same focus distance
   11400 on separate occasions may result in a different real
   11401 focus distance,<wbr/> depending on factors such as the
   11402 orientation of the device,<wbr/> the age of the focusing
   11403 mechanism,<wbr/> and the device temperature.<wbr/></p></span>
   11404                   </li>
   11405                   <li>
   11406                     <span class="entry_type_enum_name">CALIBRATED</span>
   11407                     <span class="entry_type_enum_notes"><p>The lens focus distance is measured in diopters,<wbr/> and
   11408 is calibrated.<wbr/></p>
   11409 <p>The lens mechanism is calibrated so that setting the
   11410 same focus distance is repeatable on multiple
   11411 occasions with good accuracy,<wbr/> and the focus distance
   11412 corresponds to the real physical distance to the plane
   11413 of best focus.<wbr/></p></span>
   11414                   </li>
   11415                 </ul>
   11416 
   11417             </td> <!-- entry_type -->
   11418 
   11419             <td class="entry_description">
   11420               <p>The lens focus distance calibration quality.<wbr/></p>
   11421             </td>
   11422 
   11423             <td class="entry_units">
   11424             </td>
   11425 
   11426             <td class="entry_range">
   11427             </td>
   11428 
   11429             <td class="entry_tags">
   11430               <ul class="entry_tags">
   11431                   <li><a href="#tag_V1">V1</a></li>
   11432               </ul>
   11433             </td>
   11434 
   11435           </tr>
   11436           <tr class="entries_header">
   11437             <th class="th_details" colspan="5">Details</th>
   11438           </tr>
   11439           <tr class="entry_cont">
   11440             <td class="entry_details" colspan="5">
   11441               <p>The lens focus distance calibration quality determines the reliability of
   11442 focus related metadata entries,<wbr/> i.<wbr/>e.<wbr/> <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a>,<wbr/>
   11443 <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
   11444 <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a>.<wbr/></p>
   11445 <p>APPROXIMATE and CALIBRATED devices report the focus metadata in
   11446 units of diopters (1/<wbr/>meter),<wbr/> so <code>0.<wbr/>0f</code> represents focusing at infinity,<wbr/>
   11447 and increasing positive numbers represent focusing closer and closer
   11448 to the camera device.<wbr/> The focus distance control also uses diopters
   11449 on these devices.<wbr/></p>
   11450 <p>UNCALIBRATED devices do not use units that are directly comparable
   11451 to any real physical measurement,<wbr/> but <code>0.<wbr/>0f</code> still represents farthest
   11452 focus,<wbr/> and <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> represents the
   11453 nearest focus the device can achieve.<wbr/></p>
   11454             </td>
   11455           </tr>
   11456 
   11457           <tr class="entries_header">
   11458             <th class="th_details" colspan="5">HAL Implementation Details</th>
   11459           </tr>
   11460           <tr class="entry_cont">
   11461             <td class="entry_details" colspan="5">
   11462               <p>For devices advertise APPROXIMATE quality or higher,<wbr/> diopters 0 (infinity
   11463 focus) must work.<wbr/> When autofocus is disabled (<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> == OFF)
   11464 and the lens focus distance is set to 0 diopters
   11465 (<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> == 0),<wbr/> the lens will move to focus at infinity
   11466 and is stably focused at infinity even if the device tilts.<wbr/> It may take the
   11467 lens some time to move; during the move the lens state should be MOVING and
   11468 the output diopter value should be changing toward 0.<wbr/></p>
   11469             </td>
   11470           </tr>
   11471 
   11472           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   11473            <!-- end of entry -->
   11474         
   11475         
   11476         
   11477 
   11478                 
   11479           <tr class="entry" id="static_android.lens.facing">
   11480             <td class="entry_name
   11481              " rowspan="1">
   11482               android.<wbr/>lens.<wbr/>facing
   11483             </td>
   11484             <td class="entry_type">
   11485                 <span class="entry_type_name entry_type_name_enum">byte</span>
   11486 
   11487               <span class="entry_type_visibility"> [public]</span>
   11488 
   11489 
   11490               <span class="entry_type_hwlevel">[legacy] </span>
   11491 
   11492 
   11493 
   11494                 <ul class="entry_type_enum">
   11495                   <li>
   11496                     <span class="entry_type_enum_name">FRONT</span>
   11497                     <span class="entry_type_enum_notes"><p>The camera device faces the same direction as the device's screen.<wbr/></p></span>
   11498                   </li>
   11499                   <li>
   11500                     <span class="entry_type_enum_name">BACK</span>
   11501                     <span class="entry_type_enum_notes"><p>The camera device faces the opposite direction as the device's screen.<wbr/></p></span>
   11502                   </li>
   11503                 </ul>
   11504 
   11505             </td> <!-- entry_type -->
   11506 
   11507             <td class="entry_description">
   11508               <p>Direction the camera faces relative to
   11509 device screen.<wbr/></p>
   11510             </td>
   11511 
   11512             <td class="entry_units">
   11513             </td>
   11514 
   11515             <td class="entry_range">
   11516             </td>
   11517 
   11518             <td class="entry_tags">
   11519             </td>
   11520 
   11521           </tr>
   11522 
   11523 
   11524           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   11525            <!-- end of entry -->
   11526         
   11527                 
   11528           <tr class="entry" id="static_android.lens.opticalAxisAngle">
   11529             <td class="entry_name
   11530              " rowspan="3">
   11531               android.<wbr/>lens.<wbr/>optical<wbr/>Axis<wbr/>Angle
   11532             </td>
   11533             <td class="entry_type">
   11534                 <span class="entry_type_name">float</span>
   11535                 <span class="entry_type_container">x</span>
   11536 
   11537                 <span class="entry_type_array">
   11538                   2
   11539                 </span>
   11540               <span class="entry_type_visibility"> [system]</span>
   11541 
   11542 
   11543 
   11544 
   11545                 <div class="entry_type_notes">degrees.<wbr/> First defines the angle of separation between the perpendicular to the screen and the camera optical axis.<wbr/> The second then defines the clockwise rotation of the optical axis from native device up.<wbr/></div>
   11546 
   11547 
   11548             </td> <!-- entry_type -->
   11549 
   11550             <td class="entry_description">
   11551               <p>Relative angle of camera optical axis to the
   11552 perpendicular axis from the display</p>
   11553             </td>
   11554 
   11555             <td class="entry_units">
   11556             </td>
   11557 
   11558             <td class="entry_range">
   11559               <p>[0-90) for first angle,<wbr/> [0-360) for second</p>
   11560             </td>
   11561 
   11562             <td class="entry_tags">
   11563               <ul class="entry_tags">
   11564                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   11565               </ul>
   11566             </td>
   11567 
   11568           </tr>
   11569           <tr class="entries_header">
   11570             <th class="th_details" colspan="5">Details</th>
   11571           </tr>
   11572           <tr class="entry_cont">
   11573             <td class="entry_details" colspan="5">
   11574               <p>Examples:</p>
   11575 <p>(0,<wbr/>0) means that the camera optical axis
   11576 is perpendicular to the display surface;</p>
   11577 <p>(45,<wbr/>0) means that the camera points 45 degrees up when
   11578 device is held upright;</p>
   11579 <p>(45,<wbr/>90) means the camera points 45 degrees to the right when
   11580 the device is held upright.<wbr/></p>
   11581 <p>Use FACING field to determine perpendicular outgoing
   11582 direction</p>
   11583             </td>
   11584           </tr>
   11585 
   11586 
   11587           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   11588            <!-- end of entry -->
   11589         
   11590                 
   11591           <tr class="entry" id="static_android.lens.position">
   11592             <td class="entry_name
   11593              " rowspan="1">
   11594               android.<wbr/>lens.<wbr/>position
   11595             </td>
   11596             <td class="entry_type">
   11597                 <span class="entry_type_name">float</span>
   11598                 <span class="entry_type_container">x</span>
   11599 
   11600                 <span class="entry_type_array">
   11601                   3, location in mm, in the sensor coordinate
   11602             system
   11603                 </span>
   11604               <span class="entry_type_visibility"> [system]</span>
   11605 
   11606 
   11607 
   11608 
   11609 
   11610 
   11611             </td> <!-- entry_type -->
   11612 
   11613             <td class="entry_description">
   11614               <p>Coordinates of camera optical axis on
   11615 device</p>
   11616             </td>
   11617 
   11618             <td class="entry_units">
   11619             </td>
   11620 
   11621             <td class="entry_range">
   11622             </td>
   11623 
   11624             <td class="entry_tags">
   11625               <ul class="entry_tags">
   11626                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   11627               </ul>
   11628             </td>
   11629 
   11630           </tr>
   11631 
   11632 
   11633           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   11634            <!-- end of entry -->
   11635         
   11636         
   11637 
   11638       <!-- end of kind -->
   11639       </tbody>
   11640       <tr><td colspan="6" class="kind">dynamic</td></tr>
   11641 
   11642       <thead class="entries_header">
   11643         <tr>
   11644           <th class="th_name">Property Name</th>
   11645           <th class="th_type">Type</th>
   11646           <th class="th_description">Description</th>
   11647           <th class="th_units">Units</th>
   11648           <th class="th_range">Range</th>
   11649           <th class="th_tags">Tags</th>
   11650         </tr>
   11651       </thead>
   11652 
   11653       <tbody>
   11654 
   11655         
   11656 
   11657         
   11658 
   11659         
   11660 
   11661         
   11662 
   11663                 
   11664           <tr class="entry" id="dynamic_android.lens.aperture">
   11665             <td class="entry_name
   11666              " rowspan="3">
   11667               android.<wbr/>lens.<wbr/>aperture
   11668             </td>
   11669             <td class="entry_type">
   11670                 <span class="entry_type_name">float</span>
   11671 
   11672               <span class="entry_type_visibility"> [public]</span>
   11673 
   11674 
   11675               <span class="entry_type_hwlevel">[full] </span>
   11676 
   11677 
   11678 
   11679 
   11680             </td> <!-- entry_type -->
   11681 
   11682             <td class="entry_description">
   11683               <p>The desired lens aperture size,<wbr/> as a ratio of lens focal length to the
   11684 effective aperture diameter.<wbr/></p>
   11685             </td>
   11686 
   11687             <td class="entry_units">
   11688               The f-number (f/<wbr/>N)
   11689             </td>
   11690 
   11691             <td class="entry_range">
   11692               <p><a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a></p>
   11693             </td>
   11694 
   11695             <td class="entry_tags">
   11696               <ul class="entry_tags">
   11697                   <li><a href="#tag_V1">V1</a></li>
   11698               </ul>
   11699             </td>
   11700 
   11701           </tr>
   11702           <tr class="entries_header">
   11703             <th class="th_details" colspan="5">Details</th>
   11704           </tr>
   11705           <tr class="entry_cont">
   11706             <td class="entry_details" colspan="5">
   11707               <p>Setting this value is only supported on the camera devices that have a variable
   11708 aperture lens.<wbr/></p>
   11709 <p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
   11710 this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
   11711 <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>
   11712 to achieve manual exposure control.<wbr/></p>
   11713 <p>The requested aperture value may take several frames to reach the
   11714 requested value; the camera device will report the current (intermediate)
   11715 aperture size in capture result metadata while the aperture is changing.<wbr/>
   11716 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>
   11717 <p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
   11718 the ON modes,<wbr/> this will be overridden by the camera device
   11719 auto-exposure algorithm,<wbr/> the overridden values are then provided
   11720 back to the user in the corresponding result.<wbr/></p>
   11721             </td>
   11722           </tr>
   11723 
   11724 
   11725           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   11726            <!-- end of entry -->
   11727         
   11728                 
   11729           <tr class="entry" id="dynamic_android.lens.filterDensity">
   11730             <td class="entry_name
   11731              " rowspan="3">
   11732               android.<wbr/>lens.<wbr/>filter<wbr/>Density
   11733             </td>
   11734             <td class="entry_type">
   11735                 <span class="entry_type_name">float</span>
   11736 
   11737               <span class="entry_type_visibility"> [public]</span>
   11738 
   11739 
   11740               <span class="entry_type_hwlevel">[full] </span>
   11741 
   11742 
   11743 
   11744 
   11745             </td> <!-- entry_type -->
   11746 
   11747             <td class="entry_description">
   11748               <p>The desired setting for the lens neutral density filter(s).<wbr/></p>
   11749             </td>
   11750 
   11751             <td class="entry_units">
   11752               Exposure Value (EV)
   11753             </td>
   11754 
   11755             <td class="entry_range">
   11756               <p><a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a></p>
   11757             </td>
   11758 
   11759             <td class="entry_tags">
   11760               <ul class="entry_tags">
   11761                   <li><a href="#tag_V1">V1</a></li>
   11762               </ul>
   11763             </td>
   11764 
   11765           </tr>
   11766           <tr class="entries_header">
   11767             <th class="th_details" colspan="5">Details</th>
   11768           </tr>
   11769           <tr class="entry_cont">
   11770             <td class="entry_details" colspan="5">
   11771               <p>This control will not be supported on most camera devices.<wbr/></p>
   11772 <p>Lens filters are typically used to lower the amount of light the
   11773 sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
   11774 step is the standard logarithmic representation,<wbr/> which are
   11775 non-negative,<wbr/> and inversely proportional to the amount of light
   11776 hitting the sensor.<wbr/>  For example,<wbr/> setting this to 0 would result
   11777 in no reduction of the incoming light,<wbr/> and setting this to 2 would
   11778 mean that the filter is set to reduce incoming light by two stops
   11779 (allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
   11780 <p>It may take several frames before the lens filter density changes
   11781 to the requested value.<wbr/> While the filter density is still changing,<wbr/>
   11782 <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
   11783             </td>
   11784           </tr>
   11785 
   11786 
   11787           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   11788            <!-- end of entry -->
   11789         
   11790                 
   11791           <tr class="entry" id="dynamic_android.lens.focalLength">
   11792             <td class="entry_name
   11793              " rowspan="3">
   11794               android.<wbr/>lens.<wbr/>focal<wbr/>Length
   11795             </td>
   11796             <td class="entry_type">
   11797                 <span class="entry_type_name">float</span>
   11798 
   11799               <span class="entry_type_visibility"> [public]</span>
   11800 
   11801 
   11802               <span class="entry_type_hwlevel">[legacy] </span>
   11803 
   11804 
   11805 
   11806 
   11807             </td> <!-- entry_type -->
   11808 
   11809             <td class="entry_description">
   11810               <p>The desired lens focal length; used for optical zoom.<wbr/></p>
   11811             </td>
   11812 
   11813             <td class="entry_units">
   11814               Millimeters
   11815             </td>
   11816 
   11817             <td class="entry_range">
   11818               <p><a href="#static_android.lens.info.availableFocalLengths">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths</a></p>
   11819             </td>
   11820 
   11821             <td class="entry_tags">
   11822               <ul class="entry_tags">
   11823                   <li><a href="#tag_BC">BC</a></li>
   11824               </ul>
   11825             </td>
   11826 
   11827           </tr>
   11828           <tr class="entries_header">
   11829             <th class="th_details" colspan="5">Details</th>
   11830           </tr>
   11831           <tr class="entry_cont">
   11832             <td class="entry_details" colspan="5">
   11833               <p>This setting controls the physical focal length of the camera
   11834 device's lens.<wbr/> Changing the focal length changes the field of
   11835 view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
   11836 <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
   11837 setting won't be applied instantaneously,<wbr/> and it may take several
   11838 frames before the lens can change to the requested focal length.<wbr/>
   11839 While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
   11840 be set to MOVING.<wbr/></p>
   11841 <p>Optical zoom will not be supported on most devices.<wbr/></p>
   11842             </td>
   11843           </tr>
   11844 
   11845 
   11846           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   11847            <!-- end of entry -->
   11848         
   11849                 
   11850           <tr class="entry" id="dynamic_android.lens.focusDistance">
   11851             <td class="entry_name
   11852              " rowspan="3">
   11853               android.<wbr/>lens.<wbr/>focus<wbr/>Distance
   11854             </td>
   11855             <td class="entry_type">
   11856                 <span class="entry_type_name">float</span>
   11857 
   11858               <span class="entry_type_visibility"> [public]</span>
   11859 
   11860 
   11861               <span class="entry_type_hwlevel">[full] </span>
   11862 
   11863 
   11864 
   11865 
   11866             </td> <!-- entry_type -->
   11867 
   11868             <td class="entry_description">
   11869               <p>Desired distance to plane of sharpest focus,<wbr/>
   11870 measured from frontmost surface of the lens.<wbr/></p>
   11871             </td>
   11872 
   11873             <td class="entry_units">
   11874               See android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details
   11875             </td>
   11876 
   11877             <td class="entry_range">
   11878               <p>&gt;= 0</p>
   11879             </td>
   11880 
   11881             <td class="entry_tags">
   11882               <ul class="entry_tags">
   11883                   <li><a href="#tag_BC">BC</a></li>
   11884               </ul>
   11885             </td>
   11886 
   11887           </tr>
   11888           <tr class="entries_header">
   11889             <th class="th_details" colspan="5">Details</th>
   11890           </tr>
   11891           <tr class="entry_cont">
   11892             <td class="entry_details" colspan="5">
   11893               <p>Should be zero for fixed-focus cameras</p>
   11894             </td>
   11895           </tr>
   11896 
   11897 
   11898           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   11899            <!-- end of entry -->
   11900         
   11901                 
   11902           <tr class="entry" id="dynamic_android.lens.focusRange">
   11903             <td class="entry_name
   11904              " rowspan="3">
   11905               android.<wbr/>lens.<wbr/>focus<wbr/>Range
   11906             </td>
   11907             <td class="entry_type">
   11908                 <span class="entry_type_name">float</span>
   11909                 <span class="entry_type_container">x</span>
   11910 
   11911                 <span class="entry_type_array">
   11912                   2
   11913                 </span>
   11914               <span class="entry_type_visibility"> [public as pairFloatFloat]</span>
   11915 
   11916 
   11917               <span class="entry_type_hwlevel">[limited] </span>
   11918 
   11919 
   11920                 <div class="entry_type_notes">Range of scene distances that are in focus</div>
   11921 
   11922 
   11923             </td> <!-- entry_type -->
   11924 
   11925             <td class="entry_description">
   11926               <p>The range of scene distances that are in
   11927 sharp focus (depth of field).<wbr/></p>
   11928             </td>
   11929 
   11930             <td class="entry_units">
   11931               A pair of focus distances in diopters: (near,<wbr/>
   11932           far); see android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details.<wbr/>
   11933             </td>
   11934 
   11935             <td class="entry_range">
   11936               <p>&gt;=0</p>
   11937             </td>
   11938 
   11939             <td class="entry_tags">
   11940               <ul class="entry_tags">
   11941                   <li><a href="#tag_BC">BC</a></li>
   11942               </ul>
   11943             </td>
   11944 
   11945           </tr>
   11946           <tr class="entries_header">
   11947             <th class="th_details" colspan="5">Details</th>
   11948           </tr>
   11949           <tr class="entry_cont">
   11950             <td class="entry_details" colspan="5">
   11951               <p>If variable focus not supported,<wbr/> can still report
   11952 fixed depth of field range</p>
   11953             </td>
   11954           </tr>
   11955 
   11956 
   11957           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   11958            <!-- end of entry -->
   11959         
   11960                 
   11961           <tr class="entry" id="dynamic_android.lens.opticalStabilizationMode">
   11962             <td class="entry_name
   11963              " rowspan="3">
   11964               android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
   11965             </td>
   11966             <td class="entry_type">
   11967                 <span class="entry_type_name entry_type_name_enum">byte</span>
   11968 
   11969               <span class="entry_type_visibility"> [public]</span>
   11970 
   11971 
   11972               <span class="entry_type_hwlevel">[limited] </span>
   11973 
   11974 
   11975 
   11976                 <ul class="entry_type_enum">
   11977                   <li>
   11978                     <span class="entry_type_enum_name">OFF</span>
   11979                     <span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
   11980                   </li>
   11981                   <li>
   11982                     <span class="entry_type_enum_name">ON</span>
   11983                     <span class="entry_type_enum_optional">[optional]</span>
   11984                     <span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
   11985                   </li>
   11986                 </ul>
   11987 
   11988             </td> <!-- entry_type -->
   11989 
   11990             <td class="entry_description">
   11991               <p>Sets whether the camera device uses optical image stabilization (OIS)
   11992 when capturing images.<wbr/></p>
   11993             </td>
   11994 
   11995             <td class="entry_units">
   11996             </td>
   11997 
   11998             <td class="entry_range">
   11999               <p><a href="#static_android.lens.info.availableOpticalStabilization">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization</a></p>
   12000             </td>
   12001 
   12002             <td class="entry_tags">
   12003               <ul class="entry_tags">
   12004                   <li><a href="#tag_V1">V1</a></li>
   12005               </ul>
   12006             </td>
   12007 
   12008           </tr>
   12009           <tr class="entries_header">
   12010             <th class="th_details" colspan="5">Details</th>
   12011           </tr>
   12012           <tr class="entry_cont">
   12013             <td class="entry_details" colspan="5">
   12014               <p>OIS is used to compensate for motion blur due to small
   12015 movements of the camera during capture.<wbr/> Unlike digital image
   12016 stabilization (<a href="#controls_android.control.videoStabilizationMode">android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode</a>),<wbr/> OIS
   12017 makes use of mechanical elements to stabilize the camera
   12018 sensor,<wbr/> and thus allows for longer exposure times before
   12019 camera shake becomes apparent.<wbr/></p>
   12020 <p>Switching between different optical stabilization modes may take several
   12021 frames to initialize,<wbr/> the camera device will report the current mode in
   12022 capture result metadata.<wbr/> For example,<wbr/> When "ON" mode is requested,<wbr/> the
   12023 optical stabilization modes in the first several capture results may still
   12024 be "OFF",<wbr/> and it will become "ON" when the initialization is done.<wbr/></p>
   12025 <p>If a camera device supports both OIS and digital image stabilization
   12026 (<a href="#controls_android.control.videoStabilizationMode">android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode</a>),<wbr/> turning both modes on may produce undesirable
   12027 interaction,<wbr/> so it is recommended not to enable both at the same time.<wbr/></p>
   12028 <p>Not all devices will support OIS; see
   12029 <a href="#static_android.lens.info.availableOpticalStabilization">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization</a> for
   12030 available controls.<wbr/></p>
   12031             </td>
   12032           </tr>
   12033 
   12034 
   12035           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   12036            <!-- end of entry -->
   12037         
   12038                 
   12039           <tr class="entry" id="dynamic_android.lens.state">
   12040             <td class="entry_name
   12041              " rowspan="3">
   12042               android.<wbr/>lens.<wbr/>state
   12043             </td>
   12044             <td class="entry_type">
   12045                 <span class="entry_type_name entry_type_name_enum">byte</span>
   12046 
   12047               <span class="entry_type_visibility"> [public]</span>
   12048 
   12049 
   12050               <span class="entry_type_hwlevel">[limited] </span>
   12051 
   12052 
   12053 
   12054                 <ul class="entry_type_enum">
   12055                   <li>
   12056                     <span class="entry_type_enum_name">STATIONARY</span>
   12057                     <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/>
   12058 <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>
   12059                   </li>
   12060                   <li>
   12061                     <span class="entry_type_enum_name">MOVING</span>
   12062                     <span class="entry_type_enum_notes"><p>One or several of the lens parameters
   12063 (<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/>
   12064 <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
   12065 currently changing.<wbr/></p></span>
   12066                   </li>
   12067                 </ul>
   12068 
   12069             </td> <!-- entry_type -->
   12070 
   12071             <td class="entry_description">
   12072               <p>Current lens status.<wbr/></p>
   12073             </td>
   12074 
   12075             <td class="entry_units">
   12076             </td>
   12077 
   12078             <td class="entry_range">
   12079             </td>
   12080 
   12081             <td class="entry_tags">
   12082               <ul class="entry_tags">
   12083                   <li><a href="#tag_V1">V1</a></li>
   12084               </ul>
   12085             </td>
   12086 
   12087           </tr>
   12088           <tr class="entries_header">
   12089             <th class="th_details" colspan="5">Details</th>
   12090           </tr>
   12091           <tr class="entry_cont">
   12092             <td class="entry_details" colspan="5">
   12093               <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/>
   12094 <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/>
   12095 they may take several frames to reach the requested values.<wbr/> This state indicates
   12096 the current status of the lens parameters.<wbr/></p>
   12097 <p>When the state is STATIONARY,<wbr/> the lens parameters are not changing.<wbr/> This could be
   12098 either because the parameters are all fixed,<wbr/> or because the lens has had enough
   12099 time to reach the most recently-requested values.<wbr/>
   12100 If all these lens parameters are not changable for a camera device,<wbr/> as listed below:</p>
   12101 <ul>
   12102 <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
   12103 <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> parameter will always be 0.<wbr/></li>
   12104 <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/>
   12105 which means the optical zoom is not supported.<wbr/></li>
   12106 <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>
   12107 <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>
   12108 </ul>
   12109 <p>Then this state will always be STATIONARY.<wbr/></p>
   12110 <p>When the state is MOVING,<wbr/> it indicates that at least one of the lens parameters
   12111 is changing.<wbr/></p>
   12112             </td>
   12113           </tr>
   12114 
   12115 
   12116           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   12117            <!-- end of entry -->
   12118         
   12119         
   12120 
   12121       <!-- end of kind -->
   12122       </tbody>
   12123 
   12124   <!-- end of section -->
   12125   <tr><td colspan="6" id="section_noiseReduction" class="section">noiseReduction</td></tr>
   12126 
   12127 
   12128       <tr><td colspan="6" class="kind">controls</td></tr>
   12129 
   12130       <thead class="entries_header">
   12131         <tr>
   12132           <th class="th_name">Property Name</th>
   12133           <th class="th_type">Type</th>
   12134           <th class="th_description">Description</th>
   12135           <th class="th_units">Units</th>
   12136           <th class="th_range">Range</th>
   12137           <th class="th_tags">Tags</th>
   12138         </tr>
   12139       </thead>
   12140 
   12141       <tbody>
   12142 
   12143         
   12144 
   12145         
   12146 
   12147         
   12148 
   12149         
   12150 
   12151                 
   12152           <tr class="entry" id="controls_android.noiseReduction.mode">
   12153             <td class="entry_name
   12154              " rowspan="3">
   12155               android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
   12156             </td>
   12157             <td class="entry_type">
   12158                 <span class="entry_type_name entry_type_name_enum">byte</span>
   12159 
   12160               <span class="entry_type_visibility"> [public]</span>
   12161 
   12162 
   12163               <span class="entry_type_hwlevel">[full] </span>
   12164 
   12165 
   12166 
   12167                 <ul class="entry_type_enum">
   12168                   <li>
   12169                     <span class="entry_type_enum_name">OFF</span>
   12170                     <span class="entry_type_enum_notes"><p>No noise reduction is applied.<wbr/></p></span>
   12171                   </li>
   12172                   <li>
   12173                     <span class="entry_type_enum_name">FAST</span>
   12174                     <span class="entry_type_enum_notes"><p>Noise reduction is applied without reducing frame rate relative to sensor
   12175 output.<wbr/></p></span>
   12176                   </li>
   12177                   <li>
   12178                     <span class="entry_type_enum_name">HIGH_QUALITY</span>
   12179                     <span class="entry_type_enum_notes"><p>High-quality noise reduction is applied,<wbr/> at the cost of reducing frame rate
   12180 relative to sensor output.<wbr/></p></span>
   12181                   </li>
   12182                 </ul>
   12183 
   12184             </td> <!-- entry_type -->
   12185 
   12186             <td class="entry_description">
   12187               <p>Mode of operation for the noise reduction algorithm.<wbr/></p>
   12188             </td>
   12189 
   12190             <td class="entry_units">
   12191             </td>
   12192 
   12193             <td class="entry_range">
   12194               <p><a href="#static_android.noiseReduction.availableNoiseReductionModes">android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Noise<wbr/>Reduction<wbr/>Modes</a></p>
   12195             </td>
   12196 
   12197             <td class="entry_tags">
   12198               <ul class="entry_tags">
   12199                   <li><a href="#tag_V1">V1</a></li>
   12200               </ul>
   12201             </td>
   12202 
   12203           </tr>
   12204           <tr class="entries_header">
   12205             <th class="th_details" colspan="5">Details</th>
   12206           </tr>
   12207           <tr class="entry_cont">
   12208             <td class="entry_details" colspan="5">
   12209               <p>The noise reduction algorithm attempts to improve image quality by removing
   12210 excessive noise added by the capture process,<wbr/> especially in dark conditions.<wbr/>
   12211 OFF means no noise reduction will be applied by the camera device.<wbr/></p>
   12212 <p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
   12213 will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
   12214 will use the highest-quality noise filtering algorithms,<wbr/>
   12215 even if it slows down capture rate.<wbr/> FAST means the camera device will not
   12216 slow down capture rate when applying noise filtering.<wbr/></p>
   12217             </td>
   12218           </tr>
   12219 
   12220 
   12221           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   12222            <!-- end of entry -->
   12223         
   12224                 
   12225           <tr class="entry" id="controls_android.noiseReduction.strength">
   12226             <td class="entry_name
   12227              " rowspan="1">
   12228               android.<wbr/>noise<wbr/>Reduction.<wbr/>strength
   12229             </td>
   12230             <td class="entry_type">
   12231                 <span class="entry_type_name">byte</span>
   12232 
   12233               <span class="entry_type_visibility"> [system]</span>
   12234 
   12235 
   12236 
   12237 
   12238 
   12239 
   12240             </td> <!-- entry_type -->
   12241 
   12242             <td class="entry_description">
   12243               <p>Control the amount of noise reduction
   12244 applied to the images</p>
   12245             </td>
   12246 
   12247             <td class="entry_units">
   12248               1-10; 10 is max noise reduction
   12249             </td>
   12250 
   12251             <td class="entry_range">
   12252               <p>1 - 10</p>
   12253             </td>
   12254 
   12255             <td class="entry_tags">
   12256               <ul class="entry_tags">
   12257                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   12258               </ul>
   12259             </td>
   12260 
   12261           </tr>
   12262 
   12263 
   12264           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   12265            <!-- end of entry -->
   12266         
   12267         
   12268 
   12269       <!-- end of kind -->
   12270       </tbody>
   12271       <tr><td colspan="6" class="kind">static</td></tr>
   12272 
   12273       <thead class="entries_header">
   12274         <tr>
   12275           <th class="th_name">Property Name</th>
   12276           <th class="th_type">Type</th>
   12277           <th class="th_description">Description</th>
   12278           <th class="th_units">Units</th>
   12279           <th class="th_range">Range</th>
   12280           <th class="th_tags">Tags</th>
   12281         </tr>
   12282       </thead>
   12283 
   12284       <tbody>
   12285 
   12286         
   12287 
   12288         
   12289 
   12290         
   12291 
   12292         
   12293 
   12294                 
   12295           <tr class="entry" id="static_android.noiseReduction.availableNoiseReductionModes">
   12296             <td class="entry_name
   12297              " rowspan="3">
   12298               android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Noise<wbr/>Reduction<wbr/>Modes
   12299             </td>
   12300             <td class="entry_type">
   12301                 <span class="entry_type_name">byte</span>
   12302                 <span class="entry_type_container">x</span>
   12303 
   12304                 <span class="entry_type_array">
   12305                   n
   12306                 </span>
   12307               <span class="entry_type_visibility"> [public as enumList]</span>
   12308 
   12309 
   12310               <span class="entry_type_hwlevel">[limited] </span>
   12311 
   12312 
   12313                 <div class="entry_type_notes">list of enums</div>
   12314 
   12315 
   12316             </td> <!-- entry_type -->
   12317 
   12318             <td class="entry_description">
   12319               <p>List of noise reduction modes for <a href="#controls_android.noiseReduction.mode">android.<wbr/>noise<wbr/>Reduction.<wbr/>mode</a> that are supported
   12320 by this camera device.<wbr/></p>
   12321             </td>
   12322 
   12323             <td class="entry_units">
   12324             </td>
   12325 
   12326             <td class="entry_range">
   12327               <p>Any value listed in <a href="#controls_android.noiseReduction.mode">android.<wbr/>noise<wbr/>Reduction.<wbr/>mode</a></p>
   12328             </td>
   12329 
   12330             <td class="entry_tags">
   12331               <ul class="entry_tags">
   12332                   <li><a href="#tag_V1">V1</a></li>
   12333               </ul>
   12334             </td>
   12335 
   12336           </tr>
   12337           <tr class="entries_header">
   12338             <th class="th_details" colspan="5">Details</th>
   12339           </tr>
   12340           <tr class="entry_cont">
   12341             <td class="entry_details" colspan="5">
   12342               <p>Full-capability camera devices will always support OFF and FAST.<wbr/></p>
   12343 <p>Legacy-capability camera devices will only support FAST mode.<wbr/></p>
   12344             </td>
   12345           </tr>
   12346 
   12347 
   12348           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   12349            <!-- end of entry -->
   12350         
   12351         
   12352 
   12353       <!-- end of kind -->
   12354       </tbody>
   12355       <tr><td colspan="6" class="kind">dynamic</td></tr>
   12356 
   12357       <thead class="entries_header">
   12358         <tr>
   12359           <th class="th_name">Property Name</th>
   12360           <th class="th_type">Type</th>
   12361           <th class="th_description">Description</th>
   12362           <th class="th_units">Units</th>
   12363           <th class="th_range">Range</th>
   12364           <th class="th_tags">Tags</th>
   12365         </tr>
   12366       </thead>
   12367 
   12368       <tbody>
   12369 
   12370         
   12371 
   12372         
   12373 
   12374         
   12375 
   12376         
   12377 
   12378                 
   12379           <tr class="entry" id="dynamic_android.noiseReduction.mode">
   12380             <td class="entry_name
   12381              " rowspan="3">
   12382               android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
   12383             </td>
   12384             <td class="entry_type">
   12385                 <span class="entry_type_name entry_type_name_enum">byte</span>
   12386 
   12387               <span class="entry_type_visibility"> [public]</span>
   12388 
   12389 
   12390               <span class="entry_type_hwlevel">[full] </span>
   12391 
   12392 
   12393 
   12394                 <ul class="entry_type_enum">
   12395                   <li>
   12396                     <span class="entry_type_enum_name">OFF</span>
   12397                     <span class="entry_type_enum_notes"><p>No noise reduction is applied.<wbr/></p></span>
   12398                   </li>
   12399                   <li>
   12400                     <span class="entry_type_enum_name">FAST</span>
   12401                     <span class="entry_type_enum_notes"><p>Noise reduction is applied without reducing frame rate relative to sensor
   12402 output.<wbr/></p></span>
   12403                   </li>
   12404                   <li>
   12405                     <span class="entry_type_enum_name">HIGH_QUALITY</span>
   12406                     <span class="entry_type_enum_notes"><p>High-quality noise reduction is applied,<wbr/> at the cost of reducing frame rate
   12407 relative to sensor output.<wbr/></p></span>
   12408                   </li>
   12409                 </ul>
   12410 
   12411             </td> <!-- entry_type -->
   12412 
   12413             <td class="entry_description">
   12414               <p>Mode of operation for the noise reduction algorithm.<wbr/></p>
   12415             </td>
   12416 
   12417             <td class="entry_units">
   12418             </td>
   12419 
   12420             <td class="entry_range">
   12421               <p><a href="#static_android.noiseReduction.availableNoiseReductionModes">android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Noise<wbr/>Reduction<wbr/>Modes</a></p>
   12422             </td>
   12423 
   12424             <td class="entry_tags">
   12425               <ul class="entry_tags">
   12426                   <li><a href="#tag_V1">V1</a></li>
   12427               </ul>
   12428             </td>
   12429 
   12430           </tr>
   12431           <tr class="entries_header">
   12432             <th class="th_details" colspan="5">Details</th>
   12433           </tr>
   12434           <tr class="entry_cont">
   12435             <td class="entry_details" colspan="5">
   12436               <p>The noise reduction algorithm attempts to improve image quality by removing
   12437 excessive noise added by the capture process,<wbr/> especially in dark conditions.<wbr/>
   12438 OFF means no noise reduction will be applied by the camera device.<wbr/></p>
   12439 <p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
   12440 will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
   12441 will use the highest-quality noise filtering algorithms,<wbr/>
   12442 even if it slows down capture rate.<wbr/> FAST means the camera device will not
   12443 slow down capture rate when applying noise filtering.<wbr/></p>
   12444             </td>
   12445           </tr>
   12446 
   12447 
   12448           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   12449            <!-- end of entry -->
   12450         
   12451         
   12452 
   12453       <!-- end of kind -->
   12454       </tbody>
   12455 
   12456   <!-- end of section -->
   12457   <tr><td colspan="6" id="section_quirks" class="section">quirks</td></tr>
   12458 
   12459 
   12460       <tr><td colspan="6" class="kind">static</td></tr>
   12461 
   12462       <thead class="entries_header">
   12463         <tr>
   12464           <th class="th_name">Property Name</th>
   12465           <th class="th_type">Type</th>
   12466           <th class="th_description">Description</th>
   12467           <th class="th_units">Units</th>
   12468           <th class="th_range">Range</th>
   12469           <th class="th_tags">Tags</th>
   12470         </tr>
   12471       </thead>
   12472 
   12473       <tbody>
   12474 
   12475         
   12476 
   12477         
   12478 
   12479         
   12480 
   12481         
   12482 
   12483                 
   12484           <tr class="entry" id="static_android.quirks.meteringCropRegion">
   12485             <td class="entry_name
   12486                 entry_name_deprecated
   12487              " rowspan="3">
   12488               android.<wbr/>quirks.<wbr/>metering<wbr/>Crop<wbr/>Region
   12489             </td>
   12490             <td class="entry_type">
   12491                 <span class="entry_type_name">byte</span>
   12492 
   12493               <span class="entry_type_visibility"> [system]</span>
   12494 
   12495 
   12496 
   12497               <span class="entry_type_deprecated">[deprecated] </span>
   12498 
   12499 
   12500 
   12501             </td> <!-- entry_type -->
   12502 
   12503             <td class="entry_description">
   12504               <p>If set to 1,<wbr/> the camera service does not
   12505 scale 'normalized' coordinates with respect to the crop
   12506 region.<wbr/> This applies to metering input (a{e,<wbr/>f,<wbr/>wb}Region
   12507 and output (face rectangles).<wbr/></p>
   12508             </td>
   12509 
   12510             <td class="entry_units">
   12511             </td>
   12512 
   12513             <td class="entry_range">
   12514               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   12515             </td>
   12516 
   12517             <td class="entry_tags">
   12518             </td>
   12519 
   12520           </tr>
   12521           <tr class="entries_header">
   12522             <th class="th_details" colspan="5">Details</th>
   12523           </tr>
   12524           <tr class="entry_cont">
   12525             <td class="entry_details" colspan="5">
   12526               <p>Normalized coordinates refer to those in the
   12527 (-1000,<wbr/>1000) range mentioned in the
   12528 android.<wbr/>hardware.<wbr/>Camera API.<wbr/></p>
   12529 <p>HAL implementations should instead always use and emit
   12530 sensor array-relative coordinates for all region data.<wbr/> Does
   12531 not need to be listed in static metadata.<wbr/> Support will be
   12532 removed in future versions of camera service.<wbr/></p>
   12533             </td>
   12534           </tr>
   12535 
   12536 
   12537           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   12538            <!-- end of entry -->
   12539         
   12540                 
   12541           <tr class="entry" id="static_android.quirks.triggerAfWithAuto">
   12542             <td class="entry_name
   12543                 entry_name_deprecated
   12544              " rowspan="3">
   12545               android.<wbr/>quirks.<wbr/>trigger<wbr/>Af<wbr/>With<wbr/>Auto
   12546             </td>
   12547             <td class="entry_type">
   12548                 <span class="entry_type_name">byte</span>
   12549 
   12550               <span class="entry_type_visibility"> [system]</span>
   12551 
   12552 
   12553 
   12554               <span class="entry_type_deprecated">[deprecated] </span>
   12555 
   12556 
   12557 
   12558             </td> <!-- entry_type -->
   12559 
   12560             <td class="entry_description">
   12561               <p>If set to 1,<wbr/> then the camera service always
   12562 switches to FOCUS_<wbr/>MODE_<wbr/>AUTO before issuing a AF
   12563 trigger.<wbr/></p>
   12564             </td>
   12565 
   12566             <td class="entry_units">
   12567             </td>
   12568 
   12569             <td class="entry_range">
   12570               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   12571             </td>
   12572 
   12573             <td class="entry_tags">
   12574             </td>
   12575 
   12576           </tr>
   12577           <tr class="entries_header">
   12578             <th class="th_details" colspan="5">Details</th>
   12579           </tr>
   12580           <tr class="entry_cont">
   12581             <td class="entry_details" colspan="5">
   12582               <p>HAL implementations should implement AF trigger
   12583 modes for AUTO,<wbr/> MACRO,<wbr/> CONTINUOUS_<wbr/>FOCUS,<wbr/> and
   12584 CONTINUOUS_<wbr/>PICTURE modes instead of using this flag.<wbr/> Does
   12585 not need to be listed in static metadata.<wbr/> Support will be
   12586 removed in future versions of camera service</p>
   12587             </td>
   12588           </tr>
   12589 
   12590 
   12591           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   12592            <!-- end of entry -->
   12593         
   12594                 
   12595           <tr class="entry" id="static_android.quirks.useZslFormat">
   12596             <td class="entry_name
   12597                 entry_name_deprecated
   12598              " rowspan="3">
   12599               android.<wbr/>quirks.<wbr/>use<wbr/>Zsl<wbr/>Format
   12600             </td>
   12601             <td class="entry_type">
   12602                 <span class="entry_type_name">byte</span>
   12603 
   12604               <span class="entry_type_visibility"> [system]</span>
   12605 
   12606 
   12607 
   12608               <span class="entry_type_deprecated">[deprecated] </span>
   12609 
   12610 
   12611 
   12612             </td> <!-- entry_type -->
   12613 
   12614             <td class="entry_description">
   12615               <p>If set to 1,<wbr/> the camera service uses
   12616 CAMERA2_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>ZSL instead of
   12617 HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>IMPLEMENTATION_<wbr/>DEFINED for the zero
   12618 shutter lag stream</p>
   12619             </td>
   12620 
   12621             <td class="entry_units">
   12622             </td>
   12623 
   12624             <td class="entry_range">
   12625               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   12626             </td>
   12627 
   12628             <td class="entry_tags">
   12629             </td>
   12630 
   12631           </tr>
   12632           <tr class="entries_header">
   12633             <th class="th_details" colspan="5">Details</th>
   12634           </tr>
   12635           <tr class="entry_cont">
   12636             <td class="entry_details" colspan="5">
   12637               <p>HAL implementations should use gralloc usage flags
   12638 to determine that a stream will be used for
   12639 zero-shutter-lag,<wbr/> instead of relying on an explicit
   12640 format setting.<wbr/> Does not need to be listed in static
   12641 metadata.<wbr/> Support will be removed in future versions of
   12642 camera service.<wbr/></p>
   12643             </td>
   12644           </tr>
   12645 
   12646 
   12647           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   12648            <!-- end of entry -->
   12649         
   12650                 
   12651           <tr class="entry" id="static_android.quirks.usePartialResult">
   12652             <td class="entry_name
   12653                 entry_name_deprecated
   12654              " rowspan="5">
   12655               android.<wbr/>quirks.<wbr/>use<wbr/>Partial<wbr/>Result
   12656             </td>
   12657             <td class="entry_type">
   12658                 <span class="entry_type_name">byte</span>
   12659 
   12660               <span class="entry_type_visibility"> [hidden]</span>
   12661 
   12662 
   12663 
   12664               <span class="entry_type_deprecated">[deprecated] </span>
   12665 
   12666 
   12667 
   12668             </td> <!-- entry_type -->
   12669 
   12670             <td class="entry_description">
   12671               <p>If set to 1,<wbr/> the HAL will always split result
   12672 metadata for a single capture into multiple buffers,<wbr/>
   12673 returned using multiple process_<wbr/>capture_<wbr/>result calls.<wbr/></p>
   12674             </td>
   12675 
   12676             <td class="entry_units">
   12677             </td>
   12678 
   12679             <td class="entry_range">
   12680               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   12681             </td>
   12682 
   12683             <td class="entry_tags">
   12684             </td>
   12685 
   12686           </tr>
   12687           <tr class="entries_header">
   12688             <th class="th_details" colspan="5">Details</th>
   12689           </tr>
   12690           <tr class="entry_cont">
   12691             <td class="entry_details" colspan="5">
   12692               <p>Does not need to be listed in static
   12693 metadata.<wbr/> Support for partial results will be reworked in
   12694 future versions of camera service.<wbr/> This quirk will stop
   12695 working at that point; DO NOT USE without careful
   12696 consideration of future support.<wbr/></p>
   12697             </td>
   12698           </tr>
   12699 
   12700           <tr class="entries_header">
   12701             <th class="th_details" colspan="5">HAL Implementation Details</th>
   12702           </tr>
   12703           <tr class="entry_cont">
   12704             <td class="entry_details" colspan="5">
   12705               <p>Refer to <code>camera3_<wbr/>capture_<wbr/>result::partial_<wbr/>result</code>
   12706 for information on how to implement partial results.<wbr/></p>
   12707             </td>
   12708           </tr>
   12709 
   12710           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   12711            <!-- end of entry -->
   12712         
   12713         
   12714 
   12715       <!-- end of kind -->
   12716       </tbody>
   12717       <tr><td colspan="6" class="kind">dynamic</td></tr>
   12718 
   12719       <thead class="entries_header">
   12720         <tr>
   12721           <th class="th_name">Property Name</th>
   12722           <th class="th_type">Type</th>
   12723           <th class="th_description">Description</th>
   12724           <th class="th_units">Units</th>
   12725           <th class="th_range">Range</th>
   12726           <th class="th_tags">Tags</th>
   12727         </tr>
   12728       </thead>
   12729 
   12730       <tbody>
   12731 
   12732         
   12733 
   12734         
   12735 
   12736         
   12737 
   12738         
   12739 
   12740                 
   12741           <tr class="entry" id="dynamic_android.quirks.partialResult">
   12742             <td class="entry_name
   12743                 entry_name_deprecated
   12744              " rowspan="5">
   12745               android.<wbr/>quirks.<wbr/>partial<wbr/>Result
   12746             </td>
   12747             <td class="entry_type">
   12748                 <span class="entry_type_name entry_type_name_enum">byte</span>
   12749 
   12750               <span class="entry_type_visibility"> [hidden as boolean]</span>
   12751 
   12752 
   12753 
   12754               <span class="entry_type_deprecated">[deprecated] </span>
   12755 
   12756 
   12757                 <ul class="entry_type_enum">
   12758                   <li>
   12759                     <span class="entry_type_enum_name">FINAL</span>
   12760                     <span class="entry_type_enum_notes"><p>The last or only metadata result buffer
   12761 for this capture.<wbr/></p></span>
   12762                   </li>
   12763                   <li>
   12764                     <span class="entry_type_enum_name">PARTIAL</span>
   12765                     <span class="entry_type_enum_notes"><p>A partial buffer of result metadata for this
   12766 capture.<wbr/> More result buffers for this capture will be sent
   12767 by the camera device,<wbr/> the last of which will be marked
   12768 FINAL.<wbr/></p></span>
   12769                   </li>
   12770                 </ul>
   12771 
   12772             </td> <!-- entry_type -->
   12773 
   12774             <td class="entry_description">
   12775               <p>Whether a result given to the framework is the
   12776 final one for the capture,<wbr/> or only a partial that contains a
   12777 subset of the full set of dynamic metadata
   12778 values.<wbr/></p>
   12779             </td>
   12780 
   12781             <td class="entry_units">
   12782             </td>
   12783 
   12784             <td class="entry_range">
   12785               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   12786               <p>Optional.<wbr/> Default value is FINAL.<wbr/></p>
   12787             </td>
   12788 
   12789             <td class="entry_tags">
   12790             </td>
   12791 
   12792           </tr>
   12793           <tr class="entries_header">
   12794             <th class="th_details" colspan="5">Details</th>
   12795           </tr>
   12796           <tr class="entry_cont">
   12797             <td class="entry_details" colspan="5">
   12798               <p>The entries in the result metadata buffers for a
   12799 single capture may not overlap,<wbr/> except for this entry.<wbr/> The
   12800 FINAL buffers must retain FIFO ordering relative to the
   12801 requests that generate them,<wbr/> so the FINAL buffer for frame 3 must
   12802 always be sent to the framework after the FINAL buffer for frame 2,<wbr/> and
   12803 before the FINAL buffer for frame 4.<wbr/> PARTIAL buffers may be returned
   12804 in any order relative to other frames,<wbr/> but all PARTIAL buffers for a given
   12805 capture must arrive before the FINAL buffer for that capture.<wbr/> This entry may
   12806 only be used by the camera device if quirks.<wbr/>usePartialResult is set to 1.<wbr/></p>
   12807             </td>
   12808           </tr>
   12809 
   12810           <tr class="entries_header">
   12811             <th class="th_details" colspan="5">HAL Implementation Details</th>
   12812           </tr>
   12813           <tr class="entry_cont">
   12814             <td class="entry_details" colspan="5">
   12815               <p>Refer to <code>camera3_<wbr/>capture_<wbr/>result::partial_<wbr/>result</code>
   12816 for information on how to implement partial results.<wbr/></p>
   12817             </td>
   12818           </tr>
   12819 
   12820           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   12821            <!-- end of entry -->
   12822         
   12823         
   12824 
   12825       <!-- end of kind -->
   12826       </tbody>
   12827 
   12828   <!-- end of section -->
   12829   <tr><td colspan="6" id="section_request" class="section">request</td></tr>
   12830 
   12831 
   12832       <tr><td colspan="6" class="kind">controls</td></tr>
   12833 
   12834       <thead class="entries_header">
   12835         <tr>
   12836           <th class="th_name">Property Name</th>
   12837           <th class="th_type">Type</th>
   12838           <th class="th_description">Description</th>
   12839           <th class="th_units">Units</th>
   12840           <th class="th_range">Range</th>
   12841           <th class="th_tags">Tags</th>
   12842         </tr>
   12843       </thead>
   12844 
   12845       <tbody>
   12846 
   12847         
   12848 
   12849         
   12850 
   12851         
   12852 
   12853         
   12854 
   12855                 
   12856           <tr class="entry" id="controls_android.request.frameCount">
   12857             <td class="entry_name
   12858                 entry_name_deprecated
   12859              " rowspan="1">
   12860               android.<wbr/>request.<wbr/>frame<wbr/>Count
   12861             </td>
   12862             <td class="entry_type">
   12863                 <span class="entry_type_name">int32</span>
   12864 
   12865               <span class="entry_type_visibility"> [system]</span>
   12866 
   12867 
   12868 
   12869               <span class="entry_type_deprecated">[deprecated] </span>
   12870 
   12871 
   12872 
   12873             </td> <!-- entry_type -->
   12874 
   12875             <td class="entry_description">
   12876               <p>A frame counter set by the framework.<wbr/> Must
   12877 be maintained unchanged in output frame.<wbr/> This value monotonically
   12878 increases with every new result (that is,<wbr/> each new result has a unique
   12879 frameCount value).<wbr/></p>
   12880             </td>
   12881 
   12882             <td class="entry_units">
   12883               incrementing integer
   12884             </td>
   12885 
   12886             <td class="entry_range">
   12887               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   12888               <p>Any int.<wbr/></p>
   12889             </td>
   12890 
   12891             <td class="entry_tags">
   12892             </td>
   12893 
   12894           </tr>
   12895 
   12896 
   12897           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   12898            <!-- end of entry -->
   12899         
   12900                 
   12901           <tr class="entry" id="controls_android.request.id">
   12902             <td class="entry_name
   12903              " rowspan="1">
   12904               android.<wbr/>request.<wbr/>id
   12905             </td>
   12906             <td class="entry_type">
   12907                 <span class="entry_type_name">int32</span>
   12908 
   12909               <span class="entry_type_visibility"> [hidden]</span>
   12910 
   12911 
   12912 
   12913 
   12914 
   12915 
   12916             </td> <!-- entry_type -->
   12917 
   12918             <td class="entry_description">
   12919               <p>An application-specified ID for the current
   12920 request.<wbr/> Must be maintained unchanged in output
   12921 frame</p>
   12922             </td>
   12923 
   12924             <td class="entry_units">
   12925               arbitrary integer assigned by application
   12926             </td>
   12927 
   12928             <td class="entry_range">
   12929               <p>Any int</p>
   12930             </td>
   12931 
   12932             <td class="entry_tags">
   12933               <ul class="entry_tags">
   12934                   <li><a href="#tag_V1">V1</a></li>
   12935               </ul>
   12936             </td>
   12937 
   12938           </tr>
   12939 
   12940 
   12941           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   12942            <!-- end of entry -->
   12943         
   12944                 
   12945           <tr class="entry" id="controls_android.request.inputStreams">
   12946             <td class="entry_name
   12947                 entry_name_deprecated
   12948              " rowspan="3">
   12949               android.<wbr/>request.<wbr/>input<wbr/>Streams
   12950             </td>
   12951             <td class="entry_type">
   12952                 <span class="entry_type_name">int32</span>
   12953                 <span class="entry_type_container">x</span>
   12954 
   12955                 <span class="entry_type_array">
   12956                   n
   12957                 </span>
   12958               <span class="entry_type_visibility"> [system]</span>
   12959 
   12960 
   12961 
   12962               <span class="entry_type_deprecated">[deprecated] </span>
   12963 
   12964 
   12965 
   12966             </td> <!-- entry_type -->
   12967 
   12968             <td class="entry_description">
   12969               <p>List which camera reprocess stream is used
   12970 for the source of reprocessing data.<wbr/></p>
   12971             </td>
   12972 
   12973             <td class="entry_units">
   12974               List of camera reprocess stream IDs
   12975             </td>
   12976 
   12977             <td class="entry_range">
   12978               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   12979               <p>Typically,<wbr/> only one entry allowed,<wbr/> must be a valid reprocess stream ID.<wbr/></p>
   12980             </td>
   12981 
   12982             <td class="entry_tags">
   12983               <ul class="entry_tags">
   12984                   <li><a href="#tag_HAL2">HAL2</a></li>
   12985               </ul>
   12986             </td>
   12987 
   12988           </tr>
   12989           <tr class="entries_header">
   12990             <th class="th_details" colspan="5">Details</th>
   12991           </tr>
   12992           <tr class="entry_cont">
   12993             <td class="entry_details" colspan="5">
   12994               <p>Only meaningful when <a href="#controls_android.request.type">android.<wbr/>request.<wbr/>type</a> ==
   12995 REPROCESS.<wbr/> Ignored otherwise</p>
   12996             </td>
   12997           </tr>
   12998 
   12999 
   13000           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   13001            <!-- end of entry -->
   13002         
   13003                 
   13004           <tr class="entry" id="controls_android.request.metadataMode">
   13005             <td class="entry_name
   13006              " rowspan="1">
   13007               android.<wbr/>request.<wbr/>metadata<wbr/>Mode
   13008             </td>
   13009             <td class="entry_type">
   13010                 <span class="entry_type_name entry_type_name_enum">byte</span>
   13011 
   13012               <span class="entry_type_visibility"> [system]</span>
   13013 
   13014 
   13015 
   13016 
   13017 
   13018                 <ul class="entry_type_enum">
   13019                   <li>
   13020                     <span class="entry_type_enum_name">NONE</span>
   13021                     <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
   13022 for application-bound buffer data.<wbr/> If no
   13023 application-bound streams exist,<wbr/> no frame should be
   13024 placed in the output frame queue.<wbr/> If such streams
   13025 exist,<wbr/> a frame should be placed on the output queue
   13026 with null metadata but with the necessary output buffer
   13027 information.<wbr/> Timestamp information should still be
   13028 included with any output stream buffers</p></span>
   13029                   </li>
   13030                   <li>
   13031                     <span class="entry_type_enum_name">FULL</span>
   13032                     <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
   13033 only be produced if they are separately
   13034 enabled</p></span>
   13035                   </li>
   13036                 </ul>
   13037 
   13038             </td> <!-- entry_type -->
   13039 
   13040             <td class="entry_description">
   13041               <p>How much metadata to produce on
   13042 output</p>
   13043             </td>
   13044 
   13045             <td class="entry_units">
   13046             </td>
   13047 
   13048             <td class="entry_range">
   13049             </td>
   13050 
   13051             <td class="entry_tags">
   13052               <ul class="entry_tags">
   13053                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   13054               </ul>
   13055             </td>
   13056 
   13057           </tr>
   13058 
   13059 
   13060           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   13061            <!-- end of entry -->
   13062         
   13063                 
   13064           <tr class="entry" id="controls_android.request.outputStreams">
   13065             <td class="entry_name
   13066                 entry_name_deprecated
   13067              " rowspan="3">
   13068               android.<wbr/>request.<wbr/>output<wbr/>Streams
   13069             </td>
   13070             <td class="entry_type">
   13071                 <span class="entry_type_name">int32</span>
   13072                 <span class="entry_type_container">x</span>
   13073 
   13074                 <span class="entry_type_array">
   13075                   n
   13076                 </span>
   13077               <span class="entry_type_visibility"> [system]</span>
   13078 
   13079 
   13080 
   13081               <span class="entry_type_deprecated">[deprecated] </span>
   13082 
   13083 
   13084 
   13085             </td> <!-- entry_type -->
   13086 
   13087             <td class="entry_description">
   13088               <p>Lists which camera output streams image data
   13089 from this capture must be sent to</p>
   13090             </td>
   13091 
   13092             <td class="entry_units">
   13093               List of camera stream IDs
   13094             </td>
   13095 
   13096             <td class="entry_range">
   13097               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   13098               <p>List must only include streams that have been
   13099 created</p>
   13100             </td>
   13101 
   13102             <td class="entry_tags">
   13103               <ul class="entry_tags">
   13104                   <li><a href="#tag_HAL2">HAL2</a></li>
   13105               </ul>
   13106             </td>
   13107 
   13108           </tr>
   13109           <tr class="entries_header">
   13110             <th class="th_details" colspan="5">Details</th>
   13111           </tr>
   13112           <tr class="entry_cont">
   13113             <td class="entry_details" colspan="5">
   13114               <p>If no output streams are listed,<wbr/> then the image
   13115 data should simply be discarded.<wbr/> The image data must
   13116 still be captured for metadata and statistics production,<wbr/>
   13117 and the lens and flash must operate as requested.<wbr/></p>
   13118             </td>
   13119           </tr>
   13120 
   13121 
   13122           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   13123            <!-- end of entry -->
   13124         
   13125                 
   13126           <tr class="entry" id="controls_android.request.type">
   13127             <td class="entry_name
   13128                 entry_name_deprecated
   13129              " rowspan="1">
   13130               android.<wbr/>request.<wbr/>type
   13131             </td>
   13132             <td class="entry_type">
   13133                 <span class="entry_type_name entry_type_name_enum">byte</span>
   13134 
   13135               <span class="entry_type_visibility"> [system]</span>
   13136 
   13137 
   13138 
   13139               <span class="entry_type_deprecated">[deprecated] </span>
   13140 
   13141 
   13142                 <ul class="entry_type_enum">
   13143                   <li>
   13144                     <span class="entry_type_enum_name">CAPTURE</span>
   13145                     <span class="entry_type_enum_notes"><p>Capture a new image from the imaging hardware,<wbr/>
   13146 and process it according to the
   13147 settings</p></span>
   13148                   </li>
   13149                   <li>
   13150                     <span class="entry_type_enum_name">REPROCESS</span>
   13151                     <span class="entry_type_enum_notes"><p>Process previously captured data; the
   13152 <a href="#controls_android.request.inputStreams">android.<wbr/>request.<wbr/>input<wbr/>Streams</a> parameter determines the
   13153 source reprocessing stream.<wbr/> TODO: Mark dynamic metadata
   13154 needed for reprocessing with [RP]</p></span>
   13155                   </li>
   13156                 </ul>
   13157 
   13158             </td> <!-- entry_type -->
   13159 
   13160             <td class="entry_description">
   13161               <p>The type of the request; either CAPTURE or
   13162 REPROCESS.<wbr/> For HAL3,<wbr/> this tag is redundant.<wbr/></p>
   13163             </td>
   13164 
   13165             <td class="entry_units">
   13166             </td>
   13167 
   13168             <td class="entry_range">
   13169               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   13170             </td>
   13171 
   13172             <td class="entry_tags">
   13173               <ul class="entry_tags">
   13174                   <li><a href="#tag_HAL2">HAL2</a></li>
   13175               </ul>
   13176             </td>
   13177 
   13178           </tr>
   13179 
   13180 
   13181           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   13182            <!-- end of entry -->
   13183         
   13184         
   13185 
   13186       <!-- end of kind -->
   13187       </tbody>
   13188       <tr><td colspan="6" class="kind">static</td></tr>
   13189 
   13190       <thead class="entries_header">
   13191         <tr>
   13192           <th class="th_name">Property Name</th>
   13193           <th class="th_type">Type</th>
   13194           <th class="th_description">Description</th>
   13195           <th class="th_units">Units</th>
   13196           <th class="th_range">Range</th>
   13197           <th class="th_tags">Tags</th>
   13198         </tr>
   13199       </thead>
   13200 
   13201       <tbody>
   13202 
   13203         
   13204 
   13205         
   13206 
   13207         
   13208 
   13209         
   13210 
   13211                 
   13212           <tr class="entry" id="static_android.request.maxNumOutputStreams">
   13213             <td class="entry_name
   13214              " rowspan="3">
   13215               android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Streams
   13216             </td>
   13217             <td class="entry_type">
   13218                 <span class="entry_type_name">int32</span>
   13219                 <span class="entry_type_container">x</span>
   13220 
   13221                 <span class="entry_type_array">
   13222                   3
   13223                 </span>
   13224               <span class="entry_type_visibility"> [hidden]</span>
   13225 
   13226 
   13227               <span class="entry_type_hwlevel">[legacy] </span>
   13228 
   13229 
   13230 
   13231 
   13232             </td> <!-- entry_type -->
   13233 
   13234             <td class="entry_description">
   13235               <p>The maximum numbers of different types of output streams
   13236 that can be configured and used simultaneously by a camera device.<wbr/></p>
   13237             </td>
   13238 
   13239             <td class="entry_units">
   13240             </td>
   13241 
   13242             <td class="entry_range">
   13243               <p>For processed (and stalling) format streams,<wbr/> &gt;= 1.<wbr/></p>
   13244 <p>For Raw format (either stalling or non-stalling) streams,<wbr/> &gt;= 0.<wbr/></p>
   13245 <p>For processed (but not stalling) format streams,<wbr/> &gt;= 3
   13246 for FULL mode devices (<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL</code>);
   13247 &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>
   13248             </td>
   13249 
   13250             <td class="entry_tags">
   13251               <ul class="entry_tags">
   13252                   <li><a href="#tag_BC">BC</a></li>
   13253               </ul>
   13254             </td>
   13255 
   13256           </tr>
   13257           <tr class="entries_header">
   13258             <th class="th_details" colspan="5">Details</th>
   13259           </tr>
   13260           <tr class="entry_cont">
   13261             <td class="entry_details" colspan="5">
   13262               <p>This is a 3 element tuple that contains the max number of output simultaneous
   13263 streams for raw sensor,<wbr/> processed (but not stalling),<wbr/> and processed (and stalling)
   13264 formats respectively.<wbr/> For example,<wbr/> assuming that JPEG is typically a processed and
   13265 stalling stream,<wbr/> if max raw sensor format output stream number is 1,<wbr/> max YUV streams
   13266 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>
   13267 <p>This lists the upper bound of the number of output streams supported by
   13268 the camera device.<wbr/> Using more streams simultaneously may require more hardware and
   13269 CPU resources that will consume more power.<wbr/> The image format for an output stream can
   13270 be any supported format provided by <a href="#static_android.scaler.availableStreamConfigurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stream<wbr/>Configurations</a>.<wbr/>
   13271 The formats defined in <a href="#static_android.scaler.availableStreamConfigurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stream<wbr/>Configurations</a> can be catergorized
   13272 into the 3 stream types as below:</p>
   13273 <ul>
   13274 <li>Processed (but stalling): any non-RAW format with a stallDurations &gt; 0.<wbr/>
   13275 Typically JPEG format (ImageFormat#JPEG).<wbr/></li>
   13276 <li>Raw formats: ImageFormat#RAW_<wbr/>SENSOR,<wbr/> ImageFormat#RAW10 and ImageFormat#RAW_<wbr/>OPAQUE.<wbr/></li>
   13277 <li>Processed (but not-stalling): any non-RAW format without a stall duration.<wbr/>
   13278 Typically Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888,<wbr/> ImageFormat#NV21,<wbr/> ImageFormat#YV12.<wbr/></li>
   13279 </ul>
   13280             </td>
   13281           </tr>
   13282 
   13283 
   13284           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   13285            <!-- end of entry -->
   13286         
   13287                 
   13288           <tr class="entry" id="static_android.request.maxNumOutputRaw">
   13289             <td class="entry_name
   13290              " rowspan="3">
   13291               android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Raw
   13292             </td>
   13293             <td class="entry_type">
   13294                 <span class="entry_type_name">int32</span>
   13295 
   13296               <span class="entry_type_visibility"> [public]</span>
   13297 
   13298               <span class="entry_type_synthetic">[synthetic] </span>
   13299 
   13300               <span class="entry_type_hwlevel">[legacy] </span>
   13301 
   13302 
   13303 
   13304 
   13305             </td> <!-- entry_type -->
   13306 
   13307             <td class="entry_description">
   13308               <p>The maximum numbers of different types of output streams
   13309 that can be configured and used simultaneously by a camera device
   13310 for any <code>RAW</code> formats.<wbr/></p>
   13311             </td>
   13312 
   13313             <td class="entry_units">
   13314             </td>
   13315 
   13316             <td class="entry_range">
   13317               <p>&gt;= 0</p>
   13318             </td>
   13319 
   13320             <td class="entry_tags">
   13321             </td>
   13322 
   13323           </tr>
   13324           <tr class="entries_header">
   13325             <th class="th_details" colspan="5">Details</th>
   13326           </tr>
   13327           <tr class="entry_cont">
   13328             <td class="entry_details" colspan="5">
   13329               <p>This value contains the max number of output simultaneous
   13330 streams from the raw sensor.<wbr/></p>
   13331 <p>This lists the upper bound of the number of output streams supported by
   13332 the camera device.<wbr/> Using more streams simultaneously may require more hardware and
   13333 CPU resources that will consume more power.<wbr/> The image format for this kind of an output stream can
   13334 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>
   13335 <p>In particular,<wbr/> a <code>RAW</code> format is typically one of:</p>
   13336 <ul>
   13337 <li>ImageFormat#RAW_<wbr/>SENSOR</li>
   13338 <li>ImageFormat#RAW10</li>
   13339 <li>Opaque <code>RAW</code></li>
   13340 </ul>
   13341 <p>LEGACY mode devices (<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> <code>==</code> LEGACY)
   13342 never support raw streams.<wbr/></p>
   13343             </td>
   13344           </tr>
   13345 
   13346 
   13347           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   13348            <!-- end of entry -->
   13349         
   13350                 
   13351           <tr class="entry" id="static_android.request.maxNumOutputProc">
   13352             <td class="entry_name
   13353              " rowspan="3">
   13354               android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Proc
   13355             </td>
   13356             <td class="entry_type">
   13357                 <span class="entry_type_name">int32</span>
   13358 
   13359               <span class="entry_type_visibility"> [public]</span>
   13360 
   13361               <span class="entry_type_synthetic">[synthetic] </span>
   13362 
   13363               <span class="entry_type_hwlevel">[legacy] </span>
   13364 
   13365 
   13366 
   13367 
   13368             </td> <!-- entry_type -->
   13369 
   13370             <td class="entry_description">
   13371               <p>The maximum numbers of different types of output streams
   13372 that can be configured and used simultaneously by a camera device
   13373 for any processed (but not-stalling) formats.<wbr/></p>
   13374             </td>
   13375 
   13376             <td class="entry_units">
   13377             </td>
   13378 
   13379             <td class="entry_range">
   13380               <p>&gt;= 3
   13381 for FULL mode devices (<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL</code>);
   13382 &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>
   13383             </td>
   13384 
   13385             <td class="entry_tags">
   13386             </td>
   13387 
   13388           </tr>
   13389           <tr class="entries_header">
   13390             <th class="th_details" colspan="5">Details</th>
   13391           </tr>
   13392           <tr class="entry_cont">
   13393             <td class="entry_details" colspan="5">
   13394               <p>This value contains the max number of output simultaneous
   13395 streams for any processed (but not-stalling) formats.<wbr/></p>
   13396 <p>This lists the upper bound of the number of output streams supported by
   13397 the camera device.<wbr/> Using more streams simultaneously may require more hardware and
   13398 CPU resources that will consume more power.<wbr/> The image format for this kind of an output stream can
   13399 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>
   13400 <p>Processed (but not-stalling) is defined as any non-RAW format without a stall duration.<wbr/>
   13401 Typically:</p>
   13402 <ul>
   13403 <li>Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</li>
   13404 <li>ImageFormat#NV21</li>
   13405 <li>ImageFormat#YV12</li>
   13406 <li>Implementation-defined formats,<wbr/> i.<wbr/>e.<wbr/> StreamConfiguration#isOutputSupportedFor(Class)</li>
   13407 </ul>
   13408 <p>For full guarantees,<wbr/> query StreamConfigurationMap#getOutputStallDuration with
   13409 a processed format -- it will return 0 for a non-stalling stream.<wbr/></p>
   13410 <p>LEGACY devices will support at least 2 processing/<wbr/>non-stalling streams.<wbr/></p>
   13411             </td>
   13412           </tr>
   13413 
   13414 
   13415           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   13416            <!-- end of entry -->
   13417         
   13418                 
   13419           <tr class="entry" id="static_android.request.maxNumOutputProcStalling">
   13420             <td class="entry_name
   13421              " rowspan="3">
   13422               android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Proc<wbr/>Stalling
   13423             </td>
   13424             <td class="entry_type">
   13425                 <span class="entry_type_name">int32</span>
   13426 
   13427               <span class="entry_type_visibility"> [public]</span>
   13428 
   13429               <span class="entry_type_synthetic">[synthetic] </span>
   13430 
   13431               <span class="entry_type_hwlevel">[legacy] </span>
   13432 
   13433 
   13434 
   13435 
   13436             </td> <!-- entry_type -->
   13437 
   13438             <td class="entry_description">
   13439               <p>The maximum numbers of different types of output streams
   13440 that can be configured and used simultaneously by a camera device
   13441 for any processed (and stalling) formats.<wbr/></p>
   13442             </td>
   13443 
   13444             <td class="entry_units">
   13445             </td>
   13446 
   13447             <td class="entry_range">
   13448               <p>&gt;= 1</p>
   13449             </td>
   13450 
   13451             <td class="entry_tags">
   13452             </td>
   13453 
   13454           </tr>
   13455           <tr class="entries_header">
   13456             <th class="th_details" colspan="5">Details</th>
   13457           </tr>
   13458           <tr class="entry_cont">
   13459             <td class="entry_details" colspan="5">
   13460               <p>This value contains the max number of output simultaneous
   13461 streams for any processed (but not-stalling) formats.<wbr/></p>
   13462 <p>This lists the upper bound of the number of output streams supported by
   13463 the camera device.<wbr/> Using more streams simultaneously may require more hardware and
   13464 CPU resources that will consume more power.<wbr/> The image format for this kind of an output stream can
   13465 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>
   13466 <p>A processed and stalling format is defined as any non-RAW format with a stallDurations &gt; 0.<wbr/>
   13467 Typically only the <code>JPEG</code> format (ImageFormat#JPEG) is a stalling format.<wbr/></p>
   13468 <p>For full guarantees,<wbr/> query StreamConfigurationMap#getOutputStallDuration with
   13469 a processed format -- it will return a non-0 value for a stalling stream.<wbr/></p>
   13470 <p>LEGACY devices will support up to 1 processing/<wbr/>stalling stream.<wbr/></p>
   13471             </td>
   13472           </tr>
   13473 
   13474 
   13475           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   13476            <!-- end of entry -->
   13477         
   13478                 
   13479           <tr class="entry" id="static_android.request.maxNumReprocessStreams">
   13480             <td class="entry_name
   13481                 entry_name_deprecated
   13482              " rowspan="3">
   13483               android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Reprocess<wbr/>Streams
   13484             </td>
   13485             <td class="entry_type">
   13486                 <span class="entry_type_name">int32</span>
   13487                 <span class="entry_type_container">x</span>
   13488 
   13489                 <span class="entry_type_array">
   13490                   1
   13491                 </span>
   13492               <span class="entry_type_visibility"> [system]</span>
   13493 
   13494 
   13495 
   13496               <span class="entry_type_deprecated">[deprecated] </span>
   13497 
   13498 
   13499 
   13500             </td> <!-- entry_type -->
   13501 
   13502             <td class="entry_description">
   13503               <p>How many reprocessing streams of any type
   13504 can be allocated at the same time.<wbr/></p>
   13505             </td>
   13506 
   13507             <td class="entry_units">
   13508             </td>
   13509 
   13510             <td class="entry_range">
   13511               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   13512               <p>&gt;= 0</p>
   13513             </td>
   13514 
   13515             <td class="entry_tags">
   13516               <ul class="entry_tags">
   13517                   <li><a href="#tag_HAL2">HAL2</a></li>
   13518               </ul>
   13519             </td>
   13520 
   13521           </tr>
   13522           <tr class="entries_header">
   13523             <th class="th_details" colspan="5">Details</th>
   13524           </tr>
   13525           <tr class="entry_cont">
   13526             <td class="entry_details" colspan="5">
   13527               <p>Only used by HAL2.<wbr/>x.<wbr/></p>
   13528 <p>When set to 0,<wbr/> it means no reprocess stream is supported.<wbr/></p>
   13529             </td>
   13530           </tr>
   13531 
   13532 
   13533           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   13534            <!-- end of entry -->
   13535         
   13536                 
   13537           <tr class="entry" id="static_android.request.maxNumInputStreams">
   13538             <td class="entry_name
   13539              " rowspan="3">
   13540               android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Input<wbr/>Streams
   13541             </td>
   13542             <td class="entry_type">
   13543                 <span class="entry_type_name">int32</span>
   13544 
   13545               <span class="entry_type_visibility"> [hidden]</span>
   13546 
   13547 
   13548               <span class="entry_type_hwlevel">[full] </span>
   13549 
   13550 
   13551 
   13552 
   13553             </td> <!-- entry_type -->
   13554 
   13555             <td class="entry_description">
   13556               <p>The maximum numbers of any type of input streams
   13557 that can be configured and used simultaneously by a camera device.<wbr/></p>
   13558             </td>
   13559 
   13560             <td class="entry_units">
   13561             </td>
   13562 
   13563             <td class="entry_range">
   13564               <p>0 or 1.<wbr/></p>
   13565             </td>
   13566 
   13567             <td class="entry_tags">
   13568             </td>
   13569 
   13570           </tr>
   13571           <tr class="entries_header">
   13572             <th class="th_details" colspan="5">Details</th>
   13573           </tr>
   13574           <tr class="entry_cont">
   13575             <td class="entry_details" colspan="5">
   13576               <p>When set to 0,<wbr/> it means no input stream is supported.<wbr/></p>
   13577 <p>The image format for a input stream can be any supported
   13578 format provided by
   13579 <a href="#static_android.scaler.availableInputOutputFormatsMap">android.<wbr/>scaler.<wbr/>available<wbr/>Input<wbr/>Output<wbr/>Formats<wbr/>Map</a>.<wbr/> When using an
   13580 input stream,<wbr/> there must be at least one output stream
   13581 configured to to receive the reprocessed images.<wbr/></p>
   13582 <p>For example,<wbr/> for Zero Shutter Lag (ZSL) still capture use case,<wbr/> the input
   13583 stream image format will be RAW_<wbr/>OPAQUE,<wbr/> the associated output stream image format
   13584 should be JPEG.<wbr/></p>
   13585             </td>
   13586           </tr>
   13587 
   13588 
   13589           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   13590            <!-- end of entry -->
   13591         
   13592                 
   13593           <tr class="entry" id="static_android.request.pipelineMaxDepth">
   13594             <td class="entry_name
   13595              " rowspan="5">
   13596               android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth
   13597             </td>
   13598             <td class="entry_type">
   13599                 <span class="entry_type_name">byte</span>
   13600 
   13601               <span class="entry_type_visibility"> [public]</span>
   13602 
   13603 
   13604               <span class="entry_type_hwlevel">[legacy] </span>
   13605 
   13606 
   13607 
   13608 
   13609             </td> <!-- entry_type -->
   13610 
   13611             <td class="entry_description">
   13612               <p>Specifies the number of maximum pipeline stages a frame
   13613 has to go through from when it's exposed to when it's available
   13614 to the framework.<wbr/></p>
   13615             </td>
   13616 
   13617             <td class="entry_units">
   13618             </td>
   13619 
   13620             <td class="entry_range">
   13621             </td>
   13622 
   13623             <td class="entry_tags">
   13624             </td>
   13625 
   13626           </tr>
   13627           <tr class="entries_header">
   13628             <th class="th_details" colspan="5">Details</th>
   13629           </tr>
   13630           <tr class="entry_cont">
   13631             <td class="entry_details" colspan="5">
   13632               <p>A typical minimum value for this is 2 (one stage to expose,<wbr/>
   13633 one stage to readout) from the sensor.<wbr/> The ISP then usually adds
   13634 its own stages to do custom HW processing.<wbr/> Further stages may be
   13635 added by SW processing.<wbr/></p>
   13636 <p>Depending on what settings are used (e.<wbr/>g.<wbr/> YUV,<wbr/> JPEG) and what
   13637 processing is enabled (e.<wbr/>g.<wbr/> face detection),<wbr/> the actual pipeline
   13638 depth (specified by <a href="#dynamic_android.request.pipelineDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Depth</a>) may be less than
   13639 the max pipeline depth.<wbr/></p>
   13640 <p>A pipeline depth of X stages is equivalent to a pipeline latency of
   13641 X frame intervals.<wbr/></p>
   13642 <p>This value will be 8 or less.<wbr/></p>
   13643             </td>
   13644           </tr>
   13645 
   13646           <tr class="entries_header">
   13647             <th class="th_details" colspan="5">HAL Implementation Details</th>
   13648           </tr>
   13649           <tr class="entry_cont">
   13650             <td class="entry_details" colspan="5">
   13651               <p>This value should be 4 or less.<wbr/></p>
   13652             </td>
   13653           </tr>
   13654 
   13655           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   13656            <!-- end of entry -->
   13657         
   13658                 
   13659           <tr class="entry" id="static_android.request.partialResultCount">
   13660             <td class="entry_name
   13661              " rowspan="3">
   13662               android.<wbr/>request.<wbr/>partial<wbr/>Result<wbr/>Count
   13663             </td>
   13664             <td class="entry_type">
   13665                 <span class="entry_type_name">int32</span>
   13666 
   13667               <span class="entry_type_visibility"> [public]</span>
   13668 
   13669 
   13670 
   13671 
   13672 
   13673 
   13674             </td> <!-- entry_type -->
   13675 
   13676             <td class="entry_description">
   13677               <p>Defines how many sub-components
   13678 a result will be composed of.<wbr/></p>
   13679             </td>
   13680 
   13681             <td class="entry_units">
   13682             </td>
   13683 
   13684             <td class="entry_range">
   13685               <p>&gt;= 1</p>
   13686             </td>
   13687 
   13688             <td class="entry_tags">
   13689             </td>
   13690 
   13691           </tr>
   13692           <tr class="entries_header">
   13693             <th class="th_details" colspan="5">Details</th>
   13694           </tr>
   13695           <tr class="entry_cont">
   13696             <td class="entry_details" colspan="5">
   13697               <p>In order to combat the pipeline latency,<wbr/> partial results
   13698 may be delivered to the application layer from the camera device as
   13699 soon as they are available.<wbr/></p>
   13700 <p>Optional; defaults to 1.<wbr/> A value of 1 means that partial
   13701 results are not supported,<wbr/> and only the final TotalCaptureResult will
   13702 be produced by the camera device.<wbr/></p>
   13703 <p>A typical use case for this might be: after requesting an
   13704 auto-focus (AF) lock the new AF state might be available 50%
   13705 of the way through the pipeline.<wbr/>  The camera device could
   13706 then immediately dispatch this state via a partial result to
   13707 the application,<wbr/> and the rest of the metadata via later
   13708 partial results.<wbr/></p>
   13709             </td>
   13710           </tr>
   13711 
   13712 
   13713           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   13714            <!-- end of entry -->
   13715         
   13716                 
   13717           <tr class="entry" id="static_android.request.availableCapabilities">
   13718             <td class="entry_name
   13719              " rowspan="5">
   13720               android.<wbr/>request.<wbr/>available<wbr/>Capabilities
   13721             </td>
   13722             <td class="entry_type">
   13723                 <span class="entry_type_name entry_type_name_enum">byte</span>
   13724                 <span class="entry_type_container">x</span>
   13725 
   13726                 <span class="entry_type_array">
   13727                   n
   13728                 </span>
   13729               <span class="entry_type_visibility"> [public]</span>
   13730 
   13731 
   13732               <span class="entry_type_hwlevel">[legacy] </span>
   13733 
   13734 
   13735 
   13736                 <ul class="entry_type_enum">
   13737                   <li>
   13738                     <span class="entry_type_enum_name">BACKWARD_COMPATIBLE</span>
   13739                     <span class="entry_type_enum_notes"><p>The minimal set of capabilities that every camera
   13740 device (regardless of <a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a>)
   13741 supports.<wbr/></p>
   13742 <p>This capability is listed by all devices,<wbr/> and
   13743 indicates that the camera device has a feature set
   13744 that's comparable to the baseline requirements for the
   13745 older android.<wbr/>hardware.<wbr/>Camera API.<wbr/></p></span>
   13746                   </li>
   13747                   <li>
   13748                     <span class="entry_type_enum_name">MANUAL_SENSOR</span>
   13749                     <span class="entry_type_enum_optional">[optional]</span>
   13750                     <span class="entry_type_enum_notes"><p>The camera device can be manually controlled (3A algorithms such
   13751 as auto-exposure,<wbr/> and auto-focus can be bypassed).<wbr/>
   13752 The camera device supports basic manual control of the sensor image
   13753 acquisition related stages.<wbr/> This means the following controls are
   13754 guaranteed to be supported:</p>
   13755 <ul>
   13756 <li>Manual frame duration control<ul>
   13757 <li><a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a></li>
   13758 <li><a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a></li>
   13759 </ul>
   13760 </li>
   13761 <li>Manual exposure control<ul>
   13762 <li><a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a></li>
   13763 <li><a href="#static_android.sensor.info.exposureTimeRange">android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range</a></li>
   13764 </ul>
   13765 </li>
   13766 <li>Manual sensitivity control<ul>
   13767 <li><a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a></li>
   13768 <li><a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a></li>
   13769 </ul>
   13770 </li>
   13771 <li>Manual lens control (if the lens is adjustable)<ul>
   13772 <li>android.<wbr/>lens.<wbr/>*</li>
   13773 </ul>
   13774 </li>
   13775 <li>Manual flash control (if a flash unit is present)<ul>
   13776 <li>android.<wbr/>flash.<wbr/>*</li>
   13777 </ul>
   13778 </li>
   13779 <li>Manual black level locking<ul>
   13780 <li><a href="#controls_android.blackLevel.lock">android.<wbr/>black<wbr/>Level.<wbr/>lock</a></li>
   13781 </ul>
   13782 </li>
   13783 </ul>
   13784 <p>If any of the above 3A algorithms are enabled,<wbr/> then the camera
   13785 device will accurately report the values applied by 3A in the
   13786 result.<wbr/></p>
   13787 <p>A given camera device may also support additional manual sensor controls,<wbr/>
   13788 but this capability only covers the above list of controls.<wbr/></p>
   13789 <p>If this is supported,<wbr/> <a href="#static_android.scaler.streamConfigurationMap">android.<wbr/>scaler.<wbr/>stream<wbr/>Configuration<wbr/>Map</a> will
   13790 additionally return a min frame duration that is greater than
   13791 zero for each supported size-format combination.<wbr/></p></span>
   13792                   </li>
   13793                   <li>
   13794                     <span class="entry_type_enum_name">MANUAL_POST_PROCESSING</span>
   13795                     <span class="entry_type_enum_optional">[optional]</span>
   13796                     <span class="entry_type_enum_notes"><p>The camera device post-processing stages can be manually controlled.<wbr/>
   13797 The camera device supports basic manual control of the image post-processing
   13798 stages.<wbr/> This means the following controls are guaranteed to be supported:</p>
   13799 <ul>
   13800 <li>Manual tonemap control<ul>
   13801 <li><a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a></li>
   13802 <li><a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a></li>
   13803 <li><a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></li>
   13804 </ul>
   13805 </li>
   13806 <li>Manual white balance control<ul>
   13807 <li><a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a></li>
   13808 <li><a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a></li>
   13809 </ul>
   13810 </li>
   13811 <li>Manual lens shading map control<ul>
   13812 <li><a href="#controls_android.shading.mode">android.<wbr/>shading.<wbr/>mode</a></li>
   13813 <li><a href="#controls_android.statistics.lensShadingMapMode">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode</a></li>
   13814 <li><a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a></li>
   13815 <li><a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a></li>
   13816 </ul>
   13817 </li>
   13818 <li>Manual aberration correction control (if aberration correction is supported)<ul>
   13819 <li><a href="#controls_android.colorCorrection.aberrationMode">android.<wbr/>color<wbr/>Correction.<wbr/>aberration<wbr/>Mode</a></li>
   13820 <li><a href="#static_android.colorCorrection.availableAberrationModes">android.<wbr/>color<wbr/>Correction.<wbr/>available<wbr/>Aberration<wbr/>Modes</a></li>
   13821 </ul>
   13822 </li>
   13823 </ul>
   13824 <p>If auto white balance is enabled,<wbr/> then the camera device
   13825 will accurately report the values applied by AWB in the result.<wbr/></p>
   13826 <p>A given camera device may also support additional post-processing
   13827 controls,<wbr/> but this capability only covers the above list of controls.<wbr/></p></span>
   13828                   </li>
   13829                   <li>
   13830                     <span class="entry_type_enum_name">RAW</span>
   13831                     <span class="entry_type_enum_optional">[optional]</span>
   13832                     <span class="entry_type_enum_notes"><p>The camera device supports outputting RAW buffers and
   13833 metadata for interpreting them.<wbr/></p>
   13834 <p>Devices supporting the RAW capability allow both for
   13835 saving DNG files,<wbr/> and for direct application processing of
   13836 raw sensor images.<wbr/></p>
   13837 <ul>
   13838 <li>RAW_<wbr/>SENSOR is supported as an output format.<wbr/></li>
   13839 <li>The maximum available resolution for RAW_<wbr/>SENSOR streams
   13840   will match either the value in
   13841   <a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a> or
   13842   <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/></li>
   13843 <li>All DNG-related optional metadata entries are provided
   13844   by the camera device.<wbr/></li>
   13845 </ul></span>
   13846                   </li>
   13847                   <li>
   13848                     <span class="entry_type_enum_name">ZSL</span>
   13849                     <span class="entry_type_enum_optional">[optional]</span>
   13850                     <span class="entry_type_enum_optional">[hidden]</span>
   13851                     <span class="entry_type_enum_notes"><p>The camera device supports the Zero Shutter Lag use case.<wbr/></p>
   13852 <ul>
   13853 <li>At least one input stream can be used.<wbr/></li>
   13854 <li>RAW_<wbr/>OPAQUE is supported as an output/<wbr/>input format</li>
   13855 <li>Using RAW_<wbr/>OPAQUE does not cause a frame rate drop
   13856   relative to the sensor's maximum capture rate (at that
   13857   resolution).<wbr/></li>
   13858 <li>RAW_<wbr/>OPAQUE will be reprocessable into both YUV_<wbr/>420_<wbr/>888
   13859   and JPEG formats.<wbr/></li>
   13860 <li>The maximum available resolution for RAW_<wbr/>OPAQUE streams
   13861   (both input/<wbr/>output) will match the maximum available
   13862   resolution of JPEG streams.<wbr/></li>
   13863 </ul></span>
   13864                   </li>
   13865                   <li>
   13866                     <span class="entry_type_enum_name">READ_SENSOR_SETTINGS</span>
   13867                     <span class="entry_type_enum_optional">[optional]</span>
   13868                     <span class="entry_type_enum_notes"><p>The camera device supports accurately reporting the sensor settings for many of
   13869 the sensor controls while the built-in 3A algorithm is running.<wbr/>  This allows
   13870 reporting of sensor settings even when these settings cannot be manually changed.<wbr/></p>
   13871 <p>The values reported for the following controls are guaranteed to be available
   13872 in the CaptureResult,<wbr/> including when 3A is enabled:</p>
   13873 <ul>
   13874 <li>Exposure control<ul>
   13875 <li><a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a></li>
   13876 </ul>
   13877 </li>
   13878 <li>Sensitivity control<ul>
   13879 <li><a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a></li>
   13880 </ul>
   13881 </li>
   13882 <li>Lens controls (if the lens is adjustable)<ul>
   13883 <li><a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a></li>
   13884 <li><a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a></li>
   13885 </ul>
   13886 </li>
   13887 </ul>
   13888 <p>This capability is a subset of the MANUAL_<wbr/>SENSOR control capability,<wbr/> and will
   13889 always be included if the MANUAL_<wbr/>SENSOR capability is available.<wbr/></p></span>
   13890                   </li>
   13891                   <li>
   13892                     <span class="entry_type_enum_name">BURST_CAPTURE</span>
   13893                     <span class="entry_type_enum_optional">[optional]</span>
   13894                     <span class="entry_type_enum_notes"><p>The camera device supports capturing maximum-resolution
   13895 images at &gt;= 20 frames per second,<wbr/> in at least the
   13896 uncompressed YUV format,<wbr/> when post-processing settings
   13897 are set to FAST.<wbr/></p>
   13898 <p>More specifically,<wbr/> this means that a size matching the
   13899 camera device's active array size is listed as a
   13900 supported size for the YUV_<wbr/>420_<wbr/>888 format in
   13901 <a href="#static_android.scaler.streamConfigurationMap">android.<wbr/>scaler.<wbr/>stream<wbr/>Configuration<wbr/>Map</a>,<wbr/> the minimum frame
   13902 duration for that format and size is &lt;= 1/<wbr/>20 s,<wbr/> and
   13903 the <a href="#static_android.control.aeAvailableTargetFpsRanges">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges</a> entry
   13904 lists at least one FPS range where the minimum FPS is</p>
   13905 <blockquote>
   13906 <p>= 1 /<wbr/> minimumFrameDuration for the maximum-size
   13907 YUV_<wbr/>420_<wbr/>888 format.<wbr/></p>
   13908 </blockquote>
   13909 <p>In addition,<wbr/> the <a href="#static_android.sync.maxLatency">android.<wbr/>sync.<wbr/>max<wbr/>Latency</a> field is
   13910 guaranted to have a value between 0 and 4,<wbr/> inclusive.<wbr/></p></span>
   13911                   </li>
   13912                 </ul>
   13913 
   13914             </td> <!-- entry_type -->
   13915 
   13916             <td class="entry_description">
   13917               <p>List of capabilities that this camera device
   13918 advertises as fully supporting.<wbr/></p>
   13919             </td>
   13920 
   13921             <td class="entry_units">
   13922             </td>
   13923 
   13924             <td class="entry_range">
   13925             </td>
   13926 
   13927             <td class="entry_tags">
   13928             </td>
   13929 
   13930           </tr>
   13931           <tr class="entries_header">
   13932             <th class="th_details" colspan="5">Details</th>
   13933           </tr>
   13934           <tr class="entry_cont">
   13935             <td class="entry_details" colspan="5">
   13936               <p>A capability is a contract that the camera device makes in order
   13937 to be able to satisfy one or more use cases.<wbr/></p>
   13938 <p>Listing a capability guarantees that the whole set of features
   13939 required to support a common use will all be available.<wbr/></p>
   13940 <p>Using a subset of the functionality provided by an unsupported
   13941 capability may be possible on a specific camera device implementation;
   13942 to do this query each of <a href="#static_android.request.availableRequestKeys">android.<wbr/>request.<wbr/>available<wbr/>Request<wbr/>Keys</a>,<wbr/>
   13943 <a href="#static_android.request.availableResultKeys">android.<wbr/>request.<wbr/>available<wbr/>Result<wbr/>Keys</a>,<wbr/>
   13944 <a href="#static_android.request.availableCharacteristicsKeys">android.<wbr/>request.<wbr/>available<wbr/>Characteristics<wbr/>Keys</a>.<wbr/></p>
   13945 <p>The following capabilities are guaranteed to be available on
   13946 <a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> <code>==</code> FULL devices:</p>
   13947 <ul>
   13948 <li>MANUAL_<wbr/>SENSOR</li>
   13949 <li>MANUAL_<wbr/>POST_<wbr/>PROCESSING</li>
   13950 </ul>
   13951 <p>Other capabilities may be available on either FULL or LIMITED
   13952 devices,<wbr/> but the application should query this key to be sure.<wbr/></p>
   13953             </td>
   13954           </tr>
   13955 
   13956           <tr class="entries_header">
   13957             <th class="th_details" colspan="5">HAL Implementation Details</th>
   13958           </tr>
   13959           <tr class="entry_cont">
   13960             <td class="entry_details" colspan="5">
   13961               <p>Additional constraint details per-capability will be available
   13962 in the Compatibility Test Suite.<wbr/></p>
   13963 <p>Minimum baseline requirements required for the
   13964 BACKWARD_<wbr/>COMPATIBLE capability are not explicitly listed.<wbr/>
   13965 Instead refer to "BC" tags and the camera CTS tests in the
   13966 android.<wbr/>hardware.<wbr/>camera2.<wbr/>cts package.<wbr/></p>
   13967 <p>Listed controls that can be either request or result (e.<wbr/>g.<wbr/>
   13968 <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>) must be available both in the
   13969 request and the result in order to be considered to be
   13970 capability-compliant.<wbr/></p>
   13971 <p>For example,<wbr/> if the HAL claims to support MANUAL control,<wbr/>
   13972 then exposure time must be configurable via the request <em>and</em>
   13973 the actual exposure applied must be available via
   13974 the result.<wbr/></p>
   13975 <p>If MANUAL_<wbr/>SENSOR is omitted,<wbr/> the HAL may choose to omit the
   13976 <a href="#static_android.scaler.availableMinFrameDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Min<wbr/>Frame<wbr/>Durations</a> static property entirely.<wbr/></p>
   13977             </td>
   13978           </tr>
   13979 
   13980           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   13981            <!-- end of entry -->
   13982         
   13983                 
   13984           <tr class="entry" id="static_android.request.availableRequestKeys">
   13985             <td class="entry_name
   13986              " rowspan="5">
   13987               android.<wbr/>request.<wbr/>available<wbr/>Request<wbr/>Keys
   13988             </td>
   13989             <td class="entry_type">
   13990                 <span class="entry_type_name">int32</span>
   13991                 <span class="entry_type_container">x</span>
   13992 
   13993                 <span class="entry_type_array">
   13994                   n
   13995                 </span>
   13996               <span class="entry_type_visibility"> [hidden]</span>
   13997 
   13998 
   13999               <span class="entry_type_hwlevel">[legacy] </span>
   14000 
   14001 
   14002 
   14003 
   14004             </td> <!-- entry_type -->
   14005 
   14006             <td class="entry_description">
   14007               <p>A list of all keys that the camera device has available
   14008 to use with CaptureRequest.<wbr/></p>
   14009             </td>
   14010 
   14011             <td class="entry_units">
   14012             </td>
   14013 
   14014             <td class="entry_range">
   14015             </td>
   14016 
   14017             <td class="entry_tags">
   14018             </td>
   14019 
   14020           </tr>
   14021           <tr class="entries_header">
   14022             <th class="th_details" colspan="5">Details</th>
   14023           </tr>
   14024           <tr class="entry_cont">
   14025             <td class="entry_details" colspan="5">
   14026               <p>Attempting to set a key into a CaptureRequest that is not
   14027 listed here will result in an invalid request and will be rejected
   14028 by the camera device.<wbr/></p>
   14029 <p>This field can be used to query the feature set of a camera device
   14030 at a more granular level than capabilities.<wbr/> This is especially
   14031 important for optional keys that are not listed under any capability
   14032 in <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>.<wbr/></p>
   14033             </td>
   14034           </tr>
   14035 
   14036           <tr class="entries_header">
   14037             <th class="th_details" colspan="5">HAL Implementation Details</th>
   14038           </tr>
   14039           <tr class="entry_cont">
   14040             <td class="entry_details" colspan="5">
   14041               <p>Vendor tags must not be listed here.<wbr/> Use the vendor tag metadata
   14042 extensions C api instead (refer to camera3.<wbr/>h for more details).<wbr/></p>
   14043 <p>Setting/<wbr/>getting vendor tags will be checked against the metadata
   14044 vendor extensions API and not against this field.<wbr/></p>
   14045 <p>The HAL must not consume any request tags that are not listed either
   14046 here or in the vendor tag list.<wbr/></p>
   14047 <p>The public camera2 API will always make the vendor tags visible
   14048 via CameraCharacteristics#getAvailableCaptureRequestKeys.<wbr/></p>
   14049             </td>
   14050           </tr>
   14051 
   14052           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   14053            <!-- end of entry -->
   14054         
   14055                 
   14056           <tr class="entry" id="static_android.request.availableResultKeys">
   14057             <td class="entry_name
   14058              " rowspan="5">
   14059               android.<wbr/>request.<wbr/>available<wbr/>Result<wbr/>Keys
   14060             </td>
   14061             <td class="entry_type">
   14062                 <span class="entry_type_name">int32</span>
   14063                 <span class="entry_type_container">x</span>
   14064 
   14065                 <span class="entry_type_array">
   14066                   n
   14067                 </span>
   14068               <span class="entry_type_visibility"> [hidden]</span>
   14069 
   14070 
   14071               <span class="entry_type_hwlevel">[legacy] </span>
   14072 
   14073 
   14074 
   14075 
   14076             </td> <!-- entry_type -->
   14077 
   14078             <td class="entry_description">
   14079               <p>A list of all keys that the camera device has available
   14080 to use with CaptureResult.<wbr/></p>
   14081             </td>
   14082 
   14083             <td class="entry_units">
   14084             </td>
   14085 
   14086             <td class="entry_range">
   14087             </td>
   14088 
   14089             <td class="entry_tags">
   14090             </td>
   14091 
   14092           </tr>
   14093           <tr class="entries_header">
   14094             <th class="th_details" colspan="5">Details</th>
   14095           </tr>
   14096           <tr class="entry_cont">
   14097             <td class="entry_details" colspan="5">
   14098               <p>Attempting to get a key from a CaptureResult that is not
   14099 listed here will always return a <code>null</code> value.<wbr/> Getting a key from
   14100 a CaptureResult that is listed here will generally never return a <code>null</code>
   14101 value.<wbr/></p>
   14102 <p>The following keys may return <code>null</code> unless they are enabled:</p>
   14103 <ul>
   14104 <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>
   14105 </ul>
   14106 <p>(Those sometimes-null keys will nevertheless be listed here
   14107 if they are available.<wbr/>)</p>
   14108 <p>This field can be used to query the feature set of a camera device
   14109 at a more granular level than capabilities.<wbr/> This is especially
   14110 important for optional keys that are not listed under any capability
   14111 in <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>.<wbr/></p>
   14112             </td>
   14113           </tr>
   14114 
   14115           <tr class="entries_header">
   14116             <th class="th_details" colspan="5">HAL Implementation Details</th>
   14117           </tr>
   14118           <tr class="entry_cont">
   14119             <td class="entry_details" colspan="5">
   14120               <p>Tags listed here must always have an entry in the result metadata,<wbr/>
   14121 even if that size is 0 elements.<wbr/> Only array-type tags (e.<wbr/>g.<wbr/> lists,<wbr/>
   14122 matrices,<wbr/> strings) are allowed to have 0 elements.<wbr/></p>
   14123 <p>Vendor tags must not be listed here.<wbr/> Use the vendor tag metadata
   14124 extensions C api instead (refer to camera3.<wbr/>h for more details).<wbr/></p>
   14125 <p>Setting/<wbr/>getting vendor tags will be checked against the metadata
   14126 vendor extensions API and not against this field.<wbr/></p>
   14127 <p>The HAL must not produce any result tags that are not listed either
   14128 here or in the vendor tag list.<wbr/></p>
   14129 <p>The public camera2 API will always make the vendor tags visible
   14130 via CameraCharacteristics#getAvailableCaptureResultKeys.<wbr/></p>
   14131             </td>
   14132           </tr>
   14133 
   14134           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   14135            <!-- end of entry -->
   14136         
   14137                 
   14138           <tr class="entry" id="static_android.request.availableCharacteristicsKeys">
   14139             <td class="entry_name
   14140              " rowspan="5">
   14141               android.<wbr/>request.<wbr/>available<wbr/>Characteristics<wbr/>Keys
   14142             </td>
   14143             <td class="entry_type">
   14144                 <span class="entry_type_name">int32</span>
   14145                 <span class="entry_type_container">x</span>
   14146 
   14147                 <span class="entry_type_array">
   14148                   n
   14149                 </span>
   14150               <span class="entry_type_visibility"> [hidden]</span>
   14151 
   14152 
   14153               <span class="entry_type_hwlevel">[legacy] </span>
   14154 
   14155 
   14156 
   14157 
   14158             </td> <!-- entry_type -->
   14159 
   14160             <td class="entry_description">
   14161               <p>A list of all keys that the camera device has available
   14162 to use with CameraCharacteristics.<wbr/></p>
   14163             </td>
   14164 
   14165             <td class="entry_units">
   14166             </td>
   14167 
   14168             <td class="entry_range">
   14169             </td>
   14170 
   14171             <td class="entry_tags">
   14172             </td>
   14173 
   14174           </tr>
   14175           <tr class="entries_header">
   14176             <th class="th_details" colspan="5">Details</th>
   14177           </tr>
   14178           <tr class="entry_cont">
   14179             <td class="entry_details" colspan="5">
   14180               <p>This entry follows the same rules as
   14181 <a href="#static_android.request.availableResultKeys">android.<wbr/>request.<wbr/>available<wbr/>Result<wbr/>Keys</a> (except that it applies for
   14182 CameraCharacteristics instead of CaptureResult).<wbr/> See above for more
   14183 details.<wbr/></p>
   14184             </td>
   14185           </tr>
   14186 
   14187           <tr class="entries_header">
   14188             <th class="th_details" colspan="5">HAL Implementation Details</th>
   14189           </tr>
   14190           <tr class="entry_cont">
   14191             <td class="entry_details" colspan="5">
   14192               <p>Keys listed here must always have an entry in the static info metadata,<wbr/>
   14193 even if that size is 0 elements.<wbr/> Only array-type tags (e.<wbr/>g.<wbr/> lists,<wbr/>
   14194 matrices,<wbr/> strings) are allowed to have 0 elements.<wbr/></p>
   14195 <p>Vendor tags must not be listed here.<wbr/> Use the vendor tag metadata
   14196 extensions C api instead (refer to camera3.<wbr/>h for more details).<wbr/></p>
   14197 <p>Setting/<wbr/>getting vendor tags will be checked against the metadata
   14198 vendor extensions API and not against this field.<wbr/></p>
   14199 <p>The HAL must not have any tags in its static info that are not listed
   14200 either here or in the vendor tag list.<wbr/></p>
   14201 <p>The public camera2 API will always make the vendor tags visible
   14202 via CameraCharacteristics#getKeys.<wbr/></p>
   14203             </td>
   14204           </tr>
   14205 
   14206           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   14207            <!-- end of entry -->
   14208         
   14209         
   14210 
   14211       <!-- end of kind -->
   14212       </tbody>
   14213       <tr><td colspan="6" class="kind">dynamic</td></tr>
   14214 
   14215       <thead class="entries_header">
   14216         <tr>
   14217           <th class="th_name">Property Name</th>
   14218           <th class="th_type">Type</th>
   14219           <th class="th_description">Description</th>
   14220           <th class="th_units">Units</th>
   14221           <th class="th_range">Range</th>
   14222           <th class="th_tags">Tags</th>
   14223         </tr>
   14224       </thead>
   14225 
   14226       <tbody>
   14227 
   14228         
   14229 
   14230         
   14231 
   14232         
   14233 
   14234         
   14235 
   14236                 
   14237           <tr class="entry" id="dynamic_android.request.frameCount">
   14238             <td class="entry_name
   14239                 entry_name_deprecated
   14240              " rowspan="3">
   14241               android.<wbr/>request.<wbr/>frame<wbr/>Count
   14242             </td>
   14243             <td class="entry_type">
   14244                 <span class="entry_type_name">int32</span>
   14245 
   14246               <span class="entry_type_visibility"> [hidden]</span>
   14247 
   14248 
   14249 
   14250               <span class="entry_type_deprecated">[deprecated] </span>
   14251 
   14252 
   14253 
   14254             </td> <!-- entry_type -->
   14255 
   14256             <td class="entry_description">
   14257               <p>A frame counter set by the framework.<wbr/> This value monotonically
   14258 increases with every new result (that is,<wbr/> each new result has a unique
   14259 frameCount value).<wbr/></p>
   14260             </td>
   14261 
   14262             <td class="entry_units">
   14263               count of frames
   14264             </td>
   14265 
   14266             <td class="entry_range">
   14267               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   14268               <p>&gt; 0</p>
   14269             </td>
   14270 
   14271             <td class="entry_tags">
   14272             </td>
   14273 
   14274           </tr>
   14275           <tr class="entries_header">
   14276             <th class="th_details" colspan="5">Details</th>
   14277           </tr>
   14278           <tr class="entry_cont">
   14279             <td class="entry_details" colspan="5">
   14280               <p>Reset on release()</p>
   14281             </td>
   14282           </tr>
   14283 
   14284 
   14285           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   14286            <!-- end of entry -->
   14287         
   14288                 
   14289           <tr class="entry" id="dynamic_android.request.id">
   14290             <td class="entry_name
   14291              " rowspan="1">
   14292               android.<wbr/>request.<wbr/>id
   14293             </td>
   14294             <td class="entry_type">
   14295                 <span class="entry_type_name">int32</span>
   14296 
   14297               <span class="entry_type_visibility"> [hidden]</span>
   14298 
   14299 
   14300 
   14301 
   14302 
   14303 
   14304             </td> <!-- entry_type -->
   14305 
   14306             <td class="entry_description">
   14307               <p>An application-specified ID for the current
   14308 request.<wbr/> Must be maintained unchanged in output
   14309 frame</p>
   14310             </td>
   14311 
   14312             <td class="entry_units">
   14313               arbitrary integer assigned by application
   14314             </td>
   14315 
   14316             <td class="entry_range">
   14317               <p>Any int</p>
   14318             </td>
   14319 
   14320             <td class="entry_tags">
   14321               <ul class="entry_tags">
   14322                   <li><a href="#tag_V1">V1</a></li>
   14323               </ul>
   14324             </td>
   14325 
   14326           </tr>
   14327 
   14328 
   14329           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   14330            <!-- end of entry -->
   14331         
   14332                 
   14333           <tr class="entry" id="dynamic_android.request.metadataMode">
   14334             <td class="entry_name
   14335              " rowspan="1">
   14336               android.<wbr/>request.<wbr/>metadata<wbr/>Mode
   14337             </td>
   14338             <td class="entry_type">
   14339                 <span class="entry_type_name entry_type_name_enum">byte</span>
   14340 
   14341               <span class="entry_type_visibility"> [system]</span>
   14342 
   14343 
   14344 
   14345 
   14346 
   14347                 <ul class="entry_type_enum">
   14348                   <li>
   14349                     <span class="entry_type_enum_name">NONE</span>
   14350                     <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
   14351 for application-bound buffer data.<wbr/> If no
   14352 application-bound streams exist,<wbr/> no frame should be
   14353 placed in the output frame queue.<wbr/> If such streams
   14354 exist,<wbr/> a frame should be placed on the output queue
   14355 with null metadata but with the necessary output buffer
   14356 information.<wbr/> Timestamp information should still be
   14357 included with any output stream buffers</p></span>
   14358                   </li>
   14359                   <li>
   14360                     <span class="entry_type_enum_name">FULL</span>
   14361                     <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
   14362 only be produced if they are separately
   14363 enabled</p></span>
   14364                   </li>
   14365                 </ul>
   14366 
   14367             </td> <!-- entry_type -->
   14368 
   14369             <td class="entry_description">
   14370               <p>How much metadata to produce on
   14371 output</p>
   14372             </td>
   14373 
   14374             <td class="entry_units">
   14375             </td>
   14376 
   14377             <td class="entry_range">
   14378             </td>
   14379 
   14380             <td class="entry_tags">
   14381               <ul class="entry_tags">
   14382                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   14383               </ul>
   14384             </td>
   14385 
   14386           </tr>
   14387 
   14388 
   14389           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   14390            <!-- end of entry -->
   14391         
   14392                 
   14393           <tr class="entry" id="dynamic_android.request.outputStreams">
   14394             <td class="entry_name
   14395                 entry_name_deprecated
   14396              " rowspan="3">
   14397               android.<wbr/>request.<wbr/>output<wbr/>Streams
   14398             </td>
   14399             <td class="entry_type">
   14400                 <span class="entry_type_name">int32</span>
   14401                 <span class="entry_type_container">x</span>
   14402 
   14403                 <span class="entry_type_array">
   14404                   n
   14405                 </span>
   14406               <span class="entry_type_visibility"> [system]</span>
   14407 
   14408 
   14409 
   14410               <span class="entry_type_deprecated">[deprecated] </span>
   14411 
   14412 
   14413 
   14414             </td> <!-- entry_type -->
   14415 
   14416             <td class="entry_description">
   14417               <p>Lists which camera output streams image data
   14418 from this capture must be sent to</p>
   14419             </td>
   14420 
   14421             <td class="entry_units">
   14422               List of camera stream IDs
   14423             </td>
   14424 
   14425             <td class="entry_range">
   14426               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   14427               <p>List must only include streams that have been
   14428 created</p>
   14429             </td>
   14430 
   14431             <td class="entry_tags">
   14432               <ul class="entry_tags">
   14433                   <li><a href="#tag_HAL2">HAL2</a></li>
   14434               </ul>
   14435             </td>
   14436 
   14437           </tr>
   14438           <tr class="entries_header">
   14439             <th class="th_details" colspan="5">Details</th>
   14440           </tr>
   14441           <tr class="entry_cont">
   14442             <td class="entry_details" colspan="5">
   14443               <p>If no output streams are listed,<wbr/> then the image
   14444 data should simply be discarded.<wbr/> The image data must
   14445 still be captured for metadata and statistics production,<wbr/>
   14446 and the lens and flash must operate as requested.<wbr/></p>
   14447             </td>
   14448           </tr>
   14449 
   14450 
   14451           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   14452            <!-- end of entry -->
   14453         
   14454                 
   14455           <tr class="entry" id="dynamic_android.request.pipelineDepth">
   14456             <td class="entry_name
   14457              " rowspan="5">
   14458               android.<wbr/>request.<wbr/>pipeline<wbr/>Depth
   14459             </td>
   14460             <td class="entry_type">
   14461                 <span class="entry_type_name">byte</span>
   14462 
   14463               <span class="entry_type_visibility"> [public]</span>
   14464 
   14465 
   14466               <span class="entry_type_hwlevel">[legacy] </span>
   14467 
   14468 
   14469 
   14470 
   14471             </td> <!-- entry_type -->
   14472 
   14473             <td class="entry_description">
   14474               <p>Specifies the number of pipeline stages the frame went
   14475 through from when it was exposed to when the final completed result
   14476 was available to the framework.<wbr/></p>
   14477             </td>
   14478 
   14479             <td class="entry_units">
   14480             </td>
   14481 
   14482             <td class="entry_range">
   14483               <p>&lt;= <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a></p>
   14484             </td>
   14485 
   14486             <td class="entry_tags">
   14487             </td>
   14488 
   14489           </tr>
   14490           <tr class="entries_header">
   14491             <th class="th_details" colspan="5">Details</th>
   14492           </tr>
   14493           <tr class="entry_cont">
   14494             <td class="entry_details" colspan="5">
   14495               <p>Depending on what settings are used in the request,<wbr/> and
   14496 what streams are configured,<wbr/> the data may undergo less processing,<wbr/>
   14497 and some pipeline stages skipped.<wbr/></p>
   14498 <p>See <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> for more details.<wbr/></p>
   14499             </td>
   14500           </tr>
   14501 
   14502           <tr class="entries_header">
   14503             <th class="th_details" colspan="5">HAL Implementation Details</th>
   14504           </tr>
   14505           <tr class="entry_cont">
   14506             <td class="entry_details" colspan="5">
   14507               <p>This value must always represent the accurate count of how many
   14508 pipeline stages were actually used.<wbr/></p>
   14509             </td>
   14510           </tr>
   14511 
   14512           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   14513            <!-- end of entry -->
   14514         
   14515         
   14516 
   14517       <!-- end of kind -->
   14518       </tbody>
   14519 
   14520   <!-- end of section -->
   14521   <tr><td colspan="6" id="section_scaler" class="section">scaler</td></tr>
   14522 
   14523 
   14524       <tr><td colspan="6" class="kind">controls</td></tr>
   14525 
   14526       <thead class="entries_header">
   14527         <tr>
   14528           <th class="th_name">Property Name</th>
   14529           <th class="th_type">Type</th>
   14530           <th class="th_description">Description</th>
   14531           <th class="th_units">Units</th>
   14532           <th class="th_range">Range</th>
   14533           <th class="th_tags">Tags</th>
   14534         </tr>
   14535       </thead>
   14536 
   14537       <tbody>
   14538 
   14539         
   14540 
   14541         
   14542 
   14543         
   14544 
   14545         
   14546 
   14547                 
   14548           <tr class="entry" id="controls_android.scaler.cropRegion">
   14549             <td class="entry_name
   14550              " rowspan="5">
   14551               android.<wbr/>scaler.<wbr/>crop<wbr/>Region
   14552             </td>
   14553             <td class="entry_type">
   14554                 <span class="entry_type_name">int32</span>
   14555                 <span class="entry_type_container">x</span>
   14556 
   14557                 <span class="entry_type_array">
   14558                   4
   14559                 </span>
   14560               <span class="entry_type_visibility"> [public as rectangle]</span>
   14561 
   14562 
   14563               <span class="entry_type_hwlevel">[legacy] </span>
   14564 
   14565 
   14566 
   14567 
   14568             </td> <!-- entry_type -->
   14569 
   14570             <td class="entry_description">
   14571               <p>The desired region of the sensor to read out for this capture.<wbr/></p>
   14572             </td>
   14573 
   14574             <td class="entry_units">
   14575               Pixel coordinates relative to
   14576           android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
   14577             </td>
   14578 
   14579             <td class="entry_range">
   14580             </td>
   14581 
   14582             <td class="entry_tags">
   14583               <ul class="entry_tags">
   14584                   <li><a href="#tag_BC">BC</a></li>
   14585               </ul>
   14586             </td>
   14587 
   14588           </tr>
   14589           <tr class="entries_header">
   14590             <th class="th_details" colspan="5">Details</th>
   14591           </tr>
   14592           <tr class="entry_cont">
   14593             <td class="entry_details" colspan="5">
   14594               <p>This control can be used to implement digital zoom.<wbr/></p>
   14595 <p>The crop region coordinate system is based off
   14596 <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
   14597 top-left corner of the sensor active array.<wbr/></p>
   14598 <p>Output streams use this rectangle to produce their output,<wbr/>
   14599 cropping to a smaller region if necessary to maintain the
   14600 stream's aspect ratio,<wbr/> then scaling the sensor input to
   14601 match the output's configured resolution.<wbr/></p>
   14602 <p>The crop region is applied after the RAW to other color
   14603 space (e.<wbr/>g.<wbr/> YUV) conversion.<wbr/> Since raw streams
   14604 (e.<wbr/>g.<wbr/> RAW16) don't have the conversion stage,<wbr/> they are not
   14605 croppable.<wbr/> The crop region will be ignored by raw streams.<wbr/></p>
   14606 <p>For non-raw streams,<wbr/> any additional per-stream cropping will
   14607 be done to maximize the final pixel area of the stream.<wbr/></p>
   14608 <p>For example,<wbr/> if the crop region is set to a 4:3 aspect
   14609 ratio,<wbr/> then 4:3 streams will use the exact crop
   14610 region.<wbr/> 16:9 streams will further crop vertically
   14611 (letterbox).<wbr/></p>
   14612 <p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
   14613 outputs will crop horizontally (pillarbox),<wbr/> and 16:9
   14614 streams will match exactly.<wbr/> These additional crops will
   14615 be centered within the crop region.<wbr/></p>
   14616 <p>The width and height of the crop region cannot
   14617 be set to be smaller than
   14618 <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
   14619 <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>
   14620 <p>The camera device may adjust the crop region to account
   14621 for rounding and other hardware requirements; the final
   14622 crop region used will be included in the output capture
   14623 result.<wbr/></p>
   14624             </td>
   14625           </tr>
   14626 
   14627           <tr class="entries_header">
   14628             <th class="th_details" colspan="5">HAL Implementation Details</th>
   14629           </tr>
   14630           <tr class="entry_cont">
   14631             <td class="entry_details" colspan="5">
   14632               <p>The output streams must maintain square pixels at all
   14633 times,<wbr/> no matter what the relative aspect ratios of the
   14634 crop region and the stream are.<wbr/>  Negative values for
   14635 corner are allowed for raw output if full pixel array is
   14636 larger than active pixel array.<wbr/> Width and height may be
   14637 rounded to nearest larger supportable width,<wbr/> especially
   14638 for raw output,<wbr/> where only a few fixed scales may be
   14639 possible.<wbr/></p>
   14640 <p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
   14641             </td>
   14642           </tr>
   14643 
   14644           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   14645            <!-- end of entry -->
   14646         
   14647         
   14648 
   14649       <!-- end of kind -->
   14650       </tbody>
   14651       <tr><td colspan="6" class="kind">static</td></tr>
   14652 
   14653       <thead class="entries_header">
   14654         <tr>
   14655           <th class="th_name">Property Name</th>
   14656           <th class="th_type">Type</th>
   14657           <th class="th_description">Description</th>
   14658           <th class="th_units">Units</th>
   14659           <th class="th_range">Range</th>
   14660           <th class="th_tags">Tags</th>
   14661         </tr>
   14662       </thead>
   14663 
   14664       <tbody>
   14665 
   14666         
   14667 
   14668         
   14669 
   14670         
   14671 
   14672         
   14673 
   14674                 
   14675           <tr class="entry" id="static_android.scaler.availableFormats">
   14676             <td class="entry_name
   14677                 entry_name_deprecated
   14678              " rowspan="5">
   14679               android.<wbr/>scaler.<wbr/>available<wbr/>Formats
   14680             </td>
   14681             <td class="entry_type">
   14682                 <span class="entry_type_name entry_type_name_enum">int32</span>
   14683                 <span class="entry_type_container">x</span>
   14684 
   14685                 <span class="entry_type_array">
   14686                   n
   14687                 </span>
   14688               <span class="entry_type_visibility"> [hidden as imageFormat]</span>
   14689 
   14690 
   14691 
   14692               <span class="entry_type_deprecated">[deprecated] </span>
   14693 
   14694 
   14695                 <ul class="entry_type_enum">
   14696                   <li>
   14697                     <span class="entry_type_enum_name">RAW16</span>
   14698                     <span class="entry_type_enum_optional">[optional]</span>
   14699                     <span class="entry_type_enum_value">0x20</span>
   14700                     <span class="entry_type_enum_notes"><p>RAW16 is a standard,<wbr/> cross-platform format for raw image
   14701 buffers with 16-bit pixels.<wbr/></p>
   14702 <p>Buffers of this format are typically expected to have a
   14703 Bayer Color Filter Array (CFA) layout,<wbr/> which is given in
   14704 <a href="#static_android.sensor.info.colorFilterArrangement">android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement</a>.<wbr/> Sensors with
   14705 CFAs that are not representable by a format in
   14706 <a href="#static_android.sensor.info.colorFilterArrangement">android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement</a> should not
   14707 use this format.<wbr/></p>
   14708 <p>Buffers of this format will also follow the constraints given for
   14709 RAW_<wbr/>OPAQUE buffers,<wbr/> but with relaxed performance constraints.<wbr/></p>
   14710 <p>See <a href="#static_android.scaler.availableInputOutputFormatsMap">android.<wbr/>scaler.<wbr/>available<wbr/>Input<wbr/>Output<wbr/>Formats<wbr/>Map</a> for
   14711 the full set of performance guarantees.<wbr/></p></span>
   14712                   </li>
   14713                   <li>
   14714                     <span class="entry_type_enum_name">RAW_OPAQUE</span>
   14715                     <span class="entry_type_enum_optional">[optional]</span>
   14716                     <span class="entry_type_enum_value">0x24</span>
   14717                     <span class="entry_type_enum_notes"><p>RAW_<wbr/>OPAQUE is a format for raw image buffers coming from an
   14718 image sensor.<wbr/></p>
   14719 <p>The actual structure of buffers of this format is
   14720 platform-specific,<wbr/> but must follow several constraints:</p>
   14721 <ol>
   14722 <li>No image post-processing operations may have been applied to
   14723 buffers of this type.<wbr/> These buffers contain raw image data coming
   14724 directly from the image sensor.<wbr/></li>
   14725 <li>If a buffer of this format is passed to the camera device for
   14726 reprocessing,<wbr/> the resulting images will be identical to the images
   14727 produced if the buffer had come directly from the sensor and was
   14728 processed with the same settings.<wbr/></li>
   14729 </ol>
   14730 <p>The intended use for this format is to allow access to the native
   14731 raw format buffers coming directly from the camera sensor without
   14732 any additional conversions or decrease in framerate.<wbr/></p>
   14733 <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
   14734 performance guarantees.<wbr/></p></span>
   14735                   </li>
   14736                   <li>
   14737                     <span class="entry_type_enum_name">YV12</span>
   14738                     <span class="entry_type_enum_optional">[optional]</span>
   14739                     <span class="entry_type_enum_value">0x32315659</span>
   14740                     <span class="entry_type_enum_notes"><p>YCrCb 4:2:0 Planar</p></span>
   14741                   </li>
   14742                   <li>
   14743                     <span class="entry_type_enum_name">YCrCb_420_SP</span>
   14744                     <span class="entry_type_enum_optional">[optional]</span>
   14745                     <span class="entry_type_enum_value">0x11</span>
   14746                     <span class="entry_type_enum_notes"><p>NV21</p></span>
   14747                   </li>
   14748                   <li>
   14749                     <span class="entry_type_enum_name">IMPLEMENTATION_DEFINED</span>
   14750                     <span class="entry_type_enum_value">0x22</span>
   14751                     <span class="entry_type_enum_notes"><p>System internal format,<wbr/> not application-accessible</p></span>
   14752                   </li>
   14753                   <li>
   14754                     <span class="entry_type_enum_name">YCbCr_420_888</span>
   14755                     <span class="entry_type_enum_value">0x23</span>
   14756                     <span class="entry_type_enum_notes"><p>Flexible YUV420 Format</p></span>
   14757                   </li>
   14758                   <li>
   14759                     <span class="entry_type_enum_name">BLOB</span>
   14760                     <span class="entry_type_enum_value">0x21</span>
   14761                     <span class="entry_type_enum_notes"><p>JPEG format</p></span>
   14762                   </li>
   14763                 </ul>
   14764 
   14765             </td> <!-- entry_type -->
   14766 
   14767             <td class="entry_description">
   14768               <p>The list of image formats that are supported by this
   14769 camera device for output streams.<wbr/></p>
   14770             </td>
   14771 
   14772             <td class="entry_units">
   14773             </td>
   14774 
   14775             <td class="entry_range">
   14776               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   14777             </td>
   14778 
   14779             <td class="entry_tags">
   14780               <ul class="entry_tags">
   14781                   <li><a href="#tag_BC">BC</a></li>
   14782               </ul>
   14783             </td>
   14784 
   14785           </tr>
   14786           <tr class="entries_header">
   14787             <th class="th_details" colspan="5">Details</th>
   14788           </tr>
   14789           <tr class="entry_cont">
   14790             <td class="entry_details" colspan="5">
   14791               <p>All camera devices will support JPEG and YUV_<wbr/>420_<wbr/>888 formats.<wbr/></p>
   14792 <p>When set to YUV_<wbr/>420_<wbr/>888,<wbr/> application can access the YUV420 data directly.<wbr/></p>
   14793             </td>
   14794           </tr>
   14795 
   14796           <tr class="entries_header">
   14797             <th class="th_details" colspan="5">HAL Implementation Details</th>
   14798           </tr>
   14799           <tr class="entry_cont">
   14800             <td class="entry_details" colspan="5">
   14801               <p>These format values are from HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>* in
   14802 system/<wbr/>core/<wbr/>include/<wbr/>system/<wbr/>graphics.<wbr/>h.<wbr/></p>
   14803 <p>When IMPLEMENTATION_<wbr/>DEFINED is used,<wbr/> the platform
   14804 gralloc module will select a format based on the usage flags provided
   14805 by the camera HAL device and the other endpoint of the stream.<wbr/> It is
   14806 usually used by preview and recording streams,<wbr/> where the application doesn't
   14807 need access the image data.<wbr/></p>
   14808 <p>YCb<wbr/>Cr_<wbr/>420_<wbr/>888 format must be supported by the HAL.<wbr/> When an image stream
   14809 needs CPU/<wbr/>application direct access,<wbr/> this format will be used.<wbr/></p>
   14810 <p>The BLOB format must be supported by the HAL.<wbr/> This is used for the JPEG stream.<wbr/></p>
   14811 <p>A RAW_<wbr/>OPAQUE buffer should contain only pixel data.<wbr/> It is strongly
   14812 recommended that any information used by the camera device when
   14813 processing images is fully expressed by the result metadata
   14814 for that image buffer.<wbr/></p>
   14815             </td>
   14816           </tr>
   14817 
   14818           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   14819            <!-- end of entry -->
   14820         
   14821                 
   14822           <tr class="entry" id="static_android.scaler.availableJpegMinDurations">
   14823             <td class="entry_name
   14824                 entry_name_deprecated
   14825              " rowspan="3">
   14826               android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations
   14827             </td>
   14828             <td class="entry_type">
   14829                 <span class="entry_type_name">int64</span>
   14830                 <span class="entry_type_container">x</span>
   14831 
   14832                 <span class="entry_type_array">
   14833                   n
   14834                 </span>
   14835               <span class="entry_type_visibility"> [hidden]</span>
   14836 
   14837 
   14838 
   14839               <span class="entry_type_deprecated">[deprecated] </span>
   14840 
   14841 
   14842 
   14843             </td> <!-- entry_type -->
   14844 
   14845             <td class="entry_description">
   14846               <p>The minimum frame duration that is supported
   14847 for each resolution in <a href="#static_android.scaler.availableJpegSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes</a>.<wbr/></p>
   14848             </td>
   14849 
   14850             <td class="entry_units">
   14851               Nanoseconds
   14852             </td>
   14853 
   14854             <td class="entry_range">
   14855               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   14856               <p>TODO: Remove property.<wbr/></p>
   14857             </td>
   14858 
   14859             <td class="entry_tags">
   14860               <ul class="entry_tags">
   14861                   <li><a href="#tag_BC">BC</a></li>
   14862               </ul>
   14863             </td>
   14864 
   14865           </tr>
   14866           <tr class="entries_header">
   14867             <th class="th_details" colspan="5">Details</th>
   14868           </tr>
   14869           <tr class="entry_cont">
   14870             <td class="entry_details" colspan="5">
   14871               <p>This corresponds to the minimum steady-state frame duration when only
   14872 that JPEG stream is active and captured in a burst,<wbr/> with all
   14873 processing (typically in android.<wbr/>*.<wbr/>mode) set to FAST.<wbr/></p>
   14874 <p>When multiple streams are configured,<wbr/> the minimum
   14875 frame duration will be &gt;= max(individual stream min
   14876 durations)</p>
   14877             </td>
   14878           </tr>
   14879 
   14880 
   14881           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   14882            <!-- end of entry -->
   14883         
   14884                 
   14885           <tr class="entry" id="static_android.scaler.availableJpegSizes">
   14886             <td class="entry_name
   14887                 entry_name_deprecated
   14888              " rowspan="5">
   14889               android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes
   14890             </td>
   14891             <td class="entry_type">
   14892                 <span class="entry_type_name">int32</span>
   14893                 <span class="entry_type_container">x</span>
   14894 
   14895                 <span class="entry_type_array">
   14896                   n x 2
   14897                 </span>
   14898               <span class="entry_type_visibility"> [hidden as size]</span>
   14899 
   14900 
   14901 
   14902               <span class="entry_type_deprecated">[deprecated] </span>
   14903 
   14904 
   14905 
   14906             </td> <!-- entry_type -->
   14907 
   14908             <td class="entry_description">
   14909               <p>The JPEG resolutions that are supported by this camera device.<wbr/></p>
   14910             </td>
   14911 
   14912             <td class="entry_units">
   14913             </td>
   14914 
   14915             <td class="entry_range">
   14916               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   14917               <p>TODO: Remove property.<wbr/></p>
   14918             </td>
   14919 
   14920             <td class="entry_tags">
   14921               <ul class="entry_tags">
   14922                   <li><a href="#tag_BC">BC</a></li>
   14923               </ul>
   14924             </td>
   14925 
   14926           </tr>
   14927           <tr class="entries_header">
   14928             <th class="th_details" colspan="5">Details</th>
   14929           </tr>
   14930           <tr class="entry_cont">
   14931             <td class="entry_details" colspan="5">
   14932               <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/> All camera devices will support
   14933 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>
   14934             </td>
   14935           </tr>
   14936 
   14937           <tr class="entries_header">
   14938             <th class="th_details" colspan="5">HAL Implementation Details</th>
   14939           </tr>
   14940           <tr class="entry_cont">
   14941             <td class="entry_details" colspan="5">
   14942               <p>The HAL must include sensor maximum resolution
   14943 (defined by <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>),<wbr/>
   14944 and should include half/<wbr/>quarter of sensor maximum resolution.<wbr/></p>
   14945             </td>
   14946           </tr>
   14947 
   14948           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   14949            <!-- end of entry -->
   14950         
   14951                 
   14952           <tr class="entry" id="static_android.scaler.availableMaxDigitalZoom">
   14953             <td class="entry_name
   14954              " rowspan="3">
   14955               android.<wbr/>scaler.<wbr/>available<wbr/>Max<wbr/>Digital<wbr/>Zoom
   14956             </td>
   14957             <td class="entry_type">
   14958                 <span class="entry_type_name">float</span>
   14959 
   14960               <span class="entry_type_visibility"> [public]</span>
   14961 
   14962 
   14963               <span class="entry_type_hwlevel">[legacy] </span>
   14964 
   14965 
   14966 
   14967 
   14968             </td> <!-- entry_type -->
   14969 
   14970             <td class="entry_description">
   14971               <p>The maximum ratio between both active area width
   14972 and crop region width,<wbr/> and active area height and
   14973 crop region height,<wbr/> for <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>.<wbr/></p>
   14974             </td>
   14975 
   14976             <td class="entry_units">
   14977               Zoom scale factor
   14978             </td>
   14979 
   14980             <td class="entry_range">
   14981               <p>&gt;=1</p>
   14982             </td>
   14983 
   14984             <td class="entry_tags">
   14985               <ul class="entry_tags">
   14986                   <li><a href="#tag_BC">BC</a></li>
   14987               </ul>
   14988             </td>
   14989 
   14990           </tr>
   14991           <tr class="entries_header">
   14992             <th class="th_details" colspan="5">Details</th>
   14993           </tr>
   14994           <tr class="entry_cont">
   14995             <td class="entry_details" colspan="5">
   14996               <p>This represents the maximum amount of zooming possible by
   14997 the camera device,<wbr/> or equivalently,<wbr/> the minimum cropping
   14998 window size.<wbr/></p>
   14999 <p>Crop regions that have a width or height that is smaller
   15000 than this ratio allows will be rounded up to the minimum
   15001 allowed size by the camera device.<wbr/></p>
   15002             </td>
   15003           </tr>
   15004 
   15005 
   15006           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   15007            <!-- end of entry -->
   15008         
   15009                 
   15010           <tr class="entry" id="static_android.scaler.availableProcessedMinDurations">
   15011             <td class="entry_name
   15012                 entry_name_deprecated
   15013              " rowspan="3">
   15014               android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations
   15015             </td>
   15016             <td class="entry_type">
   15017                 <span class="entry_type_name">int64</span>
   15018                 <span class="entry_type_container">x</span>
   15019 
   15020                 <span class="entry_type_array">
   15021                   n
   15022                 </span>
   15023               <span class="entry_type_visibility"> [hidden]</span>
   15024 
   15025 
   15026 
   15027               <span class="entry_type_deprecated">[deprecated] </span>
   15028 
   15029 
   15030 
   15031             </td> <!-- entry_type -->
   15032 
   15033             <td class="entry_description">
   15034               <p>For each available processed output size (defined in
   15035 <a href="#static_android.scaler.availableProcessedSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes</a>),<wbr/> this property lists the
   15036 minimum supportable frame duration for that size.<wbr/></p>
   15037             </td>
   15038 
   15039             <td class="entry_units">
   15040               Nanoseconds
   15041             </td>
   15042 
   15043             <td class="entry_range">
   15044               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   15045             </td>
   15046 
   15047             <td class="entry_tags">
   15048               <ul class="entry_tags">
   15049                   <li><a href="#tag_BC">BC</a></li>
   15050               </ul>
   15051             </td>
   15052 
   15053           </tr>
   15054           <tr class="entries_header">
   15055             <th class="th_details" colspan="5">Details</th>
   15056           </tr>
   15057           <tr class="entry_cont">
   15058             <td class="entry_details" colspan="5">
   15059               <p>This should correspond to the frame duration when only that processed
   15060 stream is active,<wbr/> with all processing (typically in android.<wbr/>*.<wbr/>mode)
   15061 set to FAST.<wbr/></p>
   15062 <p>When multiple streams are configured,<wbr/> the minimum frame duration will
   15063 be &gt;= max(individual stream min durations).<wbr/></p>
   15064             </td>
   15065           </tr>
   15066 
   15067 
   15068           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   15069            <!-- end of entry -->
   15070         
   15071                 
   15072           <tr class="entry" id="static_android.scaler.availableProcessedSizes">
   15073             <td class="entry_name
   15074                 entry_name_deprecated
   15075              " rowspan="5">
   15076               android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes
   15077             </td>
   15078             <td class="entry_type">
   15079                 <span class="entry_type_name">int32</span>
   15080                 <span class="entry_type_container">x</span>
   15081 
   15082                 <span class="entry_type_array">
   15083                   n x 2
   15084                 </span>
   15085               <span class="entry_type_visibility"> [hidden as size]</span>
   15086 
   15087 
   15088 
   15089               <span class="entry_type_deprecated">[deprecated] </span>
   15090 
   15091 
   15092 
   15093             </td> <!-- entry_type -->
   15094 
   15095             <td class="entry_description">
   15096               <p>The resolutions available for use with
   15097 processed output streams,<wbr/> such as YV12,<wbr/> NV12,<wbr/> and
   15098 platform opaque YUV/<wbr/>RGB streams to the GPU or video
   15099 encoders.<wbr/></p>
   15100             </td>
   15101 
   15102             <td class="entry_units">
   15103             </td>
   15104 
   15105             <td class="entry_range">
   15106               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   15107             </td>
   15108 
   15109             <td class="entry_tags">
   15110               <ul class="entry_tags">
   15111                   <li><a href="#tag_BC">BC</a></li>
   15112               </ul>
   15113             </td>
   15114 
   15115           </tr>
   15116           <tr class="entries_header">
   15117             <th class="th_details" colspan="5">Details</th>
   15118           </tr>
   15119           <tr class="entry_cont">
   15120             <td class="entry_details" colspan="5">
   15121               <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/></p>
   15122 <p>For a given use case,<wbr/> the actual maximum supported resolution
   15123 may be lower than what is listed here,<wbr/> depending on the destination
   15124 Surface for the image data.<wbr/> For example,<wbr/> for recording video,<wbr/>
   15125 the video encoder chosen may have a maximum size limit (e.<wbr/>g.<wbr/> 1080p)
   15126 smaller than what the camera (e.<wbr/>g.<wbr/> maximum resolution is 3264x2448)
   15127 can provide.<wbr/></p>
   15128 <p>Please reference the documentation for the image data destination to
   15129 check if it limits the maximum size for image data.<wbr/></p>
   15130             </td>
   15131           </tr>
   15132 
   15133           <tr class="entries_header">
   15134             <th class="th_details" colspan="5">HAL Implementation Details</th>
   15135           </tr>
   15136           <tr class="entry_cont">
   15137             <td class="entry_details" colspan="5">
   15138               <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/>
   15139 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>
   15140 and each below resolution if it is smaller than or equal to the sensor
   15141 maximum resolution (if they are not listed in JPEG sizes already):</p>
   15142 <ul>
   15143 <li>240p (320 x 240)</li>
   15144 <li>480p (640 x 480)</li>
   15145 <li>720p (1280 x 720)</li>
   15146 <li>1080p (1920 x 1080)</li>
   15147 </ul>
   15148 <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/>
   15149 the HAL only has to list up to the maximum video size supported by the devices.<wbr/></p>
   15150             </td>
   15151           </tr>
   15152 
   15153           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   15154            <!-- end of entry -->
   15155         
   15156                 
   15157           <tr class="entry" id="static_android.scaler.availableRawMinDurations">
   15158             <td class="entry_name
   15159                 entry_name_deprecated
   15160              " rowspan="3">
   15161               android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations
   15162             </td>
   15163             <td class="entry_type">
   15164                 <span class="entry_type_name">int64</span>
   15165                 <span class="entry_type_container">x</span>
   15166 
   15167                 <span class="entry_type_array">
   15168                   n
   15169                 </span>
   15170               <span class="entry_type_visibility"> [system]</span>
   15171 
   15172 
   15173 
   15174               <span class="entry_type_deprecated">[deprecated] </span>
   15175 
   15176 
   15177 
   15178             </td> <!-- entry_type -->
   15179 
   15180             <td class="entry_description">
   15181               <p>For each available raw output size (defined in
   15182 <a href="#static_android.scaler.availableRawSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes</a>),<wbr/> this property lists the minimum
   15183 supportable frame duration for that size.<wbr/></p>
   15184             </td>
   15185 
   15186             <td class="entry_units">
   15187               Nanoseconds
   15188             </td>
   15189 
   15190             <td class="entry_range">
   15191               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   15192             </td>
   15193 
   15194             <td class="entry_tags">
   15195               <ul class="entry_tags">
   15196                   <li><a href="#tag_BC">BC</a></li>
   15197               </ul>
   15198             </td>
   15199 
   15200           </tr>
   15201           <tr class="entries_header">
   15202             <th class="th_details" colspan="5">Details</th>
   15203           </tr>
   15204           <tr class="entry_cont">
   15205             <td class="entry_details" colspan="5">
   15206               <p>Should correspond to the frame duration when only the raw stream is
   15207 active.<wbr/></p>
   15208 <p>When multiple streams are configured,<wbr/> the minimum
   15209 frame duration will be &gt;= max(individual stream min
   15210 durations)</p>
   15211             </td>
   15212           </tr>
   15213 
   15214 
   15215           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   15216            <!-- end of entry -->
   15217         
   15218                 
   15219           <tr class="entry" id="static_android.scaler.availableRawSizes">
   15220             <td class="entry_name
   15221                 entry_name_deprecated
   15222              " rowspan="1">
   15223               android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes
   15224             </td>
   15225             <td class="entry_type">
   15226                 <span class="entry_type_name">int32</span>
   15227                 <span class="entry_type_container">x</span>
   15228 
   15229                 <span class="entry_type_array">
   15230                   n x 2
   15231                 </span>
   15232               <span class="entry_type_visibility"> [system as size]</span>
   15233 
   15234 
   15235 
   15236               <span class="entry_type_deprecated">[deprecated] </span>
   15237 
   15238 
   15239 
   15240             </td> <!-- entry_type -->
   15241 
   15242             <td class="entry_description">
   15243               <p>The resolutions available for use with raw
   15244 sensor output streams,<wbr/> listed as width,<wbr/>
   15245 height</p>
   15246             </td>
   15247 
   15248             <td class="entry_units">
   15249             </td>
   15250 
   15251             <td class="entry_range">
   15252               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   15253             </td>
   15254 
   15255             <td class="entry_tags">
   15256             </td>
   15257 
   15258           </tr>
   15259 
   15260 
   15261           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   15262            <!-- end of entry -->
   15263         
   15264                 
   15265           <tr class="entry" id="static_android.scaler.availableInputOutputFormatsMap">
   15266             <td class="entry_name
   15267              " rowspan="5">
   15268               android.<wbr/>scaler.<wbr/>available<wbr/>Input<wbr/>Output<wbr/>Formats<wbr/>Map
   15269             </td>
   15270             <td class="entry_type">
   15271                 <span class="entry_type_name">int32</span>
   15272                 <span class="entry_type_container">x</span>
   15273 
   15274                 <span class="entry_type_array">
   15275                   n
   15276                 </span>
   15277               <span class="entry_type_visibility"> [hidden as imageFormat]</span>
   15278 
   15279 
   15280               <span class="entry_type_hwlevel">[full] </span>
   15281 
   15282 
   15283 
   15284 
   15285             </td> <!-- entry_type -->
   15286 
   15287             <td class="entry_description">
   15288               <p>The mapping of image formats that are supported by this
   15289 camera device for input streams,<wbr/> to their corresponding output formats.<wbr/></p>
   15290             </td>
   15291 
   15292             <td class="entry_units">
   15293             </td>
   15294 
   15295             <td class="entry_range">
   15296             </td>
   15297 
   15298             <td class="entry_tags">
   15299             </td>
   15300 
   15301           </tr>
   15302           <tr class="entries_header">
   15303             <th class="th_details" colspan="5">Details</th>
   15304           </tr>
   15305           <tr class="entry_cont">
   15306             <td class="entry_details" colspan="5">
   15307               <p>All camera devices with at least 1
   15308 <a href="#static_android.request.maxNumInputStreams">android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Input<wbr/>Streams</a> will have at least one
   15309 available input format.<wbr/></p>
   15310 <p>The camera device will support the following map of formats,<wbr/>
   15311 if its dependent capability is supported:</p>
   15312 <table>
   15313 <thead>
   15314 <tr>
   15315 <th align="left">Input Format</th>
   15316 <th align="left">Output Format</th>
   15317 <th align="left">Capability</th>
   15318 </tr>
   15319 </thead>
   15320 <tbody>
   15321 <tr>
   15322 <td align="left">RAW_<wbr/>OPAQUE</td>
   15323 <td align="left">JPEG</td>
   15324 <td align="left">ZSL</td>
   15325 </tr>
   15326 <tr>
   15327 <td align="left">RAW_<wbr/>OPAQUE</td>
   15328 <td align="left">YUV_<wbr/>420_<wbr/>888</td>
   15329 <td align="left">ZSL</td>
   15330 </tr>
   15331 <tr>
   15332 <td align="left">RAW_<wbr/>OPAQUE</td>
   15333 <td align="left">RAW16</td>
   15334 <td align="left">RAW</td>
   15335 </tr>
   15336 <tr>
   15337 <td align="left">RAW16</td>
   15338 <td align="left">YUV_<wbr/>420_<wbr/>888</td>
   15339 <td align="left">RAW</td>
   15340 </tr>
   15341 <tr>
   15342 <td align="left">RAW16</td>
   15343 <td align="left">JPEG</td>
   15344 <td align="left">RAW</td>
   15345 </tr>
   15346 </tbody>
   15347 </table>
   15348 <p>For ZSL-capable camera devices,<wbr/> using the RAW_<wbr/>OPAQUE format
   15349 as either input or output will never hurt maximum frame rate (i.<wbr/>e.<wbr/>
   15350 Stream<wbr/>Configuration<wbr/>Map#get<wbr/>Output<wbr/>Stall<wbr/>Duration(int,<wbr/>Size)
   15351 for a <code>format =</code> RAW_<wbr/>OPAQUE is always 0).<wbr/></p>
   15352 <p>Attempting to configure an input stream with output streams not
   15353 listed as available in this map is not valid.<wbr/></p>
   15354 <p>TODO: typedef to ReprocessFormatMap</p>
   15355             </td>
   15356           </tr>
   15357 
   15358           <tr class="entries_header">
   15359             <th class="th_details" colspan="5">HAL Implementation Details</th>
   15360           </tr>
   15361           <tr class="entry_cont">
   15362             <td class="entry_details" colspan="5">
   15363               <p>For the formats,<wbr/> see <code>system/<wbr/>core/<wbr/>include/<wbr/>system/<wbr/>graphics.<wbr/>h</code> for a definition
   15364 of the image format enumerations.<wbr/></p>
   15365 <p>This value is encoded as a variable-size array-of-arrays.<wbr/>
   15366 The inner array always contains <code>[format,<wbr/> length,<wbr/> ...<wbr/>]</code> where
   15367 <code>...<wbr/></code> has <code>length</code> elements.<wbr/> An inner array is followed by another
   15368 inner array if the total metadata entry size hasn't yet been exceeded.<wbr/></p>
   15369 <p>A code sample to read/<wbr/>write this encoding (with a device that
   15370 supports reprocessing RAW_<wbr/>OPAQUE to RAW16,<wbr/> YUV_<wbr/>420_<wbr/>888,<wbr/> and JPEG,<wbr/>
   15371 and reprocessing RAW16 to YUV_<wbr/>420_<wbr/>888 and JPEG):</p>
   15372 <pre><code>//<wbr/> reading
   15373 int32_<wbr/>t* contents = &amp;entry.<wbr/>i32[0];
   15374 for (size_<wbr/>t i = 0; i &lt; entry.<wbr/>count; ) {
   15375     int32_<wbr/>t format = contents[i++];
   15376     int32_<wbr/>t length = contents[i++];
   15377     int32_<wbr/>t output_<wbr/>formats[length];
   15378     memcpy(&amp;output_<wbr/>formats[0],<wbr/> &amp;contents[i],<wbr/>
   15379            length * sizeof(int32_<wbr/>t));
   15380     i += length;
   15381 }
   15382 
   15383 //<wbr/> writing (static example,<wbr/> RAW+ZSL)
   15384 int32_<wbr/>t[] contents = {
   15385   RAW_<wbr/>OPAQUE,<wbr/> 3,<wbr/> RAW16,<wbr/> YUV_<wbr/>420_<wbr/>888,<wbr/> BLOB,<wbr/>
   15386   RAW16,<wbr/> 2,<wbr/> YUV_<wbr/>420_<wbr/>888,<wbr/> BLOB,<wbr/>
   15387 };
   15388 update_<wbr/>camera_<wbr/>metadata_<wbr/>entry(metadata,<wbr/> index,<wbr/> &amp;contents[0],<wbr/>
   15389       sizeof(contents)/<wbr/>sizeof(contents[0]),<wbr/> &amp;updated_<wbr/>entry);
   15390 </code></pre>
   15391 <p>If the HAL claims to support any of the capabilities listed in the
   15392 above details,<wbr/> then it must also support all the input-output
   15393 combinations listed for that capability.<wbr/> It can optionally support
   15394 additional formats if it so chooses.<wbr/></p>
   15395 <p>Refer to <a href="#static_android.scaler.availableFormats">android.<wbr/>scaler.<wbr/>available<wbr/>Formats</a> for the enum values
   15396 which correspond to HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>* in
   15397 system/<wbr/>core/<wbr/>include/<wbr/>system/<wbr/>graphics.<wbr/>h.<wbr/></p>
   15398             </td>
   15399           </tr>
   15400 
   15401           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   15402            <!-- end of entry -->
   15403         
   15404                 
   15405           <tr class="entry" id="static_android.scaler.availableStreamConfigurations">
   15406             <td class="entry_name
   15407              " rowspan="5">
   15408               android.<wbr/>scaler.<wbr/>available<wbr/>Stream<wbr/>Configurations
   15409             </td>
   15410             <td class="entry_type">
   15411                 <span class="entry_type_name entry_type_name_enum">int32</span>
   15412                 <span class="entry_type_container">x</span>
   15413 
   15414                 <span class="entry_type_array">
   15415                   n x 4
   15416                 </span>
   15417               <span class="entry_type_visibility"> [hidden as streamConfiguration]</span>
   15418 
   15419 
   15420               <span class="entry_type_hwlevel">[legacy] </span>
   15421 
   15422 
   15423 
   15424                 <ul class="entry_type_enum">
   15425                   <li>
   15426                     <span class="entry_type_enum_name">OUTPUT</span>
   15427                   </li>
   15428                   <li>
   15429                     <span class="entry_type_enum_name">INPUT</span>
   15430                   </li>
   15431                 </ul>
   15432 
   15433             </td> <!-- entry_type -->
   15434 
   15435             <td class="entry_description">
   15436               <p>The available stream configurations that this
   15437 camera device supports
   15438 (i.<wbr/>e.<wbr/> format,<wbr/> width,<wbr/> height,<wbr/> output/<wbr/>input stream).<wbr/></p>
   15439             </td>
   15440 
   15441             <td class="entry_units">
   15442             </td>
   15443 
   15444             <td class="entry_range">
   15445             </td>
   15446 
   15447             <td class="entry_tags">
   15448             </td>
   15449 
   15450           </tr>
   15451           <tr class="entries_header">
   15452             <th class="th_details" colspan="5">Details</th>
   15453           </tr>
   15454           <tr class="entry_cont">
   15455             <td class="entry_details" colspan="5">
   15456               <p>The configurations are listed as <code>(format,<wbr/> width,<wbr/> height,<wbr/> input?)</code>
   15457 tuples.<wbr/></p>
   15458 <p>For a given use case,<wbr/> the actual maximum supported resolution
   15459 may be lower than what is listed here,<wbr/> depending on the destination
   15460 Surface for the image data.<wbr/> For example,<wbr/> for recording video,<wbr/>
   15461 the video encoder chosen may have a maximum size limit (e.<wbr/>g.<wbr/> 1080p)
   15462 smaller than what the camera (e.<wbr/>g.<wbr/> maximum resolution is 3264x2448)
   15463 can provide.<wbr/></p>
   15464 <p>Please reference the documentation for the image data destination to
   15465 check if it limits the maximum size for image data.<wbr/></p>
   15466 <p>Not all output formats may be supported in a configuration with
   15467 an input stream of a particular format.<wbr/> For more details,<wbr/> see
   15468 <a href="#static_android.scaler.availableInputOutputFormatsMap">android.<wbr/>scaler.<wbr/>available<wbr/>Input<wbr/>Output<wbr/>Formats<wbr/>Map</a>.<wbr/></p>
   15469 <p>The following table describes the minimum required output stream
   15470 configurations based on the hardware level
   15471 (<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a>):</p>
   15472 <table>
   15473 <thead>
   15474 <tr>
   15475 <th align="center">Format</th>
   15476 <th align="center">Size</th>
   15477 <th align="center">Hardware Level</th>
   15478 <th align="center">Notes</th>
   15479 </tr>
   15480 </thead>
   15481 <tbody>
   15482 <tr>
   15483 <td align="center">JPEG</td>
   15484 <td align="center"><a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></td>
   15485 <td align="center">Any</td>
   15486 <td align="center"></td>
   15487 </tr>
   15488 <tr>
   15489 <td align="center">JPEG</td>
   15490 <td align="center">1920x1080 (1080p)</td>
   15491 <td align="center">Any</td>
   15492 <td align="center">if 1080p &lt;= activeArraySize</td>
   15493 </tr>
   15494 <tr>
   15495 <td align="center">JPEG</td>
   15496 <td align="center">1280x720 (720)</td>
   15497 <td align="center">Any</td>
   15498 <td align="center">if 720p &lt;= activeArraySize</td>
   15499 </tr>
   15500 <tr>
   15501 <td align="center">JPEG</td>
   15502 <td align="center">640x480 (480p)</td>
   15503 <td align="center">Any</td>
   15504 <td align="center">if 480p &lt;= activeArraySize</td>
   15505 </tr>
   15506 <tr>
   15507 <td align="center">JPEG</td>
   15508 <td align="center">320x240 (240p)</td>
   15509 <td align="center">Any</td>
   15510 <td align="center">if 240p &lt;= activeArraySize</td>
   15511 </tr>
   15512 <tr>
   15513 <td align="center">YUV_<wbr/>420_<wbr/>888</td>
   15514 <td align="center">all output sizes available for JPEG</td>
   15515 <td align="center">FULL</td>
   15516 <td align="center"></td>
   15517 </tr>
   15518 <tr>
   15519 <td align="center">YUV_<wbr/>420_<wbr/>888</td>
   15520 <td align="center">all output sizes available for JPEG,<wbr/> up to the maximum video size</td>
   15521 <td align="center">LIMITED</td>
   15522 <td align="center"></td>
   15523 </tr>
   15524 <tr>
   15525 <td align="center">IMPLEMENTATION_<wbr/>DEFINED</td>
   15526 <td align="center">same as YUV_<wbr/>420_<wbr/>888</td>
   15527 <td align="center">Any</td>
   15528 <td align="center"></td>
   15529 </tr>
   15530 </tbody>
   15531 </table>
   15532 <p>Refer to <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> for additional
   15533 mandatory stream configurations on a per-capability basis.<wbr/></p>
   15534             </td>
   15535           </tr>
   15536 
   15537           <tr class="entries_header">
   15538             <th class="th_details" colspan="5">HAL Implementation Details</th>
   15539           </tr>
   15540           <tr class="entry_cont">
   15541             <td class="entry_details" colspan="5">
   15542               <p>It is recommended (but not mandatory) to also include half/<wbr/>quarter
   15543 of sensor maximum resolution for JPEG formats (regardless of hardware
   15544 level).<wbr/></p>
   15545 <p>(The following is a rewording of the above required table):</p>
   15546 <p>For JPEG format,<wbr/> the sizes may be restricted by below conditions:</p>
   15547 <ul>
   15548 <li>The HAL may choose the aspect ratio of each Jpeg size to be one of well known ones
   15549 (e.<wbr/>g.<wbr/> 4:3,<wbr/> 16:9,<wbr/> 3:2 etc.<wbr/>).<wbr/> If the sensor maximum resolution
   15550 (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/>
   15551 it does not have to be included in the supported JPEG sizes.<wbr/></li>
   15552 <li>Some hardware JPEG encoders may have pixel boundary alignment requirements,<wbr/> such as
   15553 the dimensions being a multiple of 16.<wbr/></li>
   15554 </ul>
   15555 <p>Therefore,<wbr/> the maximum JPEG size may be smaller than sensor maximum resolution.<wbr/>
   15556 However,<wbr/> the largest JPEG size must be as close as possible to the sensor maximum
   15557 resolution given above constraints.<wbr/> It is required that after aspect ratio adjustments,<wbr/>
   15558 additional size reduction due to other issues must be less than 3% in area.<wbr/> For example,<wbr/>
   15559 if the sensor maximum resolution is 3280x2464,<wbr/> if the maximum JPEG size has aspect
   15560 ratio 4:3,<wbr/> the JPEG encoder alignment requirement is 16,<wbr/> the maximum JPEG size will be
   15561 3264x2448.<wbr/></p>
   15562 <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/>
   15563 the HAL must include all YUV_<wbr/>420_<wbr/>888 sizes that have JPEG sizes listed
   15564 here as output streams.<wbr/></p>
   15565 <p>It must also include each below resolution if it is smaller than or
   15566 equal to the sensor maximum resolution (for both YUV_<wbr/>420_<wbr/>888 and JPEG
   15567 formats),<wbr/> as output streams:</p>
   15568 <ul>
   15569 <li>240p (320 x 240)</li>
   15570 <li>480p (640 x 480)</li>
   15571 <li>720p (1280 x 720)</li>
   15572 <li>1080p (1920 x 1080)</li>
   15573 </ul>
   15574 <p>For LIMITED capability devices
   15575 (<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == LIMITED</code>),<wbr/>
   15576 the HAL only has to list up to the maximum video size
   15577 supported by the device.<wbr/></p>
   15578 <p>Regardless of hardware level,<wbr/> every output resolution available for
   15579 YUV_<wbr/>420_<wbr/>888 must also be available for IMPLEMENTATION_<wbr/>DEFINED.<wbr/></p>
   15580 <p>This supercedes the following fields,<wbr/> which are now deprecated:</p>
   15581 <ul>
   15582 <li>availableFormats</li>
   15583 <li>available[Processed,<wbr/>Raw,<wbr/>Jpeg]Sizes</li>
   15584 </ul>
   15585             </td>
   15586           </tr>
   15587 
   15588           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   15589            <!-- end of entry -->
   15590         
   15591                 
   15592           <tr class="entry" id="static_android.scaler.availableMinFrameDurations">
   15593             <td class="entry_name
   15594              " rowspan="3">
   15595               android.<wbr/>scaler.<wbr/>available<wbr/>Min<wbr/>Frame<wbr/>Durations
   15596             </td>
   15597             <td class="entry_type">
   15598                 <span class="entry_type_name">int64</span>
   15599                 <span class="entry_type_container">x</span>
   15600 
   15601                 <span class="entry_type_array">
   15602                   4 x n
   15603                 </span>
   15604               <span class="entry_type_visibility"> [hidden as streamConfigurationDuration]</span>
   15605 
   15606 
   15607               <span class="entry_type_hwlevel">[legacy] </span>
   15608 
   15609 
   15610 
   15611 
   15612             </td> <!-- entry_type -->
   15613 
   15614             <td class="entry_description">
   15615               <p>This lists the minimum frame duration for each
   15616 format/<wbr/>size combination.<wbr/></p>
   15617             </td>
   15618 
   15619             <td class="entry_units">
   15620               (format,<wbr/> width,<wbr/> height,<wbr/> ns) x n
   15621             </td>
   15622 
   15623             <td class="entry_range">
   15624             </td>
   15625 
   15626             <td class="entry_tags">
   15627               <ul class="entry_tags">
   15628                   <li><a href="#tag_V1">V1</a></li>
   15629               </ul>
   15630             </td>
   15631 
   15632           </tr>
   15633           <tr class="entries_header">
   15634             <th class="th_details" colspan="5">Details</th>
   15635           </tr>
   15636           <tr class="entry_cont">
   15637             <td class="entry_details" colspan="5">
   15638               <p>This should correspond to the frame duration when only that
   15639 stream is active,<wbr/> with all processing (typically in android.<wbr/>*.<wbr/>mode)
   15640 set to either OFF or FAST.<wbr/></p>
   15641 <p>When multiple streams are used in a request,<wbr/> the minimum frame
   15642 duration will be max(individual stream min durations).<wbr/></p>
   15643 <p>The minimum frame duration of a stream (of a particular format,<wbr/> size)
   15644 is the same regardless of whether the stream is input or output.<wbr/></p>
   15645 <p>See <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> and
   15646 <a href="#static_android.scaler.availableStallDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stall<wbr/>Durations</a> for more details about
   15647 calculating the max frame rate.<wbr/></p>
   15648 <p>(Keep in sync with
   15649 StreamConfigurationMap#getOutputMinFrameDuration)</p>
   15650             </td>
   15651           </tr>
   15652 
   15653 
   15654           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   15655            <!-- end of entry -->
   15656         
   15657                 
   15658           <tr class="entry" id="static_android.scaler.availableStallDurations">
   15659             <td class="entry_name
   15660              " rowspan="5">
   15661               android.<wbr/>scaler.<wbr/>available<wbr/>Stall<wbr/>Durations
   15662             </td>
   15663             <td class="entry_type">
   15664                 <span class="entry_type_name">int64</span>
   15665                 <span class="entry_type_container">x</span>
   15666 
   15667                 <span class="entry_type_array">
   15668                   4 x n
   15669                 </span>
   15670               <span class="entry_type_visibility"> [hidden as streamConfigurationDuration]</span>
   15671 
   15672 
   15673               <span class="entry_type_hwlevel">[legacy] </span>
   15674 
   15675 
   15676 
   15677 
   15678             </td> <!-- entry_type -->
   15679 
   15680             <td class="entry_description">
   15681               <p>This lists the maximum stall duration for each
   15682 format/<wbr/>size combination.<wbr/></p>
   15683             </td>
   15684 
   15685             <td class="entry_units">
   15686               (format,<wbr/> width,<wbr/> height,<wbr/> ns) x n
   15687             </td>
   15688 
   15689             <td class="entry_range">
   15690             </td>
   15691 
   15692             <td class="entry_tags">
   15693               <ul class="entry_tags">
   15694                   <li><a href="#tag_V1">V1</a></li>
   15695               </ul>
   15696             </td>
   15697 
   15698           </tr>
   15699           <tr class="entries_header">
   15700             <th class="th_details" colspan="5">Details</th>
   15701           </tr>
   15702           <tr class="entry_cont">
   15703             <td class="entry_details" colspan="5">
   15704               <p>A stall duration is how much extra time would get added
   15705 to the normal minimum frame duration for a repeating request
   15706 that has streams with non-zero stall.<wbr/></p>
   15707 <p>For example,<wbr/> consider JPEG captures which have the following
   15708 characteristics:</p>
   15709 <ul>
   15710 <li>JPEG streams act like processed YUV streams in requests for which
   15711 they are not included; in requests in which they are directly
   15712 referenced,<wbr/> they act as JPEG streams.<wbr/> This is because supporting a
   15713 JPEG stream requires the underlying YUV data to always be ready for
   15714 use by a JPEG encoder,<wbr/> but the encoder will only be used (and impact
   15715 frame duration) on requests that actually reference a JPEG stream.<wbr/></li>
   15716 <li>The JPEG processor can run concurrently to the rest of the camera
   15717 pipeline,<wbr/> but cannot process more than 1 capture at a time.<wbr/></li>
   15718 </ul>
   15719 <p>In other words,<wbr/> using a repeating YUV request would result
   15720 in a steady frame rate (let's say it's 30 FPS).<wbr/> If a single
   15721 JPEG request is submitted periodically,<wbr/> the frame rate will stay
   15722 at 30 FPS (as long as we wait for the previous JPEG to return each
   15723 time).<wbr/> If we try to submit a repeating YUV + JPEG request,<wbr/> then
   15724 the frame rate will drop from 30 FPS.<wbr/></p>
   15725 <p>In general,<wbr/> submitting a new request with a non-0 stall time
   15726 stream will <em>not</em> cause a frame rate drop unless there are still
   15727 outstanding buffers for that stream from previous requests.<wbr/></p>
   15728 <p>Submitting a repeating request with streams (call this <code>S</code>)
   15729 is the same as setting the minimum frame duration from
   15730 the normal minimum frame duration corresponding to <code>S</code>,<wbr/> added with
   15731 the maximum stall duration for <code>S</code>.<wbr/></p>
   15732 <p>If interleaving requests with and without a stall duration,<wbr/>
   15733 a request will stall by the maximum of the remaining times
   15734 for each can-stall stream with outstanding buffers.<wbr/></p>
   15735 <p>This means that a stalling request will not have an exposure start
   15736 until the stall has completed.<wbr/></p>
   15737 <p>This should correspond to the stall duration when only that stream is
   15738 active,<wbr/> with all processing (typically in android.<wbr/>*.<wbr/>mode) set to FAST
   15739 or OFF.<wbr/> Setting any of the processing modes to HIGH_<wbr/>QUALITY
   15740 effectively results in an indeterminate stall duration for all
   15741 streams in a request (the regular stall calculation rules are
   15742 ignored).<wbr/></p>
   15743 <p>The following formats may always have a stall duration:</p>
   15744 <ul>
   15745 <li>ImageFormat#JPEG</li>
   15746 <li>ImageFormat#RAW_<wbr/>SENSOR</li>
   15747 </ul>
   15748 <p>The following formats will never have a stall duration:</p>
   15749 <ul>
   15750 <li>Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</li>
   15751 </ul>
   15752 <p>All other formats may or may not have an allowed stall duration on
   15753 a per-capability basis; refer to <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>
   15754 for more details.<wbr/></p>
   15755 <p>See <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> for more information about
   15756 calculating the max frame rate (absent stalls).<wbr/></p>
   15757 <p>(Keep up to date with
   15758 StreamConfigurationMap#getOutputStallDuration(int,<wbr/> Size) )</p>
   15759             </td>
   15760           </tr>
   15761 
   15762           <tr class="entries_header">
   15763             <th class="th_details" colspan="5">HAL Implementation Details</th>
   15764           </tr>
   15765           <tr class="entry_cont">
   15766             <td class="entry_details" colspan="5">
   15767               <p>If possible,<wbr/> it is recommended that all non-JPEG formats
   15768 (such as RAW16) should not have a stall duration.<wbr/> RAW10,<wbr/> RAW_<wbr/>OPAQUE and
   15769 IMPLEMENTATION_<wbr/>DEFINED must not have stall durations.<wbr/></p>
   15770             </td>
   15771           </tr>
   15772 
   15773           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   15774            <!-- end of entry -->
   15775         
   15776                 
   15777           <tr class="entry" id="static_android.scaler.streamConfigurationMap">
   15778             <td class="entry_name
   15779              " rowspan="5">
   15780               android.<wbr/>scaler.<wbr/>stream<wbr/>Configuration<wbr/>Map
   15781             </td>
   15782             <td class="entry_type">
   15783                 <span class="entry_type_name">int32</span>
   15784 
   15785               <span class="entry_type_visibility"> [public as streamConfigurationMap]</span>
   15786 
   15787               <span class="entry_type_synthetic">[synthetic] </span>
   15788 
   15789               <span class="entry_type_hwlevel">[legacy] </span>
   15790 
   15791 
   15792 
   15793 
   15794             </td> <!-- entry_type -->
   15795 
   15796             <td class="entry_description">
   15797               <p>The available stream configurations that this
   15798 camera device supports; also includes the minimum frame durations
   15799 and the stall durations for each format/<wbr/>size combination.<wbr/></p>
   15800             </td>
   15801 
   15802             <td class="entry_units">
   15803             </td>
   15804 
   15805             <td class="entry_range">
   15806             </td>
   15807 
   15808             <td class="entry_tags">
   15809             </td>
   15810 
   15811           </tr>
   15812           <tr class="entries_header">
   15813             <th class="th_details" colspan="5">Details</th>
   15814           </tr>
   15815           <tr class="entry_cont">
   15816             <td class="entry_details" colspan="5">
   15817               <p>All camera devices will support sensor maximum resolution (defined by
   15818 <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>
   15819 <p>For a given use case,<wbr/> the actual maximum supported resolution
   15820 may be lower than what is listed here,<wbr/> depending on the destination
   15821 Surface for the image data.<wbr/> For example,<wbr/> for recording video,<wbr/>
   15822 the video encoder chosen may have a maximum size limit (e.<wbr/>g.<wbr/> 1080p)
   15823 smaller than what the camera (e.<wbr/>g.<wbr/> maximum resolution is 3264x2448)
   15824 can provide.<wbr/></p>
   15825 <p>Please reference the documentation for the image data destination to
   15826 check if it limits the maximum size for image data.<wbr/></p>
   15827 <p>The following table describes the minimum required output stream
   15828 configurations based on the hardware level
   15829 (<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a>):</p>
   15830 <table>
   15831 <thead>
   15832 <tr>
   15833 <th align="center">Format</th>
   15834 <th align="center">Size</th>
   15835 <th align="center">Hardware Level</th>
   15836 <th align="center">Notes</th>
   15837 </tr>
   15838 </thead>
   15839 <tbody>
   15840 <tr>
   15841 <td align="center">JPEG</td>
   15842 <td align="center"><a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></td>
   15843 <td align="center">Any</td>
   15844 <td align="center"></td>
   15845 </tr>
   15846 <tr>
   15847 <td align="center">JPEG</td>
   15848 <td align="center">1920x1080 (1080p)</td>
   15849 <td align="center">Any</td>
   15850 <td align="center">if 1080p &lt;= activeArraySize</td>
   15851 </tr>
   15852 <tr>
   15853 <td align="center">JPEG</td>
   15854 <td align="center">1280x720 (720)</td>
   15855 <td align="center">Any</td>
   15856 <td align="center">if 720p &lt;= activeArraySize</td>
   15857 </tr>
   15858 <tr>
   15859 <td align="center">JPEG</td>
   15860 <td align="center">640x480 (480p)</td>
   15861 <td align="center">Any</td>
   15862 <td align="center">if 480p &lt;= activeArraySize</td>
   15863 </tr>
   15864 <tr>
   15865 <td align="center">JPEG</td>
   15866 <td align="center">320x240 (240p)</td>
   15867 <td align="center">Any</td>
   15868 <td align="center">if 240p &lt;= activeArraySize</td>
   15869 </tr>
   15870 <tr>
   15871 <td align="center">YUV_<wbr/>420_<wbr/>888</td>
   15872 <td align="center">all output sizes available for JPEG</td>
   15873 <td align="center">FULL</td>
   15874 <td align="center"></td>
   15875 </tr>
   15876 <tr>
   15877 <td align="center">YUV_<wbr/>420_<wbr/>888</td>
   15878 <td align="center">all output sizes available for JPEG,<wbr/> up to the maximum video size</td>
   15879 <td align="center">LIMITED</td>
   15880 <td align="center"></td>
   15881 </tr>
   15882 <tr>
   15883 <td align="center">IMPLEMENTATION_<wbr/>DEFINED</td>
   15884 <td align="center">same as YUV_<wbr/>420_<wbr/>888</td>
   15885 <td align="center">Any</td>
   15886 <td align="center"></td>
   15887 </tr>
   15888 </tbody>
   15889 </table>
   15890 <p>Refer to <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> for additional
   15891 mandatory stream configurations on a per-capability basis.<wbr/></p>
   15892             </td>
   15893           </tr>
   15894 
   15895           <tr class="entries_header">
   15896             <th class="th_details" colspan="5">HAL Implementation Details</th>
   15897           </tr>
   15898           <tr class="entry_cont">
   15899             <td class="entry_details" colspan="5">
   15900               <p>Do not set this property directly
   15901 (it is synthetic and will not be available at the HAL layer);
   15902 set the <a href="#static_android.scaler.availableStreamConfigurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stream<wbr/>Configurations</a> instead.<wbr/></p>
   15903 <p>Not all output formats may be supported in a configuration with
   15904 an input stream of a particular format.<wbr/> For more details,<wbr/> see
   15905 <a href="#static_android.scaler.availableInputOutputFormatsMap">android.<wbr/>scaler.<wbr/>available<wbr/>Input<wbr/>Output<wbr/>Formats<wbr/>Map</a>.<wbr/></p>
   15906 <p>It is recommended (but not mandatory) to also include half/<wbr/>quarter
   15907 of sensor maximum resolution for JPEG formats (regardless of hardware
   15908 level).<wbr/></p>
   15909 <p>(The following is a rewording of the above required table):</p>
   15910 <p>The HAL must include sensor maximum resolution (defined by
   15911 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>).<wbr/></p>
   15912 <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/>
   15913 the HAL must include all YUV_<wbr/>420_<wbr/>888 sizes that have JPEG sizes listed
   15914 here as output streams.<wbr/></p>
   15915 <p>It must also include each below resolution if it is smaller than or
   15916 equal to the sensor maximum resolution (for both YUV_<wbr/>420_<wbr/>888 and JPEG
   15917 formats),<wbr/> as output streams:</p>
   15918 <ul>
   15919 <li>240p (320 x 240)</li>
   15920 <li>480p (640 x 480)</li>
   15921 <li>720p (1280 x 720)</li>
   15922 <li>1080p (1920 x 1080)</li>
   15923 </ul>
   15924 <p>For LIMITED capability devices
   15925 (<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == LIMITED</code>),<wbr/>
   15926 the HAL only has to list up to the maximum video size
   15927 supported by the device.<wbr/></p>
   15928 <p>Regardless of hardware level,<wbr/> every output resolution available for
   15929 YUV_<wbr/>420_<wbr/>888 must also be available for IMPLEMENTATION_<wbr/>DEFINED.<wbr/></p>
   15930 <p>This supercedes the following fields,<wbr/> which are now deprecated:</p>
   15931 <ul>
   15932 <li>availableFormats</li>
   15933 <li>available[Processed,<wbr/>Raw,<wbr/>Jpeg]Sizes</li>
   15934 </ul>
   15935             </td>
   15936           </tr>
   15937 
   15938           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   15939            <!-- end of entry -->
   15940         
   15941                 
   15942           <tr class="entry" id="static_android.scaler.croppingType">
   15943             <td class="entry_name
   15944              " rowspan="3">
   15945               android.<wbr/>scaler.<wbr/>cropping<wbr/>Type
   15946             </td>
   15947             <td class="entry_type">
   15948                 <span class="entry_type_name entry_type_name_enum">byte</span>
   15949 
   15950               <span class="entry_type_visibility"> [public]</span>
   15951 
   15952 
   15953               <span class="entry_type_hwlevel">[legacy] </span>
   15954 
   15955 
   15956 
   15957                 <ul class="entry_type_enum">
   15958                   <li>
   15959                     <span class="entry_type_enum_name">CENTER_ONLY</span>
   15960                     <span class="entry_type_enum_notes"><p>The camera device only supports centered crop regions.<wbr/></p></span>
   15961                   </li>
   15962                   <li>
   15963                     <span class="entry_type_enum_name">FREEFORM</span>
   15964                     <span class="entry_type_enum_notes"><p>The camera device supports arbitrarily chosen crop regions.<wbr/></p></span>
   15965                   </li>
   15966                 </ul>
   15967 
   15968             </td> <!-- entry_type -->
   15969 
   15970             <td class="entry_description">
   15971               <p>The crop type that this camera device supports.<wbr/></p>
   15972             </td>
   15973 
   15974             <td class="entry_units">
   15975             </td>
   15976 
   15977             <td class="entry_range">
   15978             </td>
   15979 
   15980             <td class="entry_tags">
   15981             </td>
   15982 
   15983           </tr>
   15984           <tr class="entries_header">
   15985             <th class="th_details" colspan="5">Details</th>
   15986           </tr>
   15987           <tr class="entry_cont">
   15988             <td class="entry_details" colspan="5">
   15989               <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
   15990 device that only supports CENTER_<wbr/>ONLY cropping,<wbr/> the camera device will move the
   15991 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>)
   15992 and keep the crop region width and height unchanged.<wbr/> The camera device will return the
   15993 final used crop region in metadata result <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>.<wbr/></p>
   15994 <p>Camera devices that support FREEFORM cropping will support any crop region that
   15995 is inside of the active array.<wbr/> The camera device will apply the same crop region and
   15996 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>
   15997 <p>FULL capability devices (<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> <code>==</code> FULL) will support
   15998 FREEFORM cropping.<wbr/> LEGACY capability devices will only support CENTER_<wbr/>ONLY cropping.<wbr/></p>
   15999             </td>
   16000           </tr>
   16001 
   16002 
   16003           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   16004            <!-- end of entry -->
   16005         
   16006         
   16007 
   16008       <!-- end of kind -->
   16009       </tbody>
   16010       <tr><td colspan="6" class="kind">dynamic</td></tr>
   16011 
   16012       <thead class="entries_header">
   16013         <tr>
   16014           <th class="th_name">Property Name</th>
   16015           <th class="th_type">Type</th>
   16016           <th class="th_description">Description</th>
   16017           <th class="th_units">Units</th>
   16018           <th class="th_range">Range</th>
   16019           <th class="th_tags">Tags</th>
   16020         </tr>
   16021       </thead>
   16022 
   16023       <tbody>
   16024 
   16025         
   16026 
   16027         
   16028 
   16029         
   16030 
   16031         
   16032 
   16033                 
   16034           <tr class="entry" id="dynamic_android.scaler.cropRegion">
   16035             <td class="entry_name
   16036              " rowspan="5">
   16037               android.<wbr/>scaler.<wbr/>crop<wbr/>Region
   16038             </td>
   16039             <td class="entry_type">
   16040                 <span class="entry_type_name">int32</span>
   16041                 <span class="entry_type_container">x</span>
   16042 
   16043                 <span class="entry_type_array">
   16044                   4
   16045                 </span>
   16046               <span class="entry_type_visibility"> [public as rectangle]</span>
   16047 
   16048 
   16049               <span class="entry_type_hwlevel">[legacy] </span>
   16050 
   16051 
   16052 
   16053 
   16054             </td> <!-- entry_type -->
   16055 
   16056             <td class="entry_description">
   16057               <p>The desired region of the sensor to read out for this capture.<wbr/></p>
   16058             </td>
   16059 
   16060             <td class="entry_units">
   16061               Pixel coordinates relative to
   16062           android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
   16063             </td>
   16064 
   16065             <td class="entry_range">
   16066             </td>
   16067 
   16068             <td class="entry_tags">
   16069               <ul class="entry_tags">
   16070                   <li><a href="#tag_BC">BC</a></li>
   16071               </ul>
   16072             </td>
   16073 
   16074           </tr>
   16075           <tr class="entries_header">
   16076             <th class="th_details" colspan="5">Details</th>
   16077           </tr>
   16078           <tr class="entry_cont">
   16079             <td class="entry_details" colspan="5">
   16080               <p>This control can be used to implement digital zoom.<wbr/></p>
   16081 <p>The crop region coordinate system is based off
   16082 <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
   16083 top-left corner of the sensor active array.<wbr/></p>
   16084 <p>Output streams use this rectangle to produce their output,<wbr/>
   16085 cropping to a smaller region if necessary to maintain the
   16086 stream's aspect ratio,<wbr/> then scaling the sensor input to
   16087 match the output's configured resolution.<wbr/></p>
   16088 <p>The crop region is applied after the RAW to other color
   16089 space (e.<wbr/>g.<wbr/> YUV) conversion.<wbr/> Since raw streams
   16090 (e.<wbr/>g.<wbr/> RAW16) don't have the conversion stage,<wbr/> they are not
   16091 croppable.<wbr/> The crop region will be ignored by raw streams.<wbr/></p>
   16092 <p>For non-raw streams,<wbr/> any additional per-stream cropping will
   16093 be done to maximize the final pixel area of the stream.<wbr/></p>
   16094 <p>For example,<wbr/> if the crop region is set to a 4:3 aspect
   16095 ratio,<wbr/> then 4:3 streams will use the exact crop
   16096 region.<wbr/> 16:9 streams will further crop vertically
   16097 (letterbox).<wbr/></p>
   16098 <p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
   16099 outputs will crop horizontally (pillarbox),<wbr/> and 16:9
   16100 streams will match exactly.<wbr/> These additional crops will
   16101 be centered within the crop region.<wbr/></p>
   16102 <p>The width and height of the crop region cannot
   16103 be set to be smaller than
   16104 <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
   16105 <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>
   16106 <p>The camera device may adjust the crop region to account
   16107 for rounding and other hardware requirements; the final
   16108 crop region used will be included in the output capture
   16109 result.<wbr/></p>
   16110             </td>
   16111           </tr>
   16112 
   16113           <tr class="entries_header">
   16114             <th class="th_details" colspan="5">HAL Implementation Details</th>
   16115           </tr>
   16116           <tr class="entry_cont">
   16117             <td class="entry_details" colspan="5">
   16118               <p>The output streams must maintain square pixels at all
   16119 times,<wbr/> no matter what the relative aspect ratios of the
   16120 crop region and the stream are.<wbr/>  Negative values for
   16121 corner are allowed for raw output if full pixel array is
   16122 larger than active pixel array.<wbr/> Width and height may be
   16123 rounded to nearest larger supportable width,<wbr/> especially
   16124 for raw output,<wbr/> where only a few fixed scales may be
   16125 possible.<wbr/></p>
   16126 <p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
   16127             </td>
   16128           </tr>
   16129 
   16130           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   16131            <!-- end of entry -->
   16132         
   16133         
   16134 
   16135       <!-- end of kind -->
   16136       </tbody>
   16137 
   16138   <!-- end of section -->
   16139   <tr><td colspan="6" id="section_sensor" class="section">sensor</td></tr>
   16140 
   16141 
   16142       <tr><td colspan="6" class="kind">controls</td></tr>
   16143 
   16144       <thead class="entries_header">
   16145         <tr>
   16146           <th class="th_name">Property Name</th>
   16147           <th class="th_type">Type</th>
   16148           <th class="th_description">Description</th>
   16149           <th class="th_units">Units</th>
   16150           <th class="th_range">Range</th>
   16151           <th class="th_tags">Tags</th>
   16152         </tr>
   16153       </thead>
   16154 
   16155       <tbody>
   16156 
   16157         
   16158 
   16159         
   16160 
   16161         
   16162 
   16163         
   16164 
   16165                 
   16166           <tr class="entry" id="controls_android.sensor.exposureTime">
   16167             <td class="entry_name
   16168              " rowspan="3">
   16169               android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
   16170             </td>
   16171             <td class="entry_type">
   16172                 <span class="entry_type_name">int64</span>
   16173 
   16174               <span class="entry_type_visibility"> [public]</span>
   16175 
   16176 
   16177               <span class="entry_type_hwlevel">[full] </span>
   16178 
   16179 
   16180 
   16181 
   16182             </td> <!-- entry_type -->
   16183 
   16184             <td class="entry_description">
   16185               <p>Duration each pixel is exposed to
   16186 light.<wbr/></p>
   16187             </td>
   16188 
   16189             <td class="entry_units">
   16190               Nanoseconds
   16191             </td>
   16192 
   16193             <td class="entry_range">
   16194               <p><a href="#static_android.sensor.info.exposureTimeRange">android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range</a></p>
   16195             </td>
   16196 
   16197             <td class="entry_tags">
   16198               <ul class="entry_tags">
   16199                   <li><a href="#tag_V1">V1</a></li>
   16200               </ul>
   16201             </td>
   16202 
   16203           </tr>
   16204           <tr class="entries_header">
   16205             <th class="th_details" colspan="5">Details</th>
   16206           </tr>
   16207           <tr class="entry_cont">
   16208             <td class="entry_details" colspan="5">
   16209               <p>If the sensor can't expose this exact duration,<wbr/> it will shorten the
   16210 duration exposed to the nearest possible value (rather than expose longer).<wbr/>
   16211 The final exposure time used will be available in the output capture result.<wbr/></p>
   16212 <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
   16213 OFF; otherwise the auto-exposure algorithm will override this value.<wbr/></p>
   16214             </td>
   16215           </tr>
   16216 
   16217 
   16218           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   16219            <!-- end of entry -->
   16220         
   16221                 
   16222           <tr class="entry" id="controls_android.sensor.frameDuration">
   16223             <td class="entry_name
   16224              " rowspan="5">
   16225               android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
   16226             </td>
   16227             <td class="entry_type">
   16228                 <span class="entry_type_name">int64</span>
   16229 
   16230               <span class="entry_type_visibility"> [public]</span>
   16231 
   16232 
   16233               <span class="entry_type_hwlevel">[full] </span>
   16234 
   16235 
   16236 
   16237 
   16238             </td> <!-- entry_type -->
   16239 
   16240             <td class="entry_description">
   16241               <p>Duration from start of frame exposure to
   16242 start of next frame exposure.<wbr/></p>
   16243             </td>
   16244 
   16245             <td class="entry_units">
   16246               Nanoseconds
   16247             </td>
   16248 
   16249             <td class="entry_range">
   16250               <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/>
   16251 <a href="#static_android.scaler.streamConfigurationMap">android.<wbr/>scaler.<wbr/>stream<wbr/>Configuration<wbr/>Map</a>.<wbr/> The duration
   16252 is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
   16253             </td>
   16254 
   16255             <td class="entry_tags">
   16256               <ul class="entry_tags">
   16257                   <li><a href="#tag_V1">V1</a></li>
   16258               </ul>
   16259             </td>
   16260 
   16261           </tr>
   16262           <tr class="entries_header">
   16263             <th class="th_details" colspan="5">Details</th>
   16264           </tr>
   16265           <tr class="entry_cont">
   16266             <td class="entry_details" colspan="5">
   16267               <p>The maximum frame rate that can be supported by a camera subsystem is
   16268 a function of many factors:</p>
   16269 <ul>
   16270 <li>Requested resolutions of output image streams</li>
   16271 <li>Availability of binning /<wbr/> skipping modes on the imager</li>
   16272 <li>The bandwidth of the imager interface</li>
   16273 <li>The bandwidth of the various ISP processing blocks</li>
   16274 </ul>
   16275 <p>Since these factors can vary greatly between different ISPs and
   16276 sensors,<wbr/> the camera abstraction tries to represent the bandwidth
   16277 restrictions with as simple a model as possible.<wbr/></p>
   16278 <p>The model presented has the following characteristics:</p>
   16279 <ul>
   16280 <li>The image sensor is always configured to output the smallest
   16281 resolution possible given the application's requested output stream
   16282 sizes.<wbr/>  The smallest resolution is defined as being at least as large
   16283 as the largest requested output stream size; the camera pipeline must
   16284 never digitally upsample sensor data when the crop region covers the
   16285 whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
   16286 resolutions are configured,<wbr/> the sensor can provide a higher frame
   16287 rate.<wbr/></li>
   16288 <li>Since any request may use any or all the currently configured
   16289 output streams,<wbr/> the sensor and ISP must be configured to support
   16290 scaling a single capture to all the streams at the same time.<wbr/>  This
   16291 means the camera pipeline must be ready to produce the largest
   16292 requested output size without any delay.<wbr/>  Therefore,<wbr/> the overall
   16293 frame rate of a given configured stream set is governed only by the
   16294 largest requested stream resolution.<wbr/></li>
   16295 <li>Using more than one output stream in a request does not affect the
   16296 frame duration.<wbr/></li>
   16297 <li>Certain format-streams may need to do additional background processing
   16298 before data is consumed/<wbr/>produced by that stream.<wbr/> These processors
   16299 can run concurrently to the rest of the camera pipeline,<wbr/> but
   16300 cannot process more than 1 capture at a time.<wbr/></li>
   16301 </ul>
   16302 <p>The necessary information for the application,<wbr/> given the model above,<wbr/>
   16303 is provided via the <a href="#static_android.scaler.streamConfigurationMap">android.<wbr/>scaler.<wbr/>stream<wbr/>Configuration<wbr/>Map</a> field
   16304 using StreamConfigurationMap#getOutputMinFrameDuration(int,<wbr/> Size).<wbr/>
   16305 These are used to determine the maximum frame rate /<wbr/> minimum frame
   16306 duration that is possible for a given stream configuration.<wbr/></p>
   16307 <p>Specifically,<wbr/> the application can use the following rules to
   16308 determine the minimum frame duration it can request from the camera
   16309 device:</p>
   16310 <ol>
   16311 <li>Let the set of currently configured input/<wbr/>output streams
   16312 be called <code>S</code>.<wbr/></li>
   16313 <li>Find the minimum frame durations for each stream in <code>S</code>,<wbr/> by
   16314 looking it up in <a href="#static_android.scaler.streamConfigurationMap">android.<wbr/>scaler.<wbr/>stream<wbr/>Configuration<wbr/>Map</a> using
   16315 StreamConfigurationMap#getOutputMinFrameDuration(int,<wbr/> Size) (with
   16316 its respective size/<wbr/>format).<wbr/> Let this set of frame durations be called
   16317 <code>F</code>.<wbr/></li>
   16318 <li>For any given request <code>R</code>,<wbr/> the minimum frame duration allowed
   16319 for <code>R</code> is the maximum out of all values in <code>F</code>.<wbr/> Let the streams
   16320 used in <code>R</code> be called <code>S_<wbr/>r</code>.<wbr/></li>
   16321 </ol>
   16322 <p>If none of the streams in <code>S_<wbr/>r</code> have a stall time (listed in
   16323 StreamConfigurationMap#getOutputStallDuration(int,<wbr/>Size) using its
   16324 respective size/<wbr/>format),<wbr/> then the frame duration in
   16325 <code>F</code> determines the steady state frame rate that the application will
   16326 get if it uses <code>R</code> as a repeating request.<wbr/> Let this special kind
   16327 of request be called <code>Rsimple</code>.<wbr/></p>
   16328 <p>A repeating request <code>Rsimple</code> can be <em>occasionally</em> interleaved
   16329 by a single capture of a new request <code>Rstall</code> (which has at least
   16330 one in-use stream with a non-0 stall time) and if <code>Rstall</code> has the
   16331 same minimum frame duration this will not cause a frame rate loss
   16332 if all buffers from the previous <code>Rstall</code> have already been
   16333 delivered.<wbr/></p>
   16334 <p>For more details about stalling,<wbr/> see
   16335 StreamConfigurationMap#getOutputStallDuration(int,<wbr/>Size).<wbr/></p>
   16336 <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
   16337 OFF; otherwise the auto-exposure algorithm will override this value.<wbr/></p>
   16338             </td>
   16339           </tr>
   16340 
   16341           <tr class="entries_header">
   16342             <th class="th_details" colspan="5">HAL Implementation Details</th>
   16343           </tr>
   16344           <tr class="entry_cont">
   16345             <td class="entry_details" colspan="5">
   16346               <p>For more details about stalling,<wbr/> see
   16347 <a href="#static_android.scaler.availableStallDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stall<wbr/>Durations</a>.<wbr/></p>
   16348             </td>
   16349           </tr>
   16350 
   16351           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   16352            <!-- end of entry -->
   16353         
   16354                 
   16355           <tr class="entry" id="controls_android.sensor.sensitivity">
   16356             <td class="entry_name
   16357              " rowspan="5">
   16358               android.<wbr/>sensor.<wbr/>sensitivity
   16359             </td>
   16360             <td class="entry_type">
   16361                 <span class="entry_type_name">int32</span>
   16362 
   16363               <span class="entry_type_visibility"> [public]</span>
   16364 
   16365 
   16366               <span class="entry_type_hwlevel">[full] </span>
   16367 
   16368 
   16369 
   16370 
   16371             </td> <!-- entry_type -->
   16372 
   16373             <td class="entry_description">
   16374               <p>The amount of gain applied to sensor data
   16375 before processing.<wbr/></p>
   16376             </td>
   16377 
   16378             <td class="entry_units">
   16379               ISO arithmetic units
   16380             </td>
   16381 
   16382             <td class="entry_range">
   16383               <p><a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a></p>
   16384             </td>
   16385 
   16386             <td class="entry_tags">
   16387               <ul class="entry_tags">
   16388                   <li><a href="#tag_V1">V1</a></li>
   16389               </ul>
   16390             </td>
   16391 
   16392           </tr>
   16393           <tr class="entries_header">
   16394             <th class="th_details" colspan="5">Details</th>
   16395           </tr>
   16396           <tr class="entry_cont">
   16397             <td class="entry_details" colspan="5">
   16398               <p>The sensitivity is the standard ISO sensitivity value,<wbr/>
   16399 as defined in ISO 12232:2006.<wbr/></p>
   16400 <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
   16401 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
   16402 is guaranteed to use only analog amplification for applying the gain.<wbr/></p>
   16403 <p>If the camera device cannot apply the exact sensitivity
   16404 requested,<wbr/> it will reduce the gain to the nearest supported
   16405 value.<wbr/> The final sensitivity used will be available in the
   16406 output capture result.<wbr/></p>
   16407             </td>
   16408           </tr>
   16409 
   16410           <tr class="entries_header">
   16411             <th class="th_details" colspan="5">HAL Implementation Details</th>
   16412           </tr>
   16413           <tr class="entry_cont">
   16414             <td class="entry_details" colspan="5">
   16415               <p>ISO 12232:2006 REI method is acceptable.<wbr/></p>
   16416             </td>
   16417           </tr>
   16418 
   16419           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   16420            <!-- end of entry -->
   16421         
   16422                 
   16423           <tr class="entry" id="controls_android.sensor.testPatternData">
   16424             <td class="entry_name
   16425              " rowspan="5">
   16426               android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data
   16427             </td>
   16428             <td class="entry_type">
   16429                 <span class="entry_type_name">int32</span>
   16430                 <span class="entry_type_container">x</span>
   16431 
   16432                 <span class="entry_type_array">
   16433                   4
   16434                 </span>
   16435               <span class="entry_type_visibility"> [public]</span>
   16436 
   16437 
   16438 
   16439 
   16440 
   16441 
   16442             </td> <!-- entry_type -->
   16443 
   16444             <td class="entry_description">
   16445               <p>A pixel <code>[R,<wbr/> G_<wbr/>even,<wbr/> G_<wbr/>odd,<wbr/> B]</code> that supplies the test pattern
   16446 when <a href="#controls_android.sensor.testPatternMode">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode</a> is SOLID_<wbr/>COLOR.<wbr/></p>
   16447             </td>
   16448 
   16449             <td class="entry_units">
   16450             </td>
   16451 
   16452             <td class="entry_range">
   16453             </td>
   16454 
   16455             <td class="entry_tags">
   16456             </td>
   16457 
   16458           </tr>
   16459           <tr class="entries_header">
   16460             <th class="th_details" colspan="5">Details</th>
   16461           </tr>
   16462           <tr class="entry_cont">
   16463             <td class="entry_details" colspan="5">
   16464               <p>Each color channel is treated as an unsigned 32-bit integer.<wbr/>
   16465 The camera device then uses the most significant X bits
   16466 that correspond to how many bits are in its Bayer raw sensor
   16467 output.<wbr/></p>
   16468 <p>For example,<wbr/> a sensor with RAW10 Bayer output would use the
   16469 10 most significant bits from each color channel.<wbr/></p>
   16470             </td>
   16471           </tr>
   16472 
   16473           <tr class="entries_header">
   16474             <th class="th_details" colspan="5">HAL Implementation Details</th>
   16475           </tr>
   16476           <tr class="entry_cont">
   16477             <td class="entry_details" colspan="5">
   16478               
   16479             </td>
   16480           </tr>
   16481 
   16482           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   16483            <!-- end of entry -->
   16484         
   16485                 
   16486           <tr class="entry" id="controls_android.sensor.testPatternMode">
   16487             <td class="entry_name
   16488              " rowspan="5">
   16489               android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
   16490             </td>
   16491             <td class="entry_type">
   16492                 <span class="entry_type_name entry_type_name_enum">int32</span>
   16493 
   16494               <span class="entry_type_visibility"> [public]</span>
   16495 
   16496 
   16497 
   16498 
   16499 
   16500                 <ul class="entry_type_enum">
   16501                   <li>
   16502                     <span class="entry_type_enum_name">OFF</span>
   16503                     <span class="entry_type_enum_notes"><p>No test pattern mode is used,<wbr/> and the camera
   16504 device returns captures from the image sensor.<wbr/></p>
   16505 <p>This is the default if the key is not set.<wbr/></p></span>
   16506                   </li>
   16507                   <li>
   16508                     <span class="entry_type_enum_name">SOLID_COLOR</span>
   16509                     <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
   16510 respective color channel provided in
   16511 <a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
   16512 <p>For example:</p>
   16513 <pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
   16514 </code></pre>
   16515 <p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
   16516 <pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
   16517 </code></pre>
   16518 <p>All red pixels are 100% red.<wbr/> Only the odd green pixels
   16519 are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
   16520                   </li>
   16521                   <li>
   16522                     <span class="entry_type_enum_name">COLOR_BARS</span>
   16523                     <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
   16524 <p>The vertical bars (left-to-right) are as follows:</p>
   16525 <ul>
   16526 <li>100% white</li>
   16527 <li>yellow</li>
   16528 <li>cyan</li>
   16529 <li>green</li>
   16530 <li>magenta</li>
   16531 <li>red</li>
   16532 <li>blue</li>
   16533 <li>black</li>
   16534 </ul>
   16535 <p>In general the image would look like the following:</p>
   16536 <pre><code>W Y C G M R B K
   16537 W Y C G M R B K
   16538 W Y C G M R B K
   16539 W Y C G M R B K
   16540 W Y C G M R B K
   16541 .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
   16542 .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
   16543 .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
   16544 
   16545 (B = Blue,<wbr/> K = Black)
   16546 </code></pre>
   16547 <p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
   16548 When this is not possible,<wbr/> the bar size should be rounded
   16549 down to the nearest integer and the pattern can repeat
   16550 on the right side.<wbr/></p>
   16551 <p>Each bar's height must always take up the full sensor
   16552 pixel array height.<wbr/></p>
   16553 <p>Each pixel in this test pattern must be set to either
   16554 0% intensity or 100% intensity.<wbr/></p></span>
   16555                   </li>
   16556                   <li>
   16557                     <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY</span>
   16558                     <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
   16559 each bar should start at its specified color at the top,<wbr/>
   16560 and fade to gray at the bottom.<wbr/></p>
   16561 <p>Furthermore each bar is further subdivided into a left and
   16562 right half.<wbr/> The left half should have a smooth gradient,<wbr/>
   16563 and the right half should have a quantized gradient.<wbr/></p>
   16564 <p>In particular,<wbr/> the right half's should consist of blocks of the
   16565 same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
   16566 <p>The least significant bits in the quantized gradient should
   16567 be copied from the most significant bits of the smooth gradient.<wbr/></p>
   16568 <p>The height of each bar should always be a multiple of 128.<wbr/>
   16569 When this is not the case,<wbr/> the pattern should repeat at the bottom
   16570 of the image.<wbr/></p></span>
   16571                   </li>
   16572                   <li>
   16573                     <span class="entry_type_enum_name">PN9</span>
   16574                     <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
   16575 generated from a PN9 512-bit sequence (typically implemented
   16576 in hardware with a linear feedback shift register).<wbr/></p>
   16577 <p>The generator should be reset at the beginning of each frame,<wbr/>
   16578 and thus each subsequent raw frame with this test pattern should
   16579 be exactly the same as the last.<wbr/></p></span>
   16580                   </li>
   16581                   <li>
   16582                     <span class="entry_type_enum_name">CUSTOM1</span>
   16583                     <span class="entry_type_enum_value">256</span>
   16584                     <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
   16585 available only on this camera device are at least this numeric
   16586 value.<wbr/></p>
   16587 <p>All of the custom test patterns will be static
   16588 (that is the raw image must not vary from frame to frame).<wbr/></p></span>
   16589                   </li>
   16590                 </ul>
   16591 
   16592             </td> <!-- entry_type -->
   16593 
   16594             <td class="entry_description">
   16595               <p>When enabled,<wbr/> the sensor sends a test pattern instead of
   16596 doing a real exposure from the camera.<wbr/></p>
   16597             </td>
   16598 
   16599             <td class="entry_units">
   16600             </td>
   16601 
   16602             <td class="entry_range">
   16603               <p><a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
   16604             </td>
   16605 
   16606             <td class="entry_tags">
   16607             </td>
   16608 
   16609           </tr>
   16610           <tr class="entries_header">
   16611             <th class="th_details" colspan="5">Details</th>
   16612           </tr>
   16613           <tr class="entry_cont">
   16614             <td class="entry_details" colspan="5">
   16615               <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
   16616 by android.<wbr/>sensor.<wbr/>* will be ignored.<wbr/> All other controls should
   16617 work as normal.<wbr/></p>
   16618 <p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
   16619 occur (and that the test pattern remain unmodified,<wbr/> since the flash
   16620 would not actually affect it).<wbr/></p>
   16621 <p>Defaults to OFF.<wbr/></p>
   16622             </td>
   16623           </tr>
   16624 
   16625           <tr class="entries_header">
   16626             <th class="th_details" colspan="5">HAL Implementation Details</th>
   16627           </tr>
   16628           <tr class="entry_cont">
   16629             <td class="entry_details" colspan="5">
   16630               <p>All test patterns are specified in the Bayer domain.<wbr/></p>
   16631 <p>The HAL may choose to substitute test patterns from the sensor
   16632 with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
   16633 indistinguishable to the ISP whether the data came from the
   16634 sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
   16635             </td>
   16636           </tr>
   16637 
   16638           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   16639            <!-- end of entry -->
   16640         
   16641         
   16642 
   16643       <!-- end of kind -->
   16644       </tbody>
   16645       <tr><td colspan="6" class="kind">static</td></tr>
   16646 
   16647       <thead class="entries_header">
   16648         <tr>
   16649           <th class="th_name">Property Name</th>
   16650           <th class="th_type">Type</th>
   16651           <th class="th_description">Description</th>
   16652           <th class="th_units">Units</th>
   16653           <th class="th_range">Range</th>
   16654           <th class="th_tags">Tags</th>
   16655         </tr>
   16656       </thead>
   16657 
   16658       <tbody>
   16659 
   16660         
   16661 
   16662         
   16663 
   16664         
   16665 
   16666         
   16667                 
   16668             
   16669 
   16670                 
   16671           <tr class="entry" id="static_android.sensor.info.activeArraySize">
   16672             <td class="entry_name
   16673              " rowspan="5">
   16674               android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
   16675             </td>
   16676             <td class="entry_type">
   16677                 <span class="entry_type_name">int32</span>
   16678                 <span class="entry_type_container">x</span>
   16679 
   16680                 <span class="entry_type_array">
   16681                   4
   16682                 </span>
   16683               <span class="entry_type_visibility"> [public as rectangle]</span>
   16684 
   16685 
   16686               <span class="entry_type_hwlevel">[legacy] </span>
   16687 
   16688 
   16689                 <div class="entry_type_notes">Four ints defining the active pixel rectangle</div>
   16690 
   16691 
   16692             </td> <!-- entry_type -->
   16693 
   16694             <td class="entry_description">
   16695               <p>The area of the image sensor which corresponds to
   16696 active pixels.<wbr/></p>
   16697             </td>
   16698 
   16699             <td class="entry_units">
   16700               Pixel coordinates on the image sensor
   16701             </td>
   16702 
   16703             <td class="entry_range">
   16704               
   16705             </td>
   16706 
   16707             <td class="entry_tags">
   16708               <ul class="entry_tags">
   16709                   <li><a href="#tag_RAW">RAW</a></li>
   16710               </ul>
   16711             </td>
   16712 
   16713           </tr>
   16714           <tr class="entries_header">
   16715             <th class="th_details" colspan="5">Details</th>
   16716           </tr>
   16717           <tr class="entry_cont">
   16718             <td class="entry_details" colspan="5">
   16719               <p>This is the region of the sensor that actually receives light from the scene.<wbr/>
   16720 Therefore,<wbr/> the size of this region determines the maximum field of view and the maximum
   16721 number of pixels that an image from this sensor can contain.<wbr/></p>
   16722 <p>The rectangle is defined in terms of the full pixel array; (0,<wbr/>0) is the top-left of the
   16723 full pixel array,<wbr/> and the size of the full pixel array is given by
   16724 <a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a>.<wbr/></p>
   16725 <p>Most other keys listing pixel coordinates have their coordinate systems based on the
   16726 active array,<wbr/> with <code>(0,<wbr/> 0)</code> being the top-left of the active array rectangle.<wbr/></p>
   16727 <p>The active array may be smaller than the full pixel array,<wbr/> since the full array may
   16728 include black calibration pixels or other inactive regions.<wbr/></p>
   16729             </td>
   16730           </tr>
   16731 
   16732           <tr class="entries_header">
   16733             <th class="th_details" colspan="5">HAL Implementation Details</th>
   16734           </tr>
   16735           <tr class="entry_cont">
   16736             <td class="entry_details" colspan="5">
   16737               <p>This array contains <code>(xmin,<wbr/> ymin,<wbr/> width,<wbr/> height)</code>.<wbr/> The <code>(xmin,<wbr/> ymin)</code> must be
   16738 &gt;= <code>(0,<wbr/>0)</code>.<wbr/>
   16739 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>
   16740             </td>
   16741           </tr>
   16742 
   16743           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   16744            <!-- end of entry -->
   16745         
   16746                 
   16747           <tr class="entry" id="static_android.sensor.info.sensitivityRange">
   16748             <td class="entry_name
   16749              " rowspan="3">
   16750               android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range
   16751             </td>
   16752             <td class="entry_type">
   16753                 <span class="entry_type_name">int32</span>
   16754                 <span class="entry_type_container">x</span>
   16755 
   16756                 <span class="entry_type_array">
   16757                   2
   16758                 </span>
   16759               <span class="entry_type_visibility"> [public as rangeInt]</span>
   16760 
   16761 
   16762               <span class="entry_type_hwlevel">[full] </span>
   16763 
   16764 
   16765                 <div class="entry_type_notes">Range of supported sensitivities</div>
   16766 
   16767 
   16768             </td> <!-- entry_type -->
   16769 
   16770             <td class="entry_description">
   16771               <p>Range of sensitivities for <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> supported by this
   16772 camera device.<wbr/></p>
   16773             </td>
   16774 
   16775             <td class="entry_units">
   16776             </td>
   16777 
   16778             <td class="entry_range">
   16779               <p>Min &lt;= 100,<wbr/> Max &gt;= 800</p>
   16780             </td>
   16781 
   16782             <td class="entry_tags">
   16783               <ul class="entry_tags">
   16784                   <li><a href="#tag_BC">BC</a></li>
   16785                   <li><a href="#tag_V1">V1</a></li>
   16786               </ul>
   16787             </td>
   16788 
   16789           </tr>
   16790           <tr class="entries_header">
   16791             <th class="th_details" colspan="5">Details</th>
   16792           </tr>
   16793           <tr class="entry_cont">
   16794             <td class="entry_details" colspan="5">
   16795               <p>The values are the standard ISO sensitivity values,<wbr/>
   16796 as defined in ISO 12232:2006.<wbr/></p>
   16797             </td>
   16798           </tr>
   16799 
   16800 
   16801           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   16802            <!-- end of entry -->
   16803         
   16804                 
   16805           <tr class="entry" id="static_android.sensor.info.colorFilterArrangement">
   16806             <td class="entry_name
   16807              " rowspan="1">
   16808               android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement
   16809             </td>
   16810             <td class="entry_type">
   16811                 <span class="entry_type_name entry_type_name_enum">byte</span>
   16812 
   16813               <span class="entry_type_visibility"> [public]</span>
   16814 
   16815 
   16816               <span class="entry_type_hwlevel">[full] </span>
   16817 
   16818 
   16819 
   16820                 <ul class="entry_type_enum">
   16821                   <li>
   16822                     <span class="entry_type_enum_name">RGGB</span>
   16823                   </li>
   16824                   <li>
   16825                     <span class="entry_type_enum_name">GRBG</span>
   16826                   </li>
   16827                   <li>
   16828                     <span class="entry_type_enum_name">GBRG</span>
   16829                   </li>
   16830                   <li>
   16831                     <span class="entry_type_enum_name">BGGR</span>
   16832                   </li>
   16833                   <li>
   16834                     <span class="entry_type_enum_name">RGB</span>
   16835                     <span class="entry_type_enum_notes"><p>Sensor is not Bayer; output has 3 16-bit
   16836 values for each pixel,<wbr/> instead of just 1 16-bit value
   16837 per pixel.<wbr/></p></span>
   16838                   </li>
   16839                 </ul>
   16840 
   16841             </td> <!-- entry_type -->
   16842 
   16843             <td class="entry_description">
   16844               <p>The arrangement of color filters on sensor;
   16845 represents the colors in the top-left 2x2 section of
   16846 the sensor,<wbr/> in reading order.<wbr/></p>
   16847             </td>
   16848 
   16849             <td class="entry_units">
   16850             </td>
   16851 
   16852             <td class="entry_range">
   16853             </td>
   16854 
   16855             <td class="entry_tags">
   16856               <ul class="entry_tags">
   16857                   <li><a href="#tag_RAW">RAW</a></li>
   16858               </ul>
   16859             </td>
   16860 
   16861           </tr>
   16862 
   16863 
   16864           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   16865            <!-- end of entry -->
   16866         
   16867                 
   16868           <tr class="entry" id="static_android.sensor.info.exposureTimeRange">
   16869             <td class="entry_name
   16870              " rowspan="3">
   16871               android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range
   16872             </td>
   16873             <td class="entry_type">
   16874                 <span class="entry_type_name">int64</span>
   16875                 <span class="entry_type_container">x</span>
   16876 
   16877                 <span class="entry_type_array">
   16878                   2
   16879                 </span>
   16880               <span class="entry_type_visibility"> [public as rangeLong]</span>
   16881 
   16882 
   16883               <span class="entry_type_hwlevel">[full] </span>
   16884 
   16885 
   16886                 <div class="entry_type_notes">nanoseconds</div>
   16887 
   16888 
   16889             </td> <!-- entry_type -->
   16890 
   16891             <td class="entry_description">
   16892               <p>The range of image exposure times for <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a> supported
   16893 by this camera device.<wbr/></p>
   16894             </td>
   16895 
   16896             <td class="entry_units">
   16897               Nanoseconds
   16898             </td>
   16899 
   16900             <td class="entry_range">
   16901               <p>The minimum exposure time will be less than 100 us.<wbr/> For FULL
   16902 capability devices (<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL),<wbr/>
   16903 the maximum exposure time will be greater than 100ms.<wbr/></p>
   16904             </td>
   16905 
   16906             <td class="entry_tags">
   16907               <ul class="entry_tags">
   16908                   <li><a href="#tag_V1">V1</a></li>
   16909               </ul>
   16910             </td>
   16911 
   16912           </tr>
   16913 
   16914           <tr class="entries_header">
   16915             <th class="th_details" colspan="5">HAL Implementation Details</th>
   16916           </tr>
   16917           <tr class="entry_cont">
   16918             <td class="entry_details" colspan="5">
   16919               <p>For FULL capability devices (<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL),<wbr/>
   16920 The maximum of the range SHOULD be at least 1 second (1e9),<wbr/> MUST be at least
   16921 100ms.<wbr/></p>
   16922             </td>
   16923           </tr>
   16924 
   16925           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   16926            <!-- end of entry -->
   16927         
   16928                 
   16929           <tr class="entry" id="static_android.sensor.info.maxFrameDuration">
   16930             <td class="entry_name
   16931              " rowspan="5">
   16932               android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration
   16933             </td>
   16934             <td class="entry_type">
   16935                 <span class="entry_type_name">int64</span>
   16936 
   16937               <span class="entry_type_visibility"> [public]</span>
   16938 
   16939 
   16940               <span class="entry_type_hwlevel">[full] </span>
   16941 
   16942 
   16943 
   16944 
   16945             </td> <!-- entry_type -->
   16946 
   16947             <td class="entry_description">
   16948               <p>The maximum possible frame duration (minimum frame rate) for
   16949 <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> that is supported this camera device.<wbr/></p>
   16950             </td>
   16951 
   16952             <td class="entry_units">
   16953               Nanoseconds
   16954             </td>
   16955 
   16956             <td class="entry_range">
   16957               <p>For FULL capability devices
   16958 (<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL),<wbr/> at least 100ms.<wbr/></p>
   16959             </td>
   16960 
   16961             <td class="entry_tags">
   16962               <ul class="entry_tags">
   16963                   <li><a href="#tag_V1">V1</a></li>
   16964               </ul>
   16965             </td>
   16966 
   16967           </tr>
   16968           <tr class="entries_header">
   16969             <th class="th_details" colspan="5">Details</th>
   16970           </tr>
   16971           <tr class="entry_cont">
   16972             <td class="entry_details" colspan="5">
   16973               <p>Attempting to use frame durations beyond the maximum will result in the frame
   16974 duration being clipped to the maximum.<wbr/> See that control for a full definition of frame
   16975 durations.<wbr/></p>
   16976 <p>Refer to StreamConfigurationMap#getOutputMinFrameDuration(int,<wbr/>Size) for the minimum
   16977 frame duration values.<wbr/></p>
   16978             </td>
   16979           </tr>
   16980 
   16981           <tr class="entries_header">
   16982             <th class="th_details" colspan="5">HAL Implementation Details</th>
   16983           </tr>
   16984           <tr class="entry_cont">
   16985             <td class="entry_details" colspan="5">
   16986               <p>For FULL capability devices (<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL),<wbr/>
   16987 The maximum of the range SHOULD be at least
   16988 1 second (1e9),<wbr/> MUST be at least 100ms (100e6).<wbr/></p>
   16989 <p><a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a> must be greater or
   16990 equal to the <a href="#static_android.sensor.info.exposureTimeRange">android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range</a> max
   16991 value (since exposure time overrides frame duration).<wbr/></p>
   16992 <p>Available minimum frame durations for JPEG must be no greater
   16993 than that of the YUV_<wbr/>420_<wbr/>888/<wbr/>IMPLEMENTATION_<wbr/>DEFINED
   16994 minimum frame durations (for that respective size).<wbr/></p>
   16995 <p>Since JPEG processing is considered offline and can take longer than
   16996 a single uncompressed capture,<wbr/> refer to
   16997 <a href="#static_android.scaler.availableStallDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stall<wbr/>Durations</a>
   16998 for details about encoding this scenario.<wbr/></p>
   16999             </td>
   17000           </tr>
   17001 
   17002           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   17003            <!-- end of entry -->
   17004         
   17005                 
   17006           <tr class="entry" id="static_android.sensor.info.physicalSize">
   17007             <td class="entry_name
   17008              " rowspan="5">
   17009               android.<wbr/>sensor.<wbr/>info.<wbr/>physical<wbr/>Size
   17010             </td>
   17011             <td class="entry_type">
   17012                 <span class="entry_type_name">float</span>
   17013                 <span class="entry_type_container">x</span>
   17014 
   17015                 <span class="entry_type_array">
   17016                   2
   17017                 </span>
   17018               <span class="entry_type_visibility"> [public as sizeF]</span>
   17019 
   17020 
   17021               <span class="entry_type_hwlevel">[legacy] </span>
   17022 
   17023 
   17024                 <div class="entry_type_notes">width x height</div>
   17025 
   17026 
   17027             </td> <!-- entry_type -->
   17028 
   17029             <td class="entry_description">
   17030               <p>The physical dimensions of the full pixel
   17031 array.<wbr/></p>
   17032             </td>
   17033 
   17034             <td class="entry_units">
   17035               Millimeters
   17036             </td>
   17037 
   17038             <td class="entry_range">
   17039             </td>
   17040 
   17041             <td class="entry_tags">
   17042               <ul class="entry_tags">
   17043                   <li><a href="#tag_V1">V1</a></li>
   17044                   <li><a href="#tag_BC">BC</a></li>
   17045               </ul>
   17046             </td>
   17047 
   17048           </tr>
   17049           <tr class="entries_header">
   17050             <th class="th_details" colspan="5">Details</th>
   17051           </tr>
   17052           <tr class="entry_cont">
   17053             <td class="entry_details" colspan="5">
   17054               <p>This is the physical size of the sensor pixel
   17055 array defined by <a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a>.<wbr/></p>
   17056             </td>
   17057           </tr>
   17058 
   17059           <tr class="entries_header">
   17060             <th class="th_details" colspan="5">HAL Implementation Details</th>
   17061           </tr>
   17062           <tr class="entry_cont">
   17063             <td class="entry_details" colspan="5">
   17064               <p>Needed for FOV calculation for old API</p>
   17065             </td>
   17066           </tr>
   17067 
   17068           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   17069            <!-- end of entry -->
   17070         
   17071                 
   17072           <tr class="entry" id="static_android.sensor.info.pixelArraySize">
   17073             <td class="entry_name
   17074              " rowspan="3">
   17075               android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size
   17076             </td>
   17077             <td class="entry_type">
   17078                 <span class="entry_type_name">int32</span>
   17079                 <span class="entry_type_container">x</span>
   17080 
   17081                 <span class="entry_type_array">
   17082                   2
   17083                 </span>
   17084               <span class="entry_type_visibility"> [public as size]</span>
   17085 
   17086 
   17087               <span class="entry_type_hwlevel">[legacy] </span>
   17088 
   17089 
   17090 
   17091 
   17092             </td> <!-- entry_type -->
   17093 
   17094             <td class="entry_description">
   17095               <p>Dimensions of the full pixel array,<wbr/> possibly
   17096 including black calibration pixels.<wbr/></p>
   17097             </td>
   17098 
   17099             <td class="entry_units">
   17100               Pixels
   17101             </td>
   17102 
   17103             <td class="entry_range">
   17104             </td>
   17105 
   17106             <td class="entry_tags">
   17107               <ul class="entry_tags">
   17108                   <li><a href="#tag_RAW">RAW</a></li>
   17109                   <li><a href="#tag_BC">BC</a></li>
   17110               </ul>
   17111             </td>
   17112 
   17113           </tr>
   17114           <tr class="entries_header">
   17115             <th class="th_details" colspan="5">Details</th>
   17116           </tr>
   17117           <tr class="entry_cont">
   17118             <td class="entry_details" colspan="5">
   17119               <p>The pixel count of the full pixel array,<wbr/>
   17120 which covers <a href="#static_android.sensor.info.physicalSize">android.<wbr/>sensor.<wbr/>info.<wbr/>physical<wbr/>Size</a> area.<wbr/></p>
   17121 <p>If a camera device supports raw sensor formats,<wbr/> either this
   17122 or <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a> is the maximum output
   17123 raw size listed in <a href="#static_android.scaler.streamConfigurationMap">android.<wbr/>scaler.<wbr/>stream<wbr/>Configuration<wbr/>Map</a>.<wbr/>
   17124 If a size corresponding to pixelArraySize is listed,<wbr/> the resulting
   17125 raw sensor image will include black pixels.<wbr/></p>
   17126 <p>Some parts of the full pixel array may not receive light from the scene,<wbr/>
   17127 or are otherwise inactive.<wbr/>  The <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a> key
   17128 defines the rectangle of active pixels that actually forms an image.<wbr/></p>
   17129             </td>
   17130           </tr>
   17131 
   17132 
   17133           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   17134            <!-- end of entry -->
   17135         
   17136                 
   17137           <tr class="entry" id="static_android.sensor.info.whiteLevel">
   17138             <td class="entry_name
   17139              " rowspan="5">
   17140               android.<wbr/>sensor.<wbr/>info.<wbr/>white<wbr/>Level
   17141             </td>
   17142             <td class="entry_type">
   17143                 <span class="entry_type_name">int32</span>
   17144 
   17145               <span class="entry_type_visibility"> [public]</span>
   17146 
   17147 
   17148 
   17149 
   17150 
   17151 
   17152             </td> <!-- entry_type -->
   17153 
   17154             <td class="entry_description">
   17155               <p>Maximum raw value output by sensor.<wbr/></p>
   17156             </td>
   17157 
   17158             <td class="entry_units">
   17159             </td>
   17160 
   17161             <td class="entry_range">
   17162               <p>&gt; 255 (8-bit output)</p>
   17163             </td>
   17164 
   17165             <td class="entry_tags">
   17166               <ul class="entry_tags">
   17167                   <li><a href="#tag_RAW">RAW</a></li>
   17168               </ul>
   17169             </td>
   17170 
   17171           </tr>
   17172           <tr class="entries_header">
   17173             <th class="th_details" colspan="5">Details</th>
   17174           </tr>
   17175           <tr class="entry_cont">
   17176             <td class="entry_details" colspan="5">
   17177               <p>This specifies the fully-saturated encoding level for the raw
   17178 sample values from the sensor.<wbr/>  This is typically caused by the
   17179 sensor becoming highly non-linear or clipping.<wbr/> The minimum for
   17180 each channel is specified by the offset in the
   17181 <a href="#static_android.sensor.blackLevelPattern">android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern</a> key.<wbr/></p>
   17182 <p>The white level is typically determined either by sensor bit depth
   17183 (8-14 bits is expected),<wbr/> or by the point where the sensor response
   17184 becomes too non-linear to be useful.<wbr/>  The default value for this is
   17185 maximum representable value for a 16-bit raw sample (2^16 - 1).<wbr/></p>
   17186             </td>
   17187           </tr>
   17188 
   17189           <tr class="entries_header">
   17190             <th class="th_details" colspan="5">HAL Implementation Details</th>
   17191           </tr>
   17192           <tr class="entry_cont">
   17193             <td class="entry_details" colspan="5">
   17194               <p>The full bit depth of the sensor must be available in the raw data,<wbr/>
   17195 so the value for linear sensors should not be significantly lower
   17196 than maximum raw value supported,<wbr/> i.<wbr/>e.<wbr/> 2^(sensor bits per pixel).<wbr/></p>
   17197             </td>
   17198           </tr>
   17199 
   17200           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   17201            <!-- end of entry -->
   17202         
   17203                 
   17204           <tr class="entry" id="static_android.sensor.info.timestampSource">
   17205             <td class="entry_name
   17206              " rowspan="3">
   17207               android.<wbr/>sensor.<wbr/>info.<wbr/>timestamp<wbr/>Source
   17208             </td>
   17209             <td class="entry_type">
   17210                 <span class="entry_type_name entry_type_name_enum">byte</span>
   17211 
   17212               <span class="entry_type_visibility"> [public]</span>
   17213 
   17214 
   17215               <span class="entry_type_hwlevel">[legacy] </span>
   17216 
   17217 
   17218 
   17219                 <ul class="entry_type_enum">
   17220                   <li>
   17221                     <span class="entry_type_enum_name">UNKNOWN</span>
   17222                     <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/>
   17223 but can not be compared to timestamps from other subsystems
   17224 (e.<wbr/>g.<wbr/> accelerometer,<wbr/> gyro etc.<wbr/>),<wbr/> or other instances of the same or different
   17225 camera devices in the same system.<wbr/> Timestamps between streams and results for
   17226 a single camera instance are comparable,<wbr/> and the timestamps for all buffers
   17227 and the result metadata generated by a single capture are identical.<wbr/></p></span>
   17228                   </li>
   17229                   <li>
   17230                     <span class="entry_type_enum_name">REALTIME</span>
   17231                     <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
   17232 android.<wbr/>os.<wbr/>System<wbr/>Clock#elapsed<wbr/>Realtime<wbr/>Nanos(),<wbr/>
   17233 and they can be compared to other timestamps using that base.<wbr/></p></span>
   17234                   </li>
   17235                 </ul>
   17236 
   17237             </td> <!-- entry_type -->
   17238 
   17239             <td class="entry_description">
   17240               <p>The time base source for sensor capture start timestamps.<wbr/></p>
   17241             </td>
   17242 
   17243             <td class="entry_units">
   17244             </td>
   17245 
   17246             <td class="entry_range">
   17247             </td>
   17248 
   17249             <td class="entry_tags">
   17250               <ul class="entry_tags">
   17251                   <li><a href="#tag_V1">V1</a></li>
   17252               </ul>
   17253             </td>
   17254 
   17255           </tr>
   17256           <tr class="entries_header">
   17257             <th class="th_details" colspan="5">Details</th>
   17258           </tr>
   17259           <tr class="entry_cont">
   17260             <td class="entry_details" colspan="5">
   17261               <p>The timestamps provided for captures are always in nanoseconds and monotonic,<wbr/> but
   17262 may not based on a time source that can be compared to other system time sources.<wbr/></p>
   17263 <p>This characteristic defines the source for the timestamps,<wbr/> and therefore whether they
   17264 can be compared against other system time sources/<wbr/>timestamps.<wbr/></p>
   17265             </td>
   17266           </tr>
   17267 
   17268 
   17269           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   17270            <!-- end of entry -->
   17271         
   17272         
   17273         
   17274 
   17275                 
   17276           <tr class="entry" id="static_android.sensor.referenceIlluminant1">
   17277             <td class="entry_name
   17278              " rowspan="5">
   17279               android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1
   17280             </td>
   17281             <td class="entry_type">
   17282                 <span class="entry_type_name entry_type_name_enum">byte</span>
   17283 
   17284               <span class="entry_type_visibility"> [public]</span>
   17285 
   17286 
   17287 
   17288 
   17289 
   17290                 <ul class="entry_type_enum">
   17291                   <li>
   17292                     <span class="entry_type_enum_name">DAYLIGHT</span>
   17293                     <span class="entry_type_enum_value">1</span>
   17294                   </li>
   17295                   <li>
   17296                     <span class="entry_type_enum_name">FLUORESCENT</span>
   17297                     <span class="entry_type_enum_value">2</span>
   17298                   </li>
   17299                   <li>
   17300                     <span class="entry_type_enum_name">TUNGSTEN</span>
   17301                     <span class="entry_type_enum_value">3</span>
   17302                     <span class="entry_type_enum_notes"><p>Incandescent light</p></span>
   17303                   </li>
   17304                   <li>
   17305                     <span class="entry_type_enum_name">FLASH</span>
   17306                     <span class="entry_type_enum_value">4</span>
   17307                   </li>
   17308                   <li>
   17309                     <span class="entry_type_enum_name">FINE_WEATHER</span>
   17310                     <span class="entry_type_enum_value">9</span>
   17311                   </li>
   17312                   <li>
   17313                     <span class="entry_type_enum_name">CLOUDY_WEATHER</span>
   17314                     <span class="entry_type_enum_value">10</span>
   17315                   </li>
   17316                   <li>
   17317                     <span class="entry_type_enum_name">SHADE</span>
   17318                     <span class="entry_type_enum_value">11</span>
   17319                   </li>
   17320                   <li>
   17321                     <span class="entry_type_enum_name">DAYLIGHT_FLUORESCENT</span>
   17322                     <span class="entry_type_enum_value">12</span>
   17323                     <span class="entry_type_enum_notes"><p>D 5700 - 7100K</p></span>
   17324                   </li>
   17325                   <li>
   17326                     <span class="entry_type_enum_name">DAY_WHITE_FLUORESCENT</span>
   17327                     <span class="entry_type_enum_value">13</span>
   17328                     <span class="entry_type_enum_notes"><p>N 4600 - 5400K</p></span>
   17329                   </li>
   17330                   <li>
   17331                     <span class="entry_type_enum_name">COOL_WHITE_FLUORESCENT</span>
   17332                     <span class="entry_type_enum_value">14</span>
   17333                     <span class="entry_type_enum_notes"><p>W 3900 - 4500K</p></span>
   17334                   </li>
   17335                   <li>
   17336                     <span class="entry_type_enum_name">WHITE_FLUORESCENT</span>
   17337                     <span class="entry_type_enum_value">15</span>
   17338                     <span class="entry_type_enum_notes"><p>WW 3200 - 3700K</p></span>
   17339                   </li>
   17340                   <li>
   17341                     <span class="entry_type_enum_name">STANDARD_A</span>
   17342                     <span class="entry_type_enum_value">17</span>
   17343                   </li>
   17344                   <li>
   17345                     <span class="entry_type_enum_name">STANDARD_B</span>
   17346                     <span class="entry_type_enum_value">18</span>
   17347                   </li>
   17348                   <li>
   17349                     <span class="entry_type_enum_name">STANDARD_C</span>
   17350                     <span class="entry_type_enum_value">19</span>
   17351                   </li>
   17352                   <li>
   17353                     <span class="entry_type_enum_name">D55</span>
   17354                     <span class="entry_type_enum_value">20</span>
   17355                   </li>
   17356                   <li>
   17357                     <span class="entry_type_enum_name">D65</span>
   17358                     <span class="entry_type_enum_value">21</span>
   17359                   </li>
   17360                   <li>
   17361                     <span class="entry_type_enum_name">D75</span>
   17362                     <span class="entry_type_enum_value">22</span>
   17363                   </li>
   17364                   <li>
   17365                     <span class="entry_type_enum_name">D50</span>
   17366                     <span class="entry_type_enum_value">23</span>
   17367                   </li>
   17368                   <li>
   17369                     <span class="entry_type_enum_name">ISO_STUDIO_TUNGSTEN</span>
   17370                     <span class="entry_type_enum_value">24</span>
   17371                   </li>
   17372                 </ul>
   17373 
   17374             </td> <!-- entry_type -->
   17375 
   17376             <td class="entry_description">
   17377               <p>The standard reference illuminant used as the scene light source when
   17378 calculating the <a href="#static_android.sensor.colorTransform1">android.<wbr/>sensor.<wbr/>color<wbr/>Transform1</a>,<wbr/>
   17379 <a href="#static_android.sensor.calibrationTransform1">android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform1</a>,<wbr/> and
   17380 <a href="#static_android.sensor.forwardMatrix1">android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix1</a> matrices.<wbr/></p>
   17381             </td>
   17382 
   17383             <td class="entry_units">
   17384             </td>
   17385 
   17386             <td class="entry_range">
   17387             </td>
   17388 
   17389             <td class="entry_tags">
   17390               <ul class="entry_tags">
   17391                   <li><a href="#tag_RAW">RAW</a></li>
   17392               </ul>
   17393             </td>
   17394 
   17395           </tr>
   17396           <tr class="entries_header">
   17397             <th class="th_details" colspan="5">Details</th>
   17398           </tr>
   17399           <tr class="entry_cont">
   17400             <td class="entry_details" colspan="5">
   17401               <p>The values in this key correspond to the values defined for the
   17402 EXIF LightSource tag.<wbr/> These illuminants are standard light sources
   17403 that are often used calibrating camera devices.<wbr/></p>
   17404 <p>If this key is present,<wbr/> then <a href="#static_android.sensor.colorTransform1">android.<wbr/>sensor.<wbr/>color<wbr/>Transform1</a>,<wbr/>
   17405 <a href="#static_android.sensor.calibrationTransform1">android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform1</a>,<wbr/> and
   17406 <a href="#static_android.sensor.forwardMatrix1">android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix1</a> will also be present.<wbr/></p>
   17407 <p>Some devices may choose to provide a second set of calibration
   17408 information for improved quality,<wbr/> including
   17409 <a href="#static_android.sensor.referenceIlluminant2">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2</a> and its corresponding matrices.<wbr/></p>
   17410             </td>
   17411           </tr>
   17412 
   17413           <tr class="entries_header">
   17414             <th class="th_details" colspan="5">HAL Implementation Details</th>
   17415           </tr>
   17416           <tr class="entry_cont">
   17417             <td class="entry_details" colspan="5">
   17418               <p>The first reference illuminant (<a href="#static_android.sensor.referenceIlluminant1">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1</a>)
   17419 and corresponding matrices must be present to support the RAW capability
   17420 and DNG output.<wbr/></p>
   17421 <p>When producing raw images with a color profile that has only been
   17422 calibrated against a single light source,<wbr/> it is valid to omit
   17423 <a href="#static_android.sensor.referenceIlluminant2">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2</a> along with the
   17424 <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/>
   17425 and <a href="#static_android.sensor.forwardMatrix2">android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix2</a> matrices.<wbr/></p>
   17426 <p>If only <a href="#static_android.sensor.referenceIlluminant1">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1</a> is included,<wbr/> it should be
   17427 chosen so that it is representative of typical scene lighting.<wbr/>  In
   17428 general,<wbr/> D50 or DAYLIGHT will be chosen for this case.<wbr/></p>
   17429 <p>If both <a href="#static_android.sensor.referenceIlluminant1">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1</a> and
   17430 <a href="#static_android.sensor.referenceIlluminant2">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2</a> are included,<wbr/> they should be
   17431 chosen to represent the typical range of scene lighting conditions.<wbr/>
   17432 In general,<wbr/> low color temperature illuminant such as Standard-A will
   17433 be chosen for the first reference illuminant and a higher color
   17434 temperature illuminant such as D65 will be chosen for the second
   17435 reference illuminant.<wbr/></p>
   17436             </td>
   17437           </tr>
   17438 
   17439           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   17440            <!-- end of entry -->
   17441         
   17442                 
   17443           <tr class="entry" id="static_android.sensor.referenceIlluminant2">
   17444             <td class="entry_name
   17445              " rowspan="3">
   17446               android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2
   17447             </td>
   17448             <td class="entry_type">
   17449                 <span class="entry_type_name">byte</span>
   17450 
   17451               <span class="entry_type_visibility"> [public]</span>
   17452 
   17453 
   17454 
   17455 
   17456 
   17457 
   17458             </td> <!-- entry_type -->
   17459 
   17460             <td class="entry_description">
   17461               <p>The standard reference illuminant used as the scene light source when
   17462 calculating the <a href="#static_android.sensor.colorTransform2">android.<wbr/>sensor.<wbr/>color<wbr/>Transform2</a>,<wbr/>
   17463 <a href="#static_android.sensor.calibrationTransform2">android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform2</a>,<wbr/> and
   17464 <a href="#static_android.sensor.forwardMatrix2">android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix2</a> matrices.<wbr/></p>
   17465             </td>
   17466 
   17467             <td class="entry_units">
   17468             </td>
   17469 
   17470             <td class="entry_range">
   17471               <p>Any value listed in <a href="#static_android.sensor.referenceIlluminant1">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1</a></p>
   17472             </td>
   17473 
   17474             <td class="entry_tags">
   17475               <ul class="entry_tags">
   17476                   <li><a href="#tag_RAW">RAW</a></li>
   17477               </ul>
   17478             </td>
   17479 
   17480           </tr>
   17481           <tr class="entries_header">
   17482             <th class="th_details" colspan="5">Details</th>
   17483           </tr>
   17484           <tr class="entry_cont">
   17485             <td class="entry_details" colspan="5">
   17486               <p>See <a href="#static_android.sensor.referenceIlluminant1">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1</a> for more details.<wbr/></p>
   17487 <p>If this key is present,<wbr/> then <a href="#static_android.sensor.colorTransform2">android.<wbr/>sensor.<wbr/>color<wbr/>Transform2</a>,<wbr/>
   17488 <a href="#static_android.sensor.calibrationTransform2">android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform2</a>,<wbr/> and
   17489 <a href="#static_android.sensor.forwardMatrix2">android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix2</a> will also be present.<wbr/></p>
   17490             </td>
   17491           </tr>
   17492 
   17493 
   17494           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   17495            <!-- end of entry -->
   17496         
   17497                 
   17498           <tr class="entry" id="static_android.sensor.calibrationTransform1">
   17499             <td class="entry_name
   17500              " rowspan="3">
   17501               android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform1
   17502             </td>
   17503             <td class="entry_type">
   17504                 <span class="entry_type_name">rational</span>
   17505                 <span class="entry_type_container">x</span>
   17506 
   17507                 <span class="entry_type_array">
   17508                   3 x 3
   17509                 </span>
   17510               <span class="entry_type_visibility"> [public as colorSpaceTransform]</span>
   17511 
   17512 
   17513 
   17514 
   17515                 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
   17516 
   17517 
   17518             </td> <!-- entry_type -->
   17519 
   17520             <td class="entry_description">
   17521               <p>A per-device calibration transform matrix that maps from the
   17522 reference sensor colorspace to the actual device sensor colorspace.<wbr/></p>
   17523             </td>
   17524 
   17525             <td class="entry_units">
   17526             </td>
   17527 
   17528             <td class="entry_range">
   17529             </td>
   17530 
   17531             <td class="entry_tags">
   17532               <ul class="entry_tags">
   17533                   <li><a href="#tag_RAW">RAW</a></li>
   17534               </ul>
   17535             </td>
   17536 
   17537           </tr>
   17538           <tr class="entries_header">
   17539             <th class="th_details" colspan="5">Details</th>
   17540           </tr>
   17541           <tr class="entry_cont">
   17542             <td class="entry_details" colspan="5">
   17543               <p>This matrix is used to correct for per-device variations in the
   17544 sensor colorspace,<wbr/> and is used for processing raw buffer data.<wbr/></p>
   17545 <p>The matrix is expressed as a 3x3 matrix in row-major-order,<wbr/> and
   17546 contains a per-device calibration transform that maps colors
   17547 from reference sensor color space (i.<wbr/>e.<wbr/> the "golden module"
   17548 colorspace) into this camera device's native sensor color
   17549 space under the first reference illuminant
   17550 (<a href="#static_android.sensor.referenceIlluminant1">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1</a>).<wbr/></p>
   17551             </td>
   17552           </tr>
   17553 
   17554 
   17555           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   17556            <!-- end of entry -->
   17557         
   17558                 
   17559           <tr class="entry" id="static_android.sensor.calibrationTransform2">
   17560             <td class="entry_name
   17561              " rowspan="3">
   17562               android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform2
   17563             </td>
   17564             <td class="entry_type">
   17565                 <span class="entry_type_name">rational</span>
   17566                 <span class="entry_type_container">x</span>
   17567 
   17568                 <span class="entry_type_array">
   17569                   3 x 3
   17570                 </span>
   17571               <span class="entry_type_visibility"> [public as colorSpaceTransform]</span>
   17572 
   17573 
   17574 
   17575 
   17576                 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
   17577 
   17578 
   17579             </td> <!-- entry_type -->
   17580 
   17581             <td class="entry_description">
   17582               <p>A per-device calibration transform matrix that maps from the
   17583 reference sensor colorspace to the actual device sensor colorspace
   17584 (this is the colorspace of the raw buffer data).<wbr/></p>
   17585             </td>
   17586 
   17587             <td class="entry_units">
   17588             </td>
   17589 
   17590             <td class="entry_range">
   17591             </td>
   17592 
   17593             <td class="entry_tags">
   17594               <ul class="entry_tags">
   17595                   <li><a href="#tag_RAW">RAW</a></li>
   17596               </ul>
   17597             </td>
   17598 
   17599           </tr>
   17600           <tr class="entries_header">
   17601             <th class="th_details" colspan="5">Details</th>
   17602           </tr>
   17603           <tr class="entry_cont">
   17604             <td class="entry_details" colspan="5">
   17605               <p>This matrix is used to correct for per-device variations in the
   17606 sensor colorspace,<wbr/> and is used for processing raw buffer data.<wbr/></p>
   17607 <p>The matrix is expressed as a 3x3 matrix in row-major-order,<wbr/> and
   17608 contains a per-device calibration transform that maps colors
   17609 from reference sensor color space (i.<wbr/>e.<wbr/> the "golden module"
   17610 colorspace) into this camera device's native sensor color
   17611 space under the second reference illuminant
   17612 (<a href="#static_android.sensor.referenceIlluminant2">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2</a>).<wbr/></p>
   17613 <p>This matrix will only be present if the second reference
   17614 illuminant is present.<wbr/></p>
   17615             </td>
   17616           </tr>
   17617 
   17618 
   17619           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   17620            <!-- end of entry -->
   17621         
   17622                 
   17623           <tr class="entry" id="static_android.sensor.colorTransform1">
   17624             <td class="entry_name
   17625              " rowspan="3">
   17626               android.<wbr/>sensor.<wbr/>color<wbr/>Transform1
   17627             </td>
   17628             <td class="entry_type">
   17629                 <span class="entry_type_name">rational</span>
   17630                 <span class="entry_type_container">x</span>
   17631 
   17632                 <span class="entry_type_array">
   17633                   3 x 3
   17634                 </span>
   17635               <span class="entry_type_visibility"> [public as colorSpaceTransform]</span>
   17636 
   17637 
   17638 
   17639 
   17640                 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
   17641 
   17642 
   17643             </td> <!-- entry_type -->
   17644 
   17645             <td class="entry_description">
   17646               <p>A matrix that transforms color values from CIE XYZ color space to
   17647 reference sensor color space.<wbr/></p>
   17648             </td>
   17649 
   17650             <td class="entry_units">
   17651             </td>
   17652 
   17653             <td class="entry_range">
   17654             </td>
   17655 
   17656             <td class="entry_tags">
   17657               <ul class="entry_tags">
   17658                   <li><a href="#tag_RAW">RAW</a></li>
   17659               </ul>
   17660             </td>
   17661 
   17662           </tr>
   17663           <tr class="entries_header">
   17664             <th class="th_details" colspan="5">Details</th>
   17665           </tr>
   17666           <tr class="entry_cont">
   17667             <td class="entry_details" colspan="5">
   17668               <p>This matrix is used to convert from the standard CIE XYZ color
   17669 space to the reference sensor colorspace,<wbr/> and is used when processing
   17670 raw buffer data.<wbr/></p>
   17671 <p>The matrix is expressed as a 3x3 matrix in row-major-order,<wbr/> and
   17672 contains a color transform matrix that maps colors from the CIE
   17673 XYZ color space to the reference sensor color space (i.<wbr/>e.<wbr/> the
   17674 "golden module" colorspace) under the first reference illuminant
   17675 (<a href="#static_android.sensor.referenceIlluminant1">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1</a>).<wbr/></p>
   17676 <p>The white points chosen in both the reference sensor color space
   17677 and the CIE XYZ colorspace when calculating this transform will
   17678 match the standard white point for the first reference illuminant
   17679 (i.<wbr/>e.<wbr/> no chromatic adaptation will be applied by this transform).<wbr/></p>
   17680             </td>
   17681           </tr>
   17682 
   17683 
   17684           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   17685            <!-- end of entry -->
   17686         
   17687                 
   17688           <tr class="entry" id="static_android.sensor.colorTransform2">
   17689             <td class="entry_name
   17690              " rowspan="3">
   17691               android.<wbr/>sensor.<wbr/>color<wbr/>Transform2
   17692             </td>
   17693             <td class="entry_type">
   17694                 <span class="entry_type_name">rational</span>
   17695                 <span class="entry_type_container">x</span>
   17696 
   17697                 <span class="entry_type_array">
   17698                   3 x 3
   17699                 </span>
   17700               <span class="entry_type_visibility"> [public as colorSpaceTransform]</span>
   17701 
   17702 
   17703 
   17704 
   17705                 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
   17706 
   17707 
   17708             </td> <!-- entry_type -->
   17709 
   17710             <td class="entry_description">
   17711               <p>A matrix that transforms color values from CIE XYZ color space to
   17712 reference sensor color space.<wbr/></p>
   17713             </td>
   17714 
   17715             <td class="entry_units">
   17716             </td>
   17717 
   17718             <td class="entry_range">
   17719             </td>
   17720 
   17721             <td class="entry_tags">
   17722               <ul class="entry_tags">
   17723                   <li><a href="#tag_RAW">RAW</a></li>
   17724               </ul>
   17725             </td>
   17726 
   17727           </tr>
   17728           <tr class="entries_header">
   17729             <th class="th_details" colspan="5">Details</th>
   17730           </tr>
   17731           <tr class="entry_cont">
   17732             <td class="entry_details" colspan="5">
   17733               <p>This matrix is used to convert from the standard CIE XYZ color
   17734 space to the reference sensor colorspace,<wbr/> and is used when processing
   17735 raw buffer data.<wbr/></p>
   17736 <p>The matrix is expressed as a 3x3 matrix in row-major-order,<wbr/> and
   17737 contains a color transform matrix that maps colors from the CIE
   17738 XYZ color space to the reference sensor color space (i.<wbr/>e.<wbr/> the
   17739 "golden module" colorspace) under the second reference illuminant
   17740 (<a href="#static_android.sensor.referenceIlluminant2">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2</a>).<wbr/></p>
   17741 <p>The white points chosen in both the reference sensor color space
   17742 and the CIE XYZ colorspace when calculating this transform will
   17743 match the standard white point for the second reference illuminant
   17744 (i.<wbr/>e.<wbr/> no chromatic adaptation will be applied by this transform).<wbr/></p>
   17745 <p>This matrix will only be present if the second reference
   17746 illuminant is present.<wbr/></p>
   17747             </td>
   17748           </tr>
   17749 
   17750 
   17751           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   17752            <!-- end of entry -->
   17753         
   17754                 
   17755           <tr class="entry" id="static_android.sensor.forwardMatrix1">
   17756             <td class="entry_name
   17757              " rowspan="3">
   17758               android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix1
   17759             </td>
   17760             <td class="entry_type">
   17761                 <span class="entry_type_name">rational</span>
   17762                 <span class="entry_type_container">x</span>
   17763 
   17764                 <span class="entry_type_array">
   17765                   3 x 3
   17766                 </span>
   17767               <span class="entry_type_visibility"> [public as colorSpaceTransform]</span>
   17768 
   17769 
   17770 
   17771 
   17772                 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
   17773 
   17774 
   17775             </td> <!-- entry_type -->
   17776 
   17777             <td class="entry_description">
   17778               <p>A matrix that transforms white balanced camera colors from the reference
   17779 sensor colorspace to the CIE XYZ colorspace with a D50 whitepoint.<wbr/></p>
   17780             </td>
   17781 
   17782             <td class="entry_units">
   17783             </td>
   17784 
   17785             <td class="entry_range">
   17786             </td>
   17787 
   17788             <td class="entry_tags">
   17789               <ul class="entry_tags">
   17790                   <li><a href="#tag_RAW">RAW</a></li>
   17791               </ul>
   17792             </td>
   17793 
   17794           </tr>
   17795           <tr class="entries_header">
   17796             <th class="th_details" colspan="5">Details</th>
   17797           </tr>
   17798           <tr class="entry_cont">
   17799             <td class="entry_details" colspan="5">
   17800               <p>This matrix is used to convert to the standard CIE XYZ colorspace,<wbr/> and
   17801 is used when processing raw buffer data.<wbr/></p>
   17802 <p>This matrix is expressed as a 3x3 matrix in row-major-order,<wbr/> and contains
   17803 a color transform matrix that maps white balanced colors from the
   17804 reference sensor color space to the CIE XYZ color space with a D50 white
   17805 point.<wbr/></p>
   17806 <p>Under the first reference illuminant (<a href="#static_android.sensor.referenceIlluminant1">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1</a>)
   17807 this matrix is chosen so that the standard white point for this reference
   17808 illuminant in the reference sensor colorspace is mapped to D50 in the
   17809 CIE XYZ colorspace.<wbr/></p>
   17810             </td>
   17811           </tr>
   17812 
   17813 
   17814           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   17815            <!-- end of entry -->
   17816         
   17817                 
   17818           <tr class="entry" id="static_android.sensor.forwardMatrix2">
   17819             <td class="entry_name
   17820              " rowspan="3">
   17821               android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix2
   17822             </td>
   17823             <td class="entry_type">
   17824                 <span class="entry_type_name">rational</span>
   17825                 <span class="entry_type_container">x</span>
   17826 
   17827                 <span class="entry_type_array">
   17828                   3 x 3
   17829                 </span>
   17830               <span class="entry_type_visibility"> [public as colorSpaceTransform]</span>
   17831 
   17832 
   17833 
   17834 
   17835                 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
   17836 
   17837 
   17838             </td> <!-- entry_type -->
   17839 
   17840             <td class="entry_description">
   17841               <p>A matrix that transforms white balanced camera colors from the reference
   17842 sensor colorspace to the CIE XYZ colorspace with a D50 whitepoint.<wbr/></p>
   17843             </td>
   17844 
   17845             <td class="entry_units">
   17846             </td>
   17847 
   17848             <td class="entry_range">
   17849             </td>
   17850 
   17851             <td class="entry_tags">
   17852               <ul class="entry_tags">
   17853                   <li><a href="#tag_RAW">RAW</a></li>
   17854               </ul>
   17855             </td>
   17856 
   17857           </tr>
   17858           <tr class="entries_header">
   17859             <th class="th_details" colspan="5">Details</th>
   17860           </tr>
   17861           <tr class="entry_cont">
   17862             <td class="entry_details" colspan="5">
   17863               <p>This matrix is used to convert to the standard CIE XYZ colorspace,<wbr/> and
   17864 is used when processing raw buffer data.<wbr/></p>
   17865 <p>This matrix is expressed as a 3x3 matrix in row-major-order,<wbr/> and contains
   17866 a color transform matrix that maps white balanced colors from the
   17867 reference sensor color space to the CIE XYZ color space with a D50 white
   17868 point.<wbr/></p>
   17869 <p>Under the second reference illuminant (<a href="#static_android.sensor.referenceIlluminant2">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2</a>)
   17870 this matrix is chosen so that the standard white point for this reference
   17871 illuminant in the reference sensor colorspace is mapped to D50 in the
   17872 CIE XYZ colorspace.<wbr/></p>
   17873 <p>This matrix will only be present if the second reference
   17874 illuminant is present.<wbr/></p>
   17875             </td>
   17876           </tr>
   17877 
   17878 
   17879           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   17880            <!-- end of entry -->
   17881         
   17882                 
   17883           <tr class="entry" id="static_android.sensor.baseGainFactor">
   17884             <td class="entry_name
   17885              " rowspan="1">
   17886               android.<wbr/>sensor.<wbr/>base<wbr/>Gain<wbr/>Factor
   17887             </td>
   17888             <td class="entry_type">
   17889                 <span class="entry_type_name">rational</span>
   17890 
   17891               <span class="entry_type_visibility"> [system]</span>
   17892 
   17893 
   17894 
   17895 
   17896 
   17897 
   17898             </td> <!-- entry_type -->
   17899 
   17900             <td class="entry_description">
   17901               <p>Gain factor from electrons to raw units when
   17902 ISO=100</p>
   17903             </td>
   17904 
   17905             <td class="entry_units">
   17906             </td>
   17907 
   17908             <td class="entry_range">
   17909             </td>
   17910 
   17911             <td class="entry_tags">
   17912               <ul class="entry_tags">
   17913                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   17914               </ul>
   17915             </td>
   17916 
   17917           </tr>
   17918 
   17919 
   17920           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   17921            <!-- end of entry -->
   17922         
   17923                 
   17924           <tr class="entry" id="static_android.sensor.blackLevelPattern">
   17925             <td class="entry_name
   17926              " rowspan="5">
   17927               android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern
   17928             </td>
   17929             <td class="entry_type">
   17930                 <span class="entry_type_name">int32</span>
   17931                 <span class="entry_type_container">x</span>
   17932 
   17933                 <span class="entry_type_array">
   17934                   4
   17935                 </span>
   17936               <span class="entry_type_visibility"> [public as blackLevelPattern]</span>
   17937 
   17938 
   17939 
   17940 
   17941                 <div class="entry_type_notes">2x2 raw count block</div>
   17942 
   17943 
   17944             </td> <!-- entry_type -->
   17945 
   17946             <td class="entry_description">
   17947               <p>A fixed black level offset for each of the color filter arrangement
   17948 (CFA) mosaic channels.<wbr/></p>
   17949             </td>
   17950 
   17951             <td class="entry_units">
   17952             </td>
   17953 
   17954             <td class="entry_range">
   17955               <p>&gt;= 0 for each.<wbr/></p>
   17956             </td>
   17957 
   17958             <td class="entry_tags">
   17959               <ul class="entry_tags">
   17960                   <li><a href="#tag_RAW">RAW</a></li>
   17961               </ul>
   17962             </td>
   17963 
   17964           </tr>
   17965           <tr class="entries_header">
   17966             <th class="th_details" colspan="5">Details</th>
   17967           </tr>
   17968           <tr class="entry_cont">
   17969             <td class="entry_details" colspan="5">
   17970               <p>This key specifies the zero light value for each of the CFA mosaic
   17971 channels in the camera sensor.<wbr/>  The maximal value output by the
   17972 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>
   17973 <p>The values are given in the same order as channels listed for the CFA
   17974 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
   17975 nth value given corresponds to the black level offset for the nth
   17976 color channel listed in the CFA.<wbr/></p>
   17977             </td>
   17978           </tr>
   17979 
   17980           <tr class="entries_header">
   17981             <th class="th_details" colspan="5">HAL Implementation Details</th>
   17982           </tr>
   17983           <tr class="entry_cont">
   17984             <td class="entry_details" colspan="5">
   17985               <p>The values are given in row-column scan order,<wbr/> with the first value
   17986 corresponding to the element of the CFA in row=0,<wbr/> column=0.<wbr/></p>
   17987             </td>
   17988           </tr>
   17989 
   17990           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   17991            <!-- end of entry -->
   17992         
   17993                 
   17994           <tr class="entry" id="static_android.sensor.maxAnalogSensitivity">
   17995             <td class="entry_name
   17996              " rowspan="3">
   17997               android.<wbr/>sensor.<wbr/>max<wbr/>Analog<wbr/>Sensitivity
   17998             </td>
   17999             <td class="entry_type">
   18000                 <span class="entry_type_name">int32</span>
   18001 
   18002               <span class="entry_type_visibility"> [public]</span>
   18003 
   18004 
   18005               <span class="entry_type_hwlevel">[full] </span>
   18006 
   18007 
   18008 
   18009 
   18010             </td> <!-- entry_type -->
   18011 
   18012             <td class="entry_description">
   18013               <p>Maximum sensitivity that is implemented
   18014 purely through analog gain.<wbr/></p>
   18015             </td>
   18016 
   18017             <td class="entry_units">
   18018             </td>
   18019 
   18020             <td class="entry_range">
   18021             </td>
   18022 
   18023             <td class="entry_tags">
   18024               <ul class="entry_tags">
   18025                   <li><a href="#tag_V1">V1</a></li>
   18026                   <li><a href="#tag_FULL">FULL</a></li>
   18027               </ul>
   18028             </td>
   18029 
   18030           </tr>
   18031           <tr class="entries_header">
   18032             <th class="th_details" colspan="5">Details</th>
   18033           </tr>
   18034           <tr class="entry_cont">
   18035             <td class="entry_details" colspan="5">
   18036               <p>For <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> values less than or
   18037 equal to this,<wbr/> all applied gain must be analog.<wbr/> For
   18038 values above this,<wbr/> the gain applied can be a mix of analog and
   18039 digital.<wbr/></p>
   18040             </td>
   18041           </tr>
   18042 
   18043 
   18044           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   18045            <!-- end of entry -->
   18046         
   18047                 
   18048           <tr class="entry" id="static_android.sensor.orientation">
   18049             <td class="entry_name
   18050              " rowspan="3">
   18051               android.<wbr/>sensor.<wbr/>orientation
   18052             </td>
   18053             <td class="entry_type">
   18054                 <span class="entry_type_name">int32</span>
   18055 
   18056               <span class="entry_type_visibility"> [public]</span>
   18057 
   18058 
   18059               <span class="entry_type_hwlevel">[legacy] </span>
   18060 
   18061 
   18062 
   18063 
   18064             </td> <!-- entry_type -->
   18065 
   18066             <td class="entry_description">
   18067               <p>Clockwise angle through which the output image needs to be rotated to be
   18068 upright on the device screen in its native orientation.<wbr/></p>
   18069             </td>
   18070 
   18071             <td class="entry_units">
   18072               Degrees of clockwise rotation; always a multiple of
   18073           90
   18074             </td>
   18075 
   18076             <td class="entry_range">
   18077               <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
   18078             </td>
   18079 
   18080             <td class="entry_tags">
   18081               <ul class="entry_tags">
   18082                   <li><a href="#tag_BC">BC</a></li>
   18083               </ul>
   18084             </td>
   18085 
   18086           </tr>
   18087           <tr class="entries_header">
   18088             <th class="th_details" colspan="5">Details</th>
   18089           </tr>
   18090           <tr class="entry_cont">
   18091             <td class="entry_details" colspan="5">
   18092               <p>Also defines the direction of rolling shutter readout,<wbr/> which is from top to bottom in
   18093 the sensor's coordinate system.<wbr/></p>
   18094             </td>
   18095           </tr>
   18096 
   18097 
   18098           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   18099            <!-- end of entry -->
   18100         
   18101                 
   18102           <tr class="entry" id="static_android.sensor.profileHueSatMapDimensions">
   18103             <td class="entry_name
   18104              " rowspan="3">
   18105               android.<wbr/>sensor.<wbr/>profile<wbr/>Hue<wbr/>Sat<wbr/>Map<wbr/>Dimensions
   18106             </td>
   18107             <td class="entry_type">
   18108                 <span class="entry_type_name">int32</span>
   18109                 <span class="entry_type_container">x</span>
   18110 
   18111                 <span class="entry_type_array">
   18112                   3
   18113                 </span>
   18114               <span class="entry_type_visibility"> [system]</span>
   18115 
   18116 
   18117 
   18118 
   18119                 <div class="entry_type_notes">Number of samples for hue,<wbr/> saturation,<wbr/> and value</div>
   18120 
   18121 
   18122             </td> <!-- entry_type -->
   18123 
   18124             <td class="entry_description">
   18125               <p>The number of input samples for each dimension of
   18126 <a href="#dynamic_android.sensor.profileHueSatMap">android.<wbr/>sensor.<wbr/>profile<wbr/>Hue<wbr/>Sat<wbr/>Map</a>.<wbr/></p>
   18127             </td>
   18128 
   18129             <td class="entry_units">
   18130             </td>
   18131 
   18132             <td class="entry_range">
   18133               <p>Hue &gt;= 1,<wbr/>
   18134 Saturation &gt;= 2,<wbr/>
   18135 Value &gt;= 1</p>
   18136             </td>
   18137 
   18138             <td class="entry_tags">
   18139               <ul class="entry_tags">
   18140                   <li><a href="#tag_RAW">RAW</a></li>
   18141               </ul>
   18142             </td>
   18143 
   18144           </tr>
   18145           <tr class="entries_header">
   18146             <th class="th_details" colspan="5">Details</th>
   18147           </tr>
   18148           <tr class="entry_cont">
   18149             <td class="entry_details" colspan="5">
   18150               <p>The number of input samples for the hue,<wbr/> saturation,<wbr/> and value
   18151 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
   18152 dimensions given is hue,<wbr/> saturation,<wbr/> value; where hue is the 0th
   18153 element.<wbr/></p>
   18154             </td>
   18155           </tr>
   18156 
   18157 
   18158           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   18159            <!-- end of entry -->
   18160         
   18161                 
   18162           <tr class="entry" id="static_android.sensor.availableTestPatternModes">
   18163             <td class="entry_name
   18164              " rowspan="5">
   18165               android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes
   18166             </td>
   18167             <td class="entry_type">
   18168                 <span class="entry_type_name">int32</span>
   18169                 <span class="entry_type_container">x</span>
   18170 
   18171                 <span class="entry_type_array">
   18172                   n
   18173                 </span>
   18174               <span class="entry_type_visibility"> [public]</span>
   18175 
   18176 
   18177 
   18178 
   18179                 <div class="entry_type_notes">list of enums</div>
   18180 
   18181 
   18182             </td> <!-- entry_type -->
   18183 
   18184             <td class="entry_description">
   18185               <p>List of sensor test pattern modes for <a href="#controls_android.sensor.testPatternMode">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode</a>
   18186 supported by this camera device.<wbr/></p>
   18187             </td>
   18188 
   18189             <td class="entry_units">
   18190             </td>
   18191 
   18192             <td class="entry_range">
   18193               <p>Any value listed in <a href="#controls_android.sensor.testPatternMode">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode</a></p>
   18194             </td>
   18195 
   18196             <td class="entry_tags">
   18197             </td>
   18198 
   18199           </tr>
   18200           <tr class="entries_header">
   18201             <th class="th_details" colspan="5">Details</th>
   18202           </tr>
   18203           <tr class="entry_cont">
   18204             <td class="entry_details" colspan="5">
   18205               <p>Defaults to OFF,<wbr/> and always includes OFF if defined.<wbr/></p>
   18206             </td>
   18207           </tr>
   18208 
   18209           <tr class="entries_header">
   18210             <th class="th_details" colspan="5">HAL Implementation Details</th>
   18211           </tr>
   18212           <tr class="entry_cont">
   18213             <td class="entry_details" colspan="5">
   18214               <p>All custom modes must be &gt;= CUSTOM1.<wbr/></p>
   18215             </td>
   18216           </tr>
   18217 
   18218           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   18219            <!-- end of entry -->
   18220         
   18221         
   18222 
   18223       <!-- end of kind -->
   18224       </tbody>
   18225       <tr><td colspan="6" class="kind">dynamic</td></tr>
   18226 
   18227       <thead class="entries_header">
   18228         <tr>
   18229           <th class="th_name">Property Name</th>
   18230           <th class="th_type">Type</th>
   18231           <th class="th_description">Description</th>
   18232           <th class="th_units">Units</th>
   18233           <th class="th_range">Range</th>
   18234           <th class="th_tags">Tags</th>
   18235         </tr>
   18236       </thead>
   18237 
   18238       <tbody>
   18239 
   18240         
   18241 
   18242         
   18243 
   18244         
   18245 
   18246         
   18247 
   18248                 
   18249           <tr class="entry" id="dynamic_android.sensor.exposureTime">
   18250             <td class="entry_name
   18251              " rowspan="3">
   18252               android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
   18253             </td>
   18254             <td class="entry_type">
   18255                 <span class="entry_type_name">int64</span>
   18256 
   18257               <span class="entry_type_visibility"> [public]</span>
   18258 
   18259 
   18260               <span class="entry_type_hwlevel">[full] </span>
   18261 
   18262 
   18263 
   18264 
   18265             </td> <!-- entry_type -->
   18266 
   18267             <td class="entry_description">
   18268               <p>Duration each pixel is exposed to
   18269 light.<wbr/></p>
   18270             </td>
   18271 
   18272             <td class="entry_units">
   18273               Nanoseconds
   18274             </td>
   18275 
   18276             <td class="entry_range">
   18277               <p><a href="#static_android.sensor.info.exposureTimeRange">android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range</a></p>
   18278             </td>
   18279 
   18280             <td class="entry_tags">
   18281               <ul class="entry_tags">
   18282                   <li><a href="#tag_V1">V1</a></li>
   18283               </ul>
   18284             </td>
   18285 
   18286           </tr>
   18287           <tr class="entries_header">
   18288             <th class="th_details" colspan="5">Details</th>
   18289           </tr>
   18290           <tr class="entry_cont">
   18291             <td class="entry_details" colspan="5">
   18292               <p>If the sensor can't expose this exact duration,<wbr/> it will shorten the
   18293 duration exposed to the nearest possible value (rather than expose longer).<wbr/>
   18294 The final exposure time used will be available in the output capture result.<wbr/></p>
   18295 <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
   18296 OFF; otherwise the auto-exposure algorithm will override this value.<wbr/></p>
   18297             </td>
   18298           </tr>
   18299 
   18300 
   18301           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   18302            <!-- end of entry -->
   18303         
   18304                 
   18305           <tr class="entry" id="dynamic_android.sensor.frameDuration">
   18306             <td class="entry_name
   18307              " rowspan="5">
   18308               android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
   18309             </td>
   18310             <td class="entry_type">
   18311                 <span class="entry_type_name">int64</span>
   18312 
   18313               <span class="entry_type_visibility"> [public]</span>
   18314 
   18315 
   18316               <span class="entry_type_hwlevel">[full] </span>
   18317 
   18318 
   18319 
   18320 
   18321             </td> <!-- entry_type -->
   18322 
   18323             <td class="entry_description">
   18324               <p>Duration from start of frame exposure to
   18325 start of next frame exposure.<wbr/></p>
   18326             </td>
   18327 
   18328             <td class="entry_units">
   18329               Nanoseconds
   18330             </td>
   18331 
   18332             <td class="entry_range">
   18333               <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/>
   18334 <a href="#static_android.scaler.streamConfigurationMap">android.<wbr/>scaler.<wbr/>stream<wbr/>Configuration<wbr/>Map</a>.<wbr/> The duration
   18335 is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
   18336             </td>
   18337 
   18338             <td class="entry_tags">
   18339               <ul class="entry_tags">
   18340                   <li><a href="#tag_V1">V1</a></li>
   18341               </ul>
   18342             </td>
   18343 
   18344           </tr>
   18345           <tr class="entries_header">
   18346             <th class="th_details" colspan="5">Details</th>
   18347           </tr>
   18348           <tr class="entry_cont">
   18349             <td class="entry_details" colspan="5">
   18350               <p>The maximum frame rate that can be supported by a camera subsystem is
   18351 a function of many factors:</p>
   18352 <ul>
   18353 <li>Requested resolutions of output image streams</li>
   18354 <li>Availability of binning /<wbr/> skipping modes on the imager</li>
   18355 <li>The bandwidth of the imager interface</li>
   18356 <li>The bandwidth of the various ISP processing blocks</li>
   18357 </ul>
   18358 <p>Since these factors can vary greatly between different ISPs and
   18359 sensors,<wbr/> the camera abstraction tries to represent the bandwidth
   18360 restrictions with as simple a model as possible.<wbr/></p>
   18361 <p>The model presented has the following characteristics:</p>
   18362 <ul>
   18363 <li>The image sensor is always configured to output the smallest
   18364 resolution possible given the application's requested output stream
   18365 sizes.<wbr/>  The smallest resolution is defined as being at least as large
   18366 as the largest requested output stream size; the camera pipeline must
   18367 never digitally upsample sensor data when the crop region covers the
   18368 whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
   18369 resolutions are configured,<wbr/> the sensor can provide a higher frame
   18370 rate.<wbr/></li>
   18371 <li>Since any request may use any or all the currently configured
   18372 output streams,<wbr/> the sensor and ISP must be configured to support
   18373 scaling a single capture to all the streams at the same time.<wbr/>  This
   18374 means the camera pipeline must be ready to produce the largest
   18375 requested output size without any delay.<wbr/>  Therefore,<wbr/> the overall
   18376 frame rate of a given configured stream set is governed only by the
   18377 largest requested stream resolution.<wbr/></li>
   18378 <li>Using more than one output stream in a request does not affect the
   18379 frame duration.<wbr/></li>
   18380 <li>Certain format-streams may need to do additional background processing
   18381 before data is consumed/<wbr/>produced by that stream.<wbr/> These processors
   18382 can run concurrently to the rest of the camera pipeline,<wbr/> but
   18383 cannot process more than 1 capture at a time.<wbr/></li>
   18384 </ul>
   18385 <p>The necessary information for the application,<wbr/> given the model above,<wbr/>
   18386 is provided via the <a href="#static_android.scaler.streamConfigurationMap">android.<wbr/>scaler.<wbr/>stream<wbr/>Configuration<wbr/>Map</a> field
   18387 using StreamConfigurationMap#getOutputMinFrameDuration(int,<wbr/> Size).<wbr/>
   18388 These are used to determine the maximum frame rate /<wbr/> minimum frame
   18389 duration that is possible for a given stream configuration.<wbr/></p>
   18390 <p>Specifically,<wbr/> the application can use the following rules to
   18391 determine the minimum frame duration it can request from the camera
   18392 device:</p>
   18393 <ol>
   18394 <li>Let the set of currently configured input/<wbr/>output streams
   18395 be called <code>S</code>.<wbr/></li>
   18396 <li>Find the minimum frame durations for each stream in <code>S</code>,<wbr/> by
   18397 looking it up in <a href="#static_android.scaler.streamConfigurationMap">android.<wbr/>scaler.<wbr/>stream<wbr/>Configuration<wbr/>Map</a> using
   18398 StreamConfigurationMap#getOutputMinFrameDuration(int,<wbr/> Size) (with
   18399 its respective size/<wbr/>format).<wbr/> Let this set of frame durations be called
   18400 <code>F</code>.<wbr/></li>
   18401 <li>For any given request <code>R</code>,<wbr/> the minimum frame duration allowed
   18402 for <code>R</code> is the maximum out of all values in <code>F</code>.<wbr/> Let the streams
   18403 used in <code>R</code> be called <code>S_<wbr/>r</code>.<wbr/></li>
   18404 </ol>
   18405 <p>If none of the streams in <code>S_<wbr/>r</code> have a stall time (listed in
   18406 StreamConfigurationMap#getOutputStallDuration(int,<wbr/>Size) using its
   18407 respective size/<wbr/>format),<wbr/> then the frame duration in
   18408 <code>F</code> determines the steady state frame rate that the application will
   18409 get if it uses <code>R</code> as a repeating request.<wbr/> Let this special kind
   18410 of request be called <code>Rsimple</code>.<wbr/></p>
   18411 <p>A repeating request <code>Rsimple</code> can be <em>occasionally</em> interleaved
   18412 by a single capture of a new request <code>Rstall</code> (which has at least
   18413 one in-use stream with a non-0 stall time) and if <code>Rstall</code> has the
   18414 same minimum frame duration this will not cause a frame rate loss
   18415 if all buffers from the previous <code>Rstall</code> have already been
   18416 delivered.<wbr/></p>
   18417 <p>For more details about stalling,<wbr/> see
   18418 StreamConfigurationMap#getOutputStallDuration(int,<wbr/>Size).<wbr/></p>
   18419 <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
   18420 OFF; otherwise the auto-exposure algorithm will override this value.<wbr/></p>
   18421             </td>
   18422           </tr>
   18423 
   18424           <tr class="entries_header">
   18425             <th class="th_details" colspan="5">HAL Implementation Details</th>
   18426           </tr>
   18427           <tr class="entry_cont">
   18428             <td class="entry_details" colspan="5">
   18429               <p>For more details about stalling,<wbr/> see
   18430 <a href="#static_android.scaler.availableStallDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stall<wbr/>Durations</a>.<wbr/></p>
   18431             </td>
   18432           </tr>
   18433 
   18434           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   18435            <!-- end of entry -->
   18436         
   18437                 
   18438           <tr class="entry" id="dynamic_android.sensor.sensitivity">
   18439             <td class="entry_name
   18440              " rowspan="5">
   18441               android.<wbr/>sensor.<wbr/>sensitivity
   18442             </td>
   18443             <td class="entry_type">
   18444                 <span class="entry_type_name">int32</span>
   18445 
   18446               <span class="entry_type_visibility"> [public]</span>
   18447 
   18448 
   18449               <span class="entry_type_hwlevel">[full] </span>
   18450 
   18451 
   18452 
   18453 
   18454             </td> <!-- entry_type -->
   18455 
   18456             <td class="entry_description">
   18457               <p>The amount of gain applied to sensor data
   18458 before processing.<wbr/></p>
   18459             </td>
   18460 
   18461             <td class="entry_units">
   18462               ISO arithmetic units
   18463             </td>
   18464 
   18465             <td class="entry_range">
   18466               <p><a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a></p>
   18467             </td>
   18468 
   18469             <td class="entry_tags">
   18470               <ul class="entry_tags">
   18471                   <li><a href="#tag_V1">V1</a></li>
   18472               </ul>
   18473             </td>
   18474 
   18475           </tr>
   18476           <tr class="entries_header">
   18477             <th class="th_details" colspan="5">Details</th>
   18478           </tr>
   18479           <tr class="entry_cont">
   18480             <td class="entry_details" colspan="5">
   18481               <p>The sensitivity is the standard ISO sensitivity value,<wbr/>
   18482 as defined in ISO 12232:2006.<wbr/></p>
   18483 <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
   18484 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
   18485 is guaranteed to use only analog amplification for applying the gain.<wbr/></p>
   18486 <p>If the camera device cannot apply the exact sensitivity
   18487 requested,<wbr/> it will reduce the gain to the nearest supported
   18488 value.<wbr/> The final sensitivity used will be available in the
   18489 output capture result.<wbr/></p>
   18490             </td>
   18491           </tr>
   18492 
   18493           <tr class="entries_header">
   18494             <th class="th_details" colspan="5">HAL Implementation Details</th>
   18495           </tr>
   18496           <tr class="entry_cont">
   18497             <td class="entry_details" colspan="5">
   18498               <p>ISO 12232:2006 REI method is acceptable.<wbr/></p>
   18499             </td>
   18500           </tr>
   18501 
   18502           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   18503            <!-- end of entry -->
   18504         
   18505                 
   18506           <tr class="entry" id="dynamic_android.sensor.timestamp">
   18507             <td class="entry_name
   18508              " rowspan="5">
   18509               android.<wbr/>sensor.<wbr/>timestamp
   18510             </td>
   18511             <td class="entry_type">
   18512                 <span class="entry_type_name">int64</span>
   18513 
   18514               <span class="entry_type_visibility"> [public]</span>
   18515 
   18516 
   18517               <span class="entry_type_hwlevel">[legacy] </span>
   18518 
   18519 
   18520 
   18521 
   18522             </td> <!-- entry_type -->
   18523 
   18524             <td class="entry_description">
   18525               <p>Time at start of exposure of first
   18526 row of the image sensor active array,<wbr/> in nanoseconds.<wbr/></p>
   18527             </td>
   18528 
   18529             <td class="entry_units">
   18530               Nanoseconds
   18531             </td>
   18532 
   18533             <td class="entry_range">
   18534               <p>&gt; 0</p>
   18535             </td>
   18536 
   18537             <td class="entry_tags">
   18538               <ul class="entry_tags">
   18539                   <li><a href="#tag_BC">BC</a></li>
   18540               </ul>
   18541             </td>
   18542 
   18543           </tr>
   18544           <tr class="entries_header">
   18545             <th class="th_details" colspan="5">Details</th>
   18546           </tr>
   18547           <tr class="entry_cont">
   18548             <td class="entry_details" colspan="5">
   18549               <p>The timestamps are also included in all image
   18550 buffers produced for the same capture,<wbr/> and will be identical
   18551 on all the outputs.<wbr/></p>
   18552 <p>When <a href="#static_android.sensor.info.timestampSource">android.<wbr/>sensor.<wbr/>info.<wbr/>timestamp<wbr/>Source</a> <code>==</code> UNKNOWN,<wbr/>
   18553 the timestamps measure time since an unspecified starting point,<wbr/>
   18554 and are monotonically increasing.<wbr/> They can be compared with the
   18555 timestamps for other captures from the same camera device,<wbr/> but are
   18556 not guaranteed to be comparable to any other time source.<wbr/></p>
   18557 <p>When <a href="#static_android.sensor.info.timestampSource">android.<wbr/>sensor.<wbr/>info.<wbr/>timestamp<wbr/>Source</a> <code>==</code> REALTIME,<wbr/>
   18558 the timestamps measure time in the same timebase as
   18559 android.<wbr/>os.<wbr/>System<wbr/>Clock#elapsed<wbr/>Realtime<wbr/>Nanos(),<wbr/> and they can be
   18560 compared to other timestamps from other subsystems that are using
   18561 that base.<wbr/></p>
   18562             </td>
   18563           </tr>
   18564 
   18565           <tr class="entries_header">
   18566             <th class="th_details" colspan="5">HAL Implementation Details</th>
   18567           </tr>
   18568           <tr class="entry_cont">
   18569             <td class="entry_details" colspan="5">
   18570               <p>All timestamps must be in reference to the kernel's
   18571 CLOCK_<wbr/>BOOTTIME monotonic clock,<wbr/> which properly accounts for
   18572 time spent asleep.<wbr/> This allows for synchronization with
   18573 sensors that continue to operate while the system is
   18574 otherwise asleep.<wbr/></p>
   18575 <p>If <a href="#static_android.sensor.info.timestampSource">android.<wbr/>sensor.<wbr/>info.<wbr/>timestamp<wbr/>Source</a> <code>==</code> REALTIME,<wbr/>
   18576 The timestamp must be synchronized with the timestamps from other
   18577 sensor subsystems that are using the same timebase.<wbr/></p>
   18578             </td>
   18579           </tr>
   18580 
   18581           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   18582            <!-- end of entry -->
   18583         
   18584                 
   18585           <tr class="entry" id="dynamic_android.sensor.temperature">
   18586             <td class="entry_name
   18587              " rowspan="1">
   18588               android.<wbr/>sensor.<wbr/>temperature
   18589             </td>
   18590             <td class="entry_type">
   18591                 <span class="entry_type_name">float</span>
   18592 
   18593               <span class="entry_type_visibility"> [system]</span>
   18594 
   18595 
   18596 
   18597 
   18598 
   18599 
   18600             </td> <!-- entry_type -->
   18601 
   18602             <td class="entry_description">
   18603               <p>The temperature of the sensor,<wbr/> sampled at the time
   18604 exposure began for this frame.<wbr/></p>
   18605 <p>The thermal diode being queried should be inside the sensor PCB,<wbr/> or
   18606 somewhere close to it.<wbr/></p>
   18607             </td>
   18608 
   18609             <td class="entry_units">
   18610               Celsius
   18611             </td>
   18612 
   18613             <td class="entry_range">
   18614               <p>Optional.<wbr/> This value is missing if no temperature is available.<wbr/></p>
   18615             </td>
   18616 
   18617             <td class="entry_tags">
   18618               <ul class="entry_tags">
   18619                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   18620               </ul>
   18621             </td>
   18622 
   18623           </tr>
   18624 
   18625 
   18626           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   18627            <!-- end of entry -->
   18628         
   18629                 
   18630           <tr class="entry" id="dynamic_android.sensor.neutralColorPoint">
   18631             <td class="entry_name
   18632              " rowspan="3">
   18633               android.<wbr/>sensor.<wbr/>neutral<wbr/>Color<wbr/>Point
   18634             </td>
   18635             <td class="entry_type">
   18636                 <span class="entry_type_name">rational</span>
   18637                 <span class="entry_type_container">x</span>
   18638 
   18639                 <span class="entry_type_array">
   18640                   3
   18641                 </span>
   18642               <span class="entry_type_visibility"> [public]</span>
   18643 
   18644 
   18645 
   18646 
   18647 
   18648 
   18649             </td> <!-- entry_type -->
   18650 
   18651             <td class="entry_description">
   18652               <p>The estimated camera neutral color in the native sensor colorspace at
   18653 the time of capture.<wbr/></p>
   18654             </td>
   18655 
   18656             <td class="entry_units">
   18657             </td>
   18658 
   18659             <td class="entry_range">
   18660             </td>
   18661 
   18662             <td class="entry_tags">
   18663               <ul class="entry_tags">
   18664                   <li><a href="#tag_RAW">RAW</a></li>
   18665               </ul>
   18666             </td>
   18667 
   18668           </tr>
   18669           <tr class="entries_header">
   18670             <th class="th_details" colspan="5">Details</th>
   18671           </tr>
   18672           <tr class="entry_cont">
   18673             <td class="entry_details" colspan="5">
   18674               <p>This value gives the neutral color point encoded as an RGB value in the
   18675 native sensor color space.<wbr/>  The neutral color point indicates the
   18676 currently estimated white point of the scene illumination.<wbr/>  It can be
   18677 used to interpolate between the provided color transforms when
   18678 processing raw sensor data.<wbr/></p>
   18679 <p>The order of the values is R,<wbr/> G,<wbr/> B; where R is in the lowest index.<wbr/></p>
   18680             </td>
   18681           </tr>
   18682 
   18683 
   18684           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   18685            <!-- end of entry -->
   18686         
   18687                 
   18688           <tr class="entry" id="dynamic_android.sensor.noiseProfile">
   18689             <td class="entry_name
   18690              " rowspan="5">
   18691               android.<wbr/>sensor.<wbr/>noise<wbr/>Profile
   18692             </td>
   18693             <td class="entry_type">
   18694                 <span class="entry_type_name">double</span>
   18695                 <span class="entry_type_container">x</span>
   18696 
   18697                 <span class="entry_type_array">
   18698                   2 x CFA Channels
   18699                 </span>
   18700               <span class="entry_type_visibility"> [public as pairDoubleDouble]</span>
   18701 
   18702 
   18703 
   18704 
   18705                 <div class="entry_type_notes">Pairs of noise model coefficients</div>
   18706 
   18707 
   18708             </td> <!-- entry_type -->
   18709 
   18710             <td class="entry_description">
   18711               <p>Noise model coefficients for each CFA mosaic channel.<wbr/></p>
   18712             </td>
   18713 
   18714             <td class="entry_units">
   18715             </td>
   18716 
   18717             <td class="entry_range">
   18718             </td>
   18719 
   18720             <td class="entry_tags">
   18721               <ul class="entry_tags">
   18722                   <li><a href="#tag_RAW">RAW</a></li>
   18723               </ul>
   18724             </td>
   18725 
   18726           </tr>
   18727           <tr class="entries_header">
   18728             <th class="th_details" colspan="5">Details</th>
   18729           </tr>
   18730           <tr class="entry_cont">
   18731             <td class="entry_details" colspan="5">
   18732               <p>This key contains two noise model coefficients for each CFA channel
   18733 corresponding to the sensor amplification (S) and sensor readout
   18734 noise (O).<wbr/>  These are given as pairs of coefficients for each channel
   18735 in the same order as channels listed for the CFA layout key
   18736 (see <a href="#static_android.sensor.info.colorFilterArrangement">android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement</a>).<wbr/>  This is
   18737 represented as an array of Pair&lt;Double,<wbr/> Double&gt;,<wbr/> where
   18738 the first member of the Pair at index n is the S coefficient and the
   18739 second member is the O coefficient for the nth color channel in the CFA.<wbr/></p>
   18740 <p>These coefficients are used in a two parameter noise model to describe
   18741 the amount of noise present in the image for each CFA channel.<wbr/>  The
   18742 noise model used here is:</p>
   18743 <p>N(x) = sqrt(Sx + O)</p>
   18744 <p>Where x represents the recorded signal of a CFA channel normalized to
   18745 the range [0,<wbr/> 1],<wbr/> and S and O are the noise model coeffiecients for
   18746 that channel.<wbr/></p>
   18747 <p>A more detailed description of the noise model can be found in the
   18748 Adobe DNG specification for the NoiseProfile tag.<wbr/></p>
   18749             </td>
   18750           </tr>
   18751 
   18752           <tr class="entries_header">
   18753             <th class="th_details" colspan="5">HAL Implementation Details</th>
   18754           </tr>
   18755           <tr class="entry_cont">
   18756             <td class="entry_details" colspan="5">
   18757               <p>For a CFA layout of RGGB,<wbr/> the list of coefficients would be given as
   18758 an array of doubles S0,<wbr/>O0,<wbr/>S1,<wbr/>O1,...,<wbr/> where S0 and O0 are the coefficients
   18759 for the red channel,<wbr/> S1 and O1 are the coefficients for the first green
   18760 channel,<wbr/> etc.<wbr/></p>
   18761             </td>
   18762           </tr>
   18763 
   18764           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   18765            <!-- end of entry -->
   18766         
   18767                 
   18768           <tr class="entry" id="dynamic_android.sensor.profileHueSatMap">
   18769             <td class="entry_name
   18770              " rowspan="3">
   18771               android.<wbr/>sensor.<wbr/>profile<wbr/>Hue<wbr/>Sat<wbr/>Map
   18772             </td>
   18773             <td class="entry_type">
   18774                 <span class="entry_type_name">float</span>
   18775                 <span class="entry_type_container">x</span>
   18776 
   18777                 <span class="entry_type_array">
   18778                   hue_samples x saturation_samples x value_samples x 3
   18779                 </span>
   18780               <span class="entry_type_visibility"> [system]</span>
   18781 
   18782 
   18783 
   18784 
   18785                 <div class="entry_type_notes">Mapping for hue,<wbr/> saturation,<wbr/> and value</div>
   18786 
   18787 
   18788             </td> <!-- entry_type -->
   18789 
   18790             <td class="entry_description">
   18791               <p>A mapping containing a hue shift,<wbr/> saturation scale,<wbr/> and value scale
   18792 for each pixel.<wbr/></p>
   18793             </td>
   18794 
   18795             <td class="entry_units">
   18796               
   18797           The hue shift is given in degrees; saturation and value scale factors are
   18798           unitless and are between 0 and 1 inclusive
   18799           
   18800             </td>
   18801 
   18802             <td class="entry_range">
   18803             </td>
   18804 
   18805             <td class="entry_tags">
   18806               <ul class="entry_tags">
   18807                   <li><a href="#tag_RAW">RAW</a></li>
   18808               </ul>
   18809             </td>
   18810 
   18811           </tr>
   18812           <tr class="entries_header">
   18813             <th class="th_details" colspan="5">Details</th>
   18814           </tr>
   18815           <tr class="entry_cont">
   18816             <td class="entry_details" colspan="5">
   18817               <p>hue_<wbr/>samples,<wbr/> saturation_<wbr/>samples,<wbr/> and value_<wbr/>samples are given in
   18818 <a href="#static_android.sensor.profileHueSatMapDimensions">android.<wbr/>sensor.<wbr/>profile<wbr/>Hue<wbr/>Sat<wbr/>Map<wbr/>Dimensions</a>.<wbr/></p>
   18819 <p>Each entry of this map contains three floats corresponding to the
   18820 hue shift,<wbr/> saturation scale,<wbr/> and value scale,<wbr/> respectively; where the
   18821 hue shift has the lowest index.<wbr/> The map entries are stored in the key
   18822 in nested loop order,<wbr/> with the value divisions in the outer loop,<wbr/> the
   18823 hue divisions in the middle loop,<wbr/> and the saturation divisions in the
   18824 inner loop.<wbr/> All zero input saturation entries are required to have a
   18825 value scale factor of 1.<wbr/>0.<wbr/></p>
   18826             </td>
   18827           </tr>
   18828 
   18829 
   18830           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   18831            <!-- end of entry -->
   18832         
   18833                 
   18834           <tr class="entry" id="dynamic_android.sensor.profileToneCurve">
   18835             <td class="entry_name
   18836              " rowspan="3">
   18837               android.<wbr/>sensor.<wbr/>profile<wbr/>Tone<wbr/>Curve
   18838             </td>
   18839             <td class="entry_type">
   18840                 <span class="entry_type_name">float</span>
   18841                 <span class="entry_type_container">x</span>
   18842 
   18843                 <span class="entry_type_array">
   18844                   samples x 2
   18845                 </span>
   18846               <span class="entry_type_visibility"> [system]</span>
   18847 
   18848 
   18849 
   18850 
   18851                 <div class="entry_type_notes">Samples defining a spline for a tone-mapping curve</div>
   18852 
   18853 
   18854             </td> <!-- entry_type -->
   18855 
   18856             <td class="entry_description">
   18857               <p>A list of x,<wbr/>y samples defining a tone-mapping curve for gamma adjustment.<wbr/></p>
   18858             </td>
   18859 
   18860             <td class="entry_units">
   18861             </td>
   18862 
   18863             <td class="entry_range">
   18864               <p>Each sample has an input range of <code>[0,<wbr/> 1]</code> and an output range of
   18865 <code>[0,<wbr/> 1]</code>.<wbr/>  The first sample is required to be <code>(0,<wbr/> 0)</code>,<wbr/> and the last
   18866 sample is required to be <code>(1,<wbr/> 1)</code>.<wbr/></p>
   18867             </td>
   18868 
   18869             <td class="entry_tags">
   18870               <ul class="entry_tags">
   18871                   <li><a href="#tag_RAW">RAW</a></li>
   18872               </ul>
   18873             </td>
   18874 
   18875           </tr>
   18876           <tr class="entries_header">
   18877             <th class="th_details" colspan="5">Details</th>
   18878           </tr>
   18879           <tr class="entry_cont">
   18880             <td class="entry_details" colspan="5">
   18881               <p>This key contains a default tone curve that can be applied while
   18882 processing the image as a starting point for user adjustments.<wbr/>
   18883 The curve is specified as a list of value pairs in linear gamma.<wbr/>
   18884 The curve is interpolated using a cubic spline.<wbr/></p>
   18885             </td>
   18886           </tr>
   18887 
   18888 
   18889           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   18890            <!-- end of entry -->
   18891         
   18892                 
   18893           <tr class="entry" id="dynamic_android.sensor.greenSplit">
   18894             <td class="entry_name
   18895              " rowspan="5">
   18896               android.<wbr/>sensor.<wbr/>green<wbr/>Split
   18897             </td>
   18898             <td class="entry_type">
   18899                 <span class="entry_type_name">float</span>
   18900 
   18901               <span class="entry_type_visibility"> [public]</span>
   18902 
   18903 
   18904 
   18905 
   18906 
   18907 
   18908             </td> <!-- entry_type -->
   18909 
   18910             <td class="entry_description">
   18911               <p>The worst-case divergence between Bayer green channels.<wbr/></p>
   18912             </td>
   18913 
   18914             <td class="entry_units">
   18915             </td>
   18916 
   18917             <td class="entry_range">
   18918               <p>&gt;= 0</p>
   18919             </td>
   18920 
   18921             <td class="entry_tags">
   18922               <ul class="entry_tags">
   18923                   <li><a href="#tag_RAW">RAW</a></li>
   18924               </ul>
   18925             </td>
   18926 
   18927           </tr>
   18928           <tr class="entries_header">
   18929             <th class="th_details" colspan="5">Details</th>
   18930           </tr>
   18931           <tr class="entry_cont">
   18932             <td class="entry_details" colspan="5">
   18933               <p>This value is an estimate of the worst case split between the
   18934 Bayer green channels in the red and blue rows in the sensor color
   18935 filter array.<wbr/></p>
   18936 <p>The green split is calculated as follows:</p>
   18937 <ol>
   18938 <li>A 5x5 pixel (or larger) window W within the active sensor array is
   18939 chosen.<wbr/> The term 'pixel' here is taken to mean a group of 4 Bayer
   18940 mosaic channels (R,<wbr/> Gr,<wbr/> Gb,<wbr/> B).<wbr/>  The location and size of the window
   18941 chosen is implementation defined,<wbr/> and should be chosen to provide a
   18942 green split estimate that is both representative of the entire image
   18943 for this camera sensor,<wbr/> and can be calculated quickly.<wbr/></li>
   18944 <li>The arithmetic mean of the green channels from the red
   18945 rows (mean_<wbr/>Gr) within W is computed.<wbr/></li>
   18946 <li>The arithmetic mean of the green channels from the blue
   18947 rows (mean_<wbr/>Gb) within W is computed.<wbr/></li>
   18948 <li>The maximum ratio R of the two means is computed as follows:
   18949 <code>R = max((mean_<wbr/>Gr + 1)/<wbr/>(mean_<wbr/>Gb + 1),<wbr/> (mean_<wbr/>Gb + 1)/<wbr/>(mean_<wbr/>Gr + 1))</code></li>
   18950 </ol>
   18951 <p>The ratio R is the green split divergence reported for this property,<wbr/>
   18952 which represents how much the green channels differ in the mosaic
   18953 pattern.<wbr/>  This value is typically used to determine the treatment of
   18954 the green mosaic channels when demosaicing.<wbr/></p>
   18955 <p>The green split value can be roughly interpreted as follows:</p>
   18956 <ul>
   18957 <li>R &lt; 1.<wbr/>03 is a negligible split (&lt;3% divergence).<wbr/></li>
   18958 <li>1.<wbr/>20 &lt;= R &gt;= 1.<wbr/>03 will require some software
   18959 correction to avoid demosaic errors (3-20% divergence).<wbr/></li>
   18960 <li>R &gt; 1.<wbr/>20 will require strong software correction to produce
   18961 a usuable image (&gt;20% divergence).<wbr/></li>
   18962 </ul>
   18963             </td>
   18964           </tr>
   18965 
   18966           <tr class="entries_header">
   18967             <th class="th_details" colspan="5">HAL Implementation Details</th>
   18968           </tr>
   18969           <tr class="entry_cont">
   18970             <td class="entry_details" colspan="5">
   18971               <p>The green split given may be a static value based on prior
   18972 characterization of the camera sensor using the green split
   18973 calculation method given here over a large,<wbr/> representative,<wbr/> sample
   18974 set of images.<wbr/>  Other methods of calculation that produce equivalent
   18975 results,<wbr/> and can be interpreted in the same manner,<wbr/> may be used.<wbr/></p>
   18976             </td>
   18977           </tr>
   18978 
   18979           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   18980            <!-- end of entry -->
   18981         
   18982                 
   18983           <tr class="entry" id="dynamic_android.sensor.testPatternData">
   18984             <td class="entry_name
   18985              " rowspan="5">
   18986               android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data
   18987             </td>
   18988             <td class="entry_type">
   18989                 <span class="entry_type_name">int32</span>
   18990                 <span class="entry_type_container">x</span>
   18991 
   18992                 <span class="entry_type_array">
   18993                   4
   18994                 </span>
   18995               <span class="entry_type_visibility"> [public]</span>
   18996 
   18997 
   18998 
   18999 
   19000 
   19001 
   19002             </td> <!-- entry_type -->
   19003 
   19004             <td class="entry_description">
   19005               <p>A pixel <code>[R,<wbr/> G_<wbr/>even,<wbr/> G_<wbr/>odd,<wbr/> B]</code> that supplies the test pattern
   19006 when <a href="#controls_android.sensor.testPatternMode">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode</a> is SOLID_<wbr/>COLOR.<wbr/></p>
   19007             </td>
   19008 
   19009             <td class="entry_units">
   19010             </td>
   19011 
   19012             <td class="entry_range">
   19013             </td>
   19014 
   19015             <td class="entry_tags">
   19016             </td>
   19017 
   19018           </tr>
   19019           <tr class="entries_header">
   19020             <th class="th_details" colspan="5">Details</th>
   19021           </tr>
   19022           <tr class="entry_cont">
   19023             <td class="entry_details" colspan="5">
   19024               <p>Each color channel is treated as an unsigned 32-bit integer.<wbr/>
   19025 The camera device then uses the most significant X bits
   19026 that correspond to how many bits are in its Bayer raw sensor
   19027 output.<wbr/></p>
   19028 <p>For example,<wbr/> a sensor with RAW10 Bayer output would use the
   19029 10 most significant bits from each color channel.<wbr/></p>
   19030             </td>
   19031           </tr>
   19032 
   19033           <tr class="entries_header">
   19034             <th class="th_details" colspan="5">HAL Implementation Details</th>
   19035           </tr>
   19036           <tr class="entry_cont">
   19037             <td class="entry_details" colspan="5">
   19038               
   19039             </td>
   19040           </tr>
   19041 
   19042           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   19043            <!-- end of entry -->
   19044         
   19045                 
   19046           <tr class="entry" id="dynamic_android.sensor.testPatternMode">
   19047             <td class="entry_name
   19048              " rowspan="5">
   19049               android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
   19050             </td>
   19051             <td class="entry_type">
   19052                 <span class="entry_type_name entry_type_name_enum">int32</span>
   19053 
   19054               <span class="entry_type_visibility"> [public]</span>
   19055 
   19056 
   19057 
   19058 
   19059 
   19060                 <ul class="entry_type_enum">
   19061                   <li>
   19062                     <span class="entry_type_enum_name">OFF</span>
   19063                     <span class="entry_type_enum_notes"><p>No test pattern mode is used,<wbr/> and the camera
   19064 device returns captures from the image sensor.<wbr/></p>
   19065 <p>This is the default if the key is not set.<wbr/></p></span>
   19066                   </li>
   19067                   <li>
   19068                     <span class="entry_type_enum_name">SOLID_COLOR</span>
   19069                     <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
   19070 respective color channel provided in
   19071 <a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
   19072 <p>For example:</p>
   19073 <pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
   19074 </code></pre>
   19075 <p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
   19076 <pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
   19077 </code></pre>
   19078 <p>All red pixels are 100% red.<wbr/> Only the odd green pixels
   19079 are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
   19080                   </li>
   19081                   <li>
   19082                     <span class="entry_type_enum_name">COLOR_BARS</span>
   19083                     <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
   19084 <p>The vertical bars (left-to-right) are as follows:</p>
   19085 <ul>
   19086 <li>100% white</li>
   19087 <li>yellow</li>
   19088 <li>cyan</li>
   19089 <li>green</li>
   19090 <li>magenta</li>
   19091 <li>red</li>
   19092 <li>blue</li>
   19093 <li>black</li>
   19094 </ul>
   19095 <p>In general the image would look like the following:</p>
   19096 <pre><code>W Y C G M R B K
   19097 W Y C G M R B K
   19098 W Y C G M R B K
   19099 W Y C G M R B K
   19100 W Y C G M R B K
   19101 .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
   19102 .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
   19103 .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
   19104 
   19105 (B = Blue,<wbr/> K = Black)
   19106 </code></pre>
   19107 <p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
   19108 When this is not possible,<wbr/> the bar size should be rounded
   19109 down to the nearest integer and the pattern can repeat
   19110 on the right side.<wbr/></p>
   19111 <p>Each bar's height must always take up the full sensor
   19112 pixel array height.<wbr/></p>
   19113 <p>Each pixel in this test pattern must be set to either
   19114 0% intensity or 100% intensity.<wbr/></p></span>
   19115                   </li>
   19116                   <li>
   19117                     <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY</span>
   19118                     <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
   19119 each bar should start at its specified color at the top,<wbr/>
   19120 and fade to gray at the bottom.<wbr/></p>
   19121 <p>Furthermore each bar is further subdivided into a left and
   19122 right half.<wbr/> The left half should have a smooth gradient,<wbr/>
   19123 and the right half should have a quantized gradient.<wbr/></p>
   19124 <p>In particular,<wbr/> the right half's should consist of blocks of the
   19125 same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
   19126 <p>The least significant bits in the quantized gradient should
   19127 be copied from the most significant bits of the smooth gradient.<wbr/></p>
   19128 <p>The height of each bar should always be a multiple of 128.<wbr/>
   19129 When this is not the case,<wbr/> the pattern should repeat at the bottom
   19130 of the image.<wbr/></p></span>
   19131                   </li>
   19132                   <li>
   19133                     <span class="entry_type_enum_name">PN9</span>
   19134                     <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
   19135 generated from a PN9 512-bit sequence (typically implemented
   19136 in hardware with a linear feedback shift register).<wbr/></p>
   19137 <p>The generator should be reset at the beginning of each frame,<wbr/>
   19138 and thus each subsequent raw frame with this test pattern should
   19139 be exactly the same as the last.<wbr/></p></span>
   19140                   </li>
   19141                   <li>
   19142                     <span class="entry_type_enum_name">CUSTOM1</span>
   19143                     <span class="entry_type_enum_value">256</span>
   19144                     <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
   19145 available only on this camera device are at least this numeric
   19146 value.<wbr/></p>
   19147 <p>All of the custom test patterns will be static
   19148 (that is the raw image must not vary from frame to frame).<wbr/></p></span>
   19149                   </li>
   19150                 </ul>
   19151 
   19152             </td> <!-- entry_type -->
   19153 
   19154             <td class="entry_description">
   19155               <p>When enabled,<wbr/> the sensor sends a test pattern instead of
   19156 doing a real exposure from the camera.<wbr/></p>
   19157             </td>
   19158 
   19159             <td class="entry_units">
   19160             </td>
   19161 
   19162             <td class="entry_range">
   19163               <p><a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
   19164             </td>
   19165 
   19166             <td class="entry_tags">
   19167             </td>
   19168 
   19169           </tr>
   19170           <tr class="entries_header">
   19171             <th class="th_details" colspan="5">Details</th>
   19172           </tr>
   19173           <tr class="entry_cont">
   19174             <td class="entry_details" colspan="5">
   19175               <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
   19176 by android.<wbr/>sensor.<wbr/>* will be ignored.<wbr/> All other controls should
   19177 work as normal.<wbr/></p>
   19178 <p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
   19179 occur (and that the test pattern remain unmodified,<wbr/> since the flash
   19180 would not actually affect it).<wbr/></p>
   19181 <p>Defaults to OFF.<wbr/></p>
   19182             </td>
   19183           </tr>
   19184 
   19185           <tr class="entries_header">
   19186             <th class="th_details" colspan="5">HAL Implementation Details</th>
   19187           </tr>
   19188           <tr class="entry_cont">
   19189             <td class="entry_details" colspan="5">
   19190               <p>All test patterns are specified in the Bayer domain.<wbr/></p>
   19191 <p>The HAL may choose to substitute test patterns from the sensor
   19192 with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
   19193 indistinguishable to the ISP whether the data came from the
   19194 sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
   19195             </td>
   19196           </tr>
   19197 
   19198           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   19199            <!-- end of entry -->
   19200         
   19201                 
   19202           <tr class="entry" id="dynamic_android.sensor.rollingShutterSkew">
   19203             <td class="entry_name
   19204              " rowspan="5">
   19205               android.<wbr/>sensor.<wbr/>rolling<wbr/>Shutter<wbr/>Skew
   19206             </td>
   19207             <td class="entry_type">
   19208                 <span class="entry_type_name">int64</span>
   19209 
   19210               <span class="entry_type_visibility"> [public]</span>
   19211 
   19212 
   19213               <span class="entry_type_hwlevel">[limited] </span>
   19214 
   19215 
   19216 
   19217 
   19218             </td> <!-- entry_type -->
   19219 
   19220             <td class="entry_description">
   19221               <p>Duration between the start of first row exposure
   19222 and the start of last row exposure.<wbr/></p>
   19223             </td>
   19224 
   19225             <td class="entry_units">
   19226               Nanoseconds
   19227             </td>
   19228 
   19229             <td class="entry_range">
   19230               <p>&gt;= 0 and &lt;
   19231 StreamConfigurationMap#getOutputMinFrameDuration(int,<wbr/> Size).<wbr/></p>
   19232             </td>
   19233 
   19234             <td class="entry_tags">
   19235               <ul class="entry_tags">
   19236                   <li><a href="#tag_V1">V1</a></li>
   19237               </ul>
   19238             </td>
   19239 
   19240           </tr>
   19241           <tr class="entries_header">
   19242             <th class="th_details" colspan="5">Details</th>
   19243           </tr>
   19244           <tr class="entry_cont">
   19245             <td class="entry_details" colspan="5">
   19246               <p>This is the exposure time skew between the first and last
   19247 row exposure start times.<wbr/> The first row and the last row are
   19248 the first and last rows inside of the
   19249 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/></p>
   19250 <p>For typical camera sensors that use rolling shutters,<wbr/> this is also equivalent
   19251 to the frame readout time.<wbr/></p>
   19252             </td>
   19253           </tr>
   19254 
   19255           <tr class="entries_header">
   19256             <th class="th_details" colspan="5">HAL Implementation Details</th>
   19257           </tr>
   19258           <tr class="entry_cont">
   19259             <td class="entry_details" colspan="5">
   19260               <p>The HAL must report <code>0</code> if the sensor is using global shutter,<wbr/> where all pixels begin
   19261 exposure at the same time.<wbr/></p>
   19262             </td>
   19263           </tr>
   19264 
   19265           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   19266            <!-- end of entry -->
   19267         
   19268         
   19269 
   19270       <!-- end of kind -->
   19271       </tbody>
   19272 
   19273   <!-- end of section -->
   19274   <tr><td colspan="6" id="section_shading" class="section">shading</td></tr>
   19275 
   19276 
   19277       <tr><td colspan="6" class="kind">controls</td></tr>
   19278 
   19279       <thead class="entries_header">
   19280         <tr>
   19281           <th class="th_name">Property Name</th>
   19282           <th class="th_type">Type</th>
   19283           <th class="th_description">Description</th>
   19284           <th class="th_units">Units</th>
   19285           <th class="th_range">Range</th>
   19286           <th class="th_tags">Tags</th>
   19287         </tr>
   19288       </thead>
   19289 
   19290       <tbody>
   19291 
   19292         
   19293 
   19294         
   19295 
   19296         
   19297 
   19298         
   19299 
   19300                 
   19301           <tr class="entry" id="controls_android.shading.mode">
   19302             <td class="entry_name
   19303              " rowspan="3">
   19304               android.<wbr/>shading.<wbr/>mode
   19305             </td>
   19306             <td class="entry_type">
   19307                 <span class="entry_type_name entry_type_name_enum">byte</span>
   19308 
   19309               <span class="entry_type_visibility"> [public]</span>
   19310 
   19311 
   19312               <span class="entry_type_hwlevel">[full] </span>
   19313 
   19314 
   19315 
   19316                 <ul class="entry_type_enum">
   19317                   <li>
   19318                     <span class="entry_type_enum_name">OFF</span>
   19319                     <span class="entry_type_enum_notes"><p>No lens shading correction is applied.<wbr/></p></span>
   19320                   </li>
   19321                   <li>
   19322                     <span class="entry_type_enum_name">FAST</span>
   19323                     <span class="entry_type_enum_notes"><p>Apply lens shading corrections,<wbr/> without slowing
   19324 frame rate relative to sensor raw output</p></span>
   19325                   </li>
   19326                   <li>
   19327                     <span class="entry_type_enum_name">HIGH_QUALITY</span>
   19328                     <span class="entry_type_enum_notes"><p>Apply high-quality lens shading correction,<wbr/> at the
   19329 cost of reduced frame rate.<wbr/></p></span>
   19330                   </li>
   19331                 </ul>
   19332 
   19333             </td> <!-- entry_type -->
   19334 
   19335             <td class="entry_description">
   19336               <p>Quality of lens shading correction applied
   19337 to the image data.<wbr/></p>
   19338             </td>
   19339 
   19340             <td class="entry_units">
   19341             </td>
   19342 
   19343             <td class="entry_range">
   19344             </td>
   19345 
   19346             <td class="entry_tags">
   19347             </td>
   19348 
   19349           </tr>
   19350           <tr class="entries_header">
   19351             <th class="th_details" colspan="5">Details</th>
   19352           </tr>
   19353           <tr class="entry_cont">
   19354             <td class="entry_details" colspan="5">
   19355               <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
   19356 camera device,<wbr/> and an identity lens shading map data will be provided
   19357 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
   19358 shading map with size of <code>[ 4,<wbr/> 3 ]</code>,<wbr/>
   19359 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
   19360 map shown below:</p>
   19361 <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/>
   19362  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/>
   19363  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/>
   19364  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/>
   19365  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/>
   19366  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 ]
   19367 </code></pre>
   19368 <p>When set to other modes,<wbr/> lens shading correction will be applied by the camera
   19369 device.<wbr/> Applications can request lens shading map data by setting
   19370 <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
   19371 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
   19372 data will be the one applied by the camera device for this capture request.<wbr/></p>
   19373 <p>The shading map data may depend on the auto-exposure (AE) and AWB statistics,<wbr/> therefore
   19374 the reliability of the map data may be affected by the AE and AWB algorithms.<wbr/> When AE and
   19375 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>
   19376 OFF),<wbr/> to get best results,<wbr/> it is recommended that the applications wait for the AE and AWB
   19377 to be converged before using the returned shading map data.<wbr/></p>
   19378             </td>
   19379           </tr>
   19380 
   19381 
   19382           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   19383            <!-- end of entry -->
   19384         
   19385                 
   19386           <tr class="entry" id="controls_android.shading.strength">
   19387             <td class="entry_name
   19388              " rowspan="1">
   19389               android.<wbr/>shading.<wbr/>strength
   19390             </td>
   19391             <td class="entry_type">
   19392                 <span class="entry_type_name">byte</span>
   19393 
   19394               <span class="entry_type_visibility"> [system]</span>
   19395 
   19396 
   19397 
   19398 
   19399 
   19400 
   19401             </td> <!-- entry_type -->
   19402 
   19403             <td class="entry_description">
   19404               <p>Control the amount of shading correction
   19405 applied to the images</p>
   19406             </td>
   19407 
   19408             <td class="entry_units">
   19409               unitless: 1-10; 10 is full shading
   19410           compensation
   19411             </td>
   19412 
   19413             <td class="entry_range">
   19414             </td>
   19415 
   19416             <td class="entry_tags">
   19417               <ul class="entry_tags">
   19418                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   19419               </ul>
   19420             </td>
   19421 
   19422           </tr>
   19423 
   19424 
   19425           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   19426            <!-- end of entry -->
   19427         
   19428         
   19429 
   19430       <!-- end of kind -->
   19431       </tbody>
   19432       <tr><td colspan="6" class="kind">dynamic</td></tr>
   19433 
   19434       <thead class="entries_header">
   19435         <tr>
   19436           <th class="th_name">Property Name</th>
   19437           <th class="th_type">Type</th>
   19438           <th class="th_description">Description</th>
   19439           <th class="th_units">Units</th>
   19440           <th class="th_range">Range</th>
   19441           <th class="th_tags">Tags</th>
   19442         </tr>
   19443       </thead>
   19444 
   19445       <tbody>
   19446 
   19447         
   19448 
   19449         
   19450 
   19451         
   19452 
   19453         
   19454 
   19455                 
   19456           <tr class="entry" id="dynamic_android.shading.mode">
   19457             <td class="entry_name
   19458              " rowspan="3">
   19459               android.<wbr/>shading.<wbr/>mode
   19460             </td>
   19461             <td class="entry_type">
   19462                 <span class="entry_type_name entry_type_name_enum">byte</span>
   19463 
   19464               <span class="entry_type_visibility"> [public]</span>
   19465 
   19466 
   19467               <span class="entry_type_hwlevel">[full] </span>
   19468 
   19469 
   19470 
   19471                 <ul class="entry_type_enum">
   19472                   <li>
   19473                     <span class="entry_type_enum_name">OFF</span>
   19474                     <span class="entry_type_enum_notes"><p>No lens shading correction is applied.<wbr/></p></span>
   19475                   </li>
   19476                   <li>
   19477                     <span class="entry_type_enum_name">FAST</span>
   19478                     <span class="entry_type_enum_notes"><p>Apply lens shading corrections,<wbr/> without slowing
   19479 frame rate relative to sensor raw output</p></span>
   19480                   </li>
   19481                   <li>
   19482                     <span class="entry_type_enum_name">HIGH_QUALITY</span>
   19483                     <span class="entry_type_enum_notes"><p>Apply high-quality lens shading correction,<wbr/> at the
   19484 cost of reduced frame rate.<wbr/></p></span>
   19485                   </li>
   19486                 </ul>
   19487 
   19488             </td> <!-- entry_type -->
   19489 
   19490             <td class="entry_description">
   19491               <p>Quality of lens shading correction applied
   19492 to the image data.<wbr/></p>
   19493             </td>
   19494 
   19495             <td class="entry_units">
   19496             </td>
   19497 
   19498             <td class="entry_range">
   19499             </td>
   19500 
   19501             <td class="entry_tags">
   19502             </td>
   19503 
   19504           </tr>
   19505           <tr class="entries_header">
   19506             <th class="th_details" colspan="5">Details</th>
   19507           </tr>
   19508           <tr class="entry_cont">
   19509             <td class="entry_details" colspan="5">
   19510               <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
   19511 camera device,<wbr/> and an identity lens shading map data will be provided
   19512 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
   19513 shading map with size of <code>[ 4,<wbr/> 3 ]</code>,<wbr/>
   19514 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
   19515 map shown below:</p>
   19516 <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/>
   19517  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/>
   19518  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/>
   19519  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/>
   19520  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/>
   19521  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 ]
   19522 </code></pre>
   19523 <p>When set to other modes,<wbr/> lens shading correction will be applied by the camera
   19524 device.<wbr/> Applications can request lens shading map data by setting
   19525 <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
   19526 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
   19527 data will be the one applied by the camera device for this capture request.<wbr/></p>
   19528 <p>The shading map data may depend on the auto-exposure (AE) and AWB statistics,<wbr/> therefore
   19529 the reliability of the map data may be affected by the AE and AWB algorithms.<wbr/> When AE and
   19530 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>
   19531 OFF),<wbr/> to get best results,<wbr/> it is recommended that the applications wait for the AE and AWB
   19532 to be converged before using the returned shading map data.<wbr/></p>
   19533             </td>
   19534           </tr>
   19535 
   19536 
   19537           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   19538            <!-- end of entry -->
   19539         
   19540         
   19541 
   19542       <!-- end of kind -->
   19543       </tbody>
   19544 
   19545   <!-- end of section -->
   19546   <tr><td colspan="6" id="section_statistics" class="section">statistics</td></tr>
   19547 
   19548 
   19549       <tr><td colspan="6" class="kind">controls</td></tr>
   19550 
   19551       <thead class="entries_header">
   19552         <tr>
   19553           <th class="th_name">Property Name</th>
   19554           <th class="th_type">Type</th>
   19555           <th class="th_description">Description</th>
   19556           <th class="th_units">Units</th>
   19557           <th class="th_range">Range</th>
   19558           <th class="th_tags">Tags</th>
   19559         </tr>
   19560       </thead>
   19561 
   19562       <tbody>
   19563 
   19564         
   19565 
   19566         
   19567 
   19568         
   19569 
   19570         
   19571 
   19572                 
   19573           <tr class="entry" id="controls_android.statistics.faceDetectMode">
   19574             <td class="entry_name
   19575              " rowspan="5">
   19576               android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
   19577             </td>
   19578             <td class="entry_type">
   19579                 <span class="entry_type_name entry_type_name_enum">byte</span>
   19580 
   19581               <span class="entry_type_visibility"> [public]</span>
   19582 
   19583 
   19584               <span class="entry_type_hwlevel">[legacy] </span>
   19585 
   19586 
   19587 
   19588                 <ul class="entry_type_enum">
   19589                   <li>
   19590                     <span class="entry_type_enum_name">OFF</span>
   19591                     <span class="entry_type_enum_notes"><p>Do not include face detection statistics in capture
   19592 results.<wbr/></p></span>
   19593                   </li>
   19594                   <li>
   19595                     <span class="entry_type_enum_name">SIMPLE</span>
   19596                     <span class="entry_type_enum_optional">[optional]</span>
   19597                     <span class="entry_type_enum_notes"><p>Return face rectangle and confidence values only.<wbr/></p></span>
   19598                   </li>
   19599                   <li>
   19600                     <span class="entry_type_enum_name">FULL</span>
   19601                     <span class="entry_type_enum_optional">[optional]</span>
   19602                     <span class="entry_type_enum_notes"><p>Return all face
   19603 metadata.<wbr/></p>
   19604 <p>In this mode,<wbr/> face rectangles,<wbr/> scores,<wbr/> landmarks,<wbr/> and face IDs are all valid.<wbr/></p></span>
   19605                   </li>
   19606                 </ul>
   19607 
   19608             </td> <!-- entry_type -->
   19609 
   19610             <td class="entry_description">
   19611               <p>Operating mode for the face detector
   19612 unit.<wbr/></p>
   19613             </td>
   19614 
   19615             <td class="entry_units">
   19616             </td>
   19617 
   19618             <td class="entry_range">
   19619               <p><a href="#static_android.statistics.info.availableFaceDetectModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes</a></p>
   19620             </td>
   19621 
   19622             <td class="entry_tags">
   19623               <ul class="entry_tags">
   19624                   <li><a href="#tag_BC">BC</a></li>
   19625               </ul>
   19626             </td>
   19627 
   19628           </tr>
   19629           <tr class="entries_header">
   19630             <th class="th_details" colspan="5">Details</th>
   19631           </tr>
   19632           <tr class="entry_cont">
   19633             <td class="entry_details" colspan="5">
   19634               <p>Whether face detection is enabled,<wbr/> and whether it
   19635 should output just the basic fields or the full set of
   19636 fields.<wbr/></p>
   19637             </td>
   19638           </tr>
   19639 
   19640           <tr class="entries_header">
   19641             <th class="th_details" colspan="5">HAL Implementation Details</th>
   19642           </tr>
   19643           <tr class="entry_cont">
   19644             <td class="entry_details" colspan="5">
   19645               <p>SIMPLE mode must fill in <a href="#dynamic_android.statistics.faceRectangles">android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles</a> and
   19646 <a href="#dynamic_android.statistics.faceScores">android.<wbr/>statistics.<wbr/>face<wbr/>Scores</a>.<wbr/>
   19647 FULL mode must also fill in <a href="#dynamic_android.statistics.faceIds">android.<wbr/>statistics.<wbr/>face<wbr/>Ids</a>,<wbr/> and
   19648 <a href="#dynamic_android.statistics.faceLandmarks">android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks</a>.<wbr/></p>
   19649             </td>
   19650           </tr>
   19651 
   19652           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   19653            <!-- end of entry -->
   19654         
   19655                 
   19656           <tr class="entry" id="controls_android.statistics.histogramMode">
   19657             <td class="entry_name
   19658              " rowspan="1">
   19659               android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
   19660             </td>
   19661             <td class="entry_type">
   19662                 <span class="entry_type_name entry_type_name_enum">byte</span>
   19663 
   19664               <span class="entry_type_visibility"> [system as boolean]</span>
   19665 
   19666 
   19667 
   19668 
   19669 
   19670                 <ul class="entry_type_enum">
   19671                   <li>
   19672                     <span class="entry_type_enum_name">OFF</span>
   19673                   </li>
   19674                   <li>
   19675                     <span class="entry_type_enum_name">ON</span>
   19676                   </li>
   19677                 </ul>
   19678 
   19679             </td> <!-- entry_type -->
   19680 
   19681             <td class="entry_description">
   19682               <p>Operating mode for histogram
   19683 generation</p>
   19684             </td>
   19685 
   19686             <td class="entry_units">
   19687             </td>
   19688 
   19689             <td class="entry_range">
   19690             </td>
   19691 
   19692             <td class="entry_tags">
   19693               <ul class="entry_tags">
   19694                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   19695               </ul>
   19696             </td>
   19697 
   19698           </tr>
   19699 
   19700 
   19701           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   19702            <!-- end of entry -->
   19703         
   19704                 
   19705           <tr class="entry" id="controls_android.statistics.sharpnessMapMode">
   19706             <td class="entry_name
   19707              " rowspan="1">
   19708               android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
   19709             </td>
   19710             <td class="entry_type">
   19711                 <span class="entry_type_name entry_type_name_enum">byte</span>
   19712 
   19713               <span class="entry_type_visibility"> [system as boolean]</span>
   19714 
   19715 
   19716 
   19717 
   19718 
   19719                 <ul class="entry_type_enum">
   19720                   <li>
   19721                     <span class="entry_type_enum_name">OFF</span>
   19722                   </li>
   19723                   <li>
   19724                     <span class="entry_type_enum_name">ON</span>
   19725                   </li>
   19726                 </ul>
   19727 
   19728             </td> <!-- entry_type -->
   19729 
   19730             <td class="entry_description">
   19731               <p>Operating mode for sharpness map
   19732 generation</p>
   19733             </td>
   19734 
   19735             <td class="entry_units">
   19736             </td>
   19737 
   19738             <td class="entry_range">
   19739             </td>
   19740 
   19741             <td class="entry_tags">
   19742               <ul class="entry_tags">
   19743                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   19744               </ul>
   19745             </td>
   19746 
   19747           </tr>
   19748 
   19749 
   19750           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   19751            <!-- end of entry -->
   19752         
   19753                 
   19754           <tr class="entry" id="controls_android.statistics.hotPixelMapMode">
   19755             <td class="entry_name
   19756              " rowspan="3">
   19757               android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map<wbr/>Mode
   19758             </td>
   19759             <td class="entry_type">
   19760                 <span class="entry_type_name entry_type_name_enum">byte</span>
   19761 
   19762               <span class="entry_type_visibility"> [public as boolean]</span>
   19763 
   19764 
   19765 
   19766 
   19767 
   19768                 <ul class="entry_type_enum">
   19769                   <li>
   19770                     <span class="entry_type_enum_name">OFF</span>
   19771                     <span class="entry_type_enum_notes"><p>Hot pixel map production is disabled.<wbr/></p></span>
   19772                   </li>
   19773                   <li>
   19774                     <span class="entry_type_enum_name">ON</span>
   19775                     <span class="entry_type_enum_notes"><p>Hot pixel map production is enabled.<wbr/></p></span>
   19776                   </li>
   19777                 </ul>
   19778 
   19779             </td> <!-- entry_type -->
   19780 
   19781             <td class="entry_description">
   19782               <p>Operating mode for hot pixel map generation.<wbr/></p>
   19783             </td>
   19784 
   19785             <td class="entry_units">
   19786             </td>
   19787 
   19788             <td class="entry_range">
   19789               <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>
   19790             </td>
   19791 
   19792             <td class="entry_tags">
   19793               <ul class="entry_tags">
   19794                   <li><a href="#tag_V1">V1</a></li>
   19795                   <li><a href="#tag_RAW">RAW</a></li>
   19796               </ul>
   19797             </td>
   19798 
   19799           </tr>
   19800           <tr class="entries_header">
   19801             <th class="th_details" colspan="5">Details</th>
   19802           </tr>
   19803           <tr class="entry_cont">
   19804             <td class="entry_details" colspan="5">
   19805               <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/>
   19806 If set to <code>false</code>,<wbr/> no hot pixel map will be returned.<wbr/></p>
   19807             </td>
   19808           </tr>
   19809 
   19810 
   19811           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   19812            <!-- end of entry -->
   19813         
   19814                 
   19815           <tr class="entry" id="controls_android.statistics.lensShadingMapMode">
   19816             <td class="entry_name
   19817              " rowspan="3">
   19818               android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode
   19819             </td>
   19820             <td class="entry_type">
   19821                 <span class="entry_type_name entry_type_name_enum">byte</span>
   19822 
   19823               <span class="entry_type_visibility"> [public]</span>
   19824 
   19825 
   19826               <span class="entry_type_hwlevel">[full] </span>
   19827 
   19828 
   19829 
   19830                 <ul class="entry_type_enum">
   19831                   <li>
   19832                     <span class="entry_type_enum_name">OFF</span>
   19833                     <span class="entry_type_enum_notes"><p>Do not include a lens shading map in the capture result.<wbr/></p></span>
   19834                   </li>
   19835                   <li>
   19836                     <span class="entry_type_enum_name">ON</span>
   19837                     <span class="entry_type_enum_notes"><p>Include a lens shading map in the capture result.<wbr/></p></span>
   19838                   </li>
   19839                 </ul>
   19840 
   19841             </td> <!-- entry_type -->
   19842 
   19843             <td class="entry_description">
   19844               <p>Whether the camera device will output the lens
   19845 shading map in output result metadata.<wbr/></p>
   19846             </td>
   19847 
   19848             <td class="entry_units">
   19849             </td>
   19850 
   19851             <td class="entry_range">
   19852             </td>
   19853 
   19854             <td class="entry_tags">
   19855               <ul class="entry_tags">
   19856                   <li><a href="#tag_RAW">RAW</a></li>
   19857               </ul>
   19858             </td>
   19859 
   19860           </tr>
   19861           <tr class="entries_header">
   19862             <th class="th_details" colspan="5">Details</th>
   19863           </tr>
   19864           <tr class="entry_cont">
   19865             <td class="entry_details" colspan="5">
   19866               <p>When set to ON,<wbr/>
   19867 <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> will be provided in
   19868 the output result metadata.<wbr/></p>
   19869 <p>ON is always supported on devices with the RAW capability.<wbr/></p>
   19870             </td>
   19871           </tr>
   19872 
   19873 
   19874           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   19875            <!-- end of entry -->
   19876         
   19877         
   19878 
   19879       <!-- end of kind -->
   19880       </tbody>
   19881       <tr><td colspan="6" class="kind">static</td></tr>
   19882 
   19883       <thead class="entries_header">
   19884         <tr>
   19885           <th class="th_name">Property Name</th>
   19886           <th class="th_type">Type</th>
   19887           <th class="th_description">Description</th>
   19888           <th class="th_units">Units</th>
   19889           <th class="th_range">Range</th>
   19890           <th class="th_tags">Tags</th>
   19891         </tr>
   19892       </thead>
   19893 
   19894       <tbody>
   19895 
   19896         
   19897 
   19898         
   19899 
   19900         
   19901 
   19902         
   19903                 
   19904             
   19905 
   19906                 
   19907           <tr class="entry" id="static_android.statistics.info.availableFaceDetectModes">
   19908             <td class="entry_name
   19909              " rowspan="3">
   19910               android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes
   19911             </td>
   19912             <td class="entry_type">
   19913                 <span class="entry_type_name">byte</span>
   19914                 <span class="entry_type_container">x</span>
   19915 
   19916                 <span class="entry_type_array">
   19917                   n
   19918                 </span>
   19919               <span class="entry_type_visibility"> [public as enumList]</span>
   19920 
   19921 
   19922               <span class="entry_type_hwlevel">[legacy] </span>
   19923 
   19924 
   19925                 <div class="entry_type_notes">List of enums from android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</div>
   19926 
   19927 
   19928             </td> <!-- entry_type -->
   19929 
   19930             <td class="entry_description">
   19931               <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
   19932 supported by this camera device.<wbr/></p>
   19933             </td>
   19934 
   19935             <td class="entry_units">
   19936             </td>
   19937 
   19938             <td class="entry_range">
   19939               <p>Any value listed in <a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a></p>
   19940             </td>
   19941 
   19942             <td class="entry_tags">
   19943             </td>
   19944 
   19945           </tr>
   19946           <tr class="entries_header">
   19947             <th class="th_details" colspan="5">Details</th>
   19948           </tr>
   19949           <tr class="entry_cont">
   19950             <td class="entry_details" colspan="5">
   19951               <p>OFF is always supported.<wbr/></p>
   19952             </td>
   19953           </tr>
   19954 
   19955 
   19956           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   19957            <!-- end of entry -->
   19958         
   19959                 
   19960           <tr class="entry" id="static_android.statistics.info.histogramBucketCount">
   19961             <td class="entry_name
   19962              " rowspan="1">
   19963               android.<wbr/>statistics.<wbr/>info.<wbr/>histogram<wbr/>Bucket<wbr/>Count
   19964             </td>
   19965             <td class="entry_type">
   19966                 <span class="entry_type_name">int32</span>
   19967 
   19968               <span class="entry_type_visibility"> [system]</span>
   19969 
   19970 
   19971 
   19972 
   19973 
   19974 
   19975             </td> <!-- entry_type -->
   19976 
   19977             <td class="entry_description">
   19978               <p>Number of histogram buckets
   19979 supported</p>
   19980             </td>
   19981 
   19982             <td class="entry_units">
   19983             </td>
   19984 
   19985             <td class="entry_range">
   19986               <p>&gt;= 64</p>
   19987             </td>
   19988 
   19989             <td class="entry_tags">
   19990               <ul class="entry_tags">
   19991                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   19992               </ul>
   19993             </td>
   19994 
   19995           </tr>
   19996 
   19997 
   19998           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   19999            <!-- end of entry -->
   20000         
   20001                 
   20002           <tr class="entry" id="static_android.statistics.info.maxFaceCount">
   20003             <td class="entry_name
   20004              " rowspan="1">
   20005               android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Face<wbr/>Count
   20006             </td>
   20007             <td class="entry_type">
   20008                 <span class="entry_type_name">int32</span>
   20009 
   20010               <span class="entry_type_visibility"> [public]</span>
   20011 
   20012 
   20013               <span class="entry_type_hwlevel">[legacy] </span>
   20014 
   20015 
   20016 
   20017 
   20018             </td> <!-- entry_type -->
   20019 
   20020             <td class="entry_description">
   20021               <p>The maximum number of simultaneously detectable
   20022 faces.<wbr/></p>
   20023             </td>
   20024 
   20025             <td class="entry_units">
   20026             </td>
   20027 
   20028             <td class="entry_range">
   20029               <p>0 for cameras without available face detection; otherwise:
   20030 <code>&gt;=4</code> for LIMITED or FULL hwlevel devices or
   20031 <code>&gt;0</code> for LEGACY devices.<wbr/></p>
   20032             </td>
   20033 
   20034             <td class="entry_tags">
   20035               <ul class="entry_tags">
   20036                   <li><a href="#tag_BC">BC</a></li>
   20037               </ul>
   20038             </td>
   20039 
   20040           </tr>
   20041 
   20042 
   20043           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   20044            <!-- end of entry -->
   20045         
   20046                 
   20047           <tr class="entry" id="static_android.statistics.info.maxHistogramCount">
   20048             <td class="entry_name
   20049              " rowspan="1">
   20050               android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Histogram<wbr/>Count
   20051             </td>
   20052             <td class="entry_type">
   20053                 <span class="entry_type_name">int32</span>
   20054 
   20055               <span class="entry_type_visibility"> [system]</span>
   20056 
   20057 
   20058 
   20059 
   20060 
   20061 
   20062             </td> <!-- entry_type -->
   20063 
   20064             <td class="entry_description">
   20065               <p>Maximum value possible for a histogram
   20066 bucket</p>
   20067             </td>
   20068 
   20069             <td class="entry_units">
   20070             </td>
   20071 
   20072             <td class="entry_range">
   20073             </td>
   20074 
   20075             <td class="entry_tags">
   20076               <ul class="entry_tags">
   20077                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   20078               </ul>
   20079             </td>
   20080 
   20081           </tr>
   20082 
   20083 
   20084           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   20085            <!-- end of entry -->
   20086         
   20087                 
   20088           <tr class="entry" id="static_android.statistics.info.maxSharpnessMapValue">
   20089             <td class="entry_name
   20090              " rowspan="1">
   20091               android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Sharpness<wbr/>Map<wbr/>Value
   20092             </td>
   20093             <td class="entry_type">
   20094                 <span class="entry_type_name">int32</span>
   20095 
   20096               <span class="entry_type_visibility"> [system]</span>
   20097 
   20098 
   20099 
   20100 
   20101 
   20102 
   20103             </td> <!-- entry_type -->
   20104 
   20105             <td class="entry_description">
   20106               <p>Maximum value possible for a sharpness map
   20107 region.<wbr/></p>
   20108             </td>
   20109 
   20110             <td class="entry_units">
   20111             </td>
   20112 
   20113             <td class="entry_range">
   20114             </td>
   20115 
   20116             <td class="entry_tags">
   20117               <ul class="entry_tags">
   20118                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   20119               </ul>
   20120             </td>
   20121 
   20122           </tr>
   20123 
   20124 
   20125           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   20126            <!-- end of entry -->
   20127         
   20128                 
   20129           <tr class="entry" id="static_android.statistics.info.sharpnessMapSize">
   20130             <td class="entry_name
   20131              " rowspan="1">
   20132               android.<wbr/>statistics.<wbr/>info.<wbr/>sharpness<wbr/>Map<wbr/>Size
   20133             </td>
   20134             <td class="entry_type">
   20135                 <span class="entry_type_name">int32</span>
   20136                 <span class="entry_type_container">x</span>
   20137 
   20138                 <span class="entry_type_array">
   20139                   2
   20140                 </span>
   20141               <span class="entry_type_visibility"> [system as size]</span>
   20142 
   20143 
   20144 
   20145 
   20146                 <div class="entry_type_notes">width x height</div>
   20147 
   20148 
   20149             </td> <!-- entry_type -->
   20150 
   20151             <td class="entry_description">
   20152               <p>Dimensions of the sharpness
   20153 map</p>
   20154             </td>
   20155 
   20156             <td class="entry_units">
   20157             </td>
   20158 
   20159             <td class="entry_range">
   20160               <p>Must be at least 32 x 32</p>
   20161             </td>
   20162 
   20163             <td class="entry_tags">
   20164               <ul class="entry_tags">
   20165                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   20166               </ul>
   20167             </td>
   20168 
   20169           </tr>
   20170 
   20171 
   20172           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   20173            <!-- end of entry -->
   20174         
   20175                 
   20176           <tr class="entry" id="static_android.statistics.info.availableHotPixelMapModes">
   20177             <td class="entry_name
   20178              " rowspan="3">
   20179               android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Hot<wbr/>Pixel<wbr/>Map<wbr/>Modes
   20180             </td>
   20181             <td class="entry_type">
   20182                 <span class="entry_type_name">byte</span>
   20183                 <span class="entry_type_container">x</span>
   20184 
   20185                 <span class="entry_type_array">
   20186                   n
   20187                 </span>
   20188               <span class="entry_type_visibility"> [public as boolean]</span>
   20189 
   20190 
   20191 
   20192 
   20193                 <div class="entry_type_notes">list of enums</div>
   20194 
   20195 
   20196             </td> <!-- entry_type -->
   20197 
   20198             <td class="entry_description">
   20199               <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
   20200 supported by this camera device.<wbr/></p>
   20201             </td>
   20202 
   20203             <td class="entry_units">
   20204             </td>
   20205 
   20206             <td class="entry_range">
   20207               <p>Any value listed in <a href="#controls_android.statistics.hotPixelMapMode">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map<wbr/>Mode</a></p>
   20208             </td>
   20209 
   20210             <td class="entry_tags">
   20211               <ul class="entry_tags">
   20212                   <li><a href="#tag_V1">V1</a></li>
   20213                   <li><a href="#tag_RAW">RAW</a></li>
   20214               </ul>
   20215             </td>
   20216 
   20217           </tr>
   20218           <tr class="entries_header">
   20219             <th class="th_details" colspan="5">Details</th>
   20220           </tr>
   20221           <tr class="entry_cont">
   20222             <td class="entry_details" colspan="5">
   20223               <p>If no hotpixel map output is available for this camera device,<wbr/> this will contain only
   20224 <code>false</code>.<wbr/></p>
   20225 <p>ON is always supported on devices with the RAW capability.<wbr/></p>
   20226             </td>
   20227           </tr>
   20228 
   20229 
   20230           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   20231            <!-- end of entry -->
   20232         
   20233         
   20234         
   20235 
   20236         
   20237 
   20238       <!-- end of kind -->
   20239       </tbody>
   20240       <tr><td colspan="6" class="kind">dynamic</td></tr>
   20241 
   20242       <thead class="entries_header">
   20243         <tr>
   20244           <th class="th_name">Property Name</th>
   20245           <th class="th_type">Type</th>
   20246           <th class="th_description">Description</th>
   20247           <th class="th_units">Units</th>
   20248           <th class="th_range">Range</th>
   20249           <th class="th_tags">Tags</th>
   20250         </tr>
   20251       </thead>
   20252 
   20253       <tbody>
   20254 
   20255         
   20256 
   20257         
   20258 
   20259         
   20260 
   20261         
   20262 
   20263                 
   20264           <tr class="entry" id="dynamic_android.statistics.faceDetectMode">
   20265             <td class="entry_name
   20266              " rowspan="5">
   20267               android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
   20268             </td>
   20269             <td class="entry_type">
   20270                 <span class="entry_type_name entry_type_name_enum">byte</span>
   20271 
   20272               <span class="entry_type_visibility"> [public]</span>
   20273 
   20274 
   20275               <span class="entry_type_hwlevel">[legacy] </span>
   20276 
   20277 
   20278 
   20279                 <ul class="entry_type_enum">
   20280                   <li>
   20281                     <span class="entry_type_enum_name">OFF</span>
   20282                     <span class="entry_type_enum_notes"><p>Do not include face detection statistics in capture
   20283 results.<wbr/></p></span>
   20284                   </li>
   20285                   <li>
   20286                     <span class="entry_type_enum_name">SIMPLE</span>
   20287                     <span class="entry_type_enum_optional">[optional]</span>
   20288                     <span class="entry_type_enum_notes"><p>Return face rectangle and confidence values only.<wbr/></p></span>
   20289                   </li>
   20290                   <li>
   20291                     <span class="entry_type_enum_name">FULL</span>
   20292                     <span class="entry_type_enum_optional">[optional]</span>
   20293                     <span class="entry_type_enum_notes"><p>Return all face
   20294 metadata.<wbr/></p>
   20295 <p>In this mode,<wbr/> face rectangles,<wbr/> scores,<wbr/> landmarks,<wbr/> and face IDs are all valid.<wbr/></p></span>
   20296                   </li>
   20297                 </ul>
   20298 
   20299             </td> <!-- entry_type -->
   20300 
   20301             <td class="entry_description">
   20302               <p>Operating mode for the face detector
   20303 unit.<wbr/></p>
   20304             </td>
   20305 
   20306             <td class="entry_units">
   20307             </td>
   20308 
   20309             <td class="entry_range">
   20310               <p><a href="#static_android.statistics.info.availableFaceDetectModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes</a></p>
   20311             </td>
   20312 
   20313             <td class="entry_tags">
   20314               <ul class="entry_tags">
   20315                   <li><a href="#tag_BC">BC</a></li>
   20316               </ul>
   20317             </td>
   20318 
   20319           </tr>
   20320           <tr class="entries_header">
   20321             <th class="th_details" colspan="5">Details</th>
   20322           </tr>
   20323           <tr class="entry_cont">
   20324             <td class="entry_details" colspan="5">
   20325               <p>Whether face detection is enabled,<wbr/> and whether it
   20326 should output just the basic fields or the full set of
   20327 fields.<wbr/></p>
   20328             </td>
   20329           </tr>
   20330 
   20331           <tr class="entries_header">
   20332             <th class="th_details" colspan="5">HAL Implementation Details</th>
   20333           </tr>
   20334           <tr class="entry_cont">
   20335             <td class="entry_details" colspan="5">
   20336               <p>SIMPLE mode must fill in <a href="#dynamic_android.statistics.faceRectangles">android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles</a> and
   20337 <a href="#dynamic_android.statistics.faceScores">android.<wbr/>statistics.<wbr/>face<wbr/>Scores</a>.<wbr/>
   20338 FULL mode must also fill in <a href="#dynamic_android.statistics.faceIds">android.<wbr/>statistics.<wbr/>face<wbr/>Ids</a>,<wbr/> and
   20339 <a href="#dynamic_android.statistics.faceLandmarks">android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks</a>.<wbr/></p>
   20340             </td>
   20341           </tr>
   20342 
   20343           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   20344            <!-- end of entry -->
   20345         
   20346                 
   20347           <tr class="entry" id="dynamic_android.statistics.faceIds">
   20348             <td class="entry_name
   20349              " rowspan="3">
   20350               android.<wbr/>statistics.<wbr/>face<wbr/>Ids
   20351             </td>
   20352             <td class="entry_type">
   20353                 <span class="entry_type_name">int32</span>
   20354                 <span class="entry_type_container">x</span>
   20355 
   20356                 <span class="entry_type_array">
   20357                   n
   20358                 </span>
   20359               <span class="entry_type_visibility"> [hidden]</span>
   20360 
   20361 
   20362               <span class="entry_type_hwlevel">[legacy] </span>
   20363 
   20364 
   20365 
   20366 
   20367             </td> <!-- entry_type -->
   20368 
   20369             <td class="entry_description">
   20370               <p>List of unique IDs for detected faces.<wbr/></p>
   20371             </td>
   20372 
   20373             <td class="entry_units">
   20374             </td>
   20375 
   20376             <td class="entry_range">
   20377             </td>
   20378 
   20379             <td class="entry_tags">
   20380               <ul class="entry_tags">
   20381                   <li><a href="#tag_BC">BC</a></li>
   20382               </ul>
   20383             </td>
   20384 
   20385           </tr>
   20386           <tr class="entries_header">
   20387             <th class="th_details" colspan="5">Details</th>
   20388           </tr>
   20389           <tr class="entry_cont">
   20390             <td class="entry_details" colspan="5">
   20391               <p>Each detected face is given a unique ID that is valid for as long as the face is visible
   20392 to the camera device.<wbr/>  A face that leaves the field of view and later returns may be
   20393 assigned a new ID.<wbr/></p>
   20394 <p>Only available if <a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a> == FULL</p>
   20395             </td>
   20396           </tr>
   20397 
   20398 
   20399           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   20400            <!-- end of entry -->
   20401         
   20402                 
   20403           <tr class="entry" id="dynamic_android.statistics.faceLandmarks">
   20404             <td class="entry_name
   20405              " rowspan="3">
   20406               android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks
   20407             </td>
   20408             <td class="entry_type">
   20409                 <span class="entry_type_name">int32</span>
   20410                 <span class="entry_type_container">x</span>
   20411 
   20412                 <span class="entry_type_array">
   20413                   n x 6
   20414                 </span>
   20415               <span class="entry_type_visibility"> [hidden]</span>
   20416 
   20417 
   20418               <span class="entry_type_hwlevel">[legacy] </span>
   20419 
   20420 
   20421                 <div class="entry_type_notes">(leftEyeX,<wbr/> leftEyeY,<wbr/> rightEyeX,<wbr/> rightEyeY,<wbr/> mouthX,<wbr/> mouthY)</div>
   20422 
   20423 
   20424             </td> <!-- entry_type -->
   20425 
   20426             <td class="entry_description">
   20427               <p>List of landmarks for detected
   20428 faces.<wbr/></p>
   20429             </td>
   20430 
   20431             <td class="entry_units">
   20432             </td>
   20433 
   20434             <td class="entry_range">
   20435             </td>
   20436 
   20437             <td class="entry_tags">
   20438               <ul class="entry_tags">
   20439                   <li><a href="#tag_BC">BC</a></li>
   20440               </ul>
   20441             </td>
   20442 
   20443           </tr>
   20444           <tr class="entries_header">
   20445             <th class="th_details" colspan="5">Details</th>
   20446           </tr>
   20447           <tr class="entry_cont">
   20448             <td class="entry_details" colspan="5">
   20449               <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
   20450 <code>(0,<wbr/> 0)</code> being the top-left pixel of the active array.<wbr/></p>
   20451 <p>Only available if <a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a> == FULL</p>
   20452             </td>
   20453           </tr>
   20454 
   20455 
   20456           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   20457            <!-- end of entry -->
   20458         
   20459                 
   20460           <tr class="entry" id="dynamic_android.statistics.faceRectangles">
   20461             <td class="entry_name
   20462              " rowspan="3">
   20463               android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles
   20464             </td>
   20465             <td class="entry_type">
   20466                 <span class="entry_type_name">int32</span>
   20467                 <span class="entry_type_container">x</span>
   20468 
   20469                 <span class="entry_type_array">
   20470                   n x 4
   20471                 </span>
   20472               <span class="entry_type_visibility"> [hidden as rectangle]</span>
   20473 
   20474 
   20475               <span class="entry_type_hwlevel">[legacy] </span>
   20476 
   20477 
   20478                 <div class="entry_type_notes">(xmin,<wbr/> ymin,<wbr/> xmax,<wbr/> ymax).<wbr/> (0,<wbr/>0) is top-left of active pixel area</div>
   20479 
   20480 
   20481             </td> <!-- entry_type -->
   20482 
   20483             <td class="entry_description">
   20484               <p>List of the bounding rectangles for detected
   20485 faces.<wbr/></p>
   20486             </td>
   20487 
   20488             <td class="entry_units">
   20489             </td>
   20490 
   20491             <td class="entry_range">
   20492             </td>
   20493 
   20494             <td class="entry_tags">
   20495               <ul class="entry_tags">
   20496                   <li><a href="#tag_BC">BC</a></li>
   20497               </ul>
   20498             </td>
   20499 
   20500           </tr>
   20501           <tr class="entries_header">
   20502             <th class="th_details" colspan="5">Details</th>
   20503           </tr>
   20504           <tr class="entry_cont">
   20505             <td class="entry_details" colspan="5">
   20506               <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
   20507 <code>(0,<wbr/> 0)</code> being the top-left pixel of the active array.<wbr/></p>
   20508 <p>Only available if <a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a> != OFF</p>
   20509             </td>
   20510           </tr>
   20511 
   20512 
   20513           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   20514            <!-- end of entry -->
   20515         
   20516                 
   20517           <tr class="entry" id="dynamic_android.statistics.faceScores">
   20518             <td class="entry_name
   20519              " rowspan="5">
   20520               android.<wbr/>statistics.<wbr/>face<wbr/>Scores
   20521             </td>
   20522             <td class="entry_type">
   20523                 <span class="entry_type_name">byte</span>
   20524                 <span class="entry_type_container">x</span>
   20525 
   20526                 <span class="entry_type_array">
   20527                   n
   20528                 </span>
   20529               <span class="entry_type_visibility"> [hidden]</span>
   20530 
   20531 
   20532               <span class="entry_type_hwlevel">[legacy] </span>
   20533 
   20534 
   20535 
   20536 
   20537             </td> <!-- entry_type -->
   20538 
   20539             <td class="entry_description">
   20540               <p>List of the face confidence scores for
   20541 detected faces</p>
   20542             </td>
   20543 
   20544             <td class="entry_units">
   20545             </td>
   20546 
   20547             <td class="entry_range">
   20548               <p>1-100</p>
   20549             </td>
   20550 
   20551             <td class="entry_tags">
   20552               <ul class="entry_tags">
   20553                   <li><a href="#tag_BC">BC</a></li>
   20554               </ul>
   20555             </td>
   20556 
   20557           </tr>
   20558           <tr class="entries_header">
   20559             <th class="th_details" colspan="5">Details</th>
   20560           </tr>
   20561           <tr class="entry_cont">
   20562             <td class="entry_details" colspan="5">
   20563               <p>Only available if <a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a> != OFF.<wbr/></p>
   20564             </td>
   20565           </tr>
   20566 
   20567           <tr class="entries_header">
   20568             <th class="th_details" colspan="5">HAL Implementation Details</th>
   20569           </tr>
   20570           <tr class="entry_cont">
   20571             <td class="entry_details" colspan="5">
   20572               <p>The value should be meaningful (for example,<wbr/> setting 100 at
   20573 all times is illegal).<wbr/></p>
   20574             </td>
   20575           </tr>
   20576 
   20577           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   20578            <!-- end of entry -->
   20579         
   20580                 
   20581           <tr class="entry" id="dynamic_android.statistics.faces">
   20582             <td class="entry_name
   20583              " rowspan="3">
   20584               android.<wbr/>statistics.<wbr/>faces
   20585             </td>
   20586             <td class="entry_type">
   20587                 <span class="entry_type_name">int32</span>
   20588                 <span class="entry_type_container">x</span>
   20589 
   20590                 <span class="entry_type_array">
   20591                   n
   20592                 </span>
   20593               <span class="entry_type_visibility"> [public as face]</span>
   20594 
   20595               <span class="entry_type_synthetic">[synthetic] </span>
   20596 
   20597               <span class="entry_type_hwlevel">[legacy] </span>
   20598 
   20599 
   20600 
   20601 
   20602             </td> <!-- entry_type -->
   20603 
   20604             <td class="entry_description">
   20605               <p>List of the faces detected through camera face detection
   20606 in this capture.<wbr/></p>
   20607             </td>
   20608 
   20609             <td class="entry_units">
   20610             </td>
   20611 
   20612             <td class="entry_range">
   20613             </td>
   20614 
   20615             <td class="entry_tags">
   20616             </td>
   20617 
   20618           </tr>
   20619           <tr class="entries_header">
   20620             <th class="th_details" colspan="5">Details</th>
   20621           </tr>
   20622           <tr class="entry_cont">
   20623             <td class="entry_details" colspan="5">
   20624               <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>
   20625             </td>
   20626           </tr>
   20627 
   20628 
   20629           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   20630            <!-- end of entry -->
   20631         
   20632                 
   20633           <tr class="entry" id="dynamic_android.statistics.histogram">
   20634             <td class="entry_name
   20635              " rowspan="3">
   20636               android.<wbr/>statistics.<wbr/>histogram
   20637             </td>
   20638             <td class="entry_type">
   20639                 <span class="entry_type_name">int32</span>
   20640                 <span class="entry_type_container">x</span>
   20641 
   20642                 <span class="entry_type_array">
   20643                   n x 3
   20644                 </span>
   20645               <span class="entry_type_visibility"> [system]</span>
   20646 
   20647 
   20648 
   20649 
   20650                 <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>
   20651 
   20652 
   20653             </td> <!-- entry_type -->
   20654 
   20655             <td class="entry_description">
   20656               <p>A 3-channel histogram based on the raw
   20657 sensor data</p>
   20658             </td>
   20659 
   20660             <td class="entry_units">
   20661             </td>
   20662 
   20663             <td class="entry_range">
   20664             </td>
   20665 
   20666             <td class="entry_tags">
   20667               <ul class="entry_tags">
   20668                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   20669               </ul>
   20670             </td>
   20671 
   20672           </tr>
   20673           <tr class="entries_header">
   20674             <th class="th_details" colspan="5">Details</th>
   20675           </tr>
   20676           <tr class="entry_cont">
   20677             <td class="entry_details" colspan="5">
   20678               <p>The k'th bucket (0-based) covers the input range
   20679 (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/>
   20680 (k + 1) * w /<wbr/> N ).<wbr/> If only a monochrome sharpness map is
   20681 supported,<wbr/> all channels should have the same data</p>
   20682             </td>
   20683           </tr>
   20684 
   20685 
   20686           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   20687            <!-- end of entry -->
   20688         
   20689                 
   20690           <tr class="entry" id="dynamic_android.statistics.histogramMode">
   20691             <td class="entry_name
   20692              " rowspan="1">
   20693               android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
   20694             </td>
   20695             <td class="entry_type">
   20696                 <span class="entry_type_name entry_type_name_enum">byte</span>
   20697 
   20698               <span class="entry_type_visibility"> [system as boolean]</span>
   20699 
   20700 
   20701 
   20702 
   20703 
   20704                 <ul class="entry_type_enum">
   20705                   <li>
   20706                     <span class="entry_type_enum_name">OFF</span>
   20707                   </li>
   20708                   <li>
   20709                     <span class="entry_type_enum_name">ON</span>
   20710                   </li>
   20711                 </ul>
   20712 
   20713             </td> <!-- entry_type -->
   20714 
   20715             <td class="entry_description">
   20716               <p>Operating mode for histogram
   20717 generation</p>
   20718             </td>
   20719 
   20720             <td class="entry_units">
   20721             </td>
   20722 
   20723             <td class="entry_range">
   20724             </td>
   20725 
   20726             <td class="entry_tags">
   20727               <ul class="entry_tags">
   20728                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   20729               </ul>
   20730             </td>
   20731 
   20732           </tr>
   20733 
   20734 
   20735           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   20736            <!-- end of entry -->
   20737         
   20738                 
   20739           <tr class="entry" id="dynamic_android.statistics.sharpnessMap">
   20740             <td class="entry_name
   20741              " rowspan="3">
   20742               android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map
   20743             </td>
   20744             <td class="entry_type">
   20745                 <span class="entry_type_name">int32</span>
   20746                 <span class="entry_type_container">x</span>
   20747 
   20748                 <span class="entry_type_array">
   20749                   n x m x 3
   20750                 </span>
   20751               <span class="entry_type_visibility"> [system]</span>
   20752 
   20753 
   20754 
   20755 
   20756                 <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>
   20757 
   20758 
   20759             </td> <!-- entry_type -->
   20760 
   20761             <td class="entry_description">
   20762               <p>A 3-channel sharpness map,<wbr/> based on the raw
   20763 sensor data</p>
   20764             </td>
   20765 
   20766             <td class="entry_units">
   20767             </td>
   20768 
   20769             <td class="entry_range">
   20770             </td>
   20771 
   20772             <td class="entry_tags">
   20773               <ul class="entry_tags">
   20774                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   20775               </ul>
   20776             </td>
   20777 
   20778           </tr>
   20779           <tr class="entries_header">
   20780             <th class="th_details" colspan="5">Details</th>
   20781           </tr>
   20782           <tr class="entry_cont">
   20783             <td class="entry_details" colspan="5">
   20784               <p>If only a monochrome sharpness map is supported,<wbr/>
   20785 all channels should have the same data</p>
   20786             </td>
   20787           </tr>
   20788 
   20789 
   20790           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   20791            <!-- end of entry -->
   20792         
   20793                 
   20794           <tr class="entry" id="dynamic_android.statistics.sharpnessMapMode">
   20795             <td class="entry_name
   20796              " rowspan="1">
   20797               android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
   20798             </td>
   20799             <td class="entry_type">
   20800                 <span class="entry_type_name entry_type_name_enum">byte</span>
   20801 
   20802               <span class="entry_type_visibility"> [system as boolean]</span>
   20803 
   20804 
   20805 
   20806 
   20807 
   20808                 <ul class="entry_type_enum">
   20809                   <li>
   20810                     <span class="entry_type_enum_name">OFF</span>
   20811                   </li>
   20812                   <li>
   20813                     <span class="entry_type_enum_name">ON</span>
   20814                   </li>
   20815                 </ul>
   20816 
   20817             </td> <!-- entry_type -->
   20818 
   20819             <td class="entry_description">
   20820               <p>Operating mode for sharpness map
   20821 generation</p>
   20822             </td>
   20823 
   20824             <td class="entry_units">
   20825             </td>
   20826 
   20827             <td class="entry_range">
   20828             </td>
   20829 
   20830             <td class="entry_tags">
   20831               <ul class="entry_tags">
   20832                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   20833               </ul>
   20834             </td>
   20835 
   20836           </tr>
   20837 
   20838 
   20839           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   20840            <!-- end of entry -->
   20841         
   20842                 
   20843           <tr class="entry" id="dynamic_android.statistics.lensShadingCorrectionMap">
   20844             <td class="entry_name
   20845              " rowspan="3">
   20846               android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Correction<wbr/>Map
   20847             </td>
   20848             <td class="entry_type">
   20849                 <span class="entry_type_name">byte</span>
   20850 
   20851               <span class="entry_type_visibility"> [public as lensShadingMap]</span>
   20852 
   20853 
   20854               <span class="entry_type_hwlevel">[full] </span>
   20855 
   20856 
   20857 
   20858 
   20859             </td> <!-- entry_type -->
   20860 
   20861             <td class="entry_description">
   20862               <p>The shading map is a low-resolution floating-point map
   20863 that lists the coefficients used to correct for vignetting,<wbr/> for each
   20864 Bayer color channel.<wbr/></p>
   20865             </td>
   20866 
   20867             <td class="entry_units">
   20868             </td>
   20869 
   20870             <td class="entry_range">
   20871               <p>Each gain factor is &gt;= 1</p>
   20872             </td>
   20873 
   20874             <td class="entry_tags">
   20875             </td>
   20876 
   20877           </tr>
   20878           <tr class="entries_header">
   20879             <th class="th_details" colspan="5">Details</th>
   20880           </tr>
   20881           <tr class="entry_cont">
   20882             <td class="entry_details" colspan="5">
   20883               <p>The least shaded section of the image should have a gain factor
   20884 of 1; all other sections should have gains above 1.<wbr/></p>
   20885 <p>When <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> = TRANSFORM_<wbr/>MATRIX,<wbr/> the map
   20886 must take into account the colorCorrection settings.<wbr/></p>
   20887 <p>The shading map is for the entire active pixel array,<wbr/> and is not
   20888 affected by the crop region specified in the request.<wbr/> Each shading map
   20889 entry is the value of the shading compensation map over a specific
   20890 pixel on the sensor.<wbr/>  Specifically,<wbr/> with a (N x M) resolution shading
   20891 map,<wbr/> and an active pixel array size (W x H),<wbr/> shading map entry
   20892 (x,<wbr/>y)  (0 ...<wbr/> N-1,<wbr/> 0 ...<wbr/> M-1) is the value of the shading map at
   20893 pixel ( ((W-1)/<wbr/>(N-1)) * x,<wbr/> ((H-1)/<wbr/>(M-1)) * y) for the four color channels.<wbr/>
   20894 The map is assumed to be bilinearly interpolated between the sample points.<wbr/></p>
   20895 <p>The channel order is [R,<wbr/> Geven,<wbr/> Godd,<wbr/> B],<wbr/> where Geven is the green
   20896 channel for the even rows of a Bayer pattern,<wbr/> and Godd is the odd rows.<wbr/>
   20897 The shading map is stored in a fully interleaved format.<wbr/></p>
   20898 <p>The shading map should have on the order of 30-40 rows and columns,<wbr/>
   20899 and must be smaller than 64x64.<wbr/></p>
   20900 <p>As an example,<wbr/> given a very small map defined as:</p>
   20901 <pre><code>width,<wbr/>height = [ 4,<wbr/> 3 ]
   20902 values =
   20903 [ 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/>
   20904     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/>
   20905   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/>
   20906     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/>
   20907   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/>
   20908     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 ]
   20909 </code></pre>
   20910 <p>The low-resolution scaling map images for each channel are
   20911 (displayed using nearest-neighbor interpolation):</p>
   20912 <p><img alt="Red lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/red_shading.png"/>
   20913 <img alt="Green (even rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_e_shading.png"/>
   20914 <img alt="Green (odd rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_o_shading.png"/>
   20915 <img alt="Blue lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/blue_shading.png"/></p>
   20916 <p>As a visualization only,<wbr/> inverting the full-color map to recover an
   20917 image of a gray wall (using bicubic interpolation for visual quality) as captured by the sensor gives:</p>
   20918 <p><img alt="Image of a uniform white wall (inverse shading map)" src="images/camera2/metadata/android.statistics.lensShadingMap/inv_shading.png"/></p>
   20919             </td>
   20920           </tr>
   20921 
   20922 
   20923           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   20924            <!-- end of entry -->
   20925         
   20926                 
   20927           <tr class="entry" id="dynamic_android.statistics.lensShadingMap">
   20928             <td class="entry_name
   20929              " rowspan="5">
   20930               android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map
   20931             </td>
   20932             <td class="entry_type">
   20933                 <span class="entry_type_name">float</span>
   20934                 <span class="entry_type_container">x</span>
   20935 
   20936                 <span class="entry_type_array">
   20937                   4 x n x m
   20938                 </span>
   20939               <span class="entry_type_visibility"> [hidden]</span>
   20940 
   20941 
   20942               <span class="entry_type_hwlevel">[full] </span>
   20943 
   20944 
   20945                 <div class="entry_type_notes">2D array of float gain factors per channel to correct lens shading</div>
   20946 
   20947 
   20948             </td> <!-- entry_type -->
   20949 
   20950             <td class="entry_description">
   20951               <p>The shading map is a low-resolution floating-point map
   20952 that lists the coefficients used to correct for vignetting,<wbr/> for each
   20953 Bayer color channel.<wbr/></p>
   20954             </td>
   20955 
   20956             <td class="entry_units">
   20957             </td>
   20958 
   20959             <td class="entry_range">
   20960               <p>Each gain factor is &gt;= 1</p>
   20961             </td>
   20962 
   20963             <td class="entry_tags">
   20964             </td>
   20965 
   20966           </tr>
   20967           <tr class="entries_header">
   20968             <th class="th_details" colspan="5">Details</th>
   20969           </tr>
   20970           <tr class="entry_cont">
   20971             <td class="entry_details" colspan="5">
   20972               <p>The least shaded section of the image should have a gain factor
   20973 of 1; all other sections should have gains above 1.<wbr/></p>
   20974 <p>When <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> = TRANSFORM_<wbr/>MATRIX,<wbr/> the map
   20975 must take into account the colorCorrection settings.<wbr/></p>
   20976 <p>The shading map is for the entire active pixel array,<wbr/> and is not
   20977 affected by the crop region specified in the request.<wbr/> Each shading map
   20978 entry is the value of the shading compensation map over a specific
   20979 pixel on the sensor.<wbr/>  Specifically,<wbr/> with a (N x M) resolution shading
   20980 map,<wbr/> and an active pixel array size (W x H),<wbr/> shading map entry
   20981 (x,<wbr/>y)  (0 ...<wbr/> N-1,<wbr/> 0 ...<wbr/> M-1) is the value of the shading map at
   20982 pixel ( ((W-1)/<wbr/>(N-1)) * x,<wbr/> ((H-1)/<wbr/>(M-1)) * y) for the four color channels.<wbr/>
   20983 The map is assumed to be bilinearly interpolated between the sample points.<wbr/></p>
   20984 <p>The channel order is [R,<wbr/> Geven,<wbr/> Godd,<wbr/> B],<wbr/> where Geven is the green
   20985 channel for the even rows of a Bayer pattern,<wbr/> and Godd is the odd rows.<wbr/>
   20986 The shading map is stored in a fully interleaved format,<wbr/> and its size
   20987 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>
   20988 <p>The shading map should have on the order of 30-40 rows and columns,<wbr/>
   20989 and must be smaller than 64x64.<wbr/></p>
   20990 <p>As an example,<wbr/> given a very small map defined as:</p>
   20991 <pre><code><a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a> = [ 4,<wbr/> 3 ]
   20992 <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> =
   20993 [ 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/>
   20994     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/>
   20995   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/>
   20996     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/>
   20997   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/>
   20998     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 ]
   20999 </code></pre>
   21000 <p>The low-resolution scaling map images for each channel are
   21001 (displayed using nearest-neighbor interpolation):</p>
   21002 <p><img alt="Red lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/red_shading.png"/>
   21003 <img alt="Green (even rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_e_shading.png"/>
   21004 <img alt="Green (odd rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_o_shading.png"/>
   21005 <img alt="Blue lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/blue_shading.png"/></p>
   21006 <p>As a visualization only,<wbr/> inverting the full-color map to recover an
   21007 image of a gray wall (using bicubic interpolation for visual quality) as captured by the sensor gives:</p>
   21008 <p><img alt="Image of a uniform white wall (inverse shading map)" src="images/camera2/metadata/android.statistics.lensShadingMap/inv_shading.png"/></p>
   21009             </td>
   21010           </tr>
   21011 
   21012           <tr class="entries_header">
   21013             <th class="th_details" colspan="5">HAL Implementation Details</th>
   21014           </tr>
   21015           <tr class="entry_cont">
   21016             <td class="entry_details" colspan="5">
   21017               <p>The lens shading map calculation may depend on exposure and white balance statistics.<wbr/>
   21018 When AE and AWB are in AUTO modes
   21019 (<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
   21020 may have all the information it need to generate most accurate lens shading map.<wbr/> When
   21021 AE or AWB are in manual mode
   21022 (<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
   21023 may be adversely impacted by manual exposure or white balance parameters.<wbr/> To avoid
   21024 generating unreliable shading map data,<wbr/> the HAL may choose to lock the shading map with
   21025 the latest known good map generated when the AE and AWB are in AUTO modes.<wbr/></p>
   21026             </td>
   21027           </tr>
   21028 
   21029           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   21030            <!-- end of entry -->
   21031         
   21032                 
   21033           <tr class="entry" id="dynamic_android.statistics.predictedColorGains">
   21034             <td class="entry_name
   21035                 entry_name_deprecated
   21036              " rowspan="3">
   21037               android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Gains
   21038             </td>
   21039             <td class="entry_type">
   21040                 <span class="entry_type_name">float</span>
   21041                 <span class="entry_type_container">x</span>
   21042 
   21043                 <span class="entry_type_array">
   21044                   4
   21045                 </span>
   21046               <span class="entry_type_visibility"> [hidden]</span>
   21047 
   21048 
   21049 
   21050               <span class="entry_type_deprecated">[deprecated] </span>
   21051 
   21052                 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
   21053 
   21054 
   21055             </td> <!-- entry_type -->
   21056 
   21057             <td class="entry_description">
   21058               <p>The best-fit color channel gains calculated
   21059 by the camera device's statistics units for the current output frame.<wbr/></p>
   21060             </td>
   21061 
   21062             <td class="entry_units">
   21063             </td>
   21064 
   21065             <td class="entry_range">
   21066               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   21067             </td>
   21068 
   21069             <td class="entry_tags">
   21070             </td>
   21071 
   21072           </tr>
   21073           <tr class="entries_header">
   21074             <th class="th_details" colspan="5">Details</th>
   21075           </tr>
   21076           <tr class="entry_cont">
   21077             <td class="entry_details" colspan="5">
   21078               <p>This may be different than the gains used for this frame,<wbr/>
   21079 since statistics processing on data from a new frame
   21080 typically completes after the transform has already been
   21081 applied to that frame.<wbr/></p>
   21082 <p>The 4 channel gains are defined in Bayer domain,<wbr/>
   21083 see <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> for details.<wbr/></p>
   21084 <p>This value should always be calculated by the auto-white balance (AWB) block,<wbr/>
   21085 regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
   21086             </td>
   21087           </tr>
   21088 
   21089 
   21090           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   21091            <!-- end of entry -->
   21092         
   21093                 
   21094           <tr class="entry" id="dynamic_android.statistics.predictedColorTransform">
   21095             <td class="entry_name
   21096                 entry_name_deprecated
   21097              " rowspan="3">
   21098               android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Transform
   21099             </td>
   21100             <td class="entry_type">
   21101                 <span class="entry_type_name">rational</span>
   21102                 <span class="entry_type_container">x</span>
   21103 
   21104                 <span class="entry_type_array">
   21105                   3 x 3
   21106                 </span>
   21107               <span class="entry_type_visibility"> [hidden]</span>
   21108 
   21109 
   21110 
   21111               <span class="entry_type_deprecated">[deprecated] </span>
   21112 
   21113                 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
   21114 
   21115 
   21116             </td> <!-- entry_type -->
   21117 
   21118             <td class="entry_description">
   21119               <p>The best-fit color transform matrix estimate
   21120 calculated by the camera device's statistics units for the current
   21121 output frame.<wbr/></p>
   21122             </td>
   21123 
   21124             <td class="entry_units">
   21125             </td>
   21126 
   21127             <td class="entry_range">
   21128               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   21129             </td>
   21130 
   21131             <td class="entry_tags">
   21132             </td>
   21133 
   21134           </tr>
   21135           <tr class="entries_header">
   21136             <th class="th_details" colspan="5">Details</th>
   21137           </tr>
   21138           <tr class="entry_cont">
   21139             <td class="entry_details" colspan="5">
   21140               <p>The camera device will provide the estimate from its
   21141 statistics unit on the white balance transforms to use
   21142 for the next frame.<wbr/> These are the values the camera device believes
   21143 are the best fit for the current output frame.<wbr/> This may
   21144 be different than the transform used for this frame,<wbr/> since
   21145 statistics processing on data from a new frame typically
   21146 completes after the transform has already been applied to
   21147 that frame.<wbr/></p>
   21148 <p>These estimates must be provided for all frames,<wbr/> even if
   21149 capture settings and color transforms are set by the application.<wbr/></p>
   21150 <p>This value should always be calculated by the auto-white balance (AWB) block,<wbr/>
   21151 regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
   21152             </td>
   21153           </tr>
   21154 
   21155 
   21156           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   21157            <!-- end of entry -->
   21158         
   21159                 
   21160           <tr class="entry" id="dynamic_android.statistics.sceneFlicker">
   21161             <td class="entry_name
   21162              " rowspan="3">
   21163               android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker
   21164             </td>
   21165             <td class="entry_type">
   21166                 <span class="entry_type_name entry_type_name_enum">byte</span>
   21167 
   21168               <span class="entry_type_visibility"> [public]</span>
   21169 
   21170 
   21171               <span class="entry_type_hwlevel">[full] </span>
   21172 
   21173 
   21174 
   21175                 <ul class="entry_type_enum">
   21176                   <li>
   21177                     <span class="entry_type_enum_name">NONE</span>
   21178                     <span class="entry_type_enum_notes"><p>The camera device does not detect any flickering illumination
   21179 in the current scene.<wbr/></p></span>
   21180                   </li>
   21181                   <li>
   21182                     <span class="entry_type_enum_name">50HZ</span>
   21183                     <span class="entry_type_enum_notes"><p>The camera device detects illumination flickering at 50Hz
   21184 in the current scene.<wbr/></p></span>
   21185                   </li>
   21186                   <li>
   21187                     <span class="entry_type_enum_name">60HZ</span>
   21188                     <span class="entry_type_enum_notes"><p>The camera device detects illumination flickering at 60Hz
   21189 in the current scene.<wbr/></p></span>
   21190                   </li>
   21191                 </ul>
   21192 
   21193             </td> <!-- entry_type -->
   21194 
   21195             <td class="entry_description">
   21196               <p>The camera device estimated scene illumination lighting
   21197 frequency.<wbr/></p>
   21198             </td>
   21199 
   21200             <td class="entry_units">
   21201             </td>
   21202 
   21203             <td class="entry_range">
   21204             </td>
   21205 
   21206             <td class="entry_tags">
   21207             </td>
   21208 
   21209           </tr>
   21210           <tr class="entries_header">
   21211             <th class="th_details" colspan="5">Details</th>
   21212           </tr>
   21213           <tr class="entry_cont">
   21214             <td class="entry_details" colspan="5">
   21215               <p>Many light sources,<wbr/> such as most fluorescent lights,<wbr/> flicker at a rate
   21216 that depends on the local utility power standards.<wbr/> This flicker must be
   21217 accounted for by auto-exposure routines to avoid artifacts in captured images.<wbr/>
   21218 The camera device uses this entry to tell the application what the scene
   21219 illuminant frequency is.<wbr/></p>
   21220 <p>When manual exposure control is enabled
   21221 (<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> ==
   21222 OFF</code>),<wbr/> the <a href="#controls_android.control.aeAntibandingMode">android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode</a> doesn't perform
   21223 antibanding,<wbr/> and the application can ensure it selects
   21224 exposure times that do not cause banding issues by looking
   21225 into this metadata field.<wbr/> See
   21226 <a href="#controls_android.control.aeAntibandingMode">android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode</a> for more details.<wbr/></p>
   21227 <p>Reports NONE if there doesn't appear to be flickering illumination.<wbr/></p>
   21228             </td>
   21229           </tr>
   21230 
   21231 
   21232           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   21233            <!-- end of entry -->
   21234         
   21235                 
   21236           <tr class="entry" id="dynamic_android.statistics.hotPixelMapMode">
   21237             <td class="entry_name
   21238              " rowspan="3">
   21239               android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map<wbr/>Mode
   21240             </td>
   21241             <td class="entry_type">
   21242                 <span class="entry_type_name entry_type_name_enum">byte</span>
   21243 
   21244               <span class="entry_type_visibility"> [public as boolean]</span>
   21245 
   21246 
   21247 
   21248 
   21249 
   21250                 <ul class="entry_type_enum">
   21251                   <li>
   21252                     <span class="entry_type_enum_name">OFF</span>
   21253                     <span class="entry_type_enum_notes"><p>Hot pixel map production is disabled.<wbr/></p></span>
   21254                   </li>
   21255                   <li>
   21256                     <span class="entry_type_enum_name">ON</span>
   21257                     <span class="entry_type_enum_notes"><p>Hot pixel map production is enabled.<wbr/></p></span>
   21258                   </li>
   21259                 </ul>
   21260 
   21261             </td> <!-- entry_type -->
   21262 
   21263             <td class="entry_description">
   21264               <p>Operating mode for hot pixel map generation.<wbr/></p>
   21265             </td>
   21266 
   21267             <td class="entry_units">
   21268             </td>
   21269 
   21270             <td class="entry_range">
   21271               <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>
   21272             </td>
   21273 
   21274             <td class="entry_tags">
   21275               <ul class="entry_tags">
   21276                   <li><a href="#tag_V1">V1</a></li>
   21277                   <li><a href="#tag_RAW">RAW</a></li>
   21278               </ul>
   21279             </td>
   21280 
   21281           </tr>
   21282           <tr class="entries_header">
   21283             <th class="th_details" colspan="5">Details</th>
   21284           </tr>
   21285           <tr class="entry_cont">
   21286             <td class="entry_details" colspan="5">
   21287               <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/>
   21288 If set to <code>false</code>,<wbr/> no hot pixel map will be returned.<wbr/></p>
   21289             </td>
   21290           </tr>
   21291 
   21292 
   21293           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   21294            <!-- end of entry -->
   21295         
   21296                 
   21297           <tr class="entry" id="dynamic_android.statistics.hotPixelMap">
   21298             <td class="entry_name
   21299              " rowspan="5">
   21300               android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map
   21301             </td>
   21302             <td class="entry_type">
   21303                 <span class="entry_type_name">int32</span>
   21304                 <span class="entry_type_container">x</span>
   21305 
   21306                 <span class="entry_type_array">
   21307                   2 x n
   21308                 </span>
   21309               <span class="entry_type_visibility"> [public as point]</span>
   21310 
   21311 
   21312 
   21313 
   21314                 <div class="entry_type_notes">list of coordinates based on android.<wbr/>sensor.<wbr/>pixel<wbr/>Array<wbr/>Size</div>
   21315 
   21316 
   21317             </td> <!-- entry_type -->
   21318 
   21319             <td class="entry_description">
   21320               <p>List of <code>(x,<wbr/> y)</code> coordinates of hot/<wbr/>defective pixels on the sensor.<wbr/></p>
   21321             </td>
   21322 
   21323             <td class="entry_units">
   21324             </td>
   21325 
   21326             <td class="entry_range">
   21327               <p>n &lt;= number of pixels on the sensor.<wbr/>
   21328 The <code>(x,<wbr/> y)</code> coordinates must be bounded by
   21329 <a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a>.<wbr/></p>
   21330             </td>
   21331 
   21332             <td class="entry_tags">
   21333               <ul class="entry_tags">
   21334                   <li><a href="#tag_V1">V1</a></li>
   21335                   <li><a href="#tag_RAW">RAW</a></li>
   21336               </ul>
   21337             </td>
   21338 
   21339           </tr>
   21340           <tr class="entries_header">
   21341             <th class="th_details" colspan="5">Details</th>
   21342           </tr>
   21343           <tr class="entry_cont">
   21344             <td class="entry_details" colspan="5">
   21345               <p>A coordinate <code>(x,<wbr/> y)</code> must lie between <code>(0,<wbr/> 0)</code>,<wbr/> and
   21346 <code>(width - 1,<wbr/> height - 1)</code> (inclusive),<wbr/> which are the top-left and
   21347 bottom-right of the pixel array,<wbr/> respectively.<wbr/> The width and
   21348 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/>
   21349 This may include hot pixels that lie outside of the active array
   21350 bounds given by <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/></p>
   21351             </td>
   21352           </tr>
   21353 
   21354           <tr class="entries_header">
   21355             <th class="th_details" colspan="5">HAL Implementation Details</th>
   21356           </tr>
   21357           <tr class="entry_cont">
   21358             <td class="entry_details" colspan="5">
   21359               <p>A hotpixel map contains the coordinates of pixels on the camera
   21360 sensor that do report valid values (usually due to defects in
   21361 the camera sensor).<wbr/> This includes pixels that are stuck at certain
   21362 values,<wbr/> or have a response that does not accuractly encode the
   21363 incoming light from the scene.<wbr/></p>
   21364 <p>To avoid performance issues,<wbr/> there should be significantly fewer hot
   21365 pixels than actual pixels on the camera sensor.<wbr/></p>
   21366             </td>
   21367           </tr>
   21368 
   21369           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   21370            <!-- end of entry -->
   21371         
   21372                 
   21373           <tr class="entry" id="dynamic_android.statistics.lensShadingMapMode">
   21374             <td class="entry_name
   21375              " rowspan="3">
   21376               android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode
   21377             </td>
   21378             <td class="entry_type">
   21379                 <span class="entry_type_name entry_type_name_enum">byte</span>
   21380 
   21381               <span class="entry_type_visibility"> [public]</span>
   21382 
   21383 
   21384               <span class="entry_type_hwlevel">[full] </span>
   21385 
   21386 
   21387 
   21388                 <ul class="entry_type_enum">
   21389                   <li>
   21390                     <span class="entry_type_enum_name">OFF</span>
   21391                     <span class="entry_type_enum_notes"><p>Do not include a lens shading map in the capture result.<wbr/></p></span>
   21392                   </li>
   21393                   <li>
   21394                     <span class="entry_type_enum_name">ON</span>
   21395                     <span class="entry_type_enum_notes"><p>Include a lens shading map in the capture result.<wbr/></p></span>
   21396                   </li>
   21397                 </ul>
   21398 
   21399             </td> <!-- entry_type -->
   21400 
   21401             <td class="entry_description">
   21402               <p>Whether the camera device will output the lens
   21403 shading map in output result metadata.<wbr/></p>
   21404             </td>
   21405 
   21406             <td class="entry_units">
   21407             </td>
   21408 
   21409             <td class="entry_range">
   21410             </td>
   21411 
   21412             <td class="entry_tags">
   21413               <ul class="entry_tags">
   21414                   <li><a href="#tag_RAW">RAW</a></li>
   21415               </ul>
   21416             </td>
   21417 
   21418           </tr>
   21419           <tr class="entries_header">
   21420             <th class="th_details" colspan="5">Details</th>
   21421           </tr>
   21422           <tr class="entry_cont">
   21423             <td class="entry_details" colspan="5">
   21424               <p>When set to ON,<wbr/>
   21425 <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> will be provided in
   21426 the output result metadata.<wbr/></p>
   21427 <p>ON is always supported on devices with the RAW capability.<wbr/></p>
   21428             </td>
   21429           </tr>
   21430 
   21431 
   21432           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   21433            <!-- end of entry -->
   21434         
   21435         
   21436 
   21437       <!-- end of kind -->
   21438       </tbody>
   21439 
   21440   <!-- end of section -->
   21441   <tr><td colspan="6" id="section_tonemap" class="section">tonemap</td></tr>
   21442 
   21443 
   21444       <tr><td colspan="6" class="kind">controls</td></tr>
   21445 
   21446       <thead class="entries_header">
   21447         <tr>
   21448           <th class="th_name">Property Name</th>
   21449           <th class="th_type">Type</th>
   21450           <th class="th_description">Description</th>
   21451           <th class="th_units">Units</th>
   21452           <th class="th_range">Range</th>
   21453           <th class="th_tags">Tags</th>
   21454         </tr>
   21455       </thead>
   21456 
   21457       <tbody>
   21458 
   21459         
   21460 
   21461         
   21462 
   21463         
   21464 
   21465         
   21466 
   21467                 
   21468           <tr class="entry" id="controls_android.tonemap.curveBlue">
   21469             <td class="entry_name
   21470              " rowspan="3">
   21471               android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
   21472             </td>
   21473             <td class="entry_type">
   21474                 <span class="entry_type_name">float</span>
   21475                 <span class="entry_type_container">x</span>
   21476 
   21477                 <span class="entry_type_array">
   21478                   n x 2
   21479                 </span>
   21480               <span class="entry_type_visibility"> [hidden]</span>
   21481 
   21482 
   21483               <span class="entry_type_hwlevel">[full] </span>
   21484 
   21485 
   21486                 <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>
   21487 
   21488 
   21489             </td> <!-- entry_type -->
   21490 
   21491             <td class="entry_description">
   21492               <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
   21493 channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
   21494 CONTRAST_<wbr/>CURVE.<wbr/></p>
   21495             </td>
   21496 
   21497             <td class="entry_units">
   21498             </td>
   21499 
   21500             <td class="entry_range">
   21501             </td>
   21502 
   21503             <td class="entry_tags">
   21504             </td>
   21505 
   21506           </tr>
   21507           <tr class="entries_header">
   21508             <th class="th_details" colspan="5">Details</th>
   21509           </tr>
   21510           <tr class="entry_cont">
   21511             <td class="entry_details" colspan="5">
   21512               <p>See <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> for more details.<wbr/></p>
   21513             </td>
   21514           </tr>
   21515 
   21516 
   21517           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   21518            <!-- end of entry -->
   21519         
   21520                 
   21521           <tr class="entry" id="controls_android.tonemap.curveGreen">
   21522             <td class="entry_name
   21523              " rowspan="3">
   21524               android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
   21525             </td>
   21526             <td class="entry_type">
   21527                 <span class="entry_type_name">float</span>
   21528                 <span class="entry_type_container">x</span>
   21529 
   21530                 <span class="entry_type_array">
   21531                   n x 2
   21532                 </span>
   21533               <span class="entry_type_visibility"> [hidden]</span>
   21534 
   21535 
   21536               <span class="entry_type_hwlevel">[full] </span>
   21537 
   21538 
   21539                 <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>
   21540 
   21541 
   21542             </td> <!-- entry_type -->
   21543 
   21544             <td class="entry_description">
   21545               <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
   21546 channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
   21547 CONTRAST_<wbr/>CURVE.<wbr/></p>
   21548             </td>
   21549 
   21550             <td class="entry_units">
   21551             </td>
   21552 
   21553             <td class="entry_range">
   21554             </td>
   21555 
   21556             <td class="entry_tags">
   21557             </td>
   21558 
   21559           </tr>
   21560           <tr class="entries_header">
   21561             <th class="th_details" colspan="5">Details</th>
   21562           </tr>
   21563           <tr class="entry_cont">
   21564             <td class="entry_details" colspan="5">
   21565               <p>See <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> for more details.<wbr/></p>
   21566             </td>
   21567           </tr>
   21568 
   21569 
   21570           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   21571            <!-- end of entry -->
   21572         
   21573                 
   21574           <tr class="entry" id="controls_android.tonemap.curveRed">
   21575             <td class="entry_name
   21576              " rowspan="5">
   21577               android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
   21578             </td>
   21579             <td class="entry_type">
   21580                 <span class="entry_type_name">float</span>
   21581                 <span class="entry_type_container">x</span>
   21582 
   21583                 <span class="entry_type_array">
   21584                   n x 2
   21585                 </span>
   21586               <span class="entry_type_visibility"> [hidden]</span>
   21587 
   21588 
   21589               <span class="entry_type_hwlevel">[full] </span>
   21590 
   21591 
   21592                 <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>
   21593 
   21594 
   21595             </td> <!-- entry_type -->
   21596 
   21597             <td class="entry_description">
   21598               <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
   21599 channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
   21600 CONTRAST_<wbr/>CURVE.<wbr/></p>
   21601             </td>
   21602 
   21603             <td class="entry_units">
   21604             </td>
   21605 
   21606             <td class="entry_range">
   21607               <p>0-1 on both input and output coordinates,<wbr/> normalized
   21608 as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
   21609             </td>
   21610 
   21611             <td class="entry_tags">
   21612             </td>
   21613 
   21614           </tr>
   21615           <tr class="entries_header">
   21616             <th class="th_details" colspan="5">Details</th>
   21617           </tr>
   21618           <tr class="entry_cont">
   21619             <td class="entry_details" colspan="5">
   21620               <p>Each channel's curve is defined by an array of control points:</p>
   21621 <pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
   21622   [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
   21623 2 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
   21624 <p>These are sorted in order of increasing <code>Pin</code>; it is
   21625 required that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
   21626 define a complete mapping.<wbr/> For input values between control points,<wbr/>
   21627 the camera device must linearly interpolate between the control
   21628 points.<wbr/></p>
   21629 <p>Each curve can have an independent number of points,<wbr/> and the number
   21630 of points can be less than max (that is,<wbr/> the request doesn't have to
   21631 always provide a curve with number of points equivalent to
   21632 <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
   21633 <p>A few examples,<wbr/> and their corresponding graphical mappings; these
   21634 only specify the red channel and the precision is limited to 4
   21635 digits,<wbr/> for conciseness.<wbr/></p>
   21636 <p>Linear mapping:</p>
   21637 <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 ]
   21638 </code></pre>
   21639 <p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
   21640 <p>Invert mapping:</p>
   21641 <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 ]
   21642 </code></pre>
   21643 <p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
   21644 <p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
   21645 <pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
   21646   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/>
   21647   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/>
   21648   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/>
   21649   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 ]
   21650 </code></pre>
   21651 <p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
   21652 <p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
   21653 <pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
   21654   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/>
   21655   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/>
   21656   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/>
   21657   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 ]
   21658 </code></pre>
   21659 <p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
   21660             </td>
   21661           </tr>
   21662 
   21663           <tr class="entries_header">
   21664             <th class="th_details" colspan="5">HAL Implementation Details</th>
   21665           </tr>
   21666           <tr class="entry_cont">
   21667             <td class="entry_details" colspan="5">
   21668               <p>For good quality of mapping,<wbr/> at least 128 control points are
   21669 preferred.<wbr/></p>
   21670 <p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
   21671 control points used as are available.<wbr/></p>
   21672             </td>
   21673           </tr>
   21674 
   21675           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   21676            <!-- end of entry -->
   21677         
   21678                 
   21679           <tr class="entry" id="controls_android.tonemap.curve">
   21680             <td class="entry_name
   21681              " rowspan="5">
   21682               android.<wbr/>tonemap.<wbr/>curve
   21683             </td>
   21684             <td class="entry_type">
   21685                 <span class="entry_type_name">float</span>
   21686 
   21687               <span class="entry_type_visibility"> [public as tonemapCurve]</span>
   21688 
   21689               <span class="entry_type_synthetic">[synthetic] </span>
   21690 
   21691               <span class="entry_type_hwlevel">[full] </span>
   21692 
   21693 
   21694 
   21695 
   21696             </td> <!-- entry_type -->
   21697 
   21698             <td class="entry_description">
   21699               <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a>
   21700 is CONTRAST_<wbr/>CURVE.<wbr/></p>
   21701             </td>
   21702 
   21703             <td class="entry_units">
   21704             </td>
   21705 
   21706             <td class="entry_range">
   21707             </td>
   21708 
   21709             <td class="entry_tags">
   21710             </td>
   21711 
   21712           </tr>
   21713           <tr class="entries_header">
   21714             <th class="th_details" colspan="5">Details</th>
   21715           </tr>
   21716           <tr class="entry_cont">
   21717             <td class="entry_details" colspan="5">
   21718               <p>The tonemapCurve consist of three curves for each of red,<wbr/> green,<wbr/> and blue
   21719 channels respectively.<wbr/> The following example uses the red channel as an
   21720 example.<wbr/> The same logic applies to green and blue channel.<wbr/>
   21721 Each channel's curve is defined by an array of control points:</p>
   21722 <pre><code>curveRed =
   21723   [ 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) ]
   21724 2 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
   21725 <p>These are sorted in order of increasing <code>Pin</code>; it is always
   21726 guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
   21727 define a complete mapping.<wbr/> For input values between control points,<wbr/>
   21728 the camera device must linearly interpolate between the control
   21729 points.<wbr/></p>
   21730 <p>Each curve can have an independent number of points,<wbr/> and the number
   21731 of points can be less than max (that is,<wbr/> the request doesn't have to
   21732 always provide a curve with number of points equivalent to
   21733 <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
   21734 <p>A few examples,<wbr/> and their corresponding graphical mappings; these
   21735 only specify the red channel and the precision is limited to 4
   21736 digits,<wbr/> for conciseness.<wbr/></p>
   21737 <p>Linear mapping:</p>
   21738 <pre><code>curveRed = [ (0,<wbr/> 0),<wbr/> (1.<wbr/>0,<wbr/> 1.<wbr/>0) ]
   21739 </code></pre>
   21740 <p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
   21741 <p>Invert mapping:</p>
   21742 <pre><code>curveRed = [ (0,<wbr/> 1.<wbr/>0),<wbr/> (1.<wbr/>0,<wbr/> 0) ]
   21743 </code></pre>
   21744 <p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
   21745 <p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
   21746 <pre><code>curveRed = [
   21747   (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/>
   21748   (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/>
   21749   (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/>
   21750   (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) ]
   21751 </code></pre>
   21752 <p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
   21753 <p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
   21754 <pre><code>curveRed = [
   21755   (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/>
   21756   (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/>
   21757   (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/>
   21758   (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) ]
   21759 </code></pre>
   21760 <p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
   21761             </td>
   21762           </tr>
   21763 
   21764           <tr class="entries_header">
   21765             <th class="th_details" colspan="5">HAL Implementation Details</th>
   21766           </tr>
   21767           <tr class="entry_cont">
   21768             <td class="entry_details" colspan="5">
   21769               <p>This entry is created by the framework from the curveRed,<wbr/> curveGreen and
   21770 curveBlue entries.<wbr/></p>
   21771             </td>
   21772           </tr>
   21773 
   21774           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   21775            <!-- end of entry -->
   21776         
   21777                 
   21778           <tr class="entry" id="controls_android.tonemap.mode">
   21779             <td class="entry_name
   21780              " rowspan="3">
   21781               android.<wbr/>tonemap.<wbr/>mode
   21782             </td>
   21783             <td class="entry_type">
   21784                 <span class="entry_type_name entry_type_name_enum">byte</span>
   21785 
   21786               <span class="entry_type_visibility"> [public]</span>
   21787 
   21788 
   21789               <span class="entry_type_hwlevel">[full] </span>
   21790 
   21791 
   21792 
   21793                 <ul class="entry_type_enum">
   21794                   <li>
   21795                     <span class="entry_type_enum_name">CONTRAST_CURVE</span>
   21796                     <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
   21797 the <a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>* entries.<wbr/></p>
   21798 <p>All color enhancement and tonemapping must be disabled,<wbr/> except
   21799 for applying the tonemapping curve specified by
   21800 <a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>.<wbr/></p>
   21801 <p>Must not slow down frame rate relative to raw
   21802 sensor output.<wbr/></p></span>
   21803                   </li>
   21804                   <li>
   21805                     <span class="entry_type_enum_name">FAST</span>
   21806                     <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied,<wbr/> without
   21807 reducing frame rate compared to raw sensor output.<wbr/></p></span>
   21808                   </li>
   21809                   <li>
   21810                     <span class="entry_type_enum_name">HIGH_QUALITY</span>
   21811                     <span class="entry_type_enum_notes"><p>High-quality gamma mapping and color enhancement will be applied,<wbr/> at
   21812 the cost of reduced frame rate compared to raw sensor output.<wbr/></p></span>
   21813                   </li>
   21814                 </ul>
   21815 
   21816             </td> <!-- entry_type -->
   21817 
   21818             <td class="entry_description">
   21819               <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
   21820             </td>
   21821 
   21822             <td class="entry_units">
   21823             </td>
   21824 
   21825             <td class="entry_range">
   21826               <p><a href="#static_android.tonemap.availableToneMapModes">android.<wbr/>tonemap.<wbr/>available<wbr/>Tone<wbr/>Map<wbr/>Modes</a></p>
   21827             </td>
   21828 
   21829             <td class="entry_tags">
   21830             </td>
   21831 
   21832           </tr>
   21833           <tr class="entries_header">
   21834             <th class="th_details" colspan="5">Details</th>
   21835           </tr>
   21836           <tr class="entry_cont">
   21837             <td class="entry_details" colspan="5">
   21838               <p>When switching to an application-defined contrast curve by setting
   21839 <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
   21840 per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
   21841 mapping from input high-bit-depth pixel value to the output
   21842 low-bit-depth value.<wbr/>  Since the actual pixel ranges of both input
   21843 and output may change depending on the camera pipeline,<wbr/> the values
   21844 are specified by normalized floating-point numbers.<wbr/></p>
   21845 <p>More-complex color mapping operations such as 3D color look-up
   21846 tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
   21847 transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
   21848 CONTRAST_<wbr/>CURVE.<wbr/></p>
   21849 <p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
   21850 emit its own tonemap curve in <a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>.<wbr/>
   21851 These values are always available,<wbr/> and as close as possible to the
   21852 actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
   21853 <p>If a request is sent with CONTRAST_<wbr/>CURVE with the camera device's
   21854 provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
   21855 roughly the same.<wbr/></p>
   21856             </td>
   21857           </tr>
   21858 
   21859 
   21860           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   21861            <!-- end of entry -->
   21862         
   21863         
   21864 
   21865       <!-- end of kind -->
   21866       </tbody>
   21867       <tr><td colspan="6" class="kind">static</td></tr>
   21868 
   21869       <thead class="entries_header">
   21870         <tr>
   21871           <th class="th_name">Property Name</th>
   21872           <th class="th_type">Type</th>
   21873           <th class="th_description">Description</th>
   21874           <th class="th_units">Units</th>
   21875           <th class="th_range">Range</th>
   21876           <th class="th_tags">Tags</th>
   21877         </tr>
   21878       </thead>
   21879 
   21880       <tbody>
   21881 
   21882         
   21883 
   21884         
   21885 
   21886         
   21887 
   21888         
   21889 
   21890                 
   21891           <tr class="entry" id="static_android.tonemap.maxCurvePoints">
   21892             <td class="entry_name
   21893              " rowspan="5">
   21894               android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points
   21895             </td>
   21896             <td class="entry_type">
   21897                 <span class="entry_type_name">int32</span>
   21898 
   21899               <span class="entry_type_visibility"> [public]</span>
   21900 
   21901 
   21902               <span class="entry_type_hwlevel">[full] </span>
   21903 
   21904 
   21905 
   21906 
   21907             </td> <!-- entry_type -->
   21908 
   21909             <td class="entry_description">
   21910               <p>Maximum number of supported points in the
   21911 tonemap curve that can be used for <a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>.<wbr/></p>
   21912             </td>
   21913 
   21914             <td class="entry_units">
   21915             </td>
   21916 
   21917             <td class="entry_range">
   21918             </td>
   21919 
   21920             <td class="entry_tags">
   21921             </td>
   21922 
   21923           </tr>
   21924           <tr class="entries_header">
   21925             <th class="th_details" colspan="5">Details</th>
   21926           </tr>
   21927           <tr class="entry_cont">
   21928             <td class="entry_details" colspan="5">
   21929               <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
   21930 less than this maximum,<wbr/> the camera device will resample the curve to its internal
   21931 representation,<wbr/> using linear interpolation.<wbr/></p>
   21932 <p>The output curves in the result metadata may have a different number
   21933 of points than the input curves,<wbr/> and will represent the actual
   21934 hardware curves used as closely as possible when linearly interpolated.<wbr/></p>
   21935             </td>
   21936           </tr>
   21937 
   21938           <tr class="entries_header">
   21939             <th class="th_details" colspan="5">HAL Implementation Details</th>
   21940           </tr>
   21941           <tr class="entry_cont">
   21942             <td class="entry_details" colspan="5">
   21943               <p>This value must be at least 64.<wbr/> This should be at least 128.<wbr/></p>
   21944             </td>
   21945           </tr>
   21946 
   21947           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   21948            <!-- end of entry -->
   21949         
   21950                 
   21951           <tr class="entry" id="static_android.tonemap.availableToneMapModes">
   21952             <td class="entry_name
   21953              " rowspan="3">
   21954               android.<wbr/>tonemap.<wbr/>available<wbr/>Tone<wbr/>Map<wbr/>Modes
   21955             </td>
   21956             <td class="entry_type">
   21957                 <span class="entry_type_name">byte</span>
   21958                 <span class="entry_type_container">x</span>
   21959 
   21960                 <span class="entry_type_array">
   21961                   n
   21962                 </span>
   21963               <span class="entry_type_visibility"> [public as enumList]</span>
   21964 
   21965 
   21966               <span class="entry_type_hwlevel">[full] </span>
   21967 
   21968 
   21969                 <div class="entry_type_notes">list of enums</div>
   21970 
   21971 
   21972             </td> <!-- entry_type -->
   21973 
   21974             <td class="entry_description">
   21975               <p>List of tonemapping modes for <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> that are supported by this camera
   21976 device.<wbr/></p>
   21977             </td>
   21978 
   21979             <td class="entry_units">
   21980             </td>
   21981 
   21982             <td class="entry_range">
   21983               <p>Any value listed in <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a></p>
   21984             </td>
   21985 
   21986             <td class="entry_tags">
   21987             </td>
   21988 
   21989           </tr>
   21990           <tr class="entries_header">
   21991             <th class="th_details" colspan="5">Details</th>
   21992           </tr>
   21993           <tr class="entry_cont">
   21994             <td class="entry_details" colspan="5">
   21995               <p>Camera devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability will always list
   21996 CONTRAST_<wbr/>CURVE and FAST.<wbr/> This includes all FULL level devices.<wbr/></p>
   21997             </td>
   21998           </tr>
   21999 
   22000 
   22001           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   22002            <!-- end of entry -->
   22003         
   22004         
   22005 
   22006       <!-- end of kind -->
   22007       </tbody>
   22008       <tr><td colspan="6" class="kind">dynamic</td></tr>
   22009 
   22010       <thead class="entries_header">
   22011         <tr>
   22012           <th class="th_name">Property Name</th>
   22013           <th class="th_type">Type</th>
   22014           <th class="th_description">Description</th>
   22015           <th class="th_units">Units</th>
   22016           <th class="th_range">Range</th>
   22017           <th class="th_tags">Tags</th>
   22018         </tr>
   22019       </thead>
   22020 
   22021       <tbody>
   22022 
   22023         
   22024 
   22025         
   22026 
   22027         
   22028 
   22029         
   22030 
   22031                 
   22032           <tr class="entry" id="dynamic_android.tonemap.curveBlue">
   22033             <td class="entry_name
   22034              " rowspan="3">
   22035               android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
   22036             </td>
   22037             <td class="entry_type">
   22038                 <span class="entry_type_name">float</span>
   22039                 <span class="entry_type_container">x</span>
   22040 
   22041                 <span class="entry_type_array">
   22042                   n x 2
   22043                 </span>
   22044               <span class="entry_type_visibility"> [hidden]</span>
   22045 
   22046 
   22047               <span class="entry_type_hwlevel">[full] </span>
   22048 
   22049 
   22050                 <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>
   22051 
   22052 
   22053             </td> <!-- entry_type -->
   22054 
   22055             <td class="entry_description">
   22056               <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
   22057 channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
   22058 CONTRAST_<wbr/>CURVE.<wbr/></p>
   22059             </td>
   22060 
   22061             <td class="entry_units">
   22062             </td>
   22063 
   22064             <td class="entry_range">
   22065             </td>
   22066 
   22067             <td class="entry_tags">
   22068             </td>
   22069 
   22070           </tr>
   22071           <tr class="entries_header">
   22072             <th class="th_details" colspan="5">Details</th>
   22073           </tr>
   22074           <tr class="entry_cont">
   22075             <td class="entry_details" colspan="5">
   22076               <p>See <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> for more details.<wbr/></p>
   22077             </td>
   22078           </tr>
   22079 
   22080 
   22081           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   22082            <!-- end of entry -->
   22083         
   22084                 
   22085           <tr class="entry" id="dynamic_android.tonemap.curveGreen">
   22086             <td class="entry_name
   22087              " rowspan="3">
   22088               android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
   22089             </td>
   22090             <td class="entry_type">
   22091                 <span class="entry_type_name">float</span>
   22092                 <span class="entry_type_container">x</span>
   22093 
   22094                 <span class="entry_type_array">
   22095                   n x 2
   22096                 </span>
   22097               <span class="entry_type_visibility"> [hidden]</span>
   22098 
   22099 
   22100               <span class="entry_type_hwlevel">[full] </span>
   22101 
   22102 
   22103                 <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>
   22104 
   22105 
   22106             </td> <!-- entry_type -->
   22107 
   22108             <td class="entry_description">
   22109               <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
   22110 channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
   22111 CONTRAST_<wbr/>CURVE.<wbr/></p>
   22112             </td>
   22113 
   22114             <td class="entry_units">
   22115             </td>
   22116 
   22117             <td class="entry_range">
   22118             </td>
   22119 
   22120             <td class="entry_tags">
   22121             </td>
   22122 
   22123           </tr>
   22124           <tr class="entries_header">
   22125             <th class="th_details" colspan="5">Details</th>
   22126           </tr>
   22127           <tr class="entry_cont">
   22128             <td class="entry_details" colspan="5">
   22129               <p>See <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> for more details.<wbr/></p>
   22130             </td>
   22131           </tr>
   22132 
   22133 
   22134           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   22135            <!-- end of entry -->
   22136         
   22137                 
   22138           <tr class="entry" id="dynamic_android.tonemap.curveRed">
   22139             <td class="entry_name
   22140              " rowspan="5">
   22141               android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
   22142             </td>
   22143             <td class="entry_type">
   22144                 <span class="entry_type_name">float</span>
   22145                 <span class="entry_type_container">x</span>
   22146 
   22147                 <span class="entry_type_array">
   22148                   n x 2
   22149                 </span>
   22150               <span class="entry_type_visibility"> [hidden]</span>
   22151 
   22152 
   22153               <span class="entry_type_hwlevel">[full] </span>
   22154 
   22155 
   22156                 <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>
   22157 
   22158 
   22159             </td> <!-- entry_type -->
   22160 
   22161             <td class="entry_description">
   22162               <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
   22163 channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
   22164 CONTRAST_<wbr/>CURVE.<wbr/></p>
   22165             </td>
   22166 
   22167             <td class="entry_units">
   22168             </td>
   22169 
   22170             <td class="entry_range">
   22171               <p>0-1 on both input and output coordinates,<wbr/> normalized
   22172 as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
   22173             </td>
   22174 
   22175             <td class="entry_tags">
   22176             </td>
   22177 
   22178           </tr>
   22179           <tr class="entries_header">
   22180             <th class="th_details" colspan="5">Details</th>
   22181           </tr>
   22182           <tr class="entry_cont">
   22183             <td class="entry_details" colspan="5">
   22184               <p>Each channel's curve is defined by an array of control points:</p>
   22185 <pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
   22186   [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
   22187 2 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
   22188 <p>These are sorted in order of increasing <code>Pin</code>; it is
   22189 required that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
   22190 define a complete mapping.<wbr/> For input values between control points,<wbr/>
   22191 the camera device must linearly interpolate between the control
   22192 points.<wbr/></p>
   22193 <p>Each curve can have an independent number of points,<wbr/> and the number
   22194 of points can be less than max (that is,<wbr/> the request doesn't have to
   22195 always provide a curve with number of points equivalent to
   22196 <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
   22197 <p>A few examples,<wbr/> and their corresponding graphical mappings; these
   22198 only specify the red channel and the precision is limited to 4
   22199 digits,<wbr/> for conciseness.<wbr/></p>
   22200 <p>Linear mapping:</p>
   22201 <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 ]
   22202 </code></pre>
   22203 <p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
   22204 <p>Invert mapping:</p>
   22205 <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 ]
   22206 </code></pre>
   22207 <p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
   22208 <p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
   22209 <pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
   22210   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/>
   22211   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/>
   22212   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/>
   22213   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 ]
   22214 </code></pre>
   22215 <p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
   22216 <p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
   22217 <pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
   22218   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/>
   22219   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/>
   22220   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/>
   22221   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 ]
   22222 </code></pre>
   22223 <p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
   22224             </td>
   22225           </tr>
   22226 
   22227           <tr class="entries_header">
   22228             <th class="th_details" colspan="5">HAL Implementation Details</th>
   22229           </tr>
   22230           <tr class="entry_cont">
   22231             <td class="entry_details" colspan="5">
   22232               <p>For good quality of mapping,<wbr/> at least 128 control points are
   22233 preferred.<wbr/></p>
   22234 <p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
   22235 control points used as are available.<wbr/></p>
   22236             </td>
   22237           </tr>
   22238 
   22239           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   22240            <!-- end of entry -->
   22241         
   22242                 
   22243           <tr class="entry" id="dynamic_android.tonemap.curve">
   22244             <td class="entry_name
   22245              " rowspan="5">
   22246               android.<wbr/>tonemap.<wbr/>curve
   22247             </td>
   22248             <td class="entry_type">
   22249                 <span class="entry_type_name">float</span>
   22250 
   22251               <span class="entry_type_visibility"> [public as tonemapCurve]</span>
   22252 
   22253               <span class="entry_type_synthetic">[synthetic] </span>
   22254 
   22255               <span class="entry_type_hwlevel">[full] </span>
   22256 
   22257 
   22258 
   22259 
   22260             </td> <!-- entry_type -->
   22261 
   22262             <td class="entry_description">
   22263               <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a>
   22264 is CONTRAST_<wbr/>CURVE.<wbr/></p>
   22265             </td>
   22266 
   22267             <td class="entry_units">
   22268             </td>
   22269 
   22270             <td class="entry_range">
   22271             </td>
   22272 
   22273             <td class="entry_tags">
   22274             </td>
   22275 
   22276           </tr>
   22277           <tr class="entries_header">
   22278             <th class="th_details" colspan="5">Details</th>
   22279           </tr>
   22280           <tr class="entry_cont">
   22281             <td class="entry_details" colspan="5">
   22282               <p>The tonemapCurve consist of three curves for each of red,<wbr/> green,<wbr/> and blue
   22283 channels respectively.<wbr/> The following example uses the red channel as an
   22284 example.<wbr/> The same logic applies to green and blue channel.<wbr/>
   22285 Each channel's curve is defined by an array of control points:</p>
   22286 <pre><code>curveRed =
   22287   [ 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) ]
   22288 2 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
   22289 <p>These are sorted in order of increasing <code>Pin</code>; it is always
   22290 guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
   22291 define a complete mapping.<wbr/> For input values between control points,<wbr/>
   22292 the camera device must linearly interpolate between the control
   22293 points.<wbr/></p>
   22294 <p>Each curve can have an independent number of points,<wbr/> and the number
   22295 of points can be less than max (that is,<wbr/> the request doesn't have to
   22296 always provide a curve with number of points equivalent to
   22297 <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
   22298 <p>A few examples,<wbr/> and their corresponding graphical mappings; these
   22299 only specify the red channel and the precision is limited to 4
   22300 digits,<wbr/> for conciseness.<wbr/></p>
   22301 <p>Linear mapping:</p>
   22302 <pre><code>curveRed = [ (0,<wbr/> 0),<wbr/> (1.<wbr/>0,<wbr/> 1.<wbr/>0) ]
   22303 </code></pre>
   22304 <p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
   22305 <p>Invert mapping:</p>
   22306 <pre><code>curveRed = [ (0,<wbr/> 1.<wbr/>0),<wbr/> (1.<wbr/>0,<wbr/> 0) ]
   22307 </code></pre>
   22308 <p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
   22309 <p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
   22310 <pre><code>curveRed = [
   22311   (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/>
   22312   (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/>
   22313   (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/>
   22314   (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) ]
   22315 </code></pre>
   22316 <p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
   22317 <p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
   22318 <pre><code>curveRed = [
   22319   (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/>
   22320   (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/>
   22321   (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/>
   22322   (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) ]
   22323 </code></pre>
   22324 <p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
   22325             </td>
   22326           </tr>
   22327 
   22328           <tr class="entries_header">
   22329             <th class="th_details" colspan="5">HAL Implementation Details</th>
   22330           </tr>
   22331           <tr class="entry_cont">
   22332             <td class="entry_details" colspan="5">
   22333               <p>This entry is created by the framework from the curveRed,<wbr/> curveGreen and
   22334 curveBlue entries.<wbr/></p>
   22335             </td>
   22336           </tr>
   22337 
   22338           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   22339            <!-- end of entry -->
   22340         
   22341                 
   22342           <tr class="entry" id="dynamic_android.tonemap.mode">
   22343             <td class="entry_name
   22344              " rowspan="3">
   22345               android.<wbr/>tonemap.<wbr/>mode
   22346             </td>
   22347             <td class="entry_type">
   22348                 <span class="entry_type_name entry_type_name_enum">byte</span>
   22349 
   22350               <span class="entry_type_visibility"> [public]</span>
   22351 
   22352 
   22353               <span class="entry_type_hwlevel">[full] </span>
   22354 
   22355 
   22356 
   22357                 <ul class="entry_type_enum">
   22358                   <li>
   22359                     <span class="entry_type_enum_name">CONTRAST_CURVE</span>
   22360                     <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
   22361 the <a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>* entries.<wbr/></p>
   22362 <p>All color enhancement and tonemapping must be disabled,<wbr/> except
   22363 for applying the tonemapping curve specified by
   22364 <a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>.<wbr/></p>
   22365 <p>Must not slow down frame rate relative to raw
   22366 sensor output.<wbr/></p></span>
   22367                   </li>
   22368                   <li>
   22369                     <span class="entry_type_enum_name">FAST</span>
   22370                     <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied,<wbr/> without
   22371 reducing frame rate compared to raw sensor output.<wbr/></p></span>
   22372                   </li>
   22373                   <li>
   22374                     <span class="entry_type_enum_name">HIGH_QUALITY</span>
   22375                     <span class="entry_type_enum_notes"><p>High-quality gamma mapping and color enhancement will be applied,<wbr/> at
   22376 the cost of reduced frame rate compared to raw sensor output.<wbr/></p></span>
   22377                   </li>
   22378                 </ul>
   22379 
   22380             </td> <!-- entry_type -->
   22381 
   22382             <td class="entry_description">
   22383               <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
   22384             </td>
   22385 
   22386             <td class="entry_units">
   22387             </td>
   22388 
   22389             <td class="entry_range">
   22390               <p><a href="#static_android.tonemap.availableToneMapModes">android.<wbr/>tonemap.<wbr/>available<wbr/>Tone<wbr/>Map<wbr/>Modes</a></p>
   22391             </td>
   22392 
   22393             <td class="entry_tags">
   22394             </td>
   22395 
   22396           </tr>
   22397           <tr class="entries_header">
   22398             <th class="th_details" colspan="5">Details</th>
   22399           </tr>
   22400           <tr class="entry_cont">
   22401             <td class="entry_details" colspan="5">
   22402               <p>When switching to an application-defined contrast curve by setting
   22403 <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
   22404 per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
   22405 mapping from input high-bit-depth pixel value to the output
   22406 low-bit-depth value.<wbr/>  Since the actual pixel ranges of both input
   22407 and output may change depending on the camera pipeline,<wbr/> the values
   22408 are specified by normalized floating-point numbers.<wbr/></p>
   22409 <p>More-complex color mapping operations such as 3D color look-up
   22410 tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
   22411 transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
   22412 CONTRAST_<wbr/>CURVE.<wbr/></p>
   22413 <p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
   22414 emit its own tonemap curve in <a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>.<wbr/>
   22415 These values are always available,<wbr/> and as close as possible to the
   22416 actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
   22417 <p>If a request is sent with CONTRAST_<wbr/>CURVE with the camera device's
   22418 provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
   22419 roughly the same.<wbr/></p>
   22420             </td>
   22421           </tr>
   22422 
   22423 
   22424           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   22425            <!-- end of entry -->
   22426         
   22427         
   22428 
   22429       <!-- end of kind -->
   22430       </tbody>
   22431 
   22432   <!-- end of section -->
   22433   <tr><td colspan="6" id="section_led" class="section">led</td></tr>
   22434 
   22435 
   22436       <tr><td colspan="6" class="kind">controls</td></tr>
   22437 
   22438       <thead class="entries_header">
   22439         <tr>
   22440           <th class="th_name">Property Name</th>
   22441           <th class="th_type">Type</th>
   22442           <th class="th_description">Description</th>
   22443           <th class="th_units">Units</th>
   22444           <th class="th_range">Range</th>
   22445           <th class="th_tags">Tags</th>
   22446         </tr>
   22447       </thead>
   22448 
   22449       <tbody>
   22450 
   22451         
   22452 
   22453         
   22454 
   22455         
   22456 
   22457         
   22458 
   22459                 
   22460           <tr class="entry" id="controls_android.led.transmit">
   22461             <td class="entry_name
   22462              " rowspan="1">
   22463               android.<wbr/>led.<wbr/>transmit
   22464             </td>
   22465             <td class="entry_type">
   22466                 <span class="entry_type_name entry_type_name_enum">byte</span>
   22467 
   22468               <span class="entry_type_visibility"> [hidden as boolean]</span>
   22469 
   22470 
   22471 
   22472 
   22473 
   22474                 <ul class="entry_type_enum">
   22475                   <li>
   22476                     <span class="entry_type_enum_name">OFF</span>
   22477                   </li>
   22478                   <li>
   22479                     <span class="entry_type_enum_name">ON</span>
   22480                   </li>
   22481                 </ul>
   22482 
   22483             </td> <!-- entry_type -->
   22484 
   22485             <td class="entry_description">
   22486               <p>This LED is nominally used to indicate to the user
   22487 that the camera is powered on and may be streaming images back to the
   22488 Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
   22489 disable this when video is processed locally and not transmitted to
   22490 any untrusted applications.<wbr/></p>
   22491 <p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
   22492 transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
   22493 data is stored locally on the device.<wbr/></p>
   22494 <p>The LED <em>may</em> be off if a trusted application is using the data that
   22495 doesn't violate the above rules.<wbr/></p>
   22496             </td>
   22497 
   22498             <td class="entry_units">
   22499             </td>
   22500 
   22501             <td class="entry_range">
   22502             </td>
   22503 
   22504             <td class="entry_tags">
   22505             </td>
   22506 
   22507           </tr>
   22508 
   22509 
   22510           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   22511            <!-- end of entry -->
   22512         
   22513         
   22514 
   22515       <!-- end of kind -->
   22516       </tbody>
   22517       <tr><td colspan="6" class="kind">dynamic</td></tr>
   22518 
   22519       <thead class="entries_header">
   22520         <tr>
   22521           <th class="th_name">Property Name</th>
   22522           <th class="th_type">Type</th>
   22523           <th class="th_description">Description</th>
   22524           <th class="th_units">Units</th>
   22525           <th class="th_range">Range</th>
   22526           <th class="th_tags">Tags</th>
   22527         </tr>
   22528       </thead>
   22529 
   22530       <tbody>
   22531 
   22532         
   22533 
   22534         
   22535 
   22536         
   22537 
   22538         
   22539 
   22540                 
   22541           <tr class="entry" id="dynamic_android.led.transmit">
   22542             <td class="entry_name
   22543              " rowspan="1">
   22544               android.<wbr/>led.<wbr/>transmit
   22545             </td>
   22546             <td class="entry_type">
   22547                 <span class="entry_type_name entry_type_name_enum">byte</span>
   22548 
   22549               <span class="entry_type_visibility"> [hidden as boolean]</span>
   22550 
   22551 
   22552 
   22553 
   22554 
   22555                 <ul class="entry_type_enum">
   22556                   <li>
   22557                     <span class="entry_type_enum_name">OFF</span>
   22558                   </li>
   22559                   <li>
   22560                     <span class="entry_type_enum_name">ON</span>
   22561                   </li>
   22562                 </ul>
   22563 
   22564             </td> <!-- entry_type -->
   22565 
   22566             <td class="entry_description">
   22567               <p>This LED is nominally used to indicate to the user
   22568 that the camera is powered on and may be streaming images back to the
   22569 Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
   22570 disable this when video is processed locally and not transmitted to
   22571 any untrusted applications.<wbr/></p>
   22572 <p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
   22573 transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
   22574 data is stored locally on the device.<wbr/></p>
   22575 <p>The LED <em>may</em> be off if a trusted application is using the data that
   22576 doesn't violate the above rules.<wbr/></p>
   22577             </td>
   22578 
   22579             <td class="entry_units">
   22580             </td>
   22581 
   22582             <td class="entry_range">
   22583             </td>
   22584 
   22585             <td class="entry_tags">
   22586             </td>
   22587 
   22588           </tr>
   22589 
   22590 
   22591           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   22592            <!-- end of entry -->
   22593         
   22594         
   22595 
   22596       <!-- end of kind -->
   22597       </tbody>
   22598       <tr><td colspan="6" class="kind">static</td></tr>
   22599 
   22600       <thead class="entries_header">
   22601         <tr>
   22602           <th class="th_name">Property Name</th>
   22603           <th class="th_type">Type</th>
   22604           <th class="th_description">Description</th>
   22605           <th class="th_units">Units</th>
   22606           <th class="th_range">Range</th>
   22607           <th class="th_tags">Tags</th>
   22608         </tr>
   22609       </thead>
   22610 
   22611       <tbody>
   22612 
   22613         
   22614 
   22615         
   22616 
   22617         
   22618 
   22619         
   22620 
   22621                 
   22622           <tr class="entry" id="static_android.led.availableLeds">
   22623             <td class="entry_name
   22624              " rowspan="1">
   22625               android.<wbr/>led.<wbr/>available<wbr/>Leds
   22626             </td>
   22627             <td class="entry_type">
   22628                 <span class="entry_type_name entry_type_name_enum">byte</span>
   22629                 <span class="entry_type_container">x</span>
   22630 
   22631                 <span class="entry_type_array">
   22632                   n
   22633                 </span>
   22634               <span class="entry_type_visibility"> [hidden]</span>
   22635 
   22636 
   22637 
   22638 
   22639 
   22640                 <ul class="entry_type_enum">
   22641                   <li>
   22642                     <span class="entry_type_enum_name">TRANSMIT</span>
   22643                     <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>
   22644                   </li>
   22645                 </ul>
   22646 
   22647             </td> <!-- entry_type -->
   22648 
   22649             <td class="entry_description">
   22650               <p>A list of camera LEDs that are available on this system.<wbr/></p>
   22651             </td>
   22652 
   22653             <td class="entry_units">
   22654             </td>
   22655 
   22656             <td class="entry_range">
   22657             </td>
   22658 
   22659             <td class="entry_tags">
   22660             </td>
   22661 
   22662           </tr>
   22663 
   22664 
   22665           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   22666            <!-- end of entry -->
   22667         
   22668         
   22669 
   22670       <!-- end of kind -->
   22671       </tbody>
   22672 
   22673   <!-- end of section -->
   22674   <tr><td colspan="6" id="section_info" class="section">info</td></tr>
   22675 
   22676 
   22677       <tr><td colspan="6" class="kind">static</td></tr>
   22678 
   22679       <thead class="entries_header">
   22680         <tr>
   22681           <th class="th_name">Property Name</th>
   22682           <th class="th_type">Type</th>
   22683           <th class="th_description">Description</th>
   22684           <th class="th_units">Units</th>
   22685           <th class="th_range">Range</th>
   22686           <th class="th_tags">Tags</th>
   22687         </tr>
   22688       </thead>
   22689 
   22690       <tbody>
   22691 
   22692         
   22693 
   22694         
   22695 
   22696         
   22697 
   22698         
   22699 
   22700                 
   22701           <tr class="entry" id="static_android.info.supportedHardwareLevel">
   22702             <td class="entry_name
   22703              " rowspan="5">
   22704               android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level
   22705             </td>
   22706             <td class="entry_type">
   22707                 <span class="entry_type_name entry_type_name_enum">byte</span>
   22708 
   22709               <span class="entry_type_visibility"> [public]</span>
   22710 
   22711 
   22712               <span class="entry_type_hwlevel">[legacy] </span>
   22713 
   22714 
   22715 
   22716                 <ul class="entry_type_enum">
   22717                   <li>
   22718                     <span class="entry_type_enum_name">LIMITED</span>
   22719                     <span class="entry_type_enum_notes"><p>This camera device has only limited capabilities.<wbr/></p></span>
   22720                   </li>
   22721                   <li>
   22722                     <span class="entry_type_enum_name">FULL</span>
   22723                     <span class="entry_type_enum_notes"><p>This camera device is capable of supporting advanced imaging applications.<wbr/></p></span>
   22724                   </li>
   22725                   <li>
   22726                     <span class="entry_type_enum_name">LEGACY</span>
   22727                     <span class="entry_type_enum_notes"><p>This camera device is running in backward compatibility mode.<wbr/></p></span>
   22728                   </li>
   22729                 </ul>
   22730 
   22731             </td> <!-- entry_type -->
   22732 
   22733             <td class="entry_description">
   22734               <p>Generally classifies the overall set of the camera device functionality.<wbr/></p>
   22735             </td>
   22736 
   22737             <td class="entry_units">
   22738             </td>
   22739 
   22740             <td class="entry_range">
   22741             </td>
   22742 
   22743             <td class="entry_tags">
   22744             </td>
   22745 
   22746           </tr>
   22747           <tr class="entries_header">
   22748             <th class="th_details" colspan="5">Details</th>
   22749           </tr>
   22750           <tr class="entry_cont">
   22751             <td class="entry_details" colspan="5">
   22752               <p>Camera devices will come in three flavors: LEGACY,<wbr/> LIMITED and FULL.<wbr/></p>
   22753 <p>A FULL device will support below capabilities:</p>
   22754 <ul>
   22755 <li>30fps operation at maximum resolution (== sensor resolution) is preferred,<wbr/> more than
   22756   20fps is required,<wbr/> for at least uncompressed YUV
   22757   output.<wbr/> (<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains BURST_<wbr/>CAPTURE)</li>
   22758 <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>
   22759 <li>Manual sensor control (<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains MANUAL_<wbr/>SENSOR)</li>
   22760 <li>Manual post-processing control (<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains
   22761   MANUAL_<wbr/>POST_<wbr/>PROCESSING)</li>
   22762 <li>Arbitrary cropping region (<a href="#static_android.scaler.croppingType">android.<wbr/>scaler.<wbr/>cropping<wbr/>Type</a> <code>==</code> FREEFORM)</li>
   22763 <li>At least 3 processed (but not stalling) format output streams
   22764   (<a href="#static_android.request.maxNumOutputProc">android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Proc</a> <code>&gt;=</code> 3)</li>
   22765 <li>The required stream configuration defined in <a href="#static_android.scaler.availableStreamConfigurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stream<wbr/>Configurations</a></li>
   22766 <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>
   22767 <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>
   22768 </ul>
   22769 <p>A LIMITED device may have some or none of the above characteristics.<wbr/>
   22770 To find out more refer to <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>.<wbr/></p>
   22771 <p>Some features are not part of any particular hardware level or capability and must be
   22772 queried separately.<wbr/> These include:</p>
   22773 <ul>
   22774 <li>Calibrated timestamps (<a href="#static_android.sensor.info.timestampSource">android.<wbr/>sensor.<wbr/>info.<wbr/>timestamp<wbr/>Source</a> <code>==</code> REALTIME)</li>
   22775 <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>
   22776 <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>
   22777 <li>Optical or electrical image stabilization
   22778   (<a href="#static_android.lens.info.availableOpticalStabilization">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization</a>,<wbr/>
   22779    <a href="#static_android.control.availableVideoStabilizationModes">android.<wbr/>control.<wbr/>available<wbr/>Video<wbr/>Stabilization<wbr/>Modes</a>)</li>
   22780 </ul>
   22781 <p>A LEGACY device does not support per-frame control,<wbr/> manual sensor control,<wbr/> manual
   22782 post-processing,<wbr/> arbitrary cropping regions,<wbr/> and has relaxed performance constraints.<wbr/></p>
   22783 <p>Each higher level supports everything the lower level supports
   22784 in this order: FULL <code>&gt;</code> LIMITED <code>&gt;</code> LEGACY.<wbr/></p>
   22785             </td>
   22786           </tr>
   22787 
   22788           <tr class="entries_header">
   22789             <th class="th_details" colspan="5">HAL Implementation Details</th>
   22790           </tr>
   22791           <tr class="entry_cont">
   22792             <td class="entry_details" colspan="5">
   22793               <p>The camera 3 HAL device can implement one of two possible
   22794 operational modes; limited and full.<wbr/> Full support is
   22795 expected from new higher-end devices.<wbr/> Limited mode has
   22796 hardware requirements roughly in line with those for a
   22797 camera HAL device v1 implementation,<wbr/> and is expected from
   22798 older or inexpensive devices.<wbr/> Full is a strict superset of
   22799 limited,<wbr/> and they share the same essential operational flow.<wbr/></p>
   22800 <p>For full details refer to "S3.<wbr/> Operational Modes" in camera3.<wbr/>h</p>
   22801 <p>Camera HAL3+ must not implement LEGACY mode.<wbr/> It is there
   22802 for backwards compatibility in the <code>android.<wbr/>hardware.<wbr/>camera2</code>
   22803 user-facing API only.<wbr/></p>
   22804             </td>
   22805           </tr>
   22806 
   22807           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   22808            <!-- end of entry -->
   22809         
   22810         
   22811 
   22812       <!-- end of kind -->
   22813       </tbody>
   22814 
   22815   <!-- end of section -->
   22816   <tr><td colspan="6" id="section_blackLevel" class="section">blackLevel</td></tr>
   22817 
   22818 
   22819       <tr><td colspan="6" class="kind">controls</td></tr>
   22820 
   22821       <thead class="entries_header">
   22822         <tr>
   22823           <th class="th_name">Property Name</th>
   22824           <th class="th_type">Type</th>
   22825           <th class="th_description">Description</th>
   22826           <th class="th_units">Units</th>
   22827           <th class="th_range">Range</th>
   22828           <th class="th_tags">Tags</th>
   22829         </tr>
   22830       </thead>
   22831 
   22832       <tbody>
   22833 
   22834         
   22835 
   22836         
   22837 
   22838         
   22839 
   22840         
   22841 
   22842                 
   22843           <tr class="entry" id="controls_android.blackLevel.lock">
   22844             <td class="entry_name
   22845              " rowspan="5">
   22846               android.<wbr/>black<wbr/>Level.<wbr/>lock
   22847             </td>
   22848             <td class="entry_type">
   22849                 <span class="entry_type_name entry_type_name_enum">byte</span>
   22850 
   22851               <span class="entry_type_visibility"> [public as boolean]</span>
   22852 
   22853 
   22854               <span class="entry_type_hwlevel">[full] </span>
   22855 
   22856 
   22857 
   22858                 <ul class="entry_type_enum">
   22859                   <li>
   22860                     <span class="entry_type_enum_name">OFF</span>
   22861                   </li>
   22862                   <li>
   22863                     <span class="entry_type_enum_name">ON</span>
   22864                   </li>
   22865                 </ul>
   22866 
   22867             </td> <!-- entry_type -->
   22868 
   22869             <td class="entry_description">
   22870               <p>Whether black-level compensation is locked
   22871 to its current values,<wbr/> or is free to vary.<wbr/></p>
   22872             </td>
   22873 
   22874             <td class="entry_units">
   22875             </td>
   22876 
   22877             <td class="entry_range">
   22878             </td>
   22879 
   22880             <td class="entry_tags">
   22881               <ul class="entry_tags">
   22882                   <li><a href="#tag_HAL2">HAL2</a></li>
   22883               </ul>
   22884             </td>
   22885 
   22886           </tr>
   22887           <tr class="entries_header">
   22888             <th class="th_details" colspan="5">Details</th>
   22889           </tr>
   22890           <tr class="entry_cont">
   22891             <td class="entry_details" colspan="5">
   22892               <p>When set to <code>true</code> (ON),<wbr/> the values used for black-level
   22893 compensation will not change until the lock is set to
   22894 <code>false</code> (OFF).<wbr/></p>
   22895 <p>Since changes to certain capture parameters (such as
   22896 exposure time) may require resetting of black level
   22897 compensation,<wbr/> the camera device must report whether setting
   22898 the black level lock was successful in the output result
   22899 metadata.<wbr/></p>
   22900 <p>For example,<wbr/> if a sequence of requests is as follows:</p>
   22901 <ul>
   22902 <li>Request 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
   22903 <li>Request 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
   22904 <li>Request 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
   22905 <li>Request 4: Exposure = 20ms,<wbr/> Black level lock = ON</li>
   22906 <li>Request 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
   22907 <li>Request 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
   22908 </ul>
   22909 <p>And the exposure change in Request 4 requires the camera
   22910 device to reset the black level offsets,<wbr/> then the output
   22911 result metadata is expected to be:</p>
   22912 <ul>
   22913 <li>Result 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
   22914 <li>Result 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
   22915 <li>Result 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
   22916 <li>Result 4: Exposure = 20ms,<wbr/> Black level lock = OFF</li>
   22917 <li>Result 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
   22918 <li>Result 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
   22919 </ul>
   22920 <p>This indicates to the application that on frame 4,<wbr/> black
   22921 levels were reset due to exposure value changes,<wbr/> and pixel
   22922 values may not be consistent across captures.<wbr/></p>
   22923 <p>The camera device will maintain the lock to the extent
   22924 possible,<wbr/> only overriding the lock to OFF when changes to
   22925 other request parameters require a black level recalculation
   22926 or reset.<wbr/></p>
   22927             </td>
   22928           </tr>
   22929 
   22930           <tr class="entries_header">
   22931             <th class="th_details" colspan="5">HAL Implementation Details</th>
   22932           </tr>
   22933           <tr class="entry_cont">
   22934             <td class="entry_details" colspan="5">
   22935               <p>If for some reason black level locking is no longer possible
   22936 (for example,<wbr/> the analog gain has changed,<wbr/> which forces
   22937 black level offsets to be recalculated),<wbr/> then the HAL must
   22938 override this request (and it must report 'OFF' when this
   22939 does happen) until the next capture for which locking is
   22940 possible again.<wbr/></p>
   22941             </td>
   22942           </tr>
   22943 
   22944           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   22945            <!-- end of entry -->
   22946         
   22947         
   22948 
   22949       <!-- end of kind -->
   22950       </tbody>
   22951       <tr><td colspan="6" class="kind">dynamic</td></tr>
   22952 
   22953       <thead class="entries_header">
   22954         <tr>
   22955           <th class="th_name">Property Name</th>
   22956           <th class="th_type">Type</th>
   22957           <th class="th_description">Description</th>
   22958           <th class="th_units">Units</th>
   22959           <th class="th_range">Range</th>
   22960           <th class="th_tags">Tags</th>
   22961         </tr>
   22962       </thead>
   22963 
   22964       <tbody>
   22965 
   22966         
   22967 
   22968         
   22969 
   22970         
   22971 
   22972         
   22973 
   22974                 
   22975           <tr class="entry" id="dynamic_android.blackLevel.lock">
   22976             <td class="entry_name
   22977              " rowspan="5">
   22978               android.<wbr/>black<wbr/>Level.<wbr/>lock
   22979             </td>
   22980             <td class="entry_type">
   22981                 <span class="entry_type_name entry_type_name_enum">byte</span>
   22982 
   22983               <span class="entry_type_visibility"> [public as boolean]</span>
   22984 
   22985 
   22986               <span class="entry_type_hwlevel">[full] </span>
   22987 
   22988 
   22989 
   22990                 <ul class="entry_type_enum">
   22991                   <li>
   22992                     <span class="entry_type_enum_name">OFF</span>
   22993                   </li>
   22994                   <li>
   22995                     <span class="entry_type_enum_name">ON</span>
   22996                   </li>
   22997                 </ul>
   22998 
   22999             </td> <!-- entry_type -->
   23000 
   23001             <td class="entry_description">
   23002               <p>Whether black-level compensation is locked
   23003 to its current values,<wbr/> or is free to vary.<wbr/></p>
   23004             </td>
   23005 
   23006             <td class="entry_units">
   23007             </td>
   23008 
   23009             <td class="entry_range">
   23010             </td>
   23011 
   23012             <td class="entry_tags">
   23013               <ul class="entry_tags">
   23014                   <li><a href="#tag_HAL2">HAL2</a></li>
   23015               </ul>
   23016             </td>
   23017 
   23018           </tr>
   23019           <tr class="entries_header">
   23020             <th class="th_details" colspan="5">Details</th>
   23021           </tr>
   23022           <tr class="entry_cont">
   23023             <td class="entry_details" colspan="5">
   23024               <p>Whether the black level offset was locked for this frame.<wbr/>  Should be
   23025 ON if <a href="#controls_android.blackLevel.lock">android.<wbr/>black<wbr/>Level.<wbr/>lock</a> was ON in the capture request,<wbr/> unless
   23026 a change in other capture settings forced the camera device to
   23027 perform a black level reset.<wbr/></p>
   23028             </td>
   23029           </tr>
   23030 
   23031           <tr class="entries_header">
   23032             <th class="th_details" colspan="5">HAL Implementation Details</th>
   23033           </tr>
   23034           <tr class="entry_cont">
   23035             <td class="entry_details" colspan="5">
   23036               <p>If for some reason black level locking is no longer possible
   23037 (for example,<wbr/> the analog gain has changed,<wbr/> which forces
   23038 black level offsets to be recalculated),<wbr/> then the HAL must
   23039 override this request (and it must report 'OFF' when this
   23040 does happen) until the next capture for which locking is
   23041 possible again.<wbr/></p>
   23042             </td>
   23043           </tr>
   23044 
   23045           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   23046            <!-- end of entry -->
   23047         
   23048         
   23049 
   23050       <!-- end of kind -->
   23051       </tbody>
   23052 
   23053   <!-- end of section -->
   23054   <tr><td colspan="6" id="section_sync" class="section">sync</td></tr>
   23055 
   23056 
   23057       <tr><td colspan="6" class="kind">dynamic</td></tr>
   23058 
   23059       <thead class="entries_header">
   23060         <tr>
   23061           <th class="th_name">Property Name</th>
   23062           <th class="th_type">Type</th>
   23063           <th class="th_description">Description</th>
   23064           <th class="th_units">Units</th>
   23065           <th class="th_range">Range</th>
   23066           <th class="th_tags">Tags</th>
   23067         </tr>
   23068       </thead>
   23069 
   23070       <tbody>
   23071 
   23072         
   23073 
   23074         
   23075 
   23076         
   23077 
   23078         
   23079 
   23080                 
   23081           <tr class="entry" id="dynamic_android.sync.frameNumber">
   23082             <td class="entry_name
   23083              " rowspan="5">
   23084               android.<wbr/>sync.<wbr/>frame<wbr/>Number
   23085             </td>
   23086             <td class="entry_type">
   23087                 <span class="entry_type_name entry_type_name_enum">int64</span>
   23088 
   23089               <span class="entry_type_visibility"> [hidden]</span>
   23090 
   23091 
   23092               <span class="entry_type_hwlevel">[legacy] </span>
   23093 
   23094 
   23095 
   23096                 <ul class="entry_type_enum">
   23097                   <li>
   23098                     <span class="entry_type_enum_name">CONVERGING</span>
   23099                     <span class="entry_type_enum_value">-1</span>
   23100                     <span class="entry_type_enum_notes"><p>The current result is not yet fully synchronized to any request.<wbr/></p>
   23101 <p>Synchronization is in progress,<wbr/> and reading metadata from this
   23102 result may include a mix of data that have taken effect since the
   23103 last synchronization time.<wbr/></p>
   23104 <p>In some future result,<wbr/> within <a href="#static_android.sync.maxLatency">android.<wbr/>sync.<wbr/>max<wbr/>Latency</a> frames,<wbr/>
   23105 this value will update to the actual frame number frame number
   23106 the result is guaranteed to be synchronized to (as long as the
   23107 request settings remain constant).<wbr/></p></span>
   23108                   </li>
   23109                   <li>
   23110                     <span class="entry_type_enum_name">UNKNOWN</span>
   23111                     <span class="entry_type_enum_value">-2</span>
   23112                     <span class="entry_type_enum_notes"><p>The current result's synchronization status is unknown.<wbr/></p>
   23113 <p>The result may have already converged,<wbr/> or it may be in
   23114 progress.<wbr/>  Reading from this result may include some mix
   23115 of settings from past requests.<wbr/></p>
   23116 <p>After a settings change,<wbr/> the new settings will eventually all
   23117 take effect for the output buffers and results.<wbr/> However,<wbr/> this
   23118 value will not change when that happens.<wbr/> Altering settings
   23119 rapidly may provide outcomes using mixes of settings from recent
   23120 requests.<wbr/></p>
   23121 <p>This value is intended primarily for backwards compatibility with
   23122 the older camera implementations (for android.<wbr/>hardware.<wbr/>Camera).<wbr/></p></span>
   23123                   </li>
   23124                 </ul>
   23125 
   23126             </td> <!-- entry_type -->
   23127 
   23128             <td class="entry_description">
   23129               <p>The frame number corresponding to the last request
   23130 with which the output result (metadata + buffers) has been fully
   23131 synchronized.<wbr/></p>
   23132             </td>
   23133 
   23134             <td class="entry_units">
   23135             </td>
   23136 
   23137             <td class="entry_range">
   23138               <p>Either a non-negative value corresponding to a
   23139 <code>frame_<wbr/>number</code>,<wbr/> or one of the two enums (CONVERGING /<wbr/> UNKNOWN).<wbr/></p>
   23140             </td>
   23141 
   23142             <td class="entry_tags">
   23143               <ul class="entry_tags">
   23144                   <li><a href="#tag_V1">V1</a></li>
   23145               </ul>
   23146             </td>
   23147 
   23148           </tr>
   23149           <tr class="entries_header">
   23150             <th class="th_details" colspan="5">Details</th>
   23151           </tr>
   23152           <tr class="entry_cont">
   23153             <td class="entry_details" colspan="5">
   23154               <p>When a request is submitted to the camera device,<wbr/> there is usually a
   23155 delay of several frames before the controls get applied.<wbr/> A camera
   23156 device may either choose to account for this delay by implementing a
   23157 pipeline and carefully submit well-timed atomic control updates,<wbr/> or
   23158 it may start streaming control changes that span over several frame
   23159 boundaries.<wbr/></p>
   23160 <p>In the latter case,<wbr/> whenever a request's settings change relative to
   23161 the previous submitted request,<wbr/> the full set of changes may take
   23162 multiple frame durations to fully take effect.<wbr/> Some settings may
   23163 take effect sooner (in less frame durations) than others.<wbr/></p>
   23164 <p>While a set of control changes are being propagated,<wbr/> this value
   23165 will be CONVERGING.<wbr/></p>
   23166 <p>Once it is fully known that a set of control changes have been
   23167 finished propagating,<wbr/> and the resulting updated control settings
   23168 have been read back by the camera device,<wbr/> this value will be set
   23169 to a non-negative frame number (corresponding to the request to
   23170 which the results have synchronized to).<wbr/></p>
   23171 <p>Older camera device implementations may not have a way to detect
   23172 when all camera controls have been applied,<wbr/> and will always set this
   23173 value to UNKNOWN.<wbr/></p>
   23174 <p>FULL capability devices will always have this value set to the
   23175 frame number of the request corresponding to this result.<wbr/></p>
   23176 <p><em>Further details</em>:</p>
   23177 <ul>
   23178 <li>Whenever a request differs from the last request,<wbr/> any future
   23179 results not yet returned may have this value set to CONVERGING (this
   23180 could include any in-progress captures not yet returned by the camera
   23181 device,<wbr/> for more details see pipeline considerations below).<wbr/></li>
   23182 <li>Submitting a series of multiple requests that differ from the
   23183 previous request (e.<wbr/>g.<wbr/> r1,<wbr/> r2,<wbr/> r3 s.<wbr/>t.<wbr/> r1 != r2 != r3)
   23184 moves the new synchronization frame to the last non-repeating
   23185 request (using the smallest frame number from the contiguous list of
   23186 repeating requests).<wbr/></li>
   23187 <li>Submitting the same request repeatedly will not change this value
   23188 to CONVERGING,<wbr/> if it was already a non-negative value.<wbr/></li>
   23189 <li>When this value changes to non-negative,<wbr/> that means that all of the
   23190 metadata controls from the request have been applied,<wbr/> all of the
   23191 metadata controls from the camera device have been read to the
   23192 updated values (into the result),<wbr/> and all of the graphics buffers
   23193 corresponding to this result are also synchronized to the request.<wbr/></li>
   23194 </ul>
   23195 <p><em>Pipeline considerations</em>:</p>
   23196 <p>Submitting a request with updated controls relative to the previously
   23197 submitted requests may also invalidate the synchronization state
   23198 of all the results corresponding to currently in-flight requests.<wbr/></p>
   23199 <p>In other words,<wbr/> results for this current request and up to
   23200 <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> prior requests may have their
   23201 <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> change to CONVERGING.<wbr/></p>
   23202             </td>
   23203           </tr>
   23204 
   23205           <tr class="entries_header">
   23206             <th class="th_details" colspan="5">HAL Implementation Details</th>
   23207           </tr>
   23208           <tr class="entry_cont">
   23209             <td class="entry_details" colspan="5">
   23210               <p>Using UNKNOWN here is illegal unless <a href="#static_android.sync.maxLatency">android.<wbr/>sync.<wbr/>max<wbr/>Latency</a>
   23211 is also UNKNOWN.<wbr/></p>
   23212 <p>FULL capability devices should simply set this value to the
   23213 <code>frame_<wbr/>number</code> of the request this result corresponds to.<wbr/></p>
   23214             </td>
   23215           </tr>
   23216 
   23217           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   23218            <!-- end of entry -->
   23219         
   23220         
   23221 
   23222       <!-- end of kind -->
   23223       </tbody>
   23224       <tr><td colspan="6" class="kind">static</td></tr>
   23225 
   23226       <thead class="entries_header">
   23227         <tr>
   23228           <th class="th_name">Property Name</th>
   23229           <th class="th_type">Type</th>
   23230           <th class="th_description">Description</th>
   23231           <th class="th_units">Units</th>
   23232           <th class="th_range">Range</th>
   23233           <th class="th_tags">Tags</th>
   23234         </tr>
   23235       </thead>
   23236 
   23237       <tbody>
   23238 
   23239         
   23240 
   23241         
   23242 
   23243         
   23244 
   23245         
   23246 
   23247                 
   23248           <tr class="entry" id="static_android.sync.maxLatency">
   23249             <td class="entry_name
   23250              " rowspan="5">
   23251               android.<wbr/>sync.<wbr/>max<wbr/>Latency
   23252             </td>
   23253             <td class="entry_type">
   23254                 <span class="entry_type_name entry_type_name_enum">int32</span>
   23255 
   23256               <span class="entry_type_visibility"> [public]</span>
   23257 
   23258 
   23259               <span class="entry_type_hwlevel">[legacy] </span>
   23260 
   23261 
   23262 
   23263                 <ul class="entry_type_enum">
   23264                   <li>
   23265                     <span class="entry_type_enum_name">PER_FRAME_CONTROL</span>
   23266                     <span class="entry_type_enum_value">0</span>
   23267                     <span class="entry_type_enum_notes"><p>Every frame has the requests immediately applied.<wbr/></p>
   23268 <p>Furthermore for all results,<wbr/>
   23269 <code><a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CaptureResult#getFrameNumber()</code></p>
   23270 <p>Changing controls over multiple requests one after another will
   23271 produce results that have those controls applied atomically
   23272 each frame.<wbr/></p>
   23273 <p>All FULL capability devices will have this as their maxLatency.<wbr/></p></span>
   23274                   </li>
   23275                   <li>
   23276                     <span class="entry_type_enum_name">UNKNOWN</span>
   23277                     <span class="entry_type_enum_value">-1</span>
   23278                     <span class="entry_type_enum_notes"><p>Each new frame has some subset (potentially the entire set)
   23279 of the past requests applied to the camera settings.<wbr/></p>
   23280 <p>By submitting a series of identical requests,<wbr/> the camera device
   23281 will eventually have the camera settings applied,<wbr/> but it is
   23282 unknown when that exact point will be.<wbr/></p>
   23283 <p>All LEGACY capability devices will have this as their maxLatency.<wbr/></p></span>
   23284                   </li>
   23285                 </ul>
   23286 
   23287             </td> <!-- entry_type -->
   23288 
   23289             <td class="entry_description">
   23290               <p>The maximum number of frames that can occur after a request
   23291 (different than the previous) has been submitted,<wbr/> and before the
   23292 result's state becomes synchronized (by setting
   23293 <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> to a non-negative value).<wbr/></p>
   23294             </td>
   23295 
   23296             <td class="entry_units">
   23297               Frame counts
   23298             </td>
   23299 
   23300             <td class="entry_range">
   23301               <p>A positive value,<wbr/> PER_<wbr/>FRAME_<wbr/>CONTROL,<wbr/> or UNKNOWN.<wbr/></p>
   23302             </td>
   23303 
   23304             <td class="entry_tags">
   23305               <ul class="entry_tags">
   23306                   <li><a href="#tag_V1">V1</a></li>
   23307               </ul>
   23308             </td>
   23309 
   23310           </tr>
   23311           <tr class="entries_header">
   23312             <th class="th_details" colspan="5">Details</th>
   23313           </tr>
   23314           <tr class="entry_cont">
   23315             <td class="entry_details" colspan="5">
   23316               <p>This defines the maximum distance (in number of metadata results),<wbr/>
   23317 between <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> and the equivalent
   23318 frame number for that result.<wbr/></p>
   23319 <p>In other words this acts as an upper boundary for how many frames
   23320 must occur before the camera device knows for a fact that the new
   23321 submitted camera settings have been applied in outgoing frames.<wbr/></p>
   23322 <p>For example if the distance was 2,<wbr/></p>
   23323 <pre><code>initial request = X (repeating)
   23324 request1 = X
   23325 request2 = Y
   23326 request3 = Y
   23327 request4 = Y
   23328 
   23329 where requestN has frameNumber N,<wbr/> and the first of the repeating
   23330 initial request's has frameNumber F (and F &lt; 1).<wbr/>
   23331 
   23332 initial result = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
   23333 result1 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
   23334 result2 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
   23335 result3 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
   23336 result4 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2 }
   23337 
   23338 where resultN has frameNumber N.<wbr/>
   23339 </code></pre>
   23340 <p>Since <code>result4</code> has a <code>frameNumber == 4</code> and
   23341 <code><a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2</code>,<wbr/> the distance is clearly
   23342 <code>4 - 2 = 2</code>.<wbr/></p>
   23343             </td>
   23344           </tr>
   23345 
   23346           <tr class="entries_header">
   23347             <th class="th_details" colspan="5">HAL Implementation Details</th>
   23348           </tr>
   23349           <tr class="entry_cont">
   23350             <td class="entry_details" colspan="5">
   23351               <p>Use <code>frame_<wbr/>count</code> from camera3_<wbr/>request_<wbr/>t instead of
   23352 <a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a> or <code>CaptureResult#getFrameNumber()</code>.<wbr/></p>
   23353 <p>LIMITED devices are strongly encouraged to use a non-negative
   23354 value.<wbr/> If UNKNOWN is used here then app developers do not have a way
   23355 to know when sensor settings have been applied.<wbr/></p>
   23356             </td>
   23357           </tr>
   23358 
   23359           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
   23360            <!-- end of entry -->
   23361         
   23362         
   23363 
   23364       <!-- end of kind -->
   23365       </tbody>
   23366 
   23367   <!-- end of section -->
   23368 <!-- </namespace> -->
   23369   </table>
   23370 
   23371   <div class="tags" id="tag_index">
   23372     <h2>Tags</h2>
   23373     <ul>
   23374       <li id="tag_BC">BC - 
   23375         Needed for backwards compatibility with old Java API
   23376     
   23377         <ul class="tags_entries">
   23378           <li><a href="#controls_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a> (controls)</li>
   23379           <li><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a> (controls)</li>
   23380           <li><a href="#controls_android.control.aeLock">android.control.aeLock</a> (controls)</li>
   23381           <li><a href="#controls_android.control.aeMode">android.control.aeMode</a> (controls)</li>
   23382           <li><a href="#controls_android.control.aeRegions">android.control.aeRegions</a> (controls)</li>
   23383           <li><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a> (controls)</li>
   23384           <li><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a> (controls)</li>
   23385           <li><a href="#controls_android.control.afMode">android.control.afMode</a> (controls)</li>
   23386           <li><a href="#controls_android.control.afRegions">android.control.afRegions</a> (controls)</li>
   23387           <li><a href="#controls_android.control.afTrigger">android.control.afTrigger</a> (controls)</li>
   23388           <li><a href="#controls_android.control.awbLock">android.control.awbLock</a> (controls)</li>
   23389           <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
   23390           <li><a href="#controls_android.control.awbRegions">android.control.awbRegions</a> (controls)</li>
   23391           <li><a href="#controls_android.control.captureIntent">android.control.captureIntent</a> (controls)</li>
   23392           <li><a href="#controls_android.control.effectMode">android.control.effectMode</a> (controls)</li>
   23393           <li><a href="#controls_android.control.mode">android.control.mode</a> (controls)</li>
   23394           <li><a href="#controls_android.control.sceneMode">android.control.sceneMode</a> (controls)</li>
   23395           <li><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a> (controls)</li>
   23396           <li><a href="#static_android.control.aeAvailableAntibandingModes">android.control.aeAvailableAntibandingModes</a> (static)</li>
   23397           <li><a href="#static_android.control.aeAvailableModes">android.control.aeAvailableModes</a> (static)</li>
   23398           <li><a href="#static_android.control.aeAvailableTargetFpsRanges">android.control.aeAvailableTargetFpsRanges</a> (static)</li>
   23399           <li><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a> (static)</li>
   23400           <li><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a> (static)</li>
   23401           <li><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a> (static)</li>
   23402           <li><a href="#static_android.control.availableEffects">android.control.availableEffects</a> (static)</li>
   23403           <li><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a> (static)</li>
   23404           <li><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a> (static)</li>
   23405           <li><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a> (static)</li>
   23406           <li><a href="#static_android.control.maxRegions">android.control.maxRegions</a> (static)</li>
   23407           <li><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a> (static)</li>
   23408           <li><a href="#controls_android.flash.mode">android.flash.mode</a> (controls)</li>
   23409           <li><a href="#static_android.flash.info.available">android.flash.info.available</a> (static)</li>
   23410           <li><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a> (controls)</li>
   23411           <li><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a> (controls)</li>
   23412           <li><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a> (controls)</li>
   23413           <li><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a> (controls)</li>
   23414           <li><a href="#controls_android.jpeg.quality">android.jpeg.quality</a> (controls)</li>
   23415           <li><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a> (controls)</li>
   23416           <li><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a> (controls)</li>
   23417           <li><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a> (static)</li>
   23418           <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
   23419           <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
   23420           <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a> (dynamic)</li>
   23421           <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a> (static)</li>
   23422           <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a> (controls)</li>
   23423           <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a> (static)</li>
   23424           <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a> (static)</li>
   23425           <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a> (static)</li>
   23426           <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a> (static)</li>
   23427           <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a> (static)</li>
   23428           <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a> (static)</li>
   23429           <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a> (static)</li>
   23430           <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
   23431           <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
   23432           <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
   23433           <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a> (static)</li>
   23434           <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a> (dynamic)</li>
   23435           <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a> (controls)</li>
   23436           <li><a href="#static_android.statistics.info.maxFaceCount">android.statistics.info.maxFaceCount</a> (static)</li>
   23437           <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a> (dynamic)</li>
   23438           <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a> (dynamic)</li>
   23439           <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a> (dynamic)</li>
   23440           <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a> (dynamic)</li>
   23441           <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a> (dynamic)</li>
   23442           <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a> (dynamic)</li>
   23443         </ul>
   23444       </li> <!-- tag_BC -->
   23445       <li id="tag_V1">V1 - 
   23446         New features for first camera 2 release (API1)
   23447     
   23448         <ul class="tags_entries">
   23449           <li><a href="#static_android.colorCorrection.availableAberrationModes">android.colorCorrection.availableAberrationModes</a> (static)</li>
   23450           <li><a href="#static_android.control.availableHighSpeedVideoConfigurations">android.control.availableHighSpeedVideoConfigurations</a> (static)</li>
   23451           <li><a href="#controls_android.edge.mode">android.edge.mode</a> (controls)</li>
   23452           <li><a href="#static_android.edge.availableEdgeModes">android.edge.availableEdgeModes</a> (static)</li>
   23453           <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a> (controls)</li>
   23454           <li><a href="#static_android.hotPixel.availableHotPixelModes">android.hotPixel.availableHotPixelModes</a> (static)</li>
   23455           <li><a href="#controls_android.lens.aperture">android.lens.aperture</a> (controls)</li>
   23456           <li><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a> (controls)</li>
   23457           <li><a href="#controls_android.lens.focalLength">android.lens.focalLength</a> (controls)</li>
   23458           <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
   23459           <li><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (controls)</li>
   23460           <li><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a> (static)</li>
   23461           <li><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a> (static)</li>
   23462           <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
   23463           <li><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a> (static)</li>
   23464           <li><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a> (static)</li>
   23465           <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a> (static)</li>
   23466           <li><a href="#static_android.lens.info.focusDistanceCalibration">android.lens.info.focusDistanceCalibration</a> (static)</li>
   23467           <li><a href="#dynamic_android.lens.state">android.lens.state</a> (dynamic)</li>
   23468           <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a> (controls)</li>
   23469           <li><a href="#static_android.noiseReduction.availableNoiseReductionModes">android.noiseReduction.availableNoiseReductionModes</a> (static)</li>
   23470           <li><a href="#controls_android.request.id">android.request.id</a> (controls)</li>
   23471           <li><a href="#static_android.scaler.availableMinFrameDurations">android.scaler.availableMinFrameDurations</a> (static)</li>
   23472           <li><a href="#static_android.scaler.availableStallDurations">android.scaler.availableStallDurations</a> (static)</li>
   23473           <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a> (controls)</li>
   23474           <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
   23475           <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a> (controls)</li>
   23476           <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
   23477           <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a> (static)</li>
   23478           <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
   23479           <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
   23480           <li><a href="#static_android.sensor.info.timestampSource">android.sensor.info.timestampSource</a> (static)</li>
   23481           <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
   23482           <li><a href="#dynamic_android.sensor.rollingShutterSkew">android.sensor.rollingShutterSkew</a> (dynamic)</li>
   23483           <li><a href="#controls_android.statistics.hotPixelMapMode">android.statistics.hotPixelMapMode</a> (controls)</li>
   23484           <li><a href="#static_android.statistics.info.availableHotPixelMapModes">android.statistics.info.availableHotPixelMapModes</a> (static)</li>
   23485           <li><a href="#dynamic_android.statistics.hotPixelMap">android.statistics.hotPixelMap</a> (dynamic)</li>
   23486           <li><a href="#dynamic_android.sync.frameNumber">android.sync.frameNumber</a> (dynamic)</li>
   23487           <li><a href="#static_android.sync.maxLatency">android.sync.maxLatency</a> (static)</li>
   23488           <li><a href="#dynamic_android.edge.mode">android.edge.mode</a> (dynamic)</li>
   23489           <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a> (dynamic)</li>
   23490           <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a> (dynamic)</li>
   23491           <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a> (dynamic)</li>
   23492           <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (dynamic)</li>
   23493           <li><a href="#dynamic_android.noiseReduction.mode">android.noiseReduction.mode</a> (dynamic)</li>
   23494         </ul>
   23495       </li> <!-- tag_V1 -->
   23496       <li id="tag_RAW">RAW - 
   23497         Needed for useful RAW image processing and DNG file support
   23498     
   23499         <ul class="tags_entries">
   23500           <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a> (controls)</li>
   23501           <li><a href="#static_android.hotPixel.availableHotPixelModes">android.hotPixel.availableHotPixelModes</a> (static)</li>
   23502           <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a> (static)</li>
   23503           <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a> (static)</li>
   23504           <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
   23505           <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a> (static)</li>
   23506           <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
   23507           <li><a href="#static_android.sensor.referenceIlluminant2">android.sensor.referenceIlluminant2</a> (static)</li>
   23508           <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a> (static)</li>
   23509           <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a> (static)</li>
   23510           <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a> (static)</li>
   23511           <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a> (static)</li>
   23512           <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a> (static)</li>
   23513           <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a> (static)</li>
   23514           <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a> (static)</li>
   23515           <li><a href="#static_android.sensor.profileHueSatMapDimensions">android.sensor.profileHueSatMapDimensions</a> (static)</li>
   23516           <li><a href="#dynamic_android.sensor.neutralColorPoint">android.sensor.neutralColorPoint</a> (dynamic)</li>
   23517           <li><a href="#dynamic_android.sensor.noiseProfile">android.sensor.noiseProfile</a> (dynamic)</li>
   23518           <li><a href="#dynamic_android.sensor.profileHueSatMap">android.sensor.profileHueSatMap</a> (dynamic)</li>
   23519           <li><a href="#dynamic_android.sensor.profileToneCurve">android.sensor.profileToneCurve</a> (dynamic)</li>
   23520           <li><a href="#dynamic_android.sensor.greenSplit">android.sensor.greenSplit</a> (dynamic)</li>
   23521           <li><a href="#controls_android.statistics.hotPixelMapMode">android.statistics.hotPixelMapMode</a> (controls)</li>
   23522           <li><a href="#static_android.statistics.info.availableHotPixelMapModes">android.statistics.info.availableHotPixelMapModes</a> (static)</li>
   23523           <li><a href="#dynamic_android.statistics.hotPixelMap">android.statistics.hotPixelMap</a> (dynamic)</li>
   23524           <li><a href="#controls_android.statistics.lensShadingMapMode">android.statistics.lensShadingMapMode</a> (controls)</li>
   23525           <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a> (dynamic)</li>
   23526         </ul>
   23527       </li> <!-- tag_RAW -->
   23528       <li id="tag_HAL2">HAL2 - 
   23529         Entry is only used by camera device HAL 2.x
   23530     
   23531         <ul class="tags_entries">
   23532           <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a> (controls)</li>
   23533           <li><a href="#controls_android.request.outputStreams">android.request.outputStreams</a> (controls)</li>
   23534           <li><a href="#controls_android.request.type">android.request.type</a> (controls)</li>
   23535           <li><a href="#static_android.request.maxNumReprocessStreams">android.request.maxNumReprocessStreams</a> (static)</li>
   23536           <li><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a> (controls)</li>
   23537         </ul>
   23538       </li> <!-- tag_HAL2 -->
   23539       <li id="tag_FULL">FULL - 
   23540         Entry is required for full hardware level devices, and optional for other hardware levels
   23541     
   23542         <ul class="tags_entries">
   23543           <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
   23544         </ul>
   23545       </li> <!-- tag_FULL -->
   23546       <li id="tag_FUTURE">FUTURE - 
   23547         Entry is  under-specified and is not required for now. This is for book-keeping purpose,
   23548         do not implement or use it, it may be revised for future.
   23549     
   23550         <ul class="tags_entries">
   23551           <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a> (controls)</li>
   23552           <li><a href="#controls_android.edge.strength">android.edge.strength</a> (controls)</li>
   23553           <li><a href="#controls_android.flash.firingPower">android.flash.firingPower</a> (controls)</li>
   23554           <li><a href="#controls_android.flash.firingTime">android.flash.firingTime</a> (controls)</li>
   23555           <li><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a> (static)</li>
   23556           <li><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a> (static)</li>
   23557           <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a> (static)</li>
   23558           <li><a href="#dynamic_android.jpeg.size">android.jpeg.size</a> (dynamic)</li>
   23559           <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a> (static)</li>
   23560           <li><a href="#static_android.lens.position">android.lens.position</a> (static)</li>
   23561           <li><a href="#controls_android.noiseReduction.strength">android.noiseReduction.strength</a> (controls)</li>
   23562           <li><a href="#controls_android.request.metadataMode">android.request.metadataMode</a> (controls)</li>
   23563           <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
   23564           <li><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a> (dynamic)</li>
   23565           <li><a href="#controls_android.shading.strength">android.shading.strength</a> (controls)</li>
   23566           <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a> (controls)</li>
   23567           <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a> (controls)</li>
   23568           <li><a href="#static_android.statistics.info.histogramBucketCount">android.statistics.info.histogramBucketCount</a> (static)</li>
   23569           <li><a href="#static_android.statistics.info.maxHistogramCount">android.statistics.info.maxHistogramCount</a> (static)</li>
   23570           <li><a href="#static_android.statistics.info.maxSharpnessMapValue">android.statistics.info.maxSharpnessMapValue</a> (static)</li>
   23571           <li><a href="#static_android.statistics.info.sharpnessMapSize">android.statistics.info.sharpnessMapSize</a> (static)</li>
   23572           <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a> (dynamic)</li>
   23573           <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a> (dynamic)</li>
   23574         </ul>
   23575       </li> <!-- tag_FUTURE -->
   23576     </ul>
   23577   </div>
   23578 
   23579   [ <a href="#">top</a> ]
   23580 
   23581 </body>
   23582 </html>
   23583