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.4 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: 17% }
     47     .th_description { width: 20% }
     48     .th_range { width: 8% }
     49     .th_hal_version { width: 5% }
     50     td { font-size: 0.9em; }
     51 
     52     /* hide the first thead, we need it there only to enforce column sizes */
     53     .thead_dummy { visibility: hidden; }
     54 
     55     /* Entry flair */
     56     .entry_name { color: #333333; padding-left:1.0em; font-size:1.1em; font-family: monospace; vertical-align:top; }
     57     .entry_name_deprecated { text-decoration:line-through; }
     58 
     59     /* Entry type flair */
     60     .entry_type_name { font-size:1.1em; color: #669900; font-weight: bold;}
     61     .entry_type_name_enum:after { color: #669900; font-weight: bold; content:" (enum)" }
     62     .entry_type_visibility { font-weight: bolder; padding-left:1em}
     63     .entry_type_synthetic { font-weight: bolder; color: #996600; }
     64     .entry_type_hwlevel { font-weight: bolder; color: #000066; }
     65     .entry_type_deprecated { font-weight: bolder; color: #4D4D4D; }
     66     .entry_type_enum_name { font-family: monospace; font-weight: bolder; }
     67     .entry_type_enum_notes:before { content:" - " }
     68     .entry_type_enum_notes>p:first-child { display:inline; }
     69     .entry_type_enum_value:before { content:" = " }
     70     .entry_type_enum_value { font-family: monospace; }
     71     .entry ul { margin: 0 0 0 0; list-style-position: inside; padding-left: 0.5em; }
     72     .entry ul li { padding: 0 0 0 0; margin: 0 0 0 0;}
     73     .entry_range_deprecated { font-weight: bolder; }
     74 
     75     /* Entry tags flair */
     76     .entry_tags ul { list-style-type: none; }
     77 
     78     /* Entry details (full docs) flair */
     79     .entry_details_header { font-weight: bold; background-color: #dddddd;
     80       text-align: center; font-size: 1.1em; margin-left: 0em; margin-right: 0em; }
     81 
     82     /* Entry spacer flair */
     83     .entry_spacer { background-color: transparent; border-style: none; height: 0.5em; }
     84 
     85     /* TODO: generate abbr element for each tag link? */
     86     /* TODO for each x.y.z try to link it to the entry */
     87 
     88   </style>
     89 
     90   <style>
     91 
     92     {
     93       /* broken...
     94          supposedly there is a bug in chrome that it lays out tables before
     95          it knows its being printed, so the page-break-* styles are ignored
     96          */
     97         tr { page-break-after: always; page-break-inside: avoid; }
     98     }
     99 
    100   </style>
    101 </head>
    102 
    103 
    104 
    105 <body>
    106   <h1>Android Camera HAL3.2 Properties</h1>
    107 
    108 
    109   <h2>Table of Contents</h2>
    110   <ul class="toc">
    111     <li><a href="#tag_index" class="toc_section_header">Tags</a></li>
    112     <li>
    113       <span class="toc_section_header"><a href="#section_colorCorrection">colorCorrection</a></span>
    114       <ul class="toc_section">
    115         <li>
    116           <span class="toc_kind_header">controls</span>
    117           <ul class="toc_section">
    118             <li
    119             ><a href="#controls_android.colorCorrection.mode">android.colorCorrection.mode</a></li>
    120             <li
    121             ><a href="#controls_android.colorCorrection.transform">android.colorCorrection.transform</a></li>
    122             <li
    123             ><a href="#controls_android.colorCorrection.gains">android.colorCorrection.gains</a></li>
    124             <li
    125             ><a href="#controls_android.colorCorrection.aberrationMode">android.colorCorrection.aberrationMode</a></li>
    126           </ul>
    127         </li>
    128         <li>
    129           <span class="toc_kind_header">dynamic</span>
    130           <ul class="toc_section">
    131             <li
    132             ><a href="#dynamic_android.colorCorrection.mode">android.colorCorrection.mode</a></li>
    133             <li
    134             ><a href="#dynamic_android.colorCorrection.transform">android.colorCorrection.transform</a></li>
    135             <li
    136             ><a href="#dynamic_android.colorCorrection.gains">android.colorCorrection.gains</a></li>
    137             <li
    138             ><a href="#dynamic_android.colorCorrection.aberrationMode">android.colorCorrection.aberrationMode</a></li>
    139           </ul>
    140         </li>
    141         <li>
    142           <span class="toc_kind_header">static</span>
    143           <ul class="toc_section">
    144             <li
    145             ><a href="#static_android.colorCorrection.availableAberrationModes">android.colorCorrection.availableAberrationModes</a></li>
    146           </ul>
    147         </li>
    148       </ul> <!-- toc_section -->
    149     </li>
    150     <li>
    151       <span class="toc_section_header"><a href="#section_control">control</a></span>
    152       <ul class="toc_section">
    153         <li>
    154           <span class="toc_kind_header">controls</span>
    155           <ul class="toc_section">
    156             <li
    157             ><a href="#controls_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a></li>
    158             <li
    159             ><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a></li>
    160             <li
    161             ><a href="#controls_android.control.aeLock">android.control.aeLock</a></li>
    162             <li
    163             ><a href="#controls_android.control.aeMode">android.control.aeMode</a></li>
    164             <li
    165             ><a href="#controls_android.control.aeRegions">android.control.aeRegions</a></li>
    166             <li
    167             ><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a></li>
    168             <li
    169             ><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a></li>
    170             <li
    171             ><a href="#controls_android.control.afMode">android.control.afMode</a></li>
    172             <li
    173             ><a href="#controls_android.control.afRegions">android.control.afRegions</a></li>
    174             <li
    175             ><a href="#controls_android.control.afTrigger">android.control.afTrigger</a></li>
    176             <li
    177             ><a href="#controls_android.control.awbLock">android.control.awbLock</a></li>
    178             <li
    179             ><a href="#controls_android.control.awbMode">android.control.awbMode</a></li>
    180             <li
    181             ><a href="#controls_android.control.awbRegions">android.control.awbRegions</a></li>
    182             <li
    183             ><a href="#controls_android.control.captureIntent">android.control.captureIntent</a></li>
    184             <li
    185             ><a href="#controls_android.control.effectMode">android.control.effectMode</a></li>
    186             <li
    187             ><a href="#controls_android.control.mode">android.control.mode</a></li>
    188             <li
    189             ><a href="#controls_android.control.sceneMode">android.control.sceneMode</a></li>
    190             <li
    191             ><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a></li>
    192             <li
    193             ><a href="#controls_android.control.postRawSensitivityBoost">android.control.postRawSensitivityBoost</a></li>
    194             <li
    195             ><a href="#controls_android.control.enableZsl">android.control.enableZsl</a></li>
    196           </ul>
    197         </li>
    198         <li>
    199           <span class="toc_kind_header">static</span>
    200           <ul class="toc_section">
    201             <li
    202             ><a href="#static_android.control.aeAvailableAntibandingModes">android.control.aeAvailableAntibandingModes</a></li>
    203             <li
    204             ><a href="#static_android.control.aeAvailableModes">android.control.aeAvailableModes</a></li>
    205             <li
    206             ><a href="#static_android.control.aeAvailableTargetFpsRanges">android.control.aeAvailableTargetFpsRanges</a></li>
    207             <li
    208             ><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a></li>
    209             <li
    210             ><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a></li>
    211             <li
    212             ><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a></li>
    213             <li
    214             ><a href="#static_android.control.availableEffects">android.control.availableEffects</a></li>
    215             <li
    216             ><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a></li>
    217             <li
    218             ><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a></li>
    219             <li
    220             ><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a></li>
    221             <li
    222             ><a href="#static_android.control.maxRegions">android.control.maxRegions</a></li>
    223             <li
    224             ><a href="#static_android.control.maxRegionsAe">android.control.maxRegionsAe</a></li>
    225             <li
    226             ><a href="#static_android.control.maxRegionsAwb">android.control.maxRegionsAwb</a></li>
    227             <li
    228             ><a href="#static_android.control.maxRegionsAf">android.control.maxRegionsAf</a></li>
    229             <li
    230             ><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a></li>
    231             <li
    232             ><a href="#static_android.control.availableHighSpeedVideoConfigurations">android.control.availableHighSpeedVideoConfigurations</a></li>
    233             <li
    234             ><a href="#static_android.control.aeLockAvailable">android.control.aeLockAvailable</a></li>
    235             <li
    236             ><a href="#static_android.control.awbLockAvailable">android.control.awbLockAvailable</a></li>
    237             <li
    238             ><a href="#static_android.control.availableModes">android.control.availableModes</a></li>
    239             <li
    240             ><a href="#static_android.control.postRawSensitivityBoostRange">android.control.postRawSensitivityBoostRange</a></li>
    241           </ul>
    242         </li>
    243         <li>
    244           <span class="toc_kind_header">dynamic</span>
    245           <ul class="toc_section">
    246             <li
    247                 class="toc_deprecated"
    248             ><a href="#dynamic_android.control.aePrecaptureId">android.control.aePrecaptureId</a></li>
    249             <li
    250             ><a href="#dynamic_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a></li>
    251             <li
    252             ><a href="#dynamic_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a></li>
    253             <li
    254             ><a href="#dynamic_android.control.aeLock">android.control.aeLock</a></li>
    255             <li
    256             ><a href="#dynamic_android.control.aeMode">android.control.aeMode</a></li>
    257             <li
    258             ><a href="#dynamic_android.control.aeRegions">android.control.aeRegions</a></li>
    259             <li
    260             ><a href="#dynamic_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a></li>
    261             <li
    262             ><a href="#dynamic_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a></li>
    263             <li
    264             ><a href="#dynamic_android.control.aeState">android.control.aeState</a></li>
    265             <li
    266             ><a href="#dynamic_android.control.afMode">android.control.afMode</a></li>
    267             <li
    268             ><a href="#dynamic_android.control.afRegions">android.control.afRegions</a></li>
    269             <li
    270             ><a href="#dynamic_android.control.afTrigger">android.control.afTrigger</a></li>
    271             <li
    272             ><a href="#dynamic_android.control.afState">android.control.afState</a></li>
    273             <li
    274                 class="toc_deprecated"
    275             ><a href="#dynamic_android.control.afTriggerId">android.control.afTriggerId</a></li>
    276             <li
    277             ><a href="#dynamic_android.control.awbLock">android.control.awbLock</a></li>
    278             <li
    279             ><a href="#dynamic_android.control.awbMode">android.control.awbMode</a></li>
    280             <li
    281             ><a href="#dynamic_android.control.awbRegions">android.control.awbRegions</a></li>
    282             <li
    283             ><a href="#dynamic_android.control.captureIntent">android.control.captureIntent</a></li>
    284             <li
    285             ><a href="#dynamic_android.control.awbState">android.control.awbState</a></li>
    286             <li
    287             ><a href="#dynamic_android.control.effectMode">android.control.effectMode</a></li>
    288             <li
    289             ><a href="#dynamic_android.control.mode">android.control.mode</a></li>
    290             <li
    291             ><a href="#dynamic_android.control.sceneMode">android.control.sceneMode</a></li>
    292             <li
    293             ><a href="#dynamic_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a></li>
    294             <li
    295             ><a href="#dynamic_android.control.postRawSensitivityBoost">android.control.postRawSensitivityBoost</a></li>
    296             <li
    297             ><a href="#dynamic_android.control.enableZsl">android.control.enableZsl</a></li>
    298             <li
    299             ><a href="#dynamic_android.control.afSceneChange">android.control.afSceneChange</a></li>
    300           </ul>
    301         </li>
    302       </ul> <!-- toc_section -->
    303     </li>
    304     <li>
    305       <span class="toc_section_header"><a href="#section_demosaic">demosaic</a></span>
    306       <ul class="toc_section">
    307         <li>
    308           <span class="toc_kind_header">controls</span>
    309           <ul class="toc_section">
    310             <li
    311             ><a href="#controls_android.demosaic.mode">android.demosaic.mode</a></li>
    312           </ul>
    313         </li>
    314       </ul> <!-- toc_section -->
    315     </li>
    316     <li>
    317       <span class="toc_section_header"><a href="#section_edge">edge</a></span>
    318       <ul class="toc_section">
    319         <li>
    320           <span class="toc_kind_header">controls</span>
    321           <ul class="toc_section">
    322             <li
    323             ><a href="#controls_android.edge.mode">android.edge.mode</a></li>
    324             <li
    325             ><a href="#controls_android.edge.strength">android.edge.strength</a></li>
    326           </ul>
    327         </li>
    328         <li>
    329           <span class="toc_kind_header">static</span>
    330           <ul class="toc_section">
    331             <li
    332             ><a href="#static_android.edge.availableEdgeModes">android.edge.availableEdgeModes</a></li>
    333           </ul>
    334         </li>
    335         <li>
    336           <span class="toc_kind_header">dynamic</span>
    337           <ul class="toc_section">
    338             <li
    339             ><a href="#dynamic_android.edge.mode">android.edge.mode</a></li>
    340           </ul>
    341         </li>
    342       </ul> <!-- toc_section -->
    343     </li>
    344     <li>
    345       <span class="toc_section_header"><a href="#section_flash">flash</a></span>
    346       <ul class="toc_section">
    347         <li>
    348           <span class="toc_kind_header">controls</span>
    349           <ul class="toc_section">
    350             <li
    351             ><a href="#controls_android.flash.firingPower">android.flash.firingPower</a></li>
    352             <li
    353             ><a href="#controls_android.flash.firingTime">android.flash.firingTime</a></li>
    354             <li
    355             ><a href="#controls_android.flash.mode">android.flash.mode</a></li>
    356           </ul>
    357         </li>
    358         <li>
    359           <span class="toc_kind_header">static</span>
    360           <ul class="toc_section">
    361 
    362             <li
    363             ><a href="#static_android.flash.info.available">android.flash.info.available</a></li>
    364             <li
    365             ><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a></li>
    366 
    367             <li
    368             ><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a></li>
    369             <li
    370             ><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a></li>
    371           </ul>
    372         </li>
    373         <li>
    374           <span class="toc_kind_header">dynamic</span>
    375           <ul class="toc_section">
    376             <li
    377             ><a href="#dynamic_android.flash.firingPower">android.flash.firingPower</a></li>
    378             <li
    379             ><a href="#dynamic_android.flash.firingTime">android.flash.firingTime</a></li>
    380             <li
    381             ><a href="#dynamic_android.flash.mode">android.flash.mode</a></li>
    382             <li
    383             ><a href="#dynamic_android.flash.state">android.flash.state</a></li>
    384           </ul>
    385         </li>
    386       </ul> <!-- toc_section -->
    387     </li>
    388     <li>
    389       <span class="toc_section_header"><a href="#section_hotPixel">hotPixel</a></span>
    390       <ul class="toc_section">
    391         <li>
    392           <span class="toc_kind_header">controls</span>
    393           <ul class="toc_section">
    394             <li
    395             ><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a></li>
    396           </ul>
    397         </li>
    398         <li>
    399           <span class="toc_kind_header">static</span>
    400           <ul class="toc_section">
    401             <li
    402             ><a href="#static_android.hotPixel.availableHotPixelModes">android.hotPixel.availableHotPixelModes</a></li>
    403           </ul>
    404         </li>
    405         <li>
    406           <span class="toc_kind_header">dynamic</span>
    407           <ul class="toc_section">
    408             <li
    409             ><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a></li>
    410           </ul>
    411         </li>
    412       </ul> <!-- toc_section -->
    413     </li>
    414     <li>
    415       <span class="toc_section_header"><a href="#section_jpeg">jpeg</a></span>
    416       <ul class="toc_section">
    417         <li>
    418           <span class="toc_kind_header">controls</span>
    419           <ul class="toc_section">
    420             <li
    421             ><a href="#controls_android.jpeg.gpsLocation">android.jpeg.gpsLocation</a></li>
    422             <li
    423             ><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a></li>
    424             <li
    425             ><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a></li>
    426             <li
    427             ><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a></li>
    428             <li
    429             ><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a></li>
    430             <li
    431             ><a href="#controls_android.jpeg.quality">android.jpeg.quality</a></li>
    432             <li
    433             ><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a></li>
    434             <li
    435             ><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a></li>
    436           </ul>
    437         </li>
    438         <li>
    439           <span class="toc_kind_header">static</span>
    440           <ul class="toc_section">
    441             <li
    442             ><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a></li>
    443             <li
    444             ><a href="#static_android.jpeg.maxSize">android.jpeg.maxSize</a></li>
    445           </ul>
    446         </li>
    447         <li>
    448           <span class="toc_kind_header">dynamic</span>
    449           <ul class="toc_section">
    450             <li
    451             ><a href="#dynamic_android.jpeg.gpsLocation">android.jpeg.gpsLocation</a></li>
    452             <li
    453             ><a href="#dynamic_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a></li>
    454             <li
    455             ><a href="#dynamic_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a></li>
    456             <li
    457             ><a href="#dynamic_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a></li>
    458             <li
    459             ><a href="#dynamic_android.jpeg.orientation">android.jpeg.orientation</a></li>
    460             <li
    461             ><a href="#dynamic_android.jpeg.quality">android.jpeg.quality</a></li>
    462             <li
    463             ><a href="#dynamic_android.jpeg.size">android.jpeg.size</a></li>
    464             <li
    465             ><a href="#dynamic_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a></li>
    466             <li
    467             ><a href="#dynamic_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a></li>
    468           </ul>
    469         </li>
    470       </ul> <!-- toc_section -->
    471     </li>
    472     <li>
    473       <span class="toc_section_header"><a href="#section_lens">lens</a></span>
    474       <ul class="toc_section">
    475         <li>
    476           <span class="toc_kind_header">controls</span>
    477           <ul class="toc_section">
    478             <li
    479             ><a href="#controls_android.lens.aperture">android.lens.aperture</a></li>
    480             <li
    481             ><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a></li>
    482             <li
    483             ><a href="#controls_android.lens.focalLength">android.lens.focalLength</a></li>
    484             <li
    485             ><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a></li>
    486             <li
    487             ><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a></li>
    488           </ul>
    489         </li>
    490         <li>
    491           <span class="toc_kind_header">static</span>
    492           <ul class="toc_section">
    493 
    494             <li
    495             ><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a></li>
    496             <li
    497             ><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a></li>
    498             <li
    499             ><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a></li>
    500             <li
    501             ><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a></li>
    502             <li
    503             ><a href="#static_android.lens.info.hyperfocalDistance">android.lens.info.hyperfocalDistance</a></li>
    504             <li
    505             ><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a></li>
    506             <li
    507             ><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a></li>
    508             <li
    509             ><a href="#static_android.lens.info.focusDistanceCalibration">android.lens.info.focusDistanceCalibration</a></li>
    510 
    511             <li
    512             ><a href="#static_android.lens.facing">android.lens.facing</a></li>
    513             <li
    514             ><a href="#static_android.lens.poseRotation">android.lens.poseRotation</a></li>
    515             <li
    516             ><a href="#static_android.lens.poseTranslation">android.lens.poseTranslation</a></li>
    517             <li
    518             ><a href="#static_android.lens.intrinsicCalibration">android.lens.intrinsicCalibration</a></li>
    519             <li
    520                 class="toc_deprecated"
    521             ><a href="#static_android.lens.radialDistortion">android.lens.radialDistortion</a></li>
    522             <li
    523             ><a href="#static_android.lens.poseReference">android.lens.poseReference</a></li>
    524             <li
    525             ><a href="#static_android.lens.distortion">android.lens.distortion</a></li>
    526           </ul>
    527         </li>
    528         <li>
    529           <span class="toc_kind_header">dynamic</span>
    530           <ul class="toc_section">
    531             <li
    532             ><a href="#dynamic_android.lens.aperture">android.lens.aperture</a></li>
    533             <li
    534             ><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a></li>
    535             <li
    536             ><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a></li>
    537             <li
    538             ><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a></li>
    539             <li
    540             ><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a></li>
    541             <li
    542             ><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a></li>
    543             <li
    544             ><a href="#dynamic_android.lens.state">android.lens.state</a></li>
    545             <li
    546             ><a href="#dynamic_android.lens.poseRotation">android.lens.poseRotation</a></li>
    547             <li
    548             ><a href="#dynamic_android.lens.poseTranslation">android.lens.poseTranslation</a></li>
    549             <li
    550             ><a href="#dynamic_android.lens.intrinsicCalibration">android.lens.intrinsicCalibration</a></li>
    551             <li
    552                 class="toc_deprecated"
    553             ><a href="#dynamic_android.lens.radialDistortion">android.lens.radialDistortion</a></li>
    554             <li
    555             ><a href="#dynamic_android.lens.distortion">android.lens.distortion</a></li>
    556           </ul>
    557         </li>
    558       </ul> <!-- toc_section -->
    559     </li>
    560     <li>
    561       <span class="toc_section_header"><a href="#section_noiseReduction">noiseReduction</a></span>
    562       <ul class="toc_section">
    563         <li>
    564           <span class="toc_kind_header">controls</span>
    565           <ul class="toc_section">
    566             <li
    567             ><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a></li>
    568             <li
    569             ><a href="#controls_android.noiseReduction.strength">android.noiseReduction.strength</a></li>
    570           </ul>
    571         </li>
    572         <li>
    573           <span class="toc_kind_header">static</span>
    574           <ul class="toc_section">
    575             <li
    576             ><a href="#static_android.noiseReduction.availableNoiseReductionModes">android.noiseReduction.availableNoiseReductionModes</a></li>
    577           </ul>
    578         </li>
    579         <li>
    580           <span class="toc_kind_header">dynamic</span>
    581           <ul class="toc_section">
    582             <li
    583             ><a href="#dynamic_android.noiseReduction.mode">android.noiseReduction.mode</a></li>
    584           </ul>
    585         </li>
    586       </ul> <!-- toc_section -->
    587     </li>
    588     <li>
    589       <span class="toc_section_header"><a href="#section_quirks">quirks</a></span>
    590       <ul class="toc_section">
    591         <li>
    592           <span class="toc_kind_header">static</span>
    593           <ul class="toc_section">
    594             <li
    595                 class="toc_deprecated"
    596             ><a href="#static_android.quirks.meteringCropRegion">android.quirks.meteringCropRegion</a></li>
    597             <li
    598                 class="toc_deprecated"
    599             ><a href="#static_android.quirks.triggerAfWithAuto">android.quirks.triggerAfWithAuto</a></li>
    600             <li
    601                 class="toc_deprecated"
    602             ><a href="#static_android.quirks.useZslFormat">android.quirks.useZslFormat</a></li>
    603             <li
    604                 class="toc_deprecated"
    605             ><a href="#static_android.quirks.usePartialResult">android.quirks.usePartialResult</a></li>
    606           </ul>
    607         </li>
    608         <li>
    609           <span class="toc_kind_header">dynamic</span>
    610           <ul class="toc_section">
    611             <li
    612                 class="toc_deprecated"
    613             ><a href="#dynamic_android.quirks.partialResult">android.quirks.partialResult</a></li>
    614           </ul>
    615         </li>
    616       </ul> <!-- toc_section -->
    617     </li>
    618     <li>
    619       <span class="toc_section_header"><a href="#section_request">request</a></span>
    620       <ul class="toc_section">
    621         <li>
    622           <span class="toc_kind_header">controls</span>
    623           <ul class="toc_section">
    624             <li
    625                 class="toc_deprecated"
    626             ><a href="#controls_android.request.frameCount">android.request.frameCount</a></li>
    627             <li
    628             ><a href="#controls_android.request.id">android.request.id</a></li>
    629             <li
    630                 class="toc_deprecated"
    631             ><a href="#controls_android.request.inputStreams">android.request.inputStreams</a></li>
    632             <li
    633             ><a href="#controls_android.request.metadataMode">android.request.metadataMode</a></li>
    634             <li
    635                 class="toc_deprecated"
    636             ><a href="#controls_android.request.outputStreams">android.request.outputStreams</a></li>
    637             <li
    638                 class="toc_deprecated"
    639             ><a href="#controls_android.request.type">android.request.type</a></li>
    640           </ul>
    641         </li>
    642         <li>
    643           <span class="toc_kind_header">static</span>
    644           <ul class="toc_section">
    645             <li
    646             ><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a></li>
    647             <li
    648             ><a href="#static_android.request.maxNumOutputRaw">android.request.maxNumOutputRaw</a></li>
    649             <li
    650             ><a href="#static_android.request.maxNumOutputProc">android.request.maxNumOutputProc</a></li>
    651             <li
    652             ><a href="#static_android.request.maxNumOutputProcStalling">android.request.maxNumOutputProcStalling</a></li>
    653             <li
    654                 class="toc_deprecated"
    655             ><a href="#static_android.request.maxNumReprocessStreams">android.request.maxNumReprocessStreams</a></li>
    656             <li
    657             ><a href="#static_android.request.maxNumInputStreams">android.request.maxNumInputStreams</a></li>
    658             <li
    659             ><a href="#static_android.request.pipelineMaxDepth">android.request.pipelineMaxDepth</a></li>
    660             <li
    661             ><a href="#static_android.request.partialResultCount">android.request.partialResultCount</a></li>
    662             <li
    663             ><a href="#static_android.request.availableCapabilities">android.request.availableCapabilities</a></li>
    664             <li
    665             ><a href="#static_android.request.availableRequestKeys">android.request.availableRequestKeys</a></li>
    666             <li
    667             ><a href="#static_android.request.availableResultKeys">android.request.availableResultKeys</a></li>
    668             <li
    669             ><a href="#static_android.request.availableCharacteristicsKeys">android.request.availableCharacteristicsKeys</a></li>
    670             <li
    671             ><a href="#static_android.request.availableSessionKeys">android.request.availableSessionKeys</a></li>
    672             <li
    673             ><a href="#static_android.request.availablePhysicalCameraRequestKeys">android.request.availablePhysicalCameraRequestKeys</a></li>
    674           </ul>
    675         </li>
    676         <li>
    677           <span class="toc_kind_header">dynamic</span>
    678           <ul class="toc_section">
    679             <li
    680                 class="toc_deprecated"
    681             ><a href="#dynamic_android.request.frameCount">android.request.frameCount</a></li>
    682             <li
    683             ><a href="#dynamic_android.request.id">android.request.id</a></li>
    684             <li
    685             ><a href="#dynamic_android.request.metadataMode">android.request.metadataMode</a></li>
    686             <li
    687                 class="toc_deprecated"
    688             ><a href="#dynamic_android.request.outputStreams">android.request.outputStreams</a></li>
    689             <li
    690             ><a href="#dynamic_android.request.pipelineDepth">android.request.pipelineDepth</a></li>
    691           </ul>
    692         </li>
    693       </ul> <!-- toc_section -->
    694     </li>
    695     <li>
    696       <span class="toc_section_header"><a href="#section_scaler">scaler</a></span>
    697       <ul class="toc_section">
    698         <li>
    699           <span class="toc_kind_header">controls</span>
    700           <ul class="toc_section">
    701             <li
    702             ><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a></li>
    703           </ul>
    704         </li>
    705         <li>
    706           <span class="toc_kind_header">static</span>
    707           <ul class="toc_section">
    708             <li
    709                 class="toc_deprecated"
    710             ><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a></li>
    711             <li
    712                 class="toc_deprecated"
    713             ><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a></li>
    714             <li
    715                 class="toc_deprecated"
    716             ><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a></li>
    717             <li
    718             ><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a></li>
    719             <li
    720                 class="toc_deprecated"
    721             ><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a></li>
    722             <li
    723                 class="toc_deprecated"
    724             ><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a></li>
    725             <li
    726                 class="toc_deprecated"
    727             ><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a></li>
    728             <li
    729                 class="toc_deprecated"
    730             ><a href="#static_android.scaler.availableRawSizes">android.scaler.availableRawSizes</a></li>
    731             <li
    732             ><a href="#static_android.scaler.availableInputOutputFormatsMap">android.scaler.availableInputOutputFormatsMap</a></li>
    733             <li
    734             ><a href="#static_android.scaler.availableStreamConfigurations">android.scaler.availableStreamConfigurations</a></li>
    735             <li
    736             ><a href="#static_android.scaler.availableMinFrameDurations">android.scaler.availableMinFrameDurations</a></li>
    737             <li
    738             ><a href="#static_android.scaler.availableStallDurations">android.scaler.availableStallDurations</a></li>
    739             <li
    740             ><a href="#static_android.scaler.streamConfigurationMap">android.scaler.streamConfigurationMap</a></li>
    741             <li
    742             ><a href="#static_android.scaler.croppingType">android.scaler.croppingType</a></li>
    743           </ul>
    744         </li>
    745         <li>
    746           <span class="toc_kind_header">dynamic</span>
    747           <ul class="toc_section">
    748             <li
    749             ><a href="#dynamic_android.scaler.cropRegion">android.scaler.cropRegion</a></li>
    750           </ul>
    751         </li>
    752       </ul> <!-- toc_section -->
    753     </li>
    754     <li>
    755       <span class="toc_section_header"><a href="#section_sensor">sensor</a></span>
    756       <ul class="toc_section">
    757         <li>
    758           <span class="toc_kind_header">controls</span>
    759           <ul class="toc_section">
    760             <li
    761             ><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a></li>
    762             <li
    763             ><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a></li>
    764             <li
    765             ><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a></li>
    766             <li
    767             ><a href="#controls_android.sensor.testPatternData">android.sensor.testPatternData</a></li>
    768             <li
    769             ><a href="#controls_android.sensor.testPatternMode">android.sensor.testPatternMode</a></li>
    770           </ul>
    771         </li>
    772         <li>
    773           <span class="toc_kind_header">static</span>
    774           <ul class="toc_section">
    775 
    776             <li
    777             ><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a></li>
    778             <li
    779             ><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a></li>
    780             <li
    781             ><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a></li>
    782             <li
    783             ><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a></li>
    784             <li
    785             ><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a></li>
    786             <li
    787             ><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a></li>
    788             <li
    789             ><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a></li>
    790             <li
    791             ><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a></li>
    792             <li
    793             ><a href="#static_android.sensor.info.timestampSource">android.sensor.info.timestampSource</a></li>
    794             <li
    795             ><a href="#static_android.sensor.info.lensShadingApplied">android.sensor.info.lensShadingApplied</a></li>
    796             <li
    797             ><a href="#static_android.sensor.info.preCorrectionActiveArraySize">android.sensor.info.preCorrectionActiveArraySize</a></li>
    798 
    799             <li
    800             ><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a></li>
    801             <li
    802             ><a href="#static_android.sensor.referenceIlluminant2">android.sensor.referenceIlluminant2</a></li>
    803             <li
    804             ><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a></li>
    805             <li
    806             ><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a></li>
    807             <li
    808             ><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a></li>
    809             <li
    810             ><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a></li>
    811             <li
    812             ><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a></li>
    813             <li
    814             ><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a></li>
    815             <li
    816             ><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a></li>
    817             <li
    818             ><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a></li>
    819             <li
    820             ><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a></li>
    821             <li
    822             ><a href="#static_android.sensor.orientation">android.sensor.orientation</a></li>
    823             <li
    824             ><a href="#static_android.sensor.profileHueSatMapDimensions">android.sensor.profileHueSatMapDimensions</a></li>
    825             <li
    826             ><a href="#static_android.sensor.availableTestPatternModes">android.sensor.availableTestPatternModes</a></li>
    827             <li
    828             ><a href="#static_android.sensor.opticalBlackRegions">android.sensor.opticalBlackRegions</a></li>
    829             <li
    830             ><a href="#static_android.sensor.opaqueRawSize">android.sensor.opaqueRawSize</a></li>
    831           </ul>
    832         </li>
    833         <li>
    834           <span class="toc_kind_header">dynamic</span>
    835           <ul class="toc_section">
    836             <li
    837             ><a href="#dynamic_android.sensor.exposureTime">android.sensor.exposureTime</a></li>
    838             <li
    839             ><a href="#dynamic_android.sensor.frameDuration">android.sensor.frameDuration</a></li>
    840             <li
    841             ><a href="#dynamic_android.sensor.sensitivity">android.sensor.sensitivity</a></li>
    842             <li
    843             ><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a></li>
    844             <li
    845             ><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a></li>
    846             <li
    847             ><a href="#dynamic_android.sensor.neutralColorPoint">android.sensor.neutralColorPoint</a></li>
    848             <li
    849             ><a href="#dynamic_android.sensor.noiseProfile">android.sensor.noiseProfile</a></li>
    850             <li
    851             ><a href="#dynamic_android.sensor.profileHueSatMap">android.sensor.profileHueSatMap</a></li>
    852             <li
    853             ><a href="#dynamic_android.sensor.profileToneCurve">android.sensor.profileToneCurve</a></li>
    854             <li
    855             ><a href="#dynamic_android.sensor.greenSplit">android.sensor.greenSplit</a></li>
    856             <li
    857             ><a href="#dynamic_android.sensor.testPatternData">android.sensor.testPatternData</a></li>
    858             <li
    859             ><a href="#dynamic_android.sensor.testPatternMode">android.sensor.testPatternMode</a></li>
    860             <li
    861             ><a href="#dynamic_android.sensor.rollingShutterSkew">android.sensor.rollingShutterSkew</a></li>
    862             <li
    863             ><a href="#dynamic_android.sensor.dynamicBlackLevel">android.sensor.dynamicBlackLevel</a></li>
    864             <li
    865             ><a href="#dynamic_android.sensor.dynamicWhiteLevel">android.sensor.dynamicWhiteLevel</a></li>
    866           </ul>
    867         </li>
    868       </ul> <!-- toc_section -->
    869     </li>
    870     <li>
    871       <span class="toc_section_header"><a href="#section_shading">shading</a></span>
    872       <ul class="toc_section">
    873         <li>
    874           <span class="toc_kind_header">controls</span>
    875           <ul class="toc_section">
    876             <li
    877             ><a href="#controls_android.shading.mode">android.shading.mode</a></li>
    878             <li
    879             ><a href="#controls_android.shading.strength">android.shading.strength</a></li>
    880           </ul>
    881         </li>
    882         <li>
    883           <span class="toc_kind_header">dynamic</span>
    884           <ul class="toc_section">
    885             <li
    886             ><a href="#dynamic_android.shading.mode">android.shading.mode</a></li>
    887           </ul>
    888         </li>
    889         <li>
    890           <span class="toc_kind_header">static</span>
    891           <ul class="toc_section">
    892             <li
    893             ><a href="#static_android.shading.availableModes">android.shading.availableModes</a></li>
    894           </ul>
    895         </li>
    896       </ul> <!-- toc_section -->
    897     </li>
    898     <li>
    899       <span class="toc_section_header"><a href="#section_statistics">statistics</a></span>
    900       <ul class="toc_section">
    901         <li>
    902           <span class="toc_kind_header">controls</span>
    903           <ul class="toc_section">
    904             <li
    905             ><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a></li>
    906             <li
    907             ><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a></li>
    908             <li
    909             ><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a></li>
    910             <li
    911             ><a href="#controls_android.statistics.hotPixelMapMode">android.statistics.hotPixelMapMode</a></li>
    912             <li
    913             ><a href="#controls_android.statistics.lensShadingMapMode">android.statistics.lensShadingMapMode</a></li>
    914             <li
    915             ><a href="#controls_android.statistics.oisDataMode">android.statistics.oisDataMode</a></li>
    916           </ul>
    917         </li>
    918         <li>
    919           <span class="toc_kind_header">static</span>
    920           <ul class="toc_section">
    921 
    922             <li
    923             ><a href="#static_android.statistics.info.availableFaceDetectModes">android.statistics.info.availableFaceDetectModes</a></li>
    924             <li
    925             ><a href="#static_android.statistics.info.histogramBucketCount">android.statistics.info.histogramBucketCount</a></li>
    926             <li
    927             ><a href="#static_android.statistics.info.maxFaceCount">android.statistics.info.maxFaceCount</a></li>
    928             <li
    929             ><a href="#static_android.statistics.info.maxHistogramCount">android.statistics.info.maxHistogramCount</a></li>
    930             <li
    931             ><a href="#static_android.statistics.info.maxSharpnessMapValue">android.statistics.info.maxSharpnessMapValue</a></li>
    932             <li
    933             ><a href="#static_android.statistics.info.sharpnessMapSize">android.statistics.info.sharpnessMapSize</a></li>
    934             <li
    935             ><a href="#static_android.statistics.info.availableHotPixelMapModes">android.statistics.info.availableHotPixelMapModes</a></li>
    936             <li
    937             ><a href="#static_android.statistics.info.availableLensShadingMapModes">android.statistics.info.availableLensShadingMapModes</a></li>
    938             <li
    939             ><a href="#static_android.statistics.info.availableOisDataModes">android.statistics.info.availableOisDataModes</a></li>
    940 
    941           </ul>
    942         </li>
    943         <li>
    944           <span class="toc_kind_header">dynamic</span>
    945           <ul class="toc_section">
    946             <li
    947             ><a href="#dynamic_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a></li>
    948             <li
    949             ><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a></li>
    950             <li
    951             ><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a></li>
    952             <li
    953             ><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a></li>
    954             <li
    955             ><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a></li>
    956             <li
    957             ><a href="#dynamic_android.statistics.faces">android.statistics.faces</a></li>
    958             <li
    959             ><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a></li>
    960             <li
    961             ><a href="#dynamic_android.statistics.histogramMode">android.statistics.histogramMode</a></li>
    962             <li
    963             ><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a></li>
    964             <li
    965             ><a href="#dynamic_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a></li>
    966             <li
    967             ><a href="#dynamic_android.statistics.lensShadingCorrectionMap">android.statistics.lensShadingCorrectionMap</a></li>
    968             <li
    969             ><a href="#dynamic_android.statistics.lensShadingMap">android.statistics.lensShadingMap</a></li>
    970             <li
    971                 class="toc_deprecated"
    972             ><a href="#dynamic_android.statistics.predictedColorGains">android.statistics.predictedColorGains</a></li>
    973             <li
    974                 class="toc_deprecated"
    975             ><a href="#dynamic_android.statistics.predictedColorTransform">android.statistics.predictedColorTransform</a></li>
    976             <li
    977             ><a href="#dynamic_android.statistics.sceneFlicker">android.statistics.sceneFlicker</a></li>
    978             <li
    979             ><a href="#dynamic_android.statistics.hotPixelMapMode">android.statistics.hotPixelMapMode</a></li>
    980             <li
    981             ><a href="#dynamic_android.statistics.hotPixelMap">android.statistics.hotPixelMap</a></li>
    982             <li
    983             ><a href="#dynamic_android.statistics.lensShadingMapMode">android.statistics.lensShadingMapMode</a></li>
    984             <li
    985             ><a href="#dynamic_android.statistics.oisDataMode">android.statistics.oisDataMode</a></li>
    986             <li
    987             ><a href="#dynamic_android.statistics.oisTimestamps">android.statistics.oisTimestamps</a></li>
    988             <li
    989             ><a href="#dynamic_android.statistics.oisXShifts">android.statistics.oisXShifts</a></li>
    990             <li
    991             ><a href="#dynamic_android.statistics.oisYShifts">android.statistics.oisYShifts</a></li>
    992             <li
    993             ><a href="#dynamic_android.statistics.oisSamples">android.statistics.oisSamples</a></li>
    994           </ul>
    995         </li>
    996       </ul> <!-- toc_section -->
    997     </li>
    998     <li>
    999       <span class="toc_section_header"><a href="#section_tonemap">tonemap</a></span>
   1000       <ul class="toc_section">
   1001         <li>
   1002           <span class="toc_kind_header">controls</span>
   1003           <ul class="toc_section">
   1004             <li
   1005             ><a href="#controls_android.tonemap.curveBlue">android.tonemap.curveBlue</a></li>
   1006             <li
   1007             ><a href="#controls_android.tonemap.curveGreen">android.tonemap.curveGreen</a></li>
   1008             <li
   1009             ><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a></li>
   1010             <li
   1011             ><a href="#controls_android.tonemap.curve">android.tonemap.curve</a></li>
   1012             <li
   1013             ><a href="#controls_android.tonemap.mode">android.tonemap.mode</a></li>
   1014             <li
   1015             ><a href="#controls_android.tonemap.gamma">android.tonemap.gamma</a></li>
   1016             <li
   1017             ><a href="#controls_android.tonemap.presetCurve">android.tonemap.presetCurve</a></li>
   1018           </ul>
   1019         </li>
   1020         <li>
   1021           <span class="toc_kind_header">static</span>
   1022           <ul class="toc_section">
   1023             <li
   1024             ><a href="#static_android.tonemap.maxCurvePoints">android.tonemap.maxCurvePoints</a></li>
   1025             <li
   1026             ><a href="#static_android.tonemap.availableToneMapModes">android.tonemap.availableToneMapModes</a></li>
   1027           </ul>
   1028         </li>
   1029         <li>
   1030           <span class="toc_kind_header">dynamic</span>
   1031           <ul class="toc_section">
   1032             <li
   1033             ><a href="#dynamic_android.tonemap.curveBlue">android.tonemap.curveBlue</a></li>
   1034             <li
   1035             ><a href="#dynamic_android.tonemap.curveGreen">android.tonemap.curveGreen</a></li>
   1036             <li
   1037             ><a href="#dynamic_android.tonemap.curveRed">android.tonemap.curveRed</a></li>
   1038             <li
   1039             ><a href="#dynamic_android.tonemap.curve">android.tonemap.curve</a></li>
   1040             <li
   1041             ><a href="#dynamic_android.tonemap.mode">android.tonemap.mode</a></li>
   1042             <li
   1043             ><a href="#dynamic_android.tonemap.gamma">android.tonemap.gamma</a></li>
   1044             <li
   1045             ><a href="#dynamic_android.tonemap.presetCurve">android.tonemap.presetCurve</a></li>
   1046           </ul>
   1047         </li>
   1048       </ul> <!-- toc_section -->
   1049     </li>
   1050     <li>
   1051       <span class="toc_section_header"><a href="#section_led">led</a></span>
   1052       <ul class="toc_section">
   1053         <li>
   1054           <span class="toc_kind_header">controls</span>
   1055           <ul class="toc_section">
   1056             <li
   1057             ><a href="#controls_android.led.transmit">android.led.transmit</a></li>
   1058           </ul>
   1059         </li>
   1060         <li>
   1061           <span class="toc_kind_header">dynamic</span>
   1062           <ul class="toc_section">
   1063             <li
   1064             ><a href="#dynamic_android.led.transmit">android.led.transmit</a></li>
   1065           </ul>
   1066         </li>
   1067         <li>
   1068           <span class="toc_kind_header">static</span>
   1069           <ul class="toc_section">
   1070             <li
   1071             ><a href="#static_android.led.availableLeds">android.led.availableLeds</a></li>
   1072           </ul>
   1073         </li>
   1074       </ul> <!-- toc_section -->
   1075     </li>
   1076     <li>
   1077       <span class="toc_section_header"><a href="#section_info">info</a></span>
   1078       <ul class="toc_section">
   1079         <li>
   1080           <span class="toc_kind_header">static</span>
   1081           <ul class="toc_section">
   1082             <li
   1083             ><a href="#static_android.info.supportedHardwareLevel">android.info.supportedHardwareLevel</a></li>
   1084             <li
   1085             ><a href="#static_android.info.version">android.info.version</a></li>
   1086           </ul>
   1087         </li>
   1088       </ul> <!-- toc_section -->
   1089     </li>
   1090     <li>
   1091       <span class="toc_section_header"><a href="#section_blackLevel">blackLevel</a></span>
   1092       <ul class="toc_section">
   1093         <li>
   1094           <span class="toc_kind_header">controls</span>
   1095           <ul class="toc_section">
   1096             <li
   1097             ><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a></li>
   1098           </ul>
   1099         </li>
   1100         <li>
   1101           <span class="toc_kind_header">dynamic</span>
   1102           <ul class="toc_section">
   1103             <li
   1104             ><a href="#dynamic_android.blackLevel.lock">android.blackLevel.lock</a></li>
   1105           </ul>
   1106         </li>
   1107       </ul> <!-- toc_section -->
   1108     </li>
   1109     <li>
   1110       <span class="toc_section_header"><a href="#section_sync">sync</a></span>
   1111       <ul class="toc_section">
   1112         <li>
   1113           <span class="toc_kind_header">dynamic</span>
   1114           <ul class="toc_section">
   1115             <li
   1116             ><a href="#dynamic_android.sync.frameNumber">android.sync.frameNumber</a></li>
   1117           </ul>
   1118         </li>
   1119         <li>
   1120           <span class="toc_kind_header">static</span>
   1121           <ul class="toc_section">
   1122             <li
   1123             ><a href="#static_android.sync.maxLatency">android.sync.maxLatency</a></li>
   1124           </ul>
   1125         </li>
   1126       </ul> <!-- toc_section -->
   1127     </li>
   1128     <li>
   1129       <span class="toc_section_header"><a href="#section_reprocess">reprocess</a></span>
   1130       <ul class="toc_section">
   1131         <li>
   1132           <span class="toc_kind_header">controls</span>
   1133           <ul class="toc_section">
   1134             <li
   1135             ><a href="#controls_android.reprocess.effectiveExposureFactor">android.reprocess.effectiveExposureFactor</a></li>
   1136           </ul>
   1137         </li>
   1138         <li>
   1139           <span class="toc_kind_header">dynamic</span>
   1140           <ul class="toc_section">
   1141             <li
   1142             ><a href="#dynamic_android.reprocess.effectiveExposureFactor">android.reprocess.effectiveExposureFactor</a></li>
   1143           </ul>
   1144         </li>
   1145         <li>
   1146           <span class="toc_kind_header">static</span>
   1147           <ul class="toc_section">
   1148             <li
   1149             ><a href="#static_android.reprocess.maxCaptureStall">android.reprocess.maxCaptureStall</a></li>
   1150           </ul>
   1151         </li>
   1152       </ul> <!-- toc_section -->
   1153     </li>
   1154     <li>
   1155       <span class="toc_section_header"><a href="#section_depth">depth</a></span>
   1156       <ul class="toc_section">
   1157         <li>
   1158           <span class="toc_kind_header">static</span>
   1159           <ul class="toc_section">
   1160             <li
   1161             ><a href="#static_android.depth.maxDepthSamples">android.depth.maxDepthSamples</a></li>
   1162             <li
   1163             ><a href="#static_android.depth.availableDepthStreamConfigurations">android.depth.availableDepthStreamConfigurations</a></li>
   1164             <li
   1165             ><a href="#static_android.depth.availableDepthMinFrameDurations">android.depth.availableDepthMinFrameDurations</a></li>
   1166             <li
   1167             ><a href="#static_android.depth.availableDepthStallDurations">android.depth.availableDepthStallDurations</a></li>
   1168             <li
   1169             ><a href="#static_android.depth.depthIsExclusive">android.depth.depthIsExclusive</a></li>
   1170           </ul>
   1171         </li>
   1172       </ul> <!-- toc_section -->
   1173     </li>
   1174     <li>
   1175       <span class="toc_section_header"><a href="#section_logicalMultiCamera">logicalMultiCamera</a></span>
   1176       <ul class="toc_section">
   1177         <li>
   1178           <span class="toc_kind_header">static</span>
   1179           <ul class="toc_section">
   1180             <li
   1181             ><a href="#static_android.logicalMultiCamera.physicalIds">android.logicalMultiCamera.physicalIds</a></li>
   1182             <li
   1183             ><a href="#static_android.logicalMultiCamera.sensorSyncType">android.logicalMultiCamera.sensorSyncType</a></li>
   1184           </ul>
   1185         </li>
   1186       </ul> <!-- toc_section -->
   1187     </li>
   1188     <li>
   1189       <span class="toc_section_header"><a href="#section_distortionCorrection">distortionCorrection</a></span>
   1190       <ul class="toc_section">
   1191         <li>
   1192           <span class="toc_kind_header">controls</span>
   1193           <ul class="toc_section">
   1194             <li
   1195             ><a href="#controls_android.distortionCorrection.mode">android.distortionCorrection.mode</a></li>
   1196           </ul>
   1197         </li>
   1198         <li>
   1199           <span class="toc_kind_header">static</span>
   1200           <ul class="toc_section">
   1201             <li
   1202             ><a href="#static_android.distortionCorrection.availableModes">android.distortionCorrection.availableModes</a></li>
   1203           </ul>
   1204         </li>
   1205         <li>
   1206           <span class="toc_kind_header">dynamic</span>
   1207           <ul class="toc_section">
   1208             <li
   1209             ><a href="#dynamic_android.distortionCorrection.mode">android.distortionCorrection.mode</a></li>
   1210           </ul>
   1211         </li>
   1212       </ul> <!-- toc_section -->
   1213     </li>
   1214   </ul>
   1215 
   1216 
   1217   <h1>Properties</h1>
   1218   <table class="properties">
   1219 
   1220     <thead class="thead_dummy">
   1221       <tr>
   1222         <th class="th_name">Property Name</th>
   1223         <th class="th_type">Type</th>
   1224         <th class="th_description">Description</th>
   1225         <th class="th_units">Units</th>
   1226         <th class="th_range">Range</th>
   1227         <th class="th_hal_version">HIDL HAL version</th>
   1228         <th class="th_tags">Tags</th>
   1229       </tr>
   1230     </thead> <!-- so that the first occurrence of thead is not
   1231                          above the first occurrence of tr -->
   1232 <!-- <namespace name="android"> -->
   1233   <tr><td colspan="7" id="section_colorCorrection" class="section">colorCorrection</td></tr>
   1234 
   1235 
   1236       <tr><td colspan="7" class="kind">controls</td></tr>
   1237 
   1238       <thead class="entries_header">
   1239         <tr>
   1240           <th class="th_name">Property Name</th>
   1241           <th class="th_type">Type</th>
   1242           <th class="th_description">Description</th>
   1243           <th class="th_units">Units</th>
   1244           <th class="th_range">Range</th>
   1245           <th class="th_hal_version">Initial HIDL HAL version</th>
   1246           <th class="th_tags">Tags</th>
   1247         </tr>
   1248       </thead>
   1249 
   1250       <tbody>
   1251 
   1252         
   1253 
   1254         
   1255 
   1256         
   1257 
   1258         
   1259 
   1260                 
   1261           <tr class="entry" id="controls_android.colorCorrection.mode">
   1262             <td class="entry_name
   1263              " rowspan="5">
   1264               android.<wbr/>color<wbr/>Correction.<wbr/>mode
   1265             </td>
   1266             <td class="entry_type">
   1267                 <span class="entry_type_name entry_type_name_enum">byte</span>
   1268 
   1269               <span class="entry_type_visibility"> [public]</span>
   1270 
   1271 
   1272               <span class="entry_type_hwlevel">[full] </span>
   1273 
   1274 
   1275 
   1276                 <ul class="entry_type_enum">
   1277                   <li>
   1278                     <span class="entry_type_enum_name">TRANSFORM_MATRIX (v3.2)</span>
   1279                     <span class="entry_type_enum_notes"><p>Use the <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> matrix
   1280 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> to do color conversion.<wbr/></p>
   1281 <p>All advanced white balance adjustments (not specified
   1282 by our white balance pipeline) must be disabled.<wbr/></p>
   1283 <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
   1284 TRANSFORM_<wbr/>MATRIX is ignored.<wbr/> The camera device will override
   1285 this value to either FAST or HIGH_<wbr/>QUALITY.<wbr/></p></span>
   1286                   </li>
   1287                   <li>
   1288                     <span class="entry_type_enum_name">FAST (v3.2)</span>
   1289                     <span class="entry_type_enum_notes"><p>Color correction processing must not slow down
   1290 capture rate relative to sensor raw output.<wbr/></p>
   1291 <p>Advanced white balance adjustments above and beyond
   1292 the specified white balance pipeline may be applied.<wbr/></p>
   1293 <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
   1294 the camera device uses the last frame's AWB values
   1295 (or defaults if AWB has never been run).<wbr/></p></span>
   1296                   </li>
   1297                   <li>
   1298                     <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
   1299                     <span class="entry_type_enum_notes"><p>Color correction processing operates at improved
   1300 quality but the capture rate might be reduced (relative to sensor
   1301 raw output rate)</p>
   1302 <p>Advanced white balance adjustments above and beyond
   1303 the specified white balance pipeline may be applied.<wbr/></p>
   1304 <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
   1305 the camera device uses the last frame's AWB values
   1306 (or defaults if AWB has never been run).<wbr/></p></span>
   1307                   </li>
   1308                 </ul>
   1309 
   1310             </td> <!-- entry_type -->
   1311 
   1312             <td class="entry_description">
   1313               <p>The mode control selects how the image data is converted from the
   1314 sensor's native color into linear sRGB color.<wbr/></p>
   1315             </td>
   1316 
   1317             <td class="entry_units">
   1318             </td>
   1319 
   1320             <td class="entry_range">
   1321             </td>
   1322 
   1323             <td class="entry_hal_version">
   1324               <p>3.<wbr/>2</p>
   1325             </td>
   1326 
   1327             <td class="entry_tags">
   1328             </td>
   1329 
   1330           </tr>
   1331           <tr class="entries_header">
   1332             <th class="th_details" colspan="6">Details</th>
   1333           </tr>
   1334           <tr class="entry_cont">
   1335             <td class="entry_details" colspan="6">
   1336               <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
   1337 control is overridden by the AWB routine.<wbr/> When AWB is disabled,<wbr/> the
   1338 application controls how the color mapping is performed.<wbr/></p>
   1339 <p>We define the expected processing pipeline below.<wbr/> For consistency
   1340 across devices,<wbr/> this is always the case with TRANSFORM_<wbr/>MATRIX.<wbr/></p>
   1341 <p>When either FULL or HIGH_<wbr/>QUALITY is used,<wbr/> the camera device may
   1342 do additional processing but <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
   1343 <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> will still be provided by the
   1344 camera device (in the results) and be roughly correct.<wbr/></p>
   1345 <p>Switching to TRANSFORM_<wbr/>MATRIX and using the data provided from
   1346 FAST or HIGH_<wbr/>QUALITY will yield a picture with the same white point
   1347 as what was produced by the camera device in the earlier frame.<wbr/></p>
   1348 <p>The expected processing pipeline is as follows:</p>
   1349 <p><img alt="White balance processing pipeline" src="images/camera2/metadata/android.colorCorrection.mode/processing_pipeline.png"/></p>
   1350 <p>The white balance is encoded by two values,<wbr/> a 4-channel white-balance
   1351 gain vector (applied in the Bayer domain),<wbr/> and a 3x3 color transform
   1352 matrix (applied after demosaic).<wbr/></p>
   1353 <p>The 4-channel white-balance gains are defined as:</p>
   1354 <pre><code><a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> = [ R G_<wbr/>even G_<wbr/>odd B ]
   1355 </code></pre>
   1356 <p>where <code>G_<wbr/>even</code> is the gain for green pixels on even rows of the
   1357 output,<wbr/> and <code>G_<wbr/>odd</code> is the gain for green pixels on the odd rows.<wbr/>
   1358 These may be identical for a given camera device implementation; if
   1359 the camera device does not support a separate gain for even/<wbr/>odd green
   1360 channels,<wbr/> it will use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
   1361 <code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
   1362 <p>The matrices for color transforms are defined as a 9-entry vector:</p>
   1363 <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 ]
   1364 </code></pre>
   1365 <p>which define a transform from input sensor colors,<wbr/> <code>P_<wbr/>in = [ r g b ]</code>,<wbr/>
   1366 to output linear sRGB,<wbr/> <code>P_<wbr/>out = [ r' g' b' ]</code>,<wbr/></p>
   1367 <p>with colors as follows:</p>
   1368 <pre><code>r' = I0r + I1g + I2b
   1369 g' = I3r + I4g + I5b
   1370 b' = I6r + I7g + I8b
   1371 </code></pre>
   1372 <p>Both the input and output value ranges must match.<wbr/> Overflow/<wbr/>underflow
   1373 values are clipped to fit within the range.<wbr/></p>
   1374             </td>
   1375           </tr>
   1376 
   1377           <tr class="entries_header">
   1378             <th class="th_details" colspan="6">HAL Implementation Details</th>
   1379           </tr>
   1380           <tr class="entry_cont">
   1381             <td class="entry_details" colspan="6">
   1382               <p>HAL must support both FAST and HIGH_<wbr/>QUALITY if color correction control is available
   1383 on the camera device,<wbr/> but the underlying implementation can be the same for both modes.<wbr/>
   1384 That is,<wbr/> if the highest quality implementation on the camera device does not slow down
   1385 capture rate,<wbr/> then FAST and HIGH_<wbr/>QUALITY should generate the same output.<wbr/></p>
   1386             </td>
   1387           </tr>
   1388 
   1389           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   1390            <!-- end of entry -->
   1391         
   1392                 
   1393           <tr class="entry" id="controls_android.colorCorrection.transform">
   1394             <td class="entry_name
   1395              " rowspan="3">
   1396               android.<wbr/>color<wbr/>Correction.<wbr/>transform
   1397             </td>
   1398             <td class="entry_type">
   1399                 <span class="entry_type_name">rational</span>
   1400                 <span class="entry_type_container">x</span>
   1401 
   1402                 <span class="entry_type_array">
   1403                   3 x 3
   1404                 </span>
   1405               <span class="entry_type_visibility"> [public as colorSpaceTransform]</span>
   1406 
   1407 
   1408               <span class="entry_type_hwlevel">[full] </span>
   1409 
   1410 
   1411                 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
   1412 
   1413 
   1414             </td> <!-- entry_type -->
   1415 
   1416             <td class="entry_description">
   1417               <p>A color transform matrix to use to transform
   1418 from sensor RGB color space to output linear sRGB color space.<wbr/></p>
   1419             </td>
   1420 
   1421             <td class="entry_units">
   1422               Unitless scale factors
   1423             </td>
   1424 
   1425             <td class="entry_range">
   1426             </td>
   1427 
   1428             <td class="entry_hal_version">
   1429               <p>3.<wbr/>2</p>
   1430             </td>
   1431 
   1432             <td class="entry_tags">
   1433             </td>
   1434 
   1435           </tr>
   1436           <tr class="entries_header">
   1437             <th class="th_details" colspan="6">Details</th>
   1438           </tr>
   1439           <tr class="entry_cont">
   1440             <td class="entry_details" colspan="6">
   1441               <p>This matrix is either set by the camera device when the request
   1442 <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
   1443 directly by the application in the request when the
   1444 <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
   1445 <p>In the latter case,<wbr/> the camera device may round the matrix to account
   1446 for precision issues; the final rounded matrix should be reported back
   1447 in this matrix result metadata.<wbr/> The transform should keep the magnitude
   1448 of the output color values within <code>[0,<wbr/> 1.<wbr/>0]</code> (assuming input color
   1449 values is within the normalized range <code>[0,<wbr/> 1.<wbr/>0]</code>),<wbr/> or clipping may occur.<wbr/></p>
   1450 <p>The valid range of each matrix element varies on different devices,<wbr/> but
   1451 values within [-1.<wbr/>5,<wbr/> 3.<wbr/>0] are guaranteed not to be clipped.<wbr/></p>
   1452             </td>
   1453           </tr>
   1454 
   1455 
   1456           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   1457            <!-- end of entry -->
   1458         
   1459                 
   1460           <tr class="entry" id="controls_android.colorCorrection.gains">
   1461             <td class="entry_name
   1462              " rowspan="5">
   1463               android.<wbr/>color<wbr/>Correction.<wbr/>gains
   1464             </td>
   1465             <td class="entry_type">
   1466                 <span class="entry_type_name">float</span>
   1467                 <span class="entry_type_container">x</span>
   1468 
   1469                 <span class="entry_type_array">
   1470                   4
   1471                 </span>
   1472               <span class="entry_type_visibility"> [public as rggbChannelVector]</span>
   1473 
   1474 
   1475               <span class="entry_type_hwlevel">[full] </span>
   1476 
   1477 
   1478                 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
   1479 
   1480 
   1481             </td> <!-- entry_type -->
   1482 
   1483             <td class="entry_description">
   1484               <p>Gains applying to Bayer raw color channels for
   1485 white-balance.<wbr/></p>
   1486             </td>
   1487 
   1488             <td class="entry_units">
   1489               Unitless gain factors
   1490             </td>
   1491 
   1492             <td class="entry_range">
   1493             </td>
   1494 
   1495             <td class="entry_hal_version">
   1496               <p>3.<wbr/>2</p>
   1497             </td>
   1498 
   1499             <td class="entry_tags">
   1500             </td>
   1501 
   1502           </tr>
   1503           <tr class="entries_header">
   1504             <th class="th_details" colspan="6">Details</th>
   1505           </tr>
   1506           <tr class="entry_cont">
   1507             <td class="entry_details" colspan="6">
   1508               <p>These per-channel gains are either set by the camera device
   1509 when the request <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not
   1510 TRANSFORM_<wbr/>MATRIX,<wbr/> or directly by the application in the
   1511 request when the <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is
   1512 TRANSFORM_<wbr/>MATRIX.<wbr/></p>
   1513 <p>The gains in the result metadata are the gains actually
   1514 applied by the camera device to the current frame.<wbr/></p>
   1515 <p>The valid range of gains varies on different devices,<wbr/> but gains
   1516 between [1.<wbr/>0,<wbr/> 3.<wbr/>0] are guaranteed not to be clipped.<wbr/> Even if a given
   1517 device allows gains below 1.<wbr/>0,<wbr/> this is usually not recommended because
   1518 this can create color artifacts.<wbr/></p>
   1519             </td>
   1520           </tr>
   1521 
   1522           <tr class="entries_header">
   1523             <th class="th_details" colspan="6">HAL Implementation Details</th>
   1524           </tr>
   1525           <tr class="entry_cont">
   1526             <td class="entry_details" colspan="6">
   1527               <p>The 4-channel white-balance gains are defined in
   1528 the order of <code>[R G_<wbr/>even G_<wbr/>odd B]</code>,<wbr/> where <code>G_<wbr/>even</code> is the gain
   1529 for green pixels on even rows of the output,<wbr/> and <code>G_<wbr/>odd</code>
   1530 is the gain for green pixels on the odd rows.<wbr/></p>
   1531 <p>If a HAL does not support a separate gain for even/<wbr/>odd green
   1532 channels,<wbr/> it must use the <code>G_<wbr/>even</code> value,<wbr/> and write
   1533 <code>G_<wbr/>odd</code> equal to <code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
   1534             </td>
   1535           </tr>
   1536 
   1537           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   1538            <!-- end of entry -->
   1539         
   1540                 
   1541           <tr class="entry" id="controls_android.colorCorrection.aberrationMode">
   1542             <td class="entry_name
   1543              " rowspan="3">
   1544               android.<wbr/>color<wbr/>Correction.<wbr/>aberration<wbr/>Mode
   1545             </td>
   1546             <td class="entry_type">
   1547                 <span class="entry_type_name entry_type_name_enum">byte</span>
   1548 
   1549               <span class="entry_type_visibility"> [public]</span>
   1550 
   1551 
   1552               <span class="entry_type_hwlevel">[legacy] </span>
   1553 
   1554 
   1555 
   1556                 <ul class="entry_type_enum">
   1557                   <li>
   1558                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   1559                     <span class="entry_type_enum_notes"><p>No aberration correction is applied.<wbr/></p></span>
   1560                   </li>
   1561                   <li>
   1562                     <span class="entry_type_enum_name">FAST (v3.2)</span>
   1563                     <span class="entry_type_enum_notes"><p>Aberration correction will not slow down capture rate
   1564 relative to sensor raw output.<wbr/></p></span>
   1565                   </li>
   1566                   <li>
   1567                     <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
   1568                     <span class="entry_type_enum_notes"><p>Aberration correction operates at improved quality but the capture rate might be
   1569 reduced (relative to sensor raw output rate)</p></span>
   1570                   </li>
   1571                 </ul>
   1572 
   1573             </td> <!-- entry_type -->
   1574 
   1575             <td class="entry_description">
   1576               <p>Mode of operation for the chromatic aberration correction algorithm.<wbr/></p>
   1577             </td>
   1578 
   1579             <td class="entry_units">
   1580             </td>
   1581 
   1582             <td class="entry_range">
   1583               <p><a href="#static_android.colorCorrection.availableAberrationModes">android.<wbr/>color<wbr/>Correction.<wbr/>available<wbr/>Aberration<wbr/>Modes</a></p>
   1584             </td>
   1585 
   1586             <td class="entry_hal_version">
   1587               <p>3.<wbr/>2</p>
   1588             </td>
   1589 
   1590             <td class="entry_tags">
   1591             </td>
   1592 
   1593           </tr>
   1594           <tr class="entries_header">
   1595             <th class="th_details" colspan="6">Details</th>
   1596           </tr>
   1597           <tr class="entry_cont">
   1598             <td class="entry_details" colspan="6">
   1599               <p>Chromatic (color) aberration is caused by the fact that different wavelengths of light
   1600 can not focus on the same point after exiting from the lens.<wbr/> This metadata defines
   1601 the high level control of chromatic aberration correction algorithm,<wbr/> which aims to
   1602 minimize the chromatic artifacts that may occur along the object boundaries in an
   1603 image.<wbr/></p>
   1604 <p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean that camera device determined aberration
   1605 correction will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device will
   1606 use the highest-quality aberration correction algorithms,<wbr/> even if it slows down
   1607 capture rate.<wbr/> FAST means the camera device will not slow down capture rate when
   1608 applying aberration correction.<wbr/></p>
   1609 <p>LEGACY devices will always be in FAST mode.<wbr/></p>
   1610             </td>
   1611           </tr>
   1612 
   1613 
   1614           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   1615            <!-- end of entry -->
   1616         
   1617         
   1618 
   1619       <!-- end of kind -->
   1620       </tbody>
   1621       <tr><td colspan="7" class="kind">dynamic</td></tr>
   1622 
   1623       <thead class="entries_header">
   1624         <tr>
   1625           <th class="th_name">Property Name</th>
   1626           <th class="th_type">Type</th>
   1627           <th class="th_description">Description</th>
   1628           <th class="th_units">Units</th>
   1629           <th class="th_range">Range</th>
   1630           <th class="th_hal_version">Initial HIDL HAL version</th>
   1631           <th class="th_tags">Tags</th>
   1632         </tr>
   1633       </thead>
   1634 
   1635       <tbody>
   1636 
   1637         
   1638 
   1639         
   1640 
   1641         
   1642 
   1643         
   1644 
   1645                 
   1646           <tr class="entry" id="dynamic_android.colorCorrection.mode">
   1647             <td class="entry_name
   1648              " rowspan="5">
   1649               android.<wbr/>color<wbr/>Correction.<wbr/>mode
   1650             </td>
   1651             <td class="entry_type">
   1652                 <span class="entry_type_name entry_type_name_enum">byte</span>
   1653 
   1654               <span class="entry_type_visibility"> [public]</span>
   1655 
   1656 
   1657               <span class="entry_type_hwlevel">[full] </span>
   1658 
   1659 
   1660 
   1661                 <ul class="entry_type_enum">
   1662                   <li>
   1663                     <span class="entry_type_enum_name">TRANSFORM_MATRIX (v3.2)</span>
   1664                     <span class="entry_type_enum_notes"><p>Use the <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> matrix
   1665 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> to do color conversion.<wbr/></p>
   1666 <p>All advanced white balance adjustments (not specified
   1667 by our white balance pipeline) must be disabled.<wbr/></p>
   1668 <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
   1669 TRANSFORM_<wbr/>MATRIX is ignored.<wbr/> The camera device will override
   1670 this value to either FAST or HIGH_<wbr/>QUALITY.<wbr/></p></span>
   1671                   </li>
   1672                   <li>
   1673                     <span class="entry_type_enum_name">FAST (v3.2)</span>
   1674                     <span class="entry_type_enum_notes"><p>Color correction processing must not slow down
   1675 capture rate relative to sensor raw output.<wbr/></p>
   1676 <p>Advanced white balance adjustments above and beyond
   1677 the specified white balance pipeline may be applied.<wbr/></p>
   1678 <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
   1679 the camera device uses the last frame's AWB values
   1680 (or defaults if AWB has never been run).<wbr/></p></span>
   1681                   </li>
   1682                   <li>
   1683                     <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
   1684                     <span class="entry_type_enum_notes"><p>Color correction processing operates at improved
   1685 quality but the capture rate might be reduced (relative to sensor
   1686 raw output rate)</p>
   1687 <p>Advanced white balance adjustments above and beyond
   1688 the specified white balance pipeline may be applied.<wbr/></p>
   1689 <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
   1690 the camera device uses the last frame's AWB values
   1691 (or defaults if AWB has never been run).<wbr/></p></span>
   1692                   </li>
   1693                 </ul>
   1694 
   1695             </td> <!-- entry_type -->
   1696 
   1697             <td class="entry_description">
   1698               <p>The mode control selects how the image data is converted from the
   1699 sensor's native color into linear sRGB color.<wbr/></p>
   1700             </td>
   1701 
   1702             <td class="entry_units">
   1703             </td>
   1704 
   1705             <td class="entry_range">
   1706             </td>
   1707 
   1708             <td class="entry_hal_version">
   1709               <p>3.<wbr/>2</p>
   1710             </td>
   1711 
   1712             <td class="entry_tags">
   1713             </td>
   1714 
   1715           </tr>
   1716           <tr class="entries_header">
   1717             <th class="th_details" colspan="6">Details</th>
   1718           </tr>
   1719           <tr class="entry_cont">
   1720             <td class="entry_details" colspan="6">
   1721               <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
   1722 control is overridden by the AWB routine.<wbr/> When AWB is disabled,<wbr/> the
   1723 application controls how the color mapping is performed.<wbr/></p>
   1724 <p>We define the expected processing pipeline below.<wbr/> For consistency
   1725 across devices,<wbr/> this is always the case with TRANSFORM_<wbr/>MATRIX.<wbr/></p>
   1726 <p>When either FULL or HIGH_<wbr/>QUALITY is used,<wbr/> the camera device may
   1727 do additional processing but <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
   1728 <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> will still be provided by the
   1729 camera device (in the results) and be roughly correct.<wbr/></p>
   1730 <p>Switching to TRANSFORM_<wbr/>MATRIX and using the data provided from
   1731 FAST or HIGH_<wbr/>QUALITY will yield a picture with the same white point
   1732 as what was produced by the camera device in the earlier frame.<wbr/></p>
   1733 <p>The expected processing pipeline is as follows:</p>
   1734 <p><img alt="White balance processing pipeline" src="images/camera2/metadata/android.colorCorrection.mode/processing_pipeline.png"/></p>
   1735 <p>The white balance is encoded by two values,<wbr/> a 4-channel white-balance
   1736 gain vector (applied in the Bayer domain),<wbr/> and a 3x3 color transform
   1737 matrix (applied after demosaic).<wbr/></p>
   1738 <p>The 4-channel white-balance gains are defined as:</p>
   1739 <pre><code><a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> = [ R G_<wbr/>even G_<wbr/>odd B ]
   1740 </code></pre>
   1741 <p>where <code>G_<wbr/>even</code> is the gain for green pixels on even rows of the
   1742 output,<wbr/> and <code>G_<wbr/>odd</code> is the gain for green pixels on the odd rows.<wbr/>
   1743 These may be identical for a given camera device implementation; if
   1744 the camera device does not support a separate gain for even/<wbr/>odd green
   1745 channels,<wbr/> it will use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
   1746 <code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
   1747 <p>The matrices for color transforms are defined as a 9-entry vector:</p>
   1748 <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 ]
   1749 </code></pre>
   1750 <p>which define a transform from input sensor colors,<wbr/> <code>P_<wbr/>in = [ r g b ]</code>,<wbr/>
   1751 to output linear sRGB,<wbr/> <code>P_<wbr/>out = [ r' g' b' ]</code>,<wbr/></p>
   1752 <p>with colors as follows:</p>
   1753 <pre><code>r' = I0r + I1g + I2b
   1754 g' = I3r + I4g + I5b
   1755 b' = I6r + I7g + I8b
   1756 </code></pre>
   1757 <p>Both the input and output value ranges must match.<wbr/> Overflow/<wbr/>underflow
   1758 values are clipped to fit within the range.<wbr/></p>
   1759             </td>
   1760           </tr>
   1761 
   1762           <tr class="entries_header">
   1763             <th class="th_details" colspan="6">HAL Implementation Details</th>
   1764           </tr>
   1765           <tr class="entry_cont">
   1766             <td class="entry_details" colspan="6">
   1767               <p>HAL must support both FAST and HIGH_<wbr/>QUALITY if color correction control is available
   1768 on the camera device,<wbr/> but the underlying implementation can be the same for both modes.<wbr/>
   1769 That is,<wbr/> if the highest quality implementation on the camera device does not slow down
   1770 capture rate,<wbr/> then FAST and HIGH_<wbr/>QUALITY should generate the same output.<wbr/></p>
   1771             </td>
   1772           </tr>
   1773 
   1774           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   1775            <!-- end of entry -->
   1776         
   1777                 
   1778           <tr class="entry" id="dynamic_android.colorCorrection.transform">
   1779             <td class="entry_name
   1780              " rowspan="3">
   1781               android.<wbr/>color<wbr/>Correction.<wbr/>transform
   1782             </td>
   1783             <td class="entry_type">
   1784                 <span class="entry_type_name">rational</span>
   1785                 <span class="entry_type_container">x</span>
   1786 
   1787                 <span class="entry_type_array">
   1788                   3 x 3
   1789                 </span>
   1790               <span class="entry_type_visibility"> [public as colorSpaceTransform]</span>
   1791 
   1792 
   1793               <span class="entry_type_hwlevel">[full] </span>
   1794 
   1795 
   1796                 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
   1797 
   1798 
   1799             </td> <!-- entry_type -->
   1800 
   1801             <td class="entry_description">
   1802               <p>A color transform matrix to use to transform
   1803 from sensor RGB color space to output linear sRGB color space.<wbr/></p>
   1804             </td>
   1805 
   1806             <td class="entry_units">
   1807               Unitless scale factors
   1808             </td>
   1809 
   1810             <td class="entry_range">
   1811             </td>
   1812 
   1813             <td class="entry_hal_version">
   1814               <p>3.<wbr/>2</p>
   1815             </td>
   1816 
   1817             <td class="entry_tags">
   1818             </td>
   1819 
   1820           </tr>
   1821           <tr class="entries_header">
   1822             <th class="th_details" colspan="6">Details</th>
   1823           </tr>
   1824           <tr class="entry_cont">
   1825             <td class="entry_details" colspan="6">
   1826               <p>This matrix is either set by the camera device when the request
   1827 <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
   1828 directly by the application in the request when the
   1829 <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
   1830 <p>In the latter case,<wbr/> the camera device may round the matrix to account
   1831 for precision issues; the final rounded matrix should be reported back
   1832 in this matrix result metadata.<wbr/> The transform should keep the magnitude
   1833 of the output color values within <code>[0,<wbr/> 1.<wbr/>0]</code> (assuming input color
   1834 values is within the normalized range <code>[0,<wbr/> 1.<wbr/>0]</code>),<wbr/> or clipping may occur.<wbr/></p>
   1835 <p>The valid range of each matrix element varies on different devices,<wbr/> but
   1836 values within [-1.<wbr/>5,<wbr/> 3.<wbr/>0] are guaranteed not to be clipped.<wbr/></p>
   1837             </td>
   1838           </tr>
   1839 
   1840 
   1841           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   1842            <!-- end of entry -->
   1843         
   1844                 
   1845           <tr class="entry" id="dynamic_android.colorCorrection.gains">
   1846             <td class="entry_name
   1847              " rowspan="5">
   1848               android.<wbr/>color<wbr/>Correction.<wbr/>gains
   1849             </td>
   1850             <td class="entry_type">
   1851                 <span class="entry_type_name">float</span>
   1852                 <span class="entry_type_container">x</span>
   1853 
   1854                 <span class="entry_type_array">
   1855                   4
   1856                 </span>
   1857               <span class="entry_type_visibility"> [public as rggbChannelVector]</span>
   1858 
   1859 
   1860               <span class="entry_type_hwlevel">[full] </span>
   1861 
   1862 
   1863                 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
   1864 
   1865 
   1866             </td> <!-- entry_type -->
   1867 
   1868             <td class="entry_description">
   1869               <p>Gains applying to Bayer raw color channels for
   1870 white-balance.<wbr/></p>
   1871             </td>
   1872 
   1873             <td class="entry_units">
   1874               Unitless gain factors
   1875             </td>
   1876 
   1877             <td class="entry_range">
   1878             </td>
   1879 
   1880             <td class="entry_hal_version">
   1881               <p>3.<wbr/>2</p>
   1882             </td>
   1883 
   1884             <td class="entry_tags">
   1885             </td>
   1886 
   1887           </tr>
   1888           <tr class="entries_header">
   1889             <th class="th_details" colspan="6">Details</th>
   1890           </tr>
   1891           <tr class="entry_cont">
   1892             <td class="entry_details" colspan="6">
   1893               <p>These per-channel gains are either set by the camera device
   1894 when the request <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not
   1895 TRANSFORM_<wbr/>MATRIX,<wbr/> or directly by the application in the
   1896 request when the <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is
   1897 TRANSFORM_<wbr/>MATRIX.<wbr/></p>
   1898 <p>The gains in the result metadata are the gains actually
   1899 applied by the camera device to the current frame.<wbr/></p>
   1900 <p>The valid range of gains varies on different devices,<wbr/> but gains
   1901 between [1.<wbr/>0,<wbr/> 3.<wbr/>0] are guaranteed not to be clipped.<wbr/> Even if a given
   1902 device allows gains below 1.<wbr/>0,<wbr/> this is usually not recommended because
   1903 this can create color artifacts.<wbr/></p>
   1904             </td>
   1905           </tr>
   1906 
   1907           <tr class="entries_header">
   1908             <th class="th_details" colspan="6">HAL Implementation Details</th>
   1909           </tr>
   1910           <tr class="entry_cont">
   1911             <td class="entry_details" colspan="6">
   1912               <p>The 4-channel white-balance gains are defined in
   1913 the order of <code>[R G_<wbr/>even G_<wbr/>odd B]</code>,<wbr/> where <code>G_<wbr/>even</code> is the gain
   1914 for green pixels on even rows of the output,<wbr/> and <code>G_<wbr/>odd</code>
   1915 is the gain for green pixels on the odd rows.<wbr/></p>
   1916 <p>If a HAL does not support a separate gain for even/<wbr/>odd green
   1917 channels,<wbr/> it must use the <code>G_<wbr/>even</code> value,<wbr/> and write
   1918 <code>G_<wbr/>odd</code> equal to <code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
   1919             </td>
   1920           </tr>
   1921 
   1922           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   1923            <!-- end of entry -->
   1924         
   1925                 
   1926           <tr class="entry" id="dynamic_android.colorCorrection.aberrationMode">
   1927             <td class="entry_name
   1928              " rowspan="3">
   1929               android.<wbr/>color<wbr/>Correction.<wbr/>aberration<wbr/>Mode
   1930             </td>
   1931             <td class="entry_type">
   1932                 <span class="entry_type_name entry_type_name_enum">byte</span>
   1933 
   1934               <span class="entry_type_visibility"> [public]</span>
   1935 
   1936 
   1937               <span class="entry_type_hwlevel">[legacy] </span>
   1938 
   1939 
   1940 
   1941                 <ul class="entry_type_enum">
   1942                   <li>
   1943                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   1944                     <span class="entry_type_enum_notes"><p>No aberration correction is applied.<wbr/></p></span>
   1945                   </li>
   1946                   <li>
   1947                     <span class="entry_type_enum_name">FAST (v3.2)</span>
   1948                     <span class="entry_type_enum_notes"><p>Aberration correction will not slow down capture rate
   1949 relative to sensor raw output.<wbr/></p></span>
   1950                   </li>
   1951                   <li>
   1952                     <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
   1953                     <span class="entry_type_enum_notes"><p>Aberration correction operates at improved quality but the capture rate might be
   1954 reduced (relative to sensor raw output rate)</p></span>
   1955                   </li>
   1956                 </ul>
   1957 
   1958             </td> <!-- entry_type -->
   1959 
   1960             <td class="entry_description">
   1961               <p>Mode of operation for the chromatic aberration correction algorithm.<wbr/></p>
   1962             </td>
   1963 
   1964             <td class="entry_units">
   1965             </td>
   1966 
   1967             <td class="entry_range">
   1968               <p><a href="#static_android.colorCorrection.availableAberrationModes">android.<wbr/>color<wbr/>Correction.<wbr/>available<wbr/>Aberration<wbr/>Modes</a></p>
   1969             </td>
   1970 
   1971             <td class="entry_hal_version">
   1972               <p>3.<wbr/>2</p>
   1973             </td>
   1974 
   1975             <td class="entry_tags">
   1976             </td>
   1977 
   1978           </tr>
   1979           <tr class="entries_header">
   1980             <th class="th_details" colspan="6">Details</th>
   1981           </tr>
   1982           <tr class="entry_cont">
   1983             <td class="entry_details" colspan="6">
   1984               <p>Chromatic (color) aberration is caused by the fact that different wavelengths of light
   1985 can not focus on the same point after exiting from the lens.<wbr/> This metadata defines
   1986 the high level control of chromatic aberration correction algorithm,<wbr/> which aims to
   1987 minimize the chromatic artifacts that may occur along the object boundaries in an
   1988 image.<wbr/></p>
   1989 <p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean that camera device determined aberration
   1990 correction will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device will
   1991 use the highest-quality aberration correction algorithms,<wbr/> even if it slows down
   1992 capture rate.<wbr/> FAST means the camera device will not slow down capture rate when
   1993 applying aberration correction.<wbr/></p>
   1994 <p>LEGACY devices will always be in FAST mode.<wbr/></p>
   1995             </td>
   1996           </tr>
   1997 
   1998 
   1999           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   2000            <!-- end of entry -->
   2001         
   2002         
   2003 
   2004       <!-- end of kind -->
   2005       </tbody>
   2006       <tr><td colspan="7" class="kind">static</td></tr>
   2007 
   2008       <thead class="entries_header">
   2009         <tr>
   2010           <th class="th_name">Property Name</th>
   2011           <th class="th_type">Type</th>
   2012           <th class="th_description">Description</th>
   2013           <th class="th_units">Units</th>
   2014           <th class="th_range">Range</th>
   2015           <th class="th_hal_version">Initial HIDL HAL version</th>
   2016           <th class="th_tags">Tags</th>
   2017         </tr>
   2018       </thead>
   2019 
   2020       <tbody>
   2021 
   2022         
   2023 
   2024         
   2025 
   2026         
   2027 
   2028         
   2029 
   2030                 
   2031           <tr class="entry" id="static_android.colorCorrection.availableAberrationModes">
   2032             <td class="entry_name
   2033              " rowspan="5">
   2034               android.<wbr/>color<wbr/>Correction.<wbr/>available<wbr/>Aberration<wbr/>Modes
   2035             </td>
   2036             <td class="entry_type">
   2037                 <span class="entry_type_name">byte</span>
   2038                 <span class="entry_type_container">x</span>
   2039 
   2040                 <span class="entry_type_array">
   2041                   n
   2042                 </span>
   2043               <span class="entry_type_visibility"> [public as enumList]</span>
   2044 
   2045 
   2046               <span class="entry_type_hwlevel">[legacy] </span>
   2047 
   2048 
   2049                 <div class="entry_type_notes">list of enums</div>
   2050 
   2051 
   2052             </td> <!-- entry_type -->
   2053 
   2054             <td class="entry_description">
   2055               <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
   2056 supported by this camera device.<wbr/></p>
   2057             </td>
   2058 
   2059             <td class="entry_units">
   2060             </td>
   2061 
   2062             <td class="entry_range">
   2063               <p>Any value listed in <a href="#controls_android.colorCorrection.aberrationMode">android.<wbr/>color<wbr/>Correction.<wbr/>aberration<wbr/>Mode</a></p>
   2064             </td>
   2065 
   2066             <td class="entry_hal_version">
   2067               <p>3.<wbr/>2</p>
   2068             </td>
   2069 
   2070             <td class="entry_tags">
   2071               <ul class="entry_tags">
   2072                   <li><a href="#tag_V1">V1</a></li>
   2073               </ul>
   2074             </td>
   2075 
   2076           </tr>
   2077           <tr class="entries_header">
   2078             <th class="th_details" colspan="6">Details</th>
   2079           </tr>
   2080           <tr class="entry_cont">
   2081             <td class="entry_details" colspan="6">
   2082               <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
   2083 aberration correction modes are available for a device,<wbr/> this list will solely include
   2084 OFF mode.<wbr/> All camera devices will support either OFF or FAST mode.<wbr/></p>
   2085 <p>Camera devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability will always list
   2086 OFF mode.<wbr/> This includes all FULL level devices.<wbr/></p>
   2087 <p>LEGACY devices will always only support FAST mode.<wbr/></p>
   2088             </td>
   2089           </tr>
   2090 
   2091           <tr class="entries_header">
   2092             <th class="th_details" colspan="6">HAL Implementation Details</th>
   2093           </tr>
   2094           <tr class="entry_cont">
   2095             <td class="entry_details" colspan="6">
   2096               <p>HAL must support both FAST and HIGH_<wbr/>QUALITY if chromatic aberration control is available
   2097 on the camera device,<wbr/> but the underlying implementation can be the same for both modes.<wbr/>
   2098 That is,<wbr/> if the highest quality implementation on the camera device does not slow down
   2099 capture rate,<wbr/> then FAST and HIGH_<wbr/>QUALITY will generate the same output.<wbr/></p>
   2100             </td>
   2101           </tr>
   2102 
   2103           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   2104            <!-- end of entry -->
   2105         
   2106         
   2107 
   2108       <!-- end of kind -->
   2109       </tbody>
   2110 
   2111   <!-- end of section -->
   2112   <tr><td colspan="7" id="section_control" class="section">control</td></tr>
   2113 
   2114 
   2115       <tr><td colspan="7" class="kind">controls</td></tr>
   2116 
   2117       <thead class="entries_header">
   2118         <tr>
   2119           <th class="th_name">Property Name</th>
   2120           <th class="th_type">Type</th>
   2121           <th class="th_description">Description</th>
   2122           <th class="th_units">Units</th>
   2123           <th class="th_range">Range</th>
   2124           <th class="th_hal_version">Initial HIDL HAL version</th>
   2125           <th class="th_tags">Tags</th>
   2126         </tr>
   2127       </thead>
   2128 
   2129       <tbody>
   2130 
   2131         
   2132 
   2133         
   2134 
   2135         
   2136 
   2137         
   2138 
   2139                 
   2140           <tr class="entry" id="controls_android.control.aeAntibandingMode">
   2141             <td class="entry_name
   2142              " rowspan="5">
   2143               android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode
   2144             </td>
   2145             <td class="entry_type">
   2146                 <span class="entry_type_name entry_type_name_enum">byte</span>
   2147 
   2148               <span class="entry_type_visibility"> [public]</span>
   2149 
   2150 
   2151               <span class="entry_type_hwlevel">[legacy] </span>
   2152 
   2153 
   2154 
   2155                 <ul class="entry_type_enum">
   2156                   <li>
   2157                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   2158                     <span class="entry_type_enum_notes"><p>The camera device will not adjust exposure duration to
   2159 avoid banding problems.<wbr/></p></span>
   2160                   </li>
   2161                   <li>
   2162                     <span class="entry_type_enum_name">50HZ (v3.2)</span>
   2163                     <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
   2164 avoid banding problems with 50Hz illumination sources.<wbr/></p></span>
   2165                   </li>
   2166                   <li>
   2167                     <span class="entry_type_enum_name">60HZ (v3.2)</span>
   2168                     <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
   2169 avoid banding problems with 60Hz illumination
   2170 sources.<wbr/></p></span>
   2171                   </li>
   2172                   <li>
   2173                     <span class="entry_type_enum_name">AUTO (v3.2)</span>
   2174                     <span class="entry_type_enum_notes"><p>The camera device will automatically adapt its
   2175 antibanding routine to the current illumination
   2176 condition.<wbr/> This is the default mode if AUTO is
   2177 available on given camera device.<wbr/></p></span>
   2178                   </li>
   2179                 </ul>
   2180 
   2181             </td> <!-- entry_type -->
   2182 
   2183             <td class="entry_description">
   2184               <p>The desired setting for the camera device's auto-exposure
   2185 algorithm's antibanding compensation.<wbr/></p>
   2186             </td>
   2187 
   2188             <td class="entry_units">
   2189             </td>
   2190 
   2191             <td class="entry_range">
   2192               <p><a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a></p>
   2193             </td>
   2194 
   2195             <td class="entry_hal_version">
   2196               <p>3.<wbr/>2</p>
   2197             </td>
   2198 
   2199             <td class="entry_tags">
   2200               <ul class="entry_tags">
   2201                   <li><a href="#tag_BC">BC</a></li>
   2202               </ul>
   2203             </td>
   2204 
   2205           </tr>
   2206           <tr class="entries_header">
   2207             <th class="th_details" colspan="6">Details</th>
   2208           </tr>
   2209           <tr class="entry_cont">
   2210             <td class="entry_details" colspan="6">
   2211               <p>Some kinds of lighting fixtures,<wbr/> such as some fluorescent
   2212 lights,<wbr/> flicker at the rate of the power supply frequency
   2213 (60Hz or 50Hz,<wbr/> depending on country).<wbr/> While this is
   2214 typically not noticeable to a person,<wbr/> it can be visible to
   2215 a camera device.<wbr/> If a camera sets its exposure time to the
   2216 wrong value,<wbr/> the flicker may become visible in the
   2217 viewfinder as flicker or in a final captured image,<wbr/> as a
   2218 set of variable-brightness bands across the image.<wbr/></p>
   2219 <p>Therefore,<wbr/> the auto-exposure routines of camera devices
   2220 include antibanding routines that ensure that the chosen
   2221 exposure value will not cause such banding.<wbr/> The choice of
   2222 exposure time depends on the rate of flicker,<wbr/> which the
   2223 camera device can detect automatically,<wbr/> or the expected
   2224 rate can be selected by the application using this
   2225 control.<wbr/></p>
   2226 <p>A given camera device may not support all of the possible
   2227 options for the antibanding mode.<wbr/> The
   2228 <a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a> key contains
   2229 the available modes for a given camera device.<wbr/></p>
   2230 <p>AUTO mode is the default if it is available on given
   2231 camera device.<wbr/> When AUTO mode is not available,<wbr/> the
   2232 default will be either 50HZ or 60HZ,<wbr/> and both 50HZ
   2233 and 60HZ will be available.<wbr/></p>
   2234 <p>If manual exposure control is enabled (by setting
   2235 <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/>
   2236 then this setting has no effect,<wbr/> and the application must
   2237 ensure it selects exposure times that do not cause banding
   2238 issues.<wbr/> The <a href="#dynamic_android.statistics.sceneFlicker">android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker</a> key can assist
   2239 the application in this.<wbr/></p>
   2240             </td>
   2241           </tr>
   2242 
   2243           <tr class="entries_header">
   2244             <th class="th_details" colspan="6">HAL Implementation Details</th>
   2245           </tr>
   2246           <tr class="entry_cont">
   2247             <td class="entry_details" colspan="6">
   2248               <p>For all capture request templates,<wbr/> this field must be set
   2249 to AUTO if AUTO mode is available.<wbr/> If AUTO is not available,<wbr/>
   2250 the default must be either 50HZ or 60HZ,<wbr/> and both 50HZ and
   2251 60HZ must be available.<wbr/></p>
   2252 <p>If manual exposure control is enabled (by setting
   2253 <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/>
   2254 then the exposure values provided by the application must not be
   2255 adjusted for antibanding.<wbr/></p>
   2256             </td>
   2257           </tr>
   2258 
   2259           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   2260            <!-- end of entry -->
   2261         
   2262                 
   2263           <tr class="entry" id="controls_android.control.aeExposureCompensation">
   2264             <td class="entry_name
   2265              " rowspan="3">
   2266               android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation
   2267             </td>
   2268             <td class="entry_type">
   2269                 <span class="entry_type_name">int32</span>
   2270 
   2271               <span class="entry_type_visibility"> [public]</span>
   2272 
   2273 
   2274               <span class="entry_type_hwlevel">[legacy] </span>
   2275 
   2276 
   2277 
   2278 
   2279             </td> <!-- entry_type -->
   2280 
   2281             <td class="entry_description">
   2282               <p>Adjustment to auto-exposure (AE) target image
   2283 brightness.<wbr/></p>
   2284             </td>
   2285 
   2286             <td class="entry_units">
   2287               Compensation steps
   2288             </td>
   2289 
   2290             <td class="entry_range">
   2291               <p><a href="#static_android.control.aeCompensationRange">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range</a></p>
   2292             </td>
   2293 
   2294             <td class="entry_hal_version">
   2295               <p>3.<wbr/>2</p>
   2296             </td>
   2297 
   2298             <td class="entry_tags">
   2299               <ul class="entry_tags">
   2300                   <li><a href="#tag_BC">BC</a></li>
   2301               </ul>
   2302             </td>
   2303 
   2304           </tr>
   2305           <tr class="entries_header">
   2306             <th class="th_details" colspan="6">Details</th>
   2307           </tr>
   2308           <tr class="entry_cont">
   2309             <td class="entry_details" colspan="6">
   2310               <p>The adjustment is measured as a count of steps,<wbr/> with the
   2311 step size defined by <a href="#static_android.control.aeCompensationStep">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step</a> and the
   2312 allowed range by <a href="#static_android.control.aeCompensationRange">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range</a>.<wbr/></p>
   2313 <p>For example,<wbr/> if the exposure value (EV) step is 0.<wbr/>333,<wbr/> '6'
   2314 will mean an exposure compensation of +2 EV; -3 will mean an
   2315 exposure compensation of -1 EV.<wbr/> One EV represents a doubling
   2316 of image brightness.<wbr/> Note that this control will only be
   2317 effective if <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> <code>!=</code> OFF.<wbr/> This control
   2318 will take effect even when <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> <code>== true</code>.<wbr/></p>
   2319 <p>In the event of exposure compensation value being changed,<wbr/> camera device
   2320 may take several frames to reach the newly requested exposure target.<wbr/>
   2321 During that time,<wbr/> <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> field will be in the SEARCHING
   2322 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
   2323 change from SEARCHING to either CONVERGED,<wbr/> LOCKED (if AE lock is enabled),<wbr/> or
   2324 FLASH_<wbr/>REQUIRED (if the scene is too dark for still capture).<wbr/></p>
   2325             </td>
   2326           </tr>
   2327 
   2328 
   2329           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   2330            <!-- end of entry -->
   2331         
   2332                 
   2333           <tr class="entry" id="controls_android.control.aeLock">
   2334             <td class="entry_name
   2335              " rowspan="3">
   2336               android.<wbr/>control.<wbr/>ae<wbr/>Lock
   2337             </td>
   2338             <td class="entry_type">
   2339                 <span class="entry_type_name entry_type_name_enum">byte</span>
   2340 
   2341               <span class="entry_type_visibility"> [public as boolean]</span>
   2342 
   2343 
   2344               <span class="entry_type_hwlevel">[legacy] </span>
   2345 
   2346 
   2347 
   2348                 <ul class="entry_type_enum">
   2349                   <li>
   2350                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   2351                     <span class="entry_type_enum_notes"><p>Auto-exposure lock is disabled; the AE algorithm
   2352 is free to update its parameters.<wbr/></p></span>
   2353                   </li>
   2354                   <li>
   2355                     <span class="entry_type_enum_name">ON (v3.2)</span>
   2356                     <span class="entry_type_enum_notes"><p>Auto-exposure lock is enabled; the AE algorithm
   2357 must not update the exposure and sensitivity parameters
   2358 while the lock is active.<wbr/></p>
   2359 <p><a href="#controls_android.control.aeExposureCompensation">android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation</a> setting changes
   2360 will still take effect while auto-exposure is locked.<wbr/></p>
   2361 <p>Some rare LEGACY devices may not support
   2362 this,<wbr/> in which case the value will always be overridden to OFF.<wbr/></p></span>
   2363                   </li>
   2364                 </ul>
   2365 
   2366             </td> <!-- entry_type -->
   2367 
   2368             <td class="entry_description">
   2369               <p>Whether auto-exposure (AE) is currently locked to its latest
   2370 calculated values.<wbr/></p>
   2371             </td>
   2372 
   2373             <td class="entry_units">
   2374             </td>
   2375 
   2376             <td class="entry_range">
   2377             </td>
   2378 
   2379             <td class="entry_hal_version">
   2380               <p>3.<wbr/>2</p>
   2381             </td>
   2382 
   2383             <td class="entry_tags">
   2384               <ul class="entry_tags">
   2385                   <li><a href="#tag_BC">BC</a></li>
   2386               </ul>
   2387             </td>
   2388 
   2389           </tr>
   2390           <tr class="entries_header">
   2391             <th class="th_details" colspan="6">Details</th>
   2392           </tr>
   2393           <tr class="entry_cont">
   2394             <td class="entry_details" colspan="6">
   2395               <p>When set to <code>true</code> (ON),<wbr/> the AE algorithm is locked to its latest parameters,<wbr/>
   2396 and will not change exposure settings until the lock is set to <code>false</code> (OFF).<wbr/></p>
   2397 <p>Note that even when AE is locked,<wbr/> the flash may be fired if
   2398 the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is ON_<wbr/>AUTO_<wbr/>FLASH /<wbr/>
   2399 ON_<wbr/>ALWAYS_<wbr/>FLASH /<wbr/> ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE.<wbr/></p>
   2400 <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
   2401 is ON,<wbr/> the camera device will still adjust its exposure value.<wbr/></p>
   2402 <p>If AE precapture is triggered (see <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>)
   2403 when AE is already locked,<wbr/> the camera device will not change the exposure time
   2404 (<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>)
   2405 parameters.<wbr/> The flash may be fired if the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>
   2406 is ON_<wbr/>AUTO_<wbr/>FLASH/<wbr/>ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE and the scene is too dark.<wbr/> If the
   2407 <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/>
   2408 Similarly,<wbr/> AE precapture trigger CANCEL has no effect when AE is already locked.<wbr/></p>
   2409 <p>When an AE precapture sequence is triggered,<wbr/> AE unlock will not be able to unlock
   2410 the AE if AE is locked by the camera device internally during precapture metering
   2411 sequence In other words,<wbr/> submitting requests with AE unlock has no effect for an
   2412 ongoing precapture metering sequence.<wbr/> Otherwise,<wbr/> the precapture metering sequence
   2413 will never succeed in a sequence of preview requests where AE lock is always set
   2414 to <code>false</code>.<wbr/></p>
   2415 <p>Since the camera device has a pipeline of in-flight requests,<wbr/> the settings that
   2416 get locked do not necessarily correspond to the settings that were present in the
   2417 latest capture result received from the camera device,<wbr/> since additional captures
   2418 and AE updates may have occurred even before the result was sent out.<wbr/> If an
   2419 application is switching between automatic and manual control and wishes to eliminate
   2420 any flicker during the switch,<wbr/> the following procedure is recommended:</p>
   2421 <ol>
   2422 <li>Starting in auto-AE mode:</li>
   2423 <li>Lock AE</li>
   2424 <li>Wait for the first result to be output that has the AE locked</li>
   2425 <li>Copy exposure settings from that result into a request,<wbr/> set the request to manual AE</li>
   2426 <li>Submit the capture request,<wbr/> proceed to run manual AE as desired.<wbr/></li>
   2427 </ol>
   2428 <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>
   2429             </td>
   2430           </tr>
   2431 
   2432 
   2433           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   2434            <!-- end of entry -->
   2435         
   2436                 
   2437           <tr class="entry" id="controls_android.control.aeMode">
   2438             <td class="entry_name
   2439              " rowspan="3">
   2440               android.<wbr/>control.<wbr/>ae<wbr/>Mode
   2441             </td>
   2442             <td class="entry_type">
   2443                 <span class="entry_type_name entry_type_name_enum">byte</span>
   2444 
   2445               <span class="entry_type_visibility"> [public]</span>
   2446 
   2447 
   2448               <span class="entry_type_hwlevel">[legacy] </span>
   2449 
   2450 
   2451 
   2452                 <ul class="entry_type_enum">
   2453                   <li>
   2454                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   2455                     <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled.<wbr/></p>
   2456 <p>The application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
   2457 <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
   2458 <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera
   2459 device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's
   2460 a flash unit for this camera device.<wbr/></p>
   2461 <p>Note that auto-white balance (AWB) and auto-focus (AF)
   2462 behavior is device dependent when AE is in OFF mode.<wbr/>
   2463 To have consistent behavior across different devices,<wbr/>
   2464 it is recommended to either set AWB and AF to OFF mode
   2465 or lock AWB and AF before setting AE to OFF.<wbr/>
   2466 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/>
   2467 <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>
   2468 for more details.<wbr/></p>
   2469 <p>LEGACY devices do not support the OFF mode and will
   2470 override attempts to use this value to ON.<wbr/></p></span>
   2471                   </li>
   2472                   <li>
   2473                     <span class="entry_type_enum_name">ON (v3.2)</span>
   2474                     <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
   2475 with no flash control.<wbr/></p>
   2476 <p>The application's values for
   2477 <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
   2478 <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
   2479 <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The
   2480 application has control over the various
   2481 android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
   2482                   </li>
   2483                   <li>
   2484                     <span class="entry_type_enum_name">ON_AUTO_FLASH (v3.2)</span>
   2485                     <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
   2486 the camera's flash unit,<wbr/> firing it in low-light
   2487 conditions.<wbr/></p>
   2488 <p>The flash may be fired during a precapture sequence
   2489 (triggered by <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and
   2490 may be fired for captures for which the
   2491 <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
   2492 STILL_<wbr/>CAPTURE</p></span>
   2493                   </li>
   2494                   <li>
   2495                     <span class="entry_type_enum_name">ON_ALWAYS_FLASH (v3.2)</span>
   2496                     <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
   2497 the camera's flash unit,<wbr/> always firing it for still
   2498 captures.<wbr/></p>
   2499 <p>The flash may be fired during a precapture sequence
   2500 (triggered by <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and
   2501 will always be fired for captures for which the
   2502 <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
   2503 STILL_<wbr/>CAPTURE</p></span>
   2504                   </li>
   2505                   <li>
   2506                     <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE (v3.2)</span>
   2507                     <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
   2508 reduction.<wbr/></p>
   2509 <p>If deemed necessary by the camera device,<wbr/> a red eye
   2510 reduction flash will fire during the precapture
   2511 sequence.<wbr/></p></span>
   2512                   </li>
   2513                   <li>
   2514                     <span class="entry_type_enum_name">ON_EXTERNAL_FLASH (v3.3)</span>
   2515                     <span class="entry_type_enum_notes"><p>An external flash has been turned on.<wbr/></p>
   2516 <p>It informs the camera device that an external flash has been turned on,<wbr/> and that
   2517 metering (and continuous focus if active) should be quickly recaculated to account
   2518 for the external flash.<wbr/> Otherwise,<wbr/> this mode acts like ON.<wbr/></p>
   2519 <p>When the external flash is turned off,<wbr/> AE mode should be changed to one of the
   2520 other available AE modes.<wbr/></p>
   2521 <p>If the camera device supports AE external flash mode,<wbr/> <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> must
   2522 be FLASH_<wbr/>REQUIRED after the camera device finishes AE scan and it's too dark without
   2523 flash.<wbr/></p></span>
   2524                   </li>
   2525                 </ul>
   2526 
   2527             </td> <!-- entry_type -->
   2528 
   2529             <td class="entry_description">
   2530               <p>The desired mode for the camera device's
   2531 auto-exposure routine.<wbr/></p>
   2532             </td>
   2533 
   2534             <td class="entry_units">
   2535             </td>
   2536 
   2537             <td class="entry_range">
   2538               <p><a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a></p>
   2539             </td>
   2540 
   2541             <td class="entry_hal_version">
   2542               <p>3.<wbr/>2</p>
   2543             </td>
   2544 
   2545             <td class="entry_tags">
   2546               <ul class="entry_tags">
   2547                   <li><a href="#tag_BC">BC</a></li>
   2548               </ul>
   2549             </td>
   2550 
   2551           </tr>
   2552           <tr class="entries_header">
   2553             <th class="th_details" colspan="6">Details</th>
   2554           </tr>
   2555           <tr class="entry_cont">
   2556             <td class="entry_details" colspan="6">
   2557               <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
   2558 AUTO.<wbr/></p>
   2559 <p>When set to any of the ON modes,<wbr/> the camera device's
   2560 auto-exposure routine is enabled,<wbr/> overriding the
   2561 application's selected exposure time,<wbr/> sensor sensitivity,<wbr/>
   2562 and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
   2563 <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
   2564 <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes
   2565 is selected,<wbr/> the camera device's flash unit controls are
   2566 also overridden.<wbr/></p>
   2567 <p>The FLASH modes are only available if the camera device
   2568 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>
   2569 <p>If flash TORCH mode is desired,<wbr/> this field must be set to
   2570 ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p>
   2571 <p>When set to any of the ON modes,<wbr/> the values chosen by the
   2572 camera device auto-exposure routine for the overridden
   2573 fields for a given capture will be available in its
   2574 CaptureResult.<wbr/></p>
   2575             </td>
   2576           </tr>
   2577 
   2578 
   2579           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   2580            <!-- end of entry -->
   2581         
   2582                 
   2583           <tr class="entry" id="controls_android.control.aeRegions">
   2584             <td class="entry_name
   2585              " rowspan="5">
   2586               android.<wbr/>control.<wbr/>ae<wbr/>Regions
   2587             </td>
   2588             <td class="entry_type">
   2589                 <span class="entry_type_name">int32</span>
   2590                 <span class="entry_type_container">x</span>
   2591 
   2592                 <span class="entry_type_array">
   2593                   5 x area_count
   2594                 </span>
   2595               <span class="entry_type_visibility"> [public as meteringRectangle]</span>
   2596 
   2597 
   2598 
   2599 
   2600 
   2601 
   2602             </td> <!-- entry_type -->
   2603 
   2604             <td class="entry_description">
   2605               <p>List of metering areas to use for auto-exposure adjustment.<wbr/></p>
   2606             </td>
   2607 
   2608             <td class="entry_units">
   2609               Pixel coordinates within android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
   2610             </td>
   2611 
   2612             <td class="entry_range">
   2613               <p>Coordinates must be between <code>[(0,<wbr/>0),<wbr/> (width,<wbr/> height))</code> of
   2614 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></p>
   2615             </td>
   2616 
   2617             <td class="entry_hal_version">
   2618               <p>3.<wbr/>2</p>
   2619             </td>
   2620 
   2621             <td class="entry_tags">
   2622               <ul class="entry_tags">
   2623                   <li><a href="#tag_BC">BC</a></li>
   2624               </ul>
   2625             </td>
   2626 
   2627           </tr>
   2628           <tr class="entries_header">
   2629             <th class="th_details" colspan="6">Details</th>
   2630           </tr>
   2631           <tr class="entry_cont">
   2632             <td class="entry_details" colspan="6">
   2633               <p>Not available if <a href="#static_android.control.maxRegionsAe">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Ae</a> is 0.<wbr/>
   2634 Otherwise will always be present.<wbr/></p>
   2635 <p>The maximum number of regions supported by the device is determined by the value
   2636 of <a href="#static_android.control.maxRegionsAe">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Ae</a>.<wbr/></p>
   2637 <p>The coordinate system is based on the active pixel array,<wbr/>
   2638 with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
   2639 (<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
   2640 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
   2641 bottom-right pixel in the active pixel array.<wbr/></p>
   2642 <p>The weight must be within <code>[0,<wbr/> 1000]</code>,<wbr/> and represents a weight
   2643 for every pixel in the area.<wbr/> This means that a large metering area
   2644 with the same weight as a smaller area will have more effect in
   2645 the metering result.<wbr/> Metering areas can partially overlap and the
   2646 camera device will add the weights in the overlap region.<wbr/></p>
   2647 <p>The weights are relative to weights of other exposure metering regions,<wbr/> so if only one
   2648 region is used,<wbr/> all non-zero weights will have the same effect.<wbr/> A region with 0
   2649 weight is ignored.<wbr/></p>
   2650 <p>If all regions have 0 weight,<wbr/> then no specific metering area needs to be used by the
   2651 camera device.<wbr/></p>
   2652 <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
   2653 capture result metadata,<wbr/> the camera device will ignore the sections outside the crop
   2654 region and output only the intersection rectangle as the metering region in the result
   2655 metadata.<wbr/>  If the region is entirely outside the crop region,<wbr/> it will be ignored and
   2656 not reported in the result metadata.<wbr/></p>
   2657             </td>
   2658           </tr>
   2659 
   2660           <tr class="entries_header">
   2661             <th class="th_details" colspan="6">HAL Implementation Details</th>
   2662           </tr>
   2663           <tr class="entry_cont">
   2664             <td class="entry_details" colspan="6">
   2665               <p>The HAL level representation of MeteringRectangle[] is a
   2666 int[5 * area_<wbr/>count].<wbr/>
   2667 Every five elements represent a metering region of
   2668 (xmin,<wbr/> ymin,<wbr/> xmax,<wbr/> ymax,<wbr/> weight).<wbr/>
   2669 The rectangle is defined to be inclusive on xmin and ymin,<wbr/> but
   2670 exclusive on xmax and ymax.<wbr/></p>
   2671             </td>
   2672           </tr>
   2673 
   2674           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   2675            <!-- end of entry -->
   2676         
   2677                 
   2678           <tr class="entry" id="controls_android.control.aeTargetFpsRange">
   2679             <td class="entry_name
   2680              " rowspan="3">
   2681               android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range
   2682             </td>
   2683             <td class="entry_type">
   2684                 <span class="entry_type_name">int32</span>
   2685                 <span class="entry_type_container">x</span>
   2686 
   2687                 <span class="entry_type_array">
   2688                   2
   2689                 </span>
   2690               <span class="entry_type_visibility"> [public as rangeInt]</span>
   2691 
   2692 
   2693               <span class="entry_type_hwlevel">[legacy] </span>
   2694 
   2695 
   2696 
   2697 
   2698             </td> <!-- entry_type -->
   2699 
   2700             <td class="entry_description">
   2701               <p>Range over which the auto-exposure routine can
   2702 adjust the capture frame rate to maintain good
   2703 exposure.<wbr/></p>
   2704             </td>
   2705 
   2706             <td class="entry_units">
   2707               Frames per second (FPS)
   2708             </td>
   2709 
   2710             <td class="entry_range">
   2711               <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>
   2712             </td>
   2713 
   2714             <td class="entry_hal_version">
   2715               <p>3.<wbr/>2</p>
   2716             </td>
   2717 
   2718             <td class="entry_tags">
   2719               <ul class="entry_tags">
   2720                   <li><a href="#tag_BC">BC</a></li>
   2721               </ul>
   2722             </td>
   2723 
   2724           </tr>
   2725           <tr class="entries_header">
   2726             <th class="th_details" colspan="6">Details</th>
   2727           </tr>
   2728           <tr class="entry_cont">
   2729             <td class="entry_details" colspan="6">
   2730               <p>Only constrains auto-exposure (AE) algorithm,<wbr/> not
   2731 manual control of <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a> and
   2732 <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>.<wbr/></p>
   2733             </td>
   2734           </tr>
   2735 
   2736 
   2737           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   2738            <!-- end of entry -->
   2739         
   2740                 
   2741           <tr class="entry" id="controls_android.control.aePrecaptureTrigger">
   2742             <td class="entry_name
   2743              " rowspan="5">
   2744               android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger
   2745             </td>
   2746             <td class="entry_type">
   2747                 <span class="entry_type_name entry_type_name_enum">byte</span>
   2748 
   2749               <span class="entry_type_visibility"> [public]</span>
   2750 
   2751 
   2752               <span class="entry_type_hwlevel">[limited] </span>
   2753 
   2754 
   2755 
   2756                 <ul class="entry_type_enum">
   2757                   <li>
   2758                     <span class="entry_type_enum_name">IDLE (v3.2)</span>
   2759                     <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
   2760                   </li>
   2761                   <li>
   2762                     <span class="entry_type_enum_name">START (v3.2)</span>
   2763                     <span class="entry_type_enum_notes"><p>The precapture metering sequence will be started
   2764 by the camera device.<wbr/></p>
   2765 <p>The exact effect of the precapture trigger depends on
   2766 the current AE mode and state.<wbr/></p></span>
   2767                   </li>
   2768                   <li>
   2769                     <span class="entry_type_enum_name">CANCEL (v3.2)</span>
   2770                     <span class="entry_type_enum_notes"><p>The camera device will cancel any currently active or completed
   2771 precapture metering sequence,<wbr/> the auto-exposure routine will return to its
   2772 initial state.<wbr/></p></span>
   2773                   </li>
   2774                 </ul>
   2775 
   2776             </td> <!-- entry_type -->
   2777 
   2778             <td class="entry_description">
   2779               <p>Whether the camera device will trigger a precapture
   2780 metering sequence when it processes this request.<wbr/></p>
   2781             </td>
   2782 
   2783             <td class="entry_units">
   2784             </td>
   2785 
   2786             <td class="entry_range">
   2787             </td>
   2788 
   2789             <td class="entry_hal_version">
   2790               <p>3.<wbr/>2</p>
   2791             </td>
   2792 
   2793             <td class="entry_tags">
   2794               <ul class="entry_tags">
   2795                   <li><a href="#tag_BC">BC</a></li>
   2796               </ul>
   2797             </td>
   2798 
   2799           </tr>
   2800           <tr class="entries_header">
   2801             <th class="th_details" colspan="6">Details</th>
   2802           </tr>
   2803           <tr class="entry_cont">
   2804             <td class="entry_details" colspan="6">
   2805               <p>This entry is normally set to IDLE,<wbr/> or is not
   2806 included at all in the request settings.<wbr/> When included and
   2807 set to START,<wbr/> the camera device will trigger the auto-exposure (AE)
   2808 precapture metering sequence.<wbr/></p>
   2809 <p>When set to CANCEL,<wbr/> the camera device will cancel any active
   2810 precapture metering trigger,<wbr/> and return to its initial AE state.<wbr/>
   2811 If a precapture metering sequence is already completed,<wbr/> and the camera
   2812 device has implicitly locked the AE for subsequent still capture,<wbr/> the
   2813 CANCEL trigger will unlock the AE and return to its initial AE state.<wbr/></p>
   2814 <p>The precapture sequence should be triggered before starting a
   2815 high-quality still capture for final metering decisions to
   2816 be made,<wbr/> and for firing pre-capture flash pulses to estimate
   2817 scene brightness and required final capture flash power,<wbr/> when
   2818 the flash is enabled.<wbr/></p>
   2819 <p>Normally,<wbr/> this entry should be set to START for only a
   2820 single request,<wbr/> and the application should wait until the
   2821 sequence completes before starting a new one.<wbr/></p>
   2822 <p>When a precapture metering sequence is finished,<wbr/> the camera device
   2823 may lock the auto-exposure routine internally to be able to accurately expose the
   2824 subsequent still capture image (<code><a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> == STILL_<wbr/>CAPTURE</code>).<wbr/>
   2825 For this case,<wbr/> the AE may not resume normal scan if no subsequent still capture is
   2826 submitted.<wbr/> To ensure that the AE routine restarts normal scan,<wbr/> the application should
   2827 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
   2828 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
   2829 still capture request after the precapture sequence completes.<wbr/> Alternatively,<wbr/> for
   2830 API level 23 or newer devices,<wbr/> the CANCEL can be used to unlock the camera device
   2831 internally locked AE if the application doesn't submit a still capture request after
   2832 the AE precapture trigger.<wbr/> Note that,<wbr/> the CANCEL was added in API level 23,<wbr/> and must not
   2833 be used in devices that have earlier API levels.<wbr/></p>
   2834 <p>The exact effect of auto-exposure (AE) precapture trigger
   2835 depends on the current AE mode and state; see
   2836 <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> for AE precapture state transition
   2837 details.<wbr/></p>
   2838 <p>On LEGACY-level devices,<wbr/> the precapture trigger is not supported;
   2839 capturing a high-resolution JPEG image will automatically trigger a
   2840 precapture sequence before the high-resolution capture,<wbr/> including
   2841 potentially firing a pre-capture flash.<wbr/></p>
   2842 <p>Using the precapture trigger and the auto-focus trigger <a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a>
   2843 simultaneously is allowed.<wbr/> However,<wbr/> since these triggers often require cooperation between
   2844 the auto-focus and auto-exposure routines (for example,<wbr/> the may need to be enabled for a
   2845 focus sweep),<wbr/> the camera device may delay acting on a later trigger until the previous
   2846 trigger has been fully handled.<wbr/> This may lead to longer intervals between the trigger and
   2847 changes to <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> indicating the start of the precapture sequence,<wbr/> for
   2848 example.<wbr/></p>
   2849 <p>If both the precapture and the auto-focus trigger are activated on the same request,<wbr/> then
   2850 the camera device will complete them in the optimal order for that device.<wbr/></p>
   2851             </td>
   2852           </tr>
   2853 
   2854           <tr class="entries_header">
   2855             <th class="th_details" colspan="6">HAL Implementation Details</th>
   2856           </tr>
   2857           <tr class="entry_cont">
   2858             <td class="entry_details" colspan="6">
   2859               <p>The HAL must support triggering the AE precapture trigger while an AF trigger is active
   2860 (and vice versa),<wbr/> or at the same time as the AF trigger.<wbr/>  It is acceptable for the HAL to
   2861 treat these as two consecutive triggers,<wbr/> for example handling the AF trigger and then the
   2862 AE trigger.<wbr/>  Or the HAL may choose to optimize the case with both triggers fired at once,<wbr/>
   2863 to minimize the latency for converging both focus and exposure/<wbr/>flash usage.<wbr/></p>
   2864             </td>
   2865           </tr>
   2866 
   2867           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   2868            <!-- end of entry -->
   2869         
   2870                 
   2871           <tr class="entry" id="controls_android.control.afMode">
   2872             <td class="entry_name
   2873              " rowspan="5">
   2874               android.<wbr/>control.<wbr/>af<wbr/>Mode
   2875             </td>
   2876             <td class="entry_type">
   2877                 <span class="entry_type_name entry_type_name_enum">byte</span>
   2878 
   2879               <span class="entry_type_visibility"> [public]</span>
   2880 
   2881 
   2882               <span class="entry_type_hwlevel">[legacy] </span>
   2883 
   2884 
   2885 
   2886                 <ul class="entry_type_enum">
   2887                   <li>
   2888                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   2889                     <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
   2890 <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
   2891 application.<wbr/></p></span>
   2892                   </li>
   2893                   <li>
   2894                     <span class="entry_type_enum_name">AUTO (v3.2)</span>
   2895                     <span class="entry_type_enum_notes"><p>Basic automatic focus mode.<wbr/></p>
   2896 <p>In this mode,<wbr/> the lens does not move unless
   2897 the autofocus trigger action is called.<wbr/> When that trigger
   2898 is activated,<wbr/> AF will transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
   2899 the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
   2900 <p>Always supported if lens is not fixed focus.<wbr/></p>
   2901 <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
   2902 is fixed-focus.<wbr/></p>
   2903 <p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
   2904 and sets the AF state to INACTIVE.<wbr/></p></span>
   2905                   </li>
   2906                   <li>
   2907                     <span class="entry_type_enum_name">MACRO (v3.2)</span>
   2908                     <span class="entry_type_enum_notes"><p>Close-up focusing mode.<wbr/></p>
   2909 <p>In this mode,<wbr/> the lens does not move unless the
   2910 autofocus trigger action is called.<wbr/> When that trigger is
   2911 activated,<wbr/> AF will transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
   2912 the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/> This
   2913 mode is optimized for focusing on objects very close to
   2914 the camera.<wbr/></p>
   2915 <p>When that trigger is activated,<wbr/> AF will transition to
   2916 ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or
   2917 NOT_<wbr/>FOCUSED).<wbr/> Triggering cancel AF resets the lens
   2918 position to default,<wbr/> and sets the AF state to
   2919 INACTIVE.<wbr/></p></span>
   2920                   </li>
   2921                   <li>
   2922                     <span class="entry_type_enum_name">CONTINUOUS_VIDEO (v3.2)</span>
   2923                     <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
   2924 position continually to attempt to provide a
   2925 constantly-in-focus image stream.<wbr/></p>
   2926 <p>The focusing behavior should be suitable for good quality
   2927 video recording; typically this means slower focus
   2928 movement and no overshoots.<wbr/> When the AF trigger is not
   2929 involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/>
   2930 and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED
   2931 states as appropriate.<wbr/> When the AF trigger is activated,<wbr/>
   2932 the algorithm should immediately transition into
   2933 AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
   2934 lens position until a cancel AF trigger is received.<wbr/></p>
   2935 <p>Once cancel is received,<wbr/> the algorithm should transition
   2936 back to INACTIVE and resume passive scan.<wbr/> Note that this
   2937 behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an
   2938 ongoing PASSIVE_<wbr/>SCAN must immediately be
   2939 canceled.<wbr/></p></span>
   2940                   </li>
   2941                   <li>
   2942                     <span class="entry_type_enum_name">CONTINUOUS_PICTURE (v3.2)</span>
   2943                     <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
   2944 position continually to attempt to provide a
   2945 constantly-in-focus image stream.<wbr/></p>
   2946 <p>The focusing behavior should be suitable for still image
   2947 capture; typically this means focusing as fast as
   2948 possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF
   2949 algorithm should start in INACTIVE state,<wbr/> and then
   2950 transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as
   2951 appropriate as it attempts to maintain focus.<wbr/> When the AF
   2952 trigger is activated,<wbr/> the algorithm should finish its
   2953 PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into
   2954 AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
   2955 lens position until a cancel AF trigger is received.<wbr/></p>
   2956 <p>When the AF cancel trigger is activated,<wbr/> the algorithm
   2957 should transition back to INACTIVE and then act as if it
   2958 has just been started.<wbr/></p></span>
   2959                   </li>
   2960                   <li>
   2961                     <span class="entry_type_enum_name">EDOF (v3.2)</span>
   2962                     <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus) mode.<wbr/></p>
   2963 <p>The camera device will produce images with an extended
   2964 depth of field automatically; no special focusing
   2965 operations need to be done before taking a picture.<wbr/></p>
   2966 <p>AF triggers are ignored,<wbr/> and the AF state will always be
   2967 INACTIVE.<wbr/></p></span>
   2968                   </li>
   2969                 </ul>
   2970 
   2971             </td> <!-- entry_type -->
   2972 
   2973             <td class="entry_description">
   2974               <p>Whether auto-focus (AF) is currently enabled,<wbr/> and what
   2975 mode it is set to.<wbr/></p>
   2976             </td>
   2977 
   2978             <td class="entry_units">
   2979             </td>
   2980 
   2981             <td class="entry_range">
   2982               <p><a href="#static_android.control.afAvailableModes">android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes</a></p>
   2983             </td>
   2984 
   2985             <td class="entry_hal_version">
   2986               <p>3.<wbr/>2</p>
   2987             </td>
   2988 
   2989             <td class="entry_tags">
   2990               <ul class="entry_tags">
   2991                   <li><a href="#tag_BC">BC</a></li>
   2992               </ul>
   2993             </td>
   2994 
   2995           </tr>
   2996           <tr class="entries_header">
   2997             <th class="th_details" colspan="6">Details</th>
   2998           </tr>
   2999           <tr class="entry_cont">
   3000             <td class="entry_details" colspan="6">
   3001               <p>Only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> = AUTO and the lens is not fixed focus
   3002 (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
   3003 when <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/> the behavior of AF is device
   3004 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
   3005 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>
   3006 <p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
   3007 the camera device will report the current AF status in <a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a>
   3008 in result metadata.<wbr/></p>
   3009             </td>
   3010           </tr>
   3011 
   3012           <tr class="entries_header">
   3013             <th class="th_details" colspan="6">HAL Implementation Details</th>
   3014           </tr>
   3015           <tr class="entry_cont">
   3016             <td class="entry_details" colspan="6">
   3017               <p>When afMode is AUTO or MACRO,<wbr/> the lens must not move until an AF trigger is sent in a
   3018 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
   3019 up with either FOCUSED_<wbr/>LOCKED or NOT_<wbr/>FOCUSED_<wbr/>LOCKED state (see
   3020 <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
   3021 locked and will not move.<wbr/> If camera movement (e.<wbr/>g.<wbr/> tilting camera) causes the lens to move
   3022 after the lens is locked,<wbr/> the HAL must compensate this movement appropriately such that
   3023 the same focal plane remains in focus.<wbr/></p>
   3024 <p>When afMode is one of the continuous auto focus modes,<wbr/> the HAL is free to start a AF
   3025 scan whenever it's not locked.<wbr/> When the lens is locked after an AF trigger
   3026 (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
   3027 same lock behavior as above.<wbr/></p>
   3028 <p>When afMode is OFF,<wbr/> the application controls focus manually.<wbr/> The accuracy of the
   3029 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/>
   3030 However,<wbr/> the lens must not move regardless of the camera movement for any focus distance
   3031 manual control.<wbr/></p>
   3032 <p>To put this in concrete terms,<wbr/> if the camera has lens elements which may move based on
   3033 camera orientation or motion (e.<wbr/>g.<wbr/> due to gravity),<wbr/> then the HAL must drive the lens to
   3034 remain in a fixed position invariant to the camera's orientation or motion,<wbr/> for example,<wbr/>
   3035 by using accelerometer measurements in the lens control logic.<wbr/> This is a typical issue
   3036 that will arise on camera modules with open-loop VCMs.<wbr/></p>
   3037             </td>
   3038           </tr>
   3039 
   3040           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   3041            <!-- end of entry -->
   3042         
   3043                 
   3044           <tr class="entry" id="controls_android.control.afRegions">
   3045             <td class="entry_name
   3046              " rowspan="5">
   3047               android.<wbr/>control.<wbr/>af<wbr/>Regions
   3048             </td>
   3049             <td class="entry_type">
   3050                 <span class="entry_type_name">int32</span>
   3051                 <span class="entry_type_container">x</span>
   3052 
   3053                 <span class="entry_type_array">
   3054                   5 x area_count
   3055                 </span>
   3056               <span class="entry_type_visibility"> [public as meteringRectangle]</span>
   3057 
   3058 
   3059 
   3060 
   3061 
   3062 
   3063             </td> <!-- entry_type -->
   3064 
   3065             <td class="entry_description">
   3066               <p>List of metering areas to use for auto-focus.<wbr/></p>
   3067             </td>
   3068 
   3069             <td class="entry_units">
   3070               Pixel coordinates within android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
   3071             </td>
   3072 
   3073             <td class="entry_range">
   3074               <p>Coordinates must be between <code>[(0,<wbr/>0),<wbr/> (width,<wbr/> height))</code> of
   3075 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></p>
   3076             </td>
   3077 
   3078             <td class="entry_hal_version">
   3079               <p>3.<wbr/>2</p>
   3080             </td>
   3081 
   3082             <td class="entry_tags">
   3083               <ul class="entry_tags">
   3084                   <li><a href="#tag_BC">BC</a></li>
   3085               </ul>
   3086             </td>
   3087 
   3088           </tr>
   3089           <tr class="entries_header">
   3090             <th class="th_details" colspan="6">Details</th>
   3091           </tr>
   3092           <tr class="entry_cont">
   3093             <td class="entry_details" colspan="6">
   3094               <p>Not available if <a href="#static_android.control.maxRegionsAf">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Af</a> is 0.<wbr/>
   3095 Otherwise will always be present.<wbr/></p>
   3096 <p>The maximum number of focus areas supported by the device is determined by the value
   3097 of <a href="#static_android.control.maxRegionsAf">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Af</a>.<wbr/></p>
   3098 <p>The coordinate system is based on the active pixel array,<wbr/>
   3099 with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
   3100 (<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
   3101 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
   3102 bottom-right pixel in the active pixel array.<wbr/></p>
   3103 <p>The weight must be within <code>[0,<wbr/> 1000]</code>,<wbr/> and represents a weight
   3104 for every pixel in the area.<wbr/> This means that a large metering area
   3105 with the same weight as a smaller area will have more effect in
   3106 the metering result.<wbr/> Metering areas can partially overlap and the
   3107 camera device will add the weights in the overlap region.<wbr/></p>
   3108 <p>The weights are relative to weights of other metering regions,<wbr/> so if only one region
   3109 is used,<wbr/> all non-zero weights will have the same effect.<wbr/> A region with 0 weight is
   3110 ignored.<wbr/></p>
   3111 <p>If all regions have 0 weight,<wbr/> then no specific metering area needs to be used by the
   3112 camera device.<wbr/> The capture result will either be a zero weight region as well,<wbr/> or
   3113 the region selected by the camera device as the focus area of interest.<wbr/></p>
   3114 <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
   3115 capture result metadata,<wbr/> the camera device will ignore the sections outside the crop
   3116 region and output only the intersection rectangle as the metering region in the result
   3117 metadata.<wbr/> If the region is entirely outside the crop region,<wbr/> it will be ignored and
   3118 not reported in the result metadata.<wbr/></p>
   3119             </td>
   3120           </tr>
   3121 
   3122           <tr class="entries_header">
   3123             <th class="th_details" colspan="6">HAL Implementation Details</th>
   3124           </tr>
   3125           <tr class="entry_cont">
   3126             <td class="entry_details" colspan="6">
   3127               <p>The HAL level representation of MeteringRectangle[] is a
   3128 int[5 * area_<wbr/>count].<wbr/>
   3129 Every five elements represent a metering region of
   3130 (xmin,<wbr/> ymin,<wbr/> xmax,<wbr/> ymax,<wbr/> weight).<wbr/>
   3131 The rectangle is defined to be inclusive on xmin and ymin,<wbr/> but
   3132 exclusive on xmax and ymax.<wbr/></p>
   3133             </td>
   3134           </tr>
   3135 
   3136           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   3137            <!-- end of entry -->
   3138         
   3139                 
   3140           <tr class="entry" id="controls_android.control.afTrigger">
   3141             <td class="entry_name
   3142              " rowspan="5">
   3143               android.<wbr/>control.<wbr/>af<wbr/>Trigger
   3144             </td>
   3145             <td class="entry_type">
   3146                 <span class="entry_type_name entry_type_name_enum">byte</span>
   3147 
   3148               <span class="entry_type_visibility"> [public]</span>
   3149 
   3150 
   3151               <span class="entry_type_hwlevel">[legacy] </span>
   3152 
   3153 
   3154 
   3155                 <ul class="entry_type_enum">
   3156                   <li>
   3157                     <span class="entry_type_enum_name">IDLE (v3.2)</span>
   3158                     <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
   3159                   </li>
   3160                   <li>
   3161                     <span class="entry_type_enum_name">START (v3.2)</span>
   3162                     <span class="entry_type_enum_notes"><p>Autofocus will trigger now.<wbr/></p></span>
   3163                   </li>
   3164                   <li>
   3165                     <span class="entry_type_enum_name">CANCEL (v3.2)</span>
   3166                     <span class="entry_type_enum_notes"><p>Autofocus will return to its initial
   3167 state,<wbr/> and cancel any currently active trigger.<wbr/></p></span>
   3168                   </li>
   3169                 </ul>
   3170 
   3171             </td> <!-- entry_type -->
   3172 
   3173             <td class="entry_description">
   3174               <p>Whether the camera device will trigger autofocus for this request.<wbr/></p>
   3175             </td>
   3176 
   3177             <td class="entry_units">
   3178             </td>
   3179 
   3180             <td class="entry_range">
   3181             </td>
   3182 
   3183             <td class="entry_hal_version">
   3184               <p>3.<wbr/>2</p>
   3185             </td>
   3186 
   3187             <td class="entry_tags">
   3188               <ul class="entry_tags">
   3189                   <li><a href="#tag_BC">BC</a></li>
   3190               </ul>
   3191             </td>
   3192 
   3193           </tr>
   3194           <tr class="entries_header">
   3195             <th class="th_details" colspan="6">Details</th>
   3196           </tr>
   3197           <tr class="entry_cont">
   3198             <td class="entry_details" colspan="6">
   3199               <p>This entry is normally set to IDLE,<wbr/> or is not
   3200 included at all in the request settings.<wbr/></p>
   3201 <p>When included and set to START,<wbr/> the camera device will trigger the
   3202 autofocus algorithm.<wbr/> If autofocus is disabled,<wbr/> this trigger has no effect.<wbr/></p>
   3203 <p>When set to CANCEL,<wbr/> the camera device will cancel any active trigger,<wbr/>
   3204 and return to its initial AF state.<wbr/></p>
   3205 <p>Generally,<wbr/> applications should set this entry to START or CANCEL for only a
   3206 single capture,<wbr/> and then return it to IDLE (or not set at all).<wbr/> Specifying
   3207 START for multiple captures in a row means restarting the AF operation over
   3208 and over again.<wbr/></p>
   3209 <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>
   3210 <p>Using the autofocus trigger and the precapture trigger <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>
   3211 simultaneously is allowed.<wbr/> However,<wbr/> since these triggers often require cooperation between
   3212 the auto-focus and auto-exposure routines (for example,<wbr/> the may need to be enabled for a
   3213 focus sweep),<wbr/> the camera device may delay acting on a later trigger until the previous
   3214 trigger has been fully handled.<wbr/> This may lead to longer intervals between the trigger and
   3215 changes to <a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a>,<wbr/> for example.<wbr/></p>
   3216             </td>
   3217           </tr>
   3218 
   3219           <tr class="entries_header">
   3220             <th class="th_details" colspan="6">HAL Implementation Details</th>
   3221           </tr>
   3222           <tr class="entry_cont">
   3223             <td class="entry_details" colspan="6">
   3224               <p>The HAL must support triggering the AF trigger while an AE precapture trigger is active
   3225 (and vice versa),<wbr/> or at the same time as the AE trigger.<wbr/>  It is acceptable for the HAL to
   3226 treat these as two consecutive triggers,<wbr/> for example handling the AF trigger and then the
   3227 AE trigger.<wbr/>  Or the HAL may choose to optimize the case with both triggers fired at once,<wbr/>
   3228 to minimize the latency for converging both focus and exposure/<wbr/>flash usage.<wbr/></p>
   3229             </td>
   3230           </tr>
   3231 
   3232           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   3233            <!-- end of entry -->
   3234         
   3235                 
   3236           <tr class="entry" id="controls_android.control.awbLock">
   3237             <td class="entry_name
   3238              " rowspan="3">
   3239               android.<wbr/>control.<wbr/>awb<wbr/>Lock
   3240             </td>
   3241             <td class="entry_type">
   3242                 <span class="entry_type_name entry_type_name_enum">byte</span>
   3243 
   3244               <span class="entry_type_visibility"> [public as boolean]</span>
   3245 
   3246 
   3247               <span class="entry_type_hwlevel">[legacy] </span>
   3248 
   3249 
   3250 
   3251                 <ul class="entry_type_enum">
   3252                   <li>
   3253                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   3254                     <span class="entry_type_enum_notes"><p>Auto-white balance lock is disabled; the AWB
   3255 algorithm is free to update its parameters if in AUTO
   3256 mode.<wbr/></p></span>
   3257                   </li>
   3258                   <li>
   3259                     <span class="entry_type_enum_name">ON (v3.2)</span>
   3260                     <span class="entry_type_enum_notes"><p>Auto-white balance lock is enabled; the AWB
   3261 algorithm will not update its parameters while the lock
   3262 is active.<wbr/></p></span>
   3263                   </li>
   3264                 </ul>
   3265 
   3266             </td> <!-- entry_type -->
   3267 
   3268             <td class="entry_description">
   3269               <p>Whether auto-white balance (AWB) is currently locked to its
   3270 latest calculated values.<wbr/></p>
   3271             </td>
   3272 
   3273             <td class="entry_units">
   3274             </td>
   3275 
   3276             <td class="entry_range">
   3277             </td>
   3278 
   3279             <td class="entry_hal_version">
   3280               <p>3.<wbr/>2</p>
   3281             </td>
   3282 
   3283             <td class="entry_tags">
   3284               <ul class="entry_tags">
   3285                   <li><a href="#tag_BC">BC</a></li>
   3286               </ul>
   3287             </td>
   3288 
   3289           </tr>
   3290           <tr class="entries_header">
   3291             <th class="th_details" colspan="6">Details</th>
   3292           </tr>
   3293           <tr class="entry_cont">
   3294             <td class="entry_details" colspan="6">
   3295               <p>When set to <code>true</code> (ON),<wbr/> the AWB algorithm is locked to its latest parameters,<wbr/>
   3296 and will not change color balance settings until the lock is set to <code>false</code> (OFF).<wbr/></p>
   3297 <p>Since the camera device has a pipeline of in-flight requests,<wbr/> the settings that
   3298 get locked do not necessarily correspond to the settings that were present in the
   3299 latest capture result received from the camera device,<wbr/> since additional captures
   3300 and AWB updates may have occurred even before the result was sent out.<wbr/> If an
   3301 application is switching between automatic and manual control and wishes to eliminate
   3302 any flicker during the switch,<wbr/> the following procedure is recommended:</p>
   3303 <ol>
   3304 <li>Starting in auto-AWB mode:</li>
   3305 <li>Lock AWB</li>
   3306 <li>Wait for the first result to be output that has the AWB locked</li>
   3307 <li>Copy AWB settings from that result into a request,<wbr/> set the request to manual AWB</li>
   3308 <li>Submit the capture request,<wbr/> proceed to run manual AWB as desired.<wbr/></li>
   3309 </ol>
   3310 <p>Note that AWB lock is only meaningful when
   3311 <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> is in the AUTO mode; in other modes,<wbr/>
   3312 AWB is already fixed to a specific setting.<wbr/></p>
   3313 <p>Some LEGACY devices may not support ON; the value is then overridden to OFF.<wbr/></p>
   3314             </td>
   3315           </tr>
   3316 
   3317 
   3318           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   3319            <!-- end of entry -->
   3320         
   3321                 
   3322           <tr class="entry" id="controls_android.control.awbMode">
   3323             <td class="entry_name
   3324              " rowspan="3">
   3325               android.<wbr/>control.<wbr/>awb<wbr/>Mode
   3326             </td>
   3327             <td class="entry_type">
   3328                 <span class="entry_type_name entry_type_name_enum">byte</span>
   3329 
   3330               <span class="entry_type_visibility"> [public]</span>
   3331 
   3332 
   3333               <span class="entry_type_hwlevel">[legacy] </span>
   3334 
   3335 
   3336 
   3337                 <ul class="entry_type_enum">
   3338                   <li>
   3339                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   3340                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled.<wbr/></p>
   3341 <p>The application-selected color transform matrix
   3342 (<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
   3343 (<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
   3344 device for manual white balance control.<wbr/></p></span>
   3345                   </li>
   3346                   <li>
   3347                     <span class="entry_type_enum_name">AUTO (v3.2)</span>
   3348                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is active.<wbr/></p>
   3349 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
   3350 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
   3351 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
   3352 values used by the camera device for the transform and gains
   3353 will be available in the capture result for this request.<wbr/></p></span>
   3354                   </li>
   3355                   <li>
   3356                     <span class="entry_type_enum_name">INCANDESCENT (v3.2)</span>
   3357                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
   3358 the camera device uses incandescent light as the assumed scene
   3359 illumination for white balance.<wbr/></p>
   3360 <p>While the exact white balance transforms are up to the
   3361 camera device,<wbr/> they will approximately match the CIE
   3362 standard illuminant A.<wbr/></p>
   3363 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
   3364 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
   3365 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
   3366 values used by the camera device for the transform and gains
   3367 will be available in the capture result for this request.<wbr/></p></span>
   3368                   </li>
   3369                   <li>
   3370                     <span class="entry_type_enum_name">FLUORESCENT (v3.2)</span>
   3371                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
   3372 the camera device uses fluorescent light as the assumed scene
   3373 illumination for white balance.<wbr/></p>
   3374 <p>While the exact white balance transforms are up to the
   3375 camera device,<wbr/> they will approximately match the CIE
   3376 standard illuminant F2.<wbr/></p>
   3377 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
   3378 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
   3379 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
   3380 values used by the camera device for the transform and gains
   3381 will be available in the capture result for this request.<wbr/></p></span>
   3382                   </li>
   3383                   <li>
   3384                     <span class="entry_type_enum_name">WARM_FLUORESCENT (v3.2)</span>
   3385                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
   3386 the camera device uses warm fluorescent light as the assumed scene
   3387 illumination for white balance.<wbr/></p>
   3388 <p>While the exact white balance transforms are up to the
   3389 camera device,<wbr/> they will approximately match the CIE
   3390 standard illuminant F4.<wbr/></p>
   3391 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
   3392 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
   3393 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
   3394 values used by the camera device for the transform and gains
   3395 will be available in the capture result for this request.<wbr/></p></span>
   3396                   </li>
   3397                   <li>
   3398                     <span class="entry_type_enum_name">DAYLIGHT (v3.2)</span>
   3399                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
   3400 the camera device uses daylight light as the assumed scene
   3401 illumination for white balance.<wbr/></p>
   3402 <p>While the exact white balance transforms are up to the
   3403 camera device,<wbr/> they will approximately match the CIE
   3404 standard illuminant D65.<wbr/></p>
   3405 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
   3406 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
   3407 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
   3408 values used by the camera device for the transform and gains
   3409 will be available in the capture result for this request.<wbr/></p></span>
   3410                   </li>
   3411                   <li>
   3412                     <span class="entry_type_enum_name">CLOUDY_DAYLIGHT (v3.2)</span>
   3413                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
   3414 the camera device uses cloudy daylight light as the assumed scene
   3415 illumination for white balance.<wbr/></p>
   3416 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
   3417 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
   3418 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
   3419 values used by the camera device for the transform and gains
   3420 will be available in the capture result for this request.<wbr/></p></span>
   3421                   </li>
   3422                   <li>
   3423                     <span class="entry_type_enum_name">TWILIGHT (v3.2)</span>
   3424                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
   3425 the camera device uses twilight light as the assumed scene
   3426 illumination for white balance.<wbr/></p>
   3427 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
   3428 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
   3429 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
   3430 values used by the camera device for the transform and gains
   3431 will be available in the capture result for this request.<wbr/></p></span>
   3432                   </li>
   3433                   <li>
   3434                     <span class="entry_type_enum_name">SHADE (v3.2)</span>
   3435                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
   3436 the camera device uses shade light as the assumed scene
   3437 illumination for white balance.<wbr/></p>
   3438 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
   3439 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
   3440 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
   3441 values used by the camera device for the transform and gains
   3442 will be available in the capture result for this request.<wbr/></p></span>
   3443                   </li>
   3444                 </ul>
   3445 
   3446             </td> <!-- entry_type -->
   3447 
   3448             <td class="entry_description">
   3449               <p>Whether auto-white balance (AWB) is currently setting the color
   3450 transform fields,<wbr/> and what its illumination target
   3451 is.<wbr/></p>
   3452             </td>
   3453 
   3454             <td class="entry_units">
   3455             </td>
   3456 
   3457             <td class="entry_range">
   3458               <p><a href="#static_android.control.awbAvailableModes">android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes</a></p>
   3459             </td>
   3460 
   3461             <td class="entry_hal_version">
   3462               <p>3.<wbr/>2</p>
   3463             </td>
   3464 
   3465             <td class="entry_tags">
   3466               <ul class="entry_tags">
   3467                   <li><a href="#tag_BC">BC</a></li>
   3468               </ul>
   3469             </td>
   3470 
   3471           </tr>
   3472           <tr class="entries_header">
   3473             <th class="th_details" colspan="6">Details</th>
   3474           </tr>
   3475           <tr class="entry_cont">
   3476             <td class="entry_details" colspan="6">
   3477               <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
   3478 <p>When set to the ON mode,<wbr/> the camera device's auto-white balance
   3479 routine is enabled,<wbr/> overriding the application's selected
   3480 <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
   3481 <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>
   3482 is OFF,<wbr/> the behavior of AWB is device dependent.<wbr/> It is recommened to
   3483 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
   3484 setting AE mode to OFF.<wbr/></p>
   3485 <p>When set to the OFF mode,<wbr/> the camera device's auto-white balance
   3486 routine is disabled.<wbr/> The application manually controls the white
   3487 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>
   3488 and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
   3489 <p>When set to any other modes,<wbr/> the camera device's auto-white
   3490 balance routine is disabled.<wbr/> The camera device uses each
   3491 particular illumination target for white balance
   3492 adjustment.<wbr/> The application's values for
   3493 <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/>
   3494 <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
   3495 <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> are ignored.<wbr/></p>
   3496             </td>
   3497           </tr>
   3498 
   3499 
   3500           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   3501            <!-- end of entry -->
   3502         
   3503                 
   3504           <tr class="entry" id="controls_android.control.awbRegions">
   3505             <td class="entry_name
   3506              " rowspan="5">
   3507               android.<wbr/>control.<wbr/>awb<wbr/>Regions
   3508             </td>
   3509             <td class="entry_type">
   3510                 <span class="entry_type_name">int32</span>
   3511                 <span class="entry_type_container">x</span>
   3512 
   3513                 <span class="entry_type_array">
   3514                   5 x area_count
   3515                 </span>
   3516               <span class="entry_type_visibility"> [public as meteringRectangle]</span>
   3517 
   3518 
   3519 
   3520 
   3521 
   3522 
   3523             </td> <!-- entry_type -->
   3524 
   3525             <td class="entry_description">
   3526               <p>List of metering areas to use for auto-white-balance illuminant
   3527 estimation.<wbr/></p>
   3528             </td>
   3529 
   3530             <td class="entry_units">
   3531               Pixel coordinates within android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
   3532             </td>
   3533 
   3534             <td class="entry_range">
   3535               <p>Coordinates must be between <code>[(0,<wbr/>0),<wbr/> (width,<wbr/> height))</code> of
   3536 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></p>
   3537             </td>
   3538 
   3539             <td class="entry_hal_version">
   3540               <p>3.<wbr/>2</p>
   3541             </td>
   3542 
   3543             <td class="entry_tags">
   3544               <ul class="entry_tags">
   3545                   <li><a href="#tag_BC">BC</a></li>
   3546               </ul>
   3547             </td>
   3548 
   3549           </tr>
   3550           <tr class="entries_header">
   3551             <th class="th_details" colspan="6">Details</th>
   3552           </tr>
   3553           <tr class="entry_cont">
   3554             <td class="entry_details" colspan="6">
   3555               <p>Not available if <a href="#static_android.control.maxRegionsAwb">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Awb</a> is 0.<wbr/>
   3556 Otherwise will always be present.<wbr/></p>
   3557 <p>The maximum number of regions supported by the device is determined by the value
   3558 of <a href="#static_android.control.maxRegionsAwb">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Awb</a>.<wbr/></p>
   3559 <p>The coordinate system is based on the active pixel array,<wbr/>
   3560 with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
   3561 (<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
   3562 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
   3563 bottom-right pixel in the active pixel array.<wbr/></p>
   3564 <p>The weight must range from 0 to 1000,<wbr/> and represents a weight
   3565 for every pixel in the area.<wbr/> This means that a large metering area
   3566 with the same weight as a smaller area will have more effect in
   3567 the metering result.<wbr/> Metering areas can partially overlap and the
   3568 camera device will add the weights in the overlap region.<wbr/></p>
   3569 <p>The weights are relative to weights of other white balance metering regions,<wbr/> so if
   3570 only one region is used,<wbr/> all non-zero weights will have the same effect.<wbr/> A region with
   3571 0 weight is ignored.<wbr/></p>
   3572 <p>If all regions have 0 weight,<wbr/> then no specific metering area needs to be used by the
   3573 camera device.<wbr/></p>
   3574 <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
   3575 capture result metadata,<wbr/> the camera device will ignore the sections outside the crop
   3576 region and output only the intersection rectangle as the metering region in the result
   3577 metadata.<wbr/>  If the region is entirely outside the crop region,<wbr/> it will be ignored and
   3578 not reported in the result metadata.<wbr/></p>
   3579             </td>
   3580           </tr>
   3581 
   3582           <tr class="entries_header">
   3583             <th class="th_details" colspan="6">HAL Implementation Details</th>
   3584           </tr>
   3585           <tr class="entry_cont">
   3586             <td class="entry_details" colspan="6">
   3587               <p>The HAL level representation of MeteringRectangle[] is a
   3588 int[5 * area_<wbr/>count].<wbr/>
   3589 Every five elements represent a metering region of
   3590 (xmin,<wbr/> ymin,<wbr/> xmax,<wbr/> ymax,<wbr/> weight).<wbr/>
   3591 The rectangle is defined to be inclusive on xmin and ymin,<wbr/> but
   3592 exclusive on xmax and ymax.<wbr/></p>
   3593             </td>
   3594           </tr>
   3595 
   3596           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   3597            <!-- end of entry -->
   3598         
   3599                 
   3600           <tr class="entry" id="controls_android.control.captureIntent">
   3601             <td class="entry_name
   3602              " rowspan="3">
   3603               android.<wbr/>control.<wbr/>capture<wbr/>Intent
   3604             </td>
   3605             <td class="entry_type">
   3606                 <span class="entry_type_name entry_type_name_enum">byte</span>
   3607 
   3608               <span class="entry_type_visibility"> [public]</span>
   3609 
   3610 
   3611               <span class="entry_type_hwlevel">[legacy] </span>
   3612 
   3613 
   3614 
   3615                 <ul class="entry_type_enum">
   3616                   <li>
   3617                     <span class="entry_type_enum_name">CUSTOM (v3.2)</span>
   3618                     <span class="entry_type_enum_notes"><p>The goal of this request doesn't fall into the other
   3619 categories.<wbr/> The camera device will default to preview-like
   3620 behavior.<wbr/></p></span>
   3621                   </li>
   3622                   <li>
   3623                     <span class="entry_type_enum_name">PREVIEW (v3.2)</span>
   3624                     <span class="entry_type_enum_notes"><p>This request is for a preview-like use case.<wbr/></p>
   3625 <p>The precapture trigger may be used to start off a metering
   3626 w/<wbr/>flash sequence.<wbr/></p></span>
   3627                   </li>
   3628                   <li>
   3629                     <span class="entry_type_enum_name">STILL_CAPTURE (v3.2)</span>
   3630                     <span class="entry_type_enum_notes"><p>This request is for a still capture-type
   3631 use case.<wbr/></p>
   3632 <p>If the flash unit is under automatic control,<wbr/> it may fire as needed.<wbr/></p></span>
   3633                   </li>
   3634                   <li>
   3635                     <span class="entry_type_enum_name">VIDEO_RECORD (v3.2)</span>
   3636                     <span class="entry_type_enum_notes"><p>This request is for a video recording
   3637 use case.<wbr/></p></span>
   3638                   </li>
   3639                   <li>
   3640                     <span class="entry_type_enum_name">VIDEO_SNAPSHOT (v3.2)</span>
   3641                     <span class="entry_type_enum_notes"><p>This request is for a video snapshot (still
   3642 image while recording video) use case.<wbr/></p>
   3643 <p>The camera device should take the highest-quality image
   3644 possible (given the other settings) without disrupting the
   3645 frame rate of video recording.<wbr/>  </p></span>
   3646                   </li>
   3647                   <li>
   3648                     <span class="entry_type_enum_name">ZERO_SHUTTER_LAG (v3.2)</span>
   3649                     <span class="entry_type_enum_notes"><p>This request is for a ZSL usecase; the
   3650 application will stream full-resolution images and
   3651 reprocess one or several later for a final
   3652 capture.<wbr/></p></span>
   3653                   </li>
   3654                   <li>
   3655                     <span class="entry_type_enum_name">MANUAL (v3.2)</span>
   3656                     <span class="entry_type_enum_notes"><p>This request is for manual capture use case where
   3657 the applications want to directly control the capture parameters.<wbr/></p>
   3658 <p>For example,<wbr/> the application may wish to manually control
   3659 <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>
   3660                   </li>
   3661                   <li>
   3662                     <span class="entry_type_enum_name">MOTION_TRACKING (v3.3)</span>
   3663                     <span class="entry_type_enum_notes"><p>This request is for a motion tracking use case,<wbr/> where
   3664 the application will use camera and inertial sensor data to
   3665 locate and track objects in the world.<wbr/></p>
   3666 <p>The camera device auto-exposure routine will limit the exposure time
   3667 of the camera to no more than 20 milliseconds,<wbr/> to minimize motion blur.<wbr/></p></span>
   3668                   </li>
   3669                 </ul>
   3670 
   3671             </td> <!-- entry_type -->
   3672 
   3673             <td class="entry_description">
   3674               <p>Information to the camera device 3A (auto-exposure,<wbr/>
   3675 auto-focus,<wbr/> auto-white balance) routines about the purpose
   3676 of this capture,<wbr/> to help the camera device to decide optimal 3A
   3677 strategy.<wbr/></p>
   3678             </td>
   3679 
   3680             <td class="entry_units">
   3681             </td>
   3682 
   3683             <td class="entry_range">
   3684             </td>
   3685 
   3686             <td class="entry_hal_version">
   3687               <p>3.<wbr/>2</p>
   3688             </td>
   3689 
   3690             <td class="entry_tags">
   3691               <ul class="entry_tags">
   3692                   <li><a href="#tag_BC">BC</a></li>
   3693               </ul>
   3694             </td>
   3695 
   3696           </tr>
   3697           <tr class="entries_header">
   3698             <th class="th_details" colspan="6">Details</th>
   3699           </tr>
   3700           <tr class="entry_cont">
   3701             <td class="entry_details" colspan="6">
   3702               <p>This control (except for MANUAL) is only effective if
   3703 <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF</code> and any 3A routine is active.<wbr/></p>
   3704 <p>All intents are supported by all devices,<wbr/> except that:
   3705   * ZERO_<wbr/>SHUTTER_<wbr/>LAG will be supported if <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains
   3706 PRIVATE_<wbr/>REPROCESSING or YUV_<wbr/>REPROCESSING.<wbr/>
   3707   * MANUAL will be supported if <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains
   3708 MANUAL_<wbr/>SENSOR.<wbr/>
   3709   * MOTION_<wbr/>TRACKING will be supported if <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains
   3710 MOTION_<wbr/>TRACKING.<wbr/></p>
   3711             </td>
   3712           </tr>
   3713 
   3714 
   3715           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   3716            <!-- end of entry -->
   3717         
   3718                 
   3719           <tr class="entry" id="controls_android.control.effectMode">
   3720             <td class="entry_name
   3721              " rowspan="3">
   3722               android.<wbr/>control.<wbr/>effect<wbr/>Mode
   3723             </td>
   3724             <td class="entry_type">
   3725                 <span class="entry_type_name entry_type_name_enum">byte</span>
   3726 
   3727               <span class="entry_type_visibility"> [public]</span>
   3728 
   3729 
   3730               <span class="entry_type_hwlevel">[legacy] </span>
   3731 
   3732 
   3733 
   3734                 <ul class="entry_type_enum">
   3735                   <li>
   3736                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   3737                     <span class="entry_type_enum_notes"><p>No color effect will be applied.<wbr/></p></span>
   3738                   </li>
   3739                   <li>
   3740                     <span class="entry_type_enum_name">MONO (v3.2)</span>
   3741                     <span class="entry_type_enum_optional">[optional]</span>
   3742                     <span class="entry_type_enum_notes"><p>A "monocolor" effect where the image is mapped into
   3743 a single color.<wbr/></p>
   3744 <p>This will typically be grayscale.<wbr/></p></span>
   3745                   </li>
   3746                   <li>
   3747                     <span class="entry_type_enum_name">NEGATIVE (v3.2)</span>
   3748                     <span class="entry_type_enum_optional">[optional]</span>
   3749                     <span class="entry_type_enum_notes"><p>A "photo-negative" effect where the image's colors
   3750 are inverted.<wbr/></p></span>
   3751                   </li>
   3752                   <li>
   3753                     <span class="entry_type_enum_name">SOLARIZE (v3.2)</span>
   3754                     <span class="entry_type_enum_optional">[optional]</span>
   3755                     <span class="entry_type_enum_notes"><p>A "solarisation" effect (Sabattier effect) where the
   3756 image is wholly or partially reversed in
   3757 tone.<wbr/></p></span>
   3758                   </li>
   3759                   <li>
   3760                     <span class="entry_type_enum_name">SEPIA (v3.2)</span>
   3761                     <span class="entry_type_enum_optional">[optional]</span>
   3762                     <span class="entry_type_enum_notes"><p>A "sepia" effect where the image is mapped into warm
   3763 gray,<wbr/> red,<wbr/> and brown tones.<wbr/></p></span>
   3764                   </li>
   3765                   <li>
   3766                     <span class="entry_type_enum_name">POSTERIZE (v3.2)</span>
   3767                     <span class="entry_type_enum_optional">[optional]</span>
   3768                     <span class="entry_type_enum_notes"><p>A "posterization" effect where the image uses
   3769 discrete regions of tone rather than a continuous
   3770 gradient of tones.<wbr/></p></span>
   3771                   </li>
   3772                   <li>
   3773                     <span class="entry_type_enum_name">WHITEBOARD (v3.2)</span>
   3774                     <span class="entry_type_enum_optional">[optional]</span>
   3775                     <span class="entry_type_enum_notes"><p>A "whiteboard" effect where the image is typically displayed
   3776 as regions of white,<wbr/> with black or grey details.<wbr/></p></span>
   3777                   </li>
   3778                   <li>
   3779                     <span class="entry_type_enum_name">BLACKBOARD (v3.2)</span>
   3780                     <span class="entry_type_enum_optional">[optional]</span>
   3781                     <span class="entry_type_enum_notes"><p>A "blackboard" effect where the image is typically displayed
   3782 as regions of black,<wbr/> with white or grey details.<wbr/></p></span>
   3783                   </li>
   3784                   <li>
   3785                     <span class="entry_type_enum_name">AQUA (v3.2)</span>
   3786                     <span class="entry_type_enum_optional">[optional]</span>
   3787                     <span class="entry_type_enum_notes"><p>An "aqua" effect where a blue hue is added to the image.<wbr/></p></span>
   3788                   </li>
   3789                 </ul>
   3790 
   3791             </td> <!-- entry_type -->
   3792 
   3793             <td class="entry_description">
   3794               <p>A special color effect to apply.<wbr/></p>
   3795             </td>
   3796 
   3797             <td class="entry_units">
   3798             </td>
   3799 
   3800             <td class="entry_range">
   3801               <p><a href="#static_android.control.availableEffects">android.<wbr/>control.<wbr/>available<wbr/>Effects</a></p>
   3802             </td>
   3803 
   3804             <td class="entry_hal_version">
   3805               <p>3.<wbr/>2</p>
   3806             </td>
   3807 
   3808             <td class="entry_tags">
   3809               <ul class="entry_tags">
   3810                   <li><a href="#tag_BC">BC</a></li>
   3811               </ul>
   3812             </td>
   3813 
   3814           </tr>
   3815           <tr class="entries_header">
   3816             <th class="th_details" colspan="6">Details</th>
   3817           </tr>
   3818           <tr class="entry_cont">
   3819             <td class="entry_details" colspan="6">
   3820               <p>When this mode is set,<wbr/> a color effect will be applied
   3821 to images produced by the camera device.<wbr/> The interpretation
   3822 and implementation of these color effects is left to the
   3823 implementor of the camera device,<wbr/> and should not be
   3824 depended on to be consistent (or present) across all
   3825 devices.<wbr/></p>
   3826             </td>
   3827           </tr>
   3828 
   3829 
   3830           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   3831            <!-- end of entry -->
   3832         
   3833                 
   3834           <tr class="entry" id="controls_android.control.mode">
   3835             <td class="entry_name
   3836              " rowspan="3">
   3837               android.<wbr/>control.<wbr/>mode
   3838             </td>
   3839             <td class="entry_type">
   3840                 <span class="entry_type_name entry_type_name_enum">byte</span>
   3841 
   3842               <span class="entry_type_visibility"> [public]</span>
   3843 
   3844 
   3845               <span class="entry_type_hwlevel">[legacy] </span>
   3846 
   3847 
   3848 
   3849                 <ul class="entry_type_enum">
   3850                   <li>
   3851                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   3852                     <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/></p>
   3853 <p>All control by the device's metering and focusing (3A)
   3854 routines is disabled,<wbr/> and no other settings in
   3855 android.<wbr/>control.<wbr/>* have any effect,<wbr/> except that
   3856 <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> may be used by the camera
   3857 device to select post-processing values for processing
   3858 blocks that do not allow for manual control,<wbr/> or are not
   3859 exposed by the camera API.<wbr/></p>
   3860 <p>However,<wbr/> the camera device's 3A routines may continue to
   3861 collect statistics and update their internal state so that
   3862 when control is switched to AUTO mode,<wbr/> good control values
   3863 can be immediately applied.<wbr/></p></span>
   3864                   </li>
   3865                   <li>
   3866                     <span class="entry_type_enum_name">AUTO (v3.2)</span>
   3867                     <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/></p>
   3868 <p>Manual control of capture parameters is disabled.<wbr/> All
   3869 controls in android.<wbr/>control.<wbr/>* besides sceneMode take
   3870 effect.<wbr/></p></span>
   3871                   </li>
   3872                   <li>
   3873                     <span class="entry_type_enum_name">USE_SCENE_MODE (v3.2)</span>
   3874                     <span class="entry_type_enum_optional">[optional]</span>
   3875                     <span class="entry_type_enum_notes"><p>Use a specific scene mode.<wbr/></p>
   3876 <p>Enabling this disables control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and
   3877 control.<wbr/>afMode controls; the camera device will ignore
   3878 those settings while USE_<wbr/>SCENE_<wbr/>MODE is active (except for
   3879 FACE_<wbr/>PRIORITY scene mode).<wbr/> Other control entries are still active.<wbr/>
   3880 This setting can only be used if scene mode is supported (i.<wbr/>e.<wbr/>
   3881 <a href="#static_android.control.availableSceneModes">android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes</a>
   3882 contain some modes other than DISABLED).<wbr/></p></span>
   3883                   </li>
   3884                   <li>
   3885                     <span class="entry_type_enum_name">OFF_KEEP_STATE (v3.2)</span>
   3886                     <span class="entry_type_enum_optional">[optional]</span>
   3887                     <span class="entry_type_enum_notes"><p>Same as OFF mode,<wbr/> except that this capture will not be
   3888 used by camera device background auto-exposure,<wbr/> auto-white balance and
   3889 auto-focus algorithms (3A) to update their statistics.<wbr/></p>
   3890 <p>Specifically,<wbr/> the 3A routines are locked to the last
   3891 values set from a request with AUTO,<wbr/> OFF,<wbr/> or
   3892 USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> and any statistics or state updates
   3893 collected from manual captures with OFF_<wbr/>KEEP_<wbr/>STATE will be
   3894 discarded by the camera device.<wbr/></p></span>
   3895                   </li>
   3896                 </ul>
   3897 
   3898             </td> <!-- entry_type -->
   3899 
   3900             <td class="entry_description">
   3901               <p>Overall mode of 3A (auto-exposure,<wbr/> auto-white-balance,<wbr/> auto-focus) control
   3902 routines.<wbr/></p>
   3903             </td>
   3904 
   3905             <td class="entry_units">
   3906             </td>
   3907 
   3908             <td class="entry_range">
   3909               <p><a href="#static_android.control.availableModes">android.<wbr/>control.<wbr/>available<wbr/>Modes</a></p>
   3910             </td>
   3911 
   3912             <td class="entry_hal_version">
   3913               <p>3.<wbr/>2</p>
   3914             </td>
   3915 
   3916             <td class="entry_tags">
   3917               <ul class="entry_tags">
   3918                   <li><a href="#tag_BC">BC</a></li>
   3919               </ul>
   3920             </td>
   3921 
   3922           </tr>
   3923           <tr class="entries_header">
   3924             <th class="th_details" colspan="6">Details</th>
   3925           </tr>
   3926           <tr class="entry_cont">
   3927             <td class="entry_details" colspan="6">
   3928               <p>This is a top-level 3A control switch.<wbr/> When set to OFF,<wbr/> all 3A control
   3929 by the camera device is disabled.<wbr/> The application must set the fields for
   3930 capture parameters itself.<wbr/></p>
   3931 <p>When set to AUTO,<wbr/> the individual algorithm controls in
   3932 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>
   3933 <p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
   3934 android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device
   3935 implements one of the scene mode settings (such as ACTION,<wbr/>
   3936 SUNSET,<wbr/> or PARTY) as it wishes.<wbr/> The camera device scene mode
   3937 3A settings are provided by <a href="https://developer.android.com/reference/android/hardware/camera2/CaptureResult.html">capture results</a>.<wbr/></p>
   3938 <p>When set to OFF_<wbr/>KEEP_<wbr/>STATE,<wbr/> it is similar to OFF mode,<wbr/> the only difference
   3939 is that this frame will not be used by camera device background 3A statistics
   3940 update,<wbr/> as if this frame is never captured.<wbr/> This mode can be used in the scenario
   3941 where the application doesn't want a 3A manual control capture to affect
   3942 the subsequent auto 3A capture results.<wbr/></p>
   3943             </td>
   3944           </tr>
   3945 
   3946 
   3947           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   3948            <!-- end of entry -->
   3949         
   3950                 
   3951           <tr class="entry" id="controls_android.control.sceneMode">
   3952             <td class="entry_name
   3953              " rowspan="5">
   3954               android.<wbr/>control.<wbr/>scene<wbr/>Mode
   3955             </td>
   3956             <td class="entry_type">
   3957                 <span class="entry_type_name entry_type_name_enum">byte</span>
   3958 
   3959               <span class="entry_type_visibility"> [public]</span>
   3960 
   3961 
   3962               <span class="entry_type_hwlevel">[legacy] </span>
   3963 
   3964 
   3965 
   3966                 <ul class="entry_type_enum">
   3967                   <li>
   3968                     <span class="entry_type_enum_name">DISABLED (v3.2)</span>
   3969                     <span class="entry_type_enum_value">0</span>
   3970                     <span class="entry_type_enum_notes"><p>Indicates that no scene modes are set for a given capture request.<wbr/></p></span>
   3971                   </li>
   3972                   <li>
   3973                     <span class="entry_type_enum_name">FACE_PRIORITY (v3.2)</span>
   3974                     <span class="entry_type_enum_notes"><p>If face detection support exists,<wbr/> use face
   3975 detection data for auto-focus,<wbr/> auto-white balance,<wbr/> and
   3976 auto-exposure routines.<wbr/></p>
   3977 <p>If face detection statistics are disabled
   3978 (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/>
   3979 this should still operate correctly (but will not return
   3980 face detection statistics to the framework).<wbr/></p>
   3981 <p>Unlike the other scene modes,<wbr/> <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
   3982 <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>
   3983 remain active when FACE_<wbr/>PRIORITY is set.<wbr/></p></span>
   3984                   </li>
   3985                   <li>
   3986                     <span class="entry_type_enum_name">ACTION (v3.2)</span>
   3987                     <span class="entry_type_enum_optional">[optional]</span>
   3988                     <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving objects.<wbr/></p>
   3989 <p>Similar to SPORTS.<wbr/></p></span>
   3990                   </li>
   3991                   <li>
   3992                     <span class="entry_type_enum_name">PORTRAIT (v3.2)</span>
   3993                     <span class="entry_type_enum_optional">[optional]</span>
   3994                     <span class="entry_type_enum_notes"><p>Optimized for still photos of people.<wbr/></p></span>
   3995                   </li>
   3996                   <li>
   3997                     <span class="entry_type_enum_name">LANDSCAPE (v3.2)</span>
   3998                     <span class="entry_type_enum_optional">[optional]</span>
   3999                     <span class="entry_type_enum_notes"><p>Optimized for photos of distant macroscopic objects.<wbr/></p></span>
   4000                   </li>
   4001                   <li>
   4002                     <span class="entry_type_enum_name">NIGHT (v3.2)</span>
   4003                     <span class="entry_type_enum_optional">[optional]</span>
   4004                     <span class="entry_type_enum_notes"><p>Optimized for low-light settings.<wbr/></p></span>
   4005                   </li>
   4006                   <li>
   4007                     <span class="entry_type_enum_name">NIGHT_PORTRAIT (v3.2)</span>
   4008                     <span class="entry_type_enum_optional">[optional]</span>
   4009                     <span class="entry_type_enum_notes"><p>Optimized for still photos of people in low-light
   4010 settings.<wbr/></p></span>
   4011                   </li>
   4012                   <li>
   4013                     <span class="entry_type_enum_name">THEATRE (v3.2)</span>
   4014                     <span class="entry_type_enum_optional">[optional]</span>
   4015                     <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings where flash must
   4016 remain off.<wbr/></p></span>
   4017                   </li>
   4018                   <li>
   4019                     <span class="entry_type_enum_name">BEACH (v3.2)</span>
   4020                     <span class="entry_type_enum_optional">[optional]</span>
   4021                     <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor beach settings.<wbr/></p></span>
   4022                   </li>
   4023                   <li>
   4024                     <span class="entry_type_enum_name">SNOW (v3.2)</span>
   4025                     <span class="entry_type_enum_optional">[optional]</span>
   4026                     <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor settings containing snow.<wbr/></p></span>
   4027                   </li>
   4028                   <li>
   4029                     <span class="entry_type_enum_name">SUNSET (v3.2)</span>
   4030                     <span class="entry_type_enum_optional">[optional]</span>
   4031                     <span class="entry_type_enum_notes"><p>Optimized for scenes of the setting sun.<wbr/></p></span>
   4032                   </li>
   4033                   <li>
   4034                     <span class="entry_type_enum_name">STEADYPHOTO (v3.2)</span>
   4035                     <span class="entry_type_enum_optional">[optional]</span>
   4036                     <span class="entry_type_enum_notes"><p>Optimized to avoid blurry photos due to small amounts of
   4037 device motion (for example: due to hand shake).<wbr/></p></span>
   4038                   </li>
   4039                   <li>
   4040                     <span class="entry_type_enum_name">FIREWORKS (v3.2)</span>
   4041                     <span class="entry_type_enum_optional">[optional]</span>
   4042                     <span class="entry_type_enum_notes"><p>Optimized for nighttime photos of fireworks.<wbr/></p></span>
   4043                   </li>
   4044                   <li>
   4045                     <span class="entry_type_enum_name">SPORTS (v3.2)</span>
   4046                     <span class="entry_type_enum_optional">[optional]</span>
   4047                     <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving people.<wbr/></p>
   4048 <p>Similar to ACTION.<wbr/></p></span>
   4049                   </li>
   4050                   <li>
   4051                     <span class="entry_type_enum_name">PARTY (v3.2)</span>
   4052                     <span class="entry_type_enum_optional">[optional]</span>
   4053                     <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings with multiple moving
   4054 people.<wbr/></p></span>
   4055                   </li>
   4056                   <li>
   4057                     <span class="entry_type_enum_name">CANDLELIGHT (v3.2)</span>
   4058                     <span class="entry_type_enum_optional">[optional]</span>
   4059                     <span class="entry_type_enum_notes"><p>Optimized for dim settings where the main light source
   4060 is a flame.<wbr/></p></span>
   4061                   </li>
   4062                   <li>
   4063                     <span class="entry_type_enum_name">BARCODE (v3.2)</span>
   4064                     <span class="entry_type_enum_optional">[optional]</span>
   4065                     <span class="entry_type_enum_notes"><p>Optimized for accurately capturing a photo of barcode
   4066 for use by camera applications that wish to read the
   4067 barcode value.<wbr/></p></span>
   4068                   </li>
   4069                   <li>
   4070                     <span class="entry_type_enum_name">HIGH_SPEED_VIDEO (v3.2)</span>
   4071                     <span class="entry_type_enum_deprecated">[deprecated]</span>
   4072                     <span class="entry_type_enum_optional">[optional]</span>
   4073                     <span class="entry_type_enum_notes"><p>This is deprecated,<wbr/> please use <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createConstrainedHighSpeedCaptureSession">CameraDevice#createConstrainedHighSpeedCaptureSession</a>
   4074 and <a href="https://developer.android.com/reference/android/hardware/camera2/CameraConstrainedHighSpeedCaptureSession.html#createHighSpeedRequestList">CameraConstrainedHighSpeedCaptureSession#createHighSpeedRequestList</a>
   4075 for high speed video recording.<wbr/></p>
   4076 <p>Optimized for high speed video recording (frame rate &gt;=60fps) use case.<wbr/></p>
   4077 <p>The supported high speed video sizes and fps ranges are specified in
   4078 <a href="#static_android.control.availableHighSpeedVideoConfigurations">android.<wbr/>control.<wbr/>available<wbr/>High<wbr/>Speed<wbr/>Video<wbr/>Configurations</a>.<wbr/> To get desired
   4079 output frame rates,<wbr/> the application is only allowed to select video size
   4080 and fps range combinations listed in this static metadata.<wbr/> The fps range
   4081 can be control via <a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a>.<wbr/></p>
   4082 <p>In this mode,<wbr/> the camera device will override aeMode,<wbr/> awbMode,<wbr/> and afMode to
   4083 ON,<wbr/> ON,<wbr/> and CONTINUOUS_<wbr/>VIDEO,<wbr/> respectively.<wbr/> All post-processing block mode
   4084 controls will be overridden to be FAST.<wbr/> Therefore,<wbr/> no manual control of capture
   4085 and post-processing parameters is possible.<wbr/> All other controls operate the
   4086 same as when <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == AUTO.<wbr/> This means that all other
   4087 android.<wbr/>control.<wbr/>* fields continue to work,<wbr/> such as</p>
   4088 <ul>
   4089 <li><a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a></li>
   4090 <li><a href="#controls_android.control.aeExposureCompensation">android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation</a></li>
   4091 <li><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a></li>
   4092 <li><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a></li>
   4093 <li><a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a></li>
   4094 <li><a href="#controls_android.control.aeRegions">android.<wbr/>control.<wbr/>ae<wbr/>Regions</a></li>
   4095 <li><a href="#controls_android.control.afRegions">android.<wbr/>control.<wbr/>af<wbr/>Regions</a></li>
   4096 <li><a href="#controls_android.control.awbRegions">android.<wbr/>control.<wbr/>awb<wbr/>Regions</a></li>
   4097 <li><a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a></li>
   4098 <li><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a></li>
   4099 </ul>
   4100 <p>Outside of android.<wbr/>control.<wbr/>*,<wbr/> the following controls will work:</p>
   4101 <ul>
   4102 <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>
   4103 <li><a href="#controls_android.lens.opticalStabilizationMode">android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode</a> (if it is supported)</li>
   4104 <li><a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a></li>
   4105 <li><a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a></li>
   4106 </ul>
   4107 <p>For high speed recording use case,<wbr/> the actual maximum supported frame rate may
   4108 be lower than what camera can output,<wbr/> depending on the destination Surfaces for
   4109 the image data.<wbr/> For example,<wbr/> if the destination surface is from video encoder,<wbr/>
   4110 the application need check if the video encoder is capable of supporting the
   4111 high frame rate for a given video size,<wbr/> or it will end up with lower recording
   4112 frame rate.<wbr/> If the destination surface is from preview window,<wbr/> the preview frame
   4113 rate will be bounded by the screen refresh rate.<wbr/></p>
   4114 <p>The camera device will only support up to 2 output high speed streams
   4115 (processed non-stalling format defined in <a href="#static_android.request.maxNumOutputStreams">android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Streams</a>)
   4116 in this mode.<wbr/> This control will be effective only if all of below conditions are true:</p>
   4117 <ul>
   4118 <li>The application created no more than maxNumHighSpeedStreams processed non-stalling
   4119 format output streams,<wbr/> where maxNumHighSpeedStreams is calculated as
   4120 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>
   4121 <li>The stream sizes are selected from the sizes reported by
   4122 <a href="#static_android.control.availableHighSpeedVideoConfigurations">android.<wbr/>control.<wbr/>available<wbr/>High<wbr/>Speed<wbr/>Video<wbr/>Configurations</a>.<wbr/></li>
   4123 <li>No processed non-stalling or raw streams are configured.<wbr/></li>
   4124 </ul>
   4125 <p>When above conditions are NOT satistied,<wbr/> the controls of this mode and
   4126 <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/>
   4127 the camera device will fall back to <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> <code>==</code> AUTO,<wbr/>
   4128 and the returned capture result metadata will give the fps range choosen
   4129 by the camera device.<wbr/></p>
   4130 <p>Switching into or out of this mode may trigger some camera ISP/<wbr/>sensor
   4131 reconfigurations,<wbr/> which may introduce extra latency.<wbr/> It is recommended that
   4132 the application avoids unnecessary scene mode switch as much as possible.<wbr/></p></span>
   4133                   </li>
   4134                   <li>
   4135                     <span class="entry_type_enum_name">HDR (v3.2)</span>
   4136                     <span class="entry_type_enum_optional">[optional]</span>
   4137                     <span class="entry_type_enum_notes"><p>Turn on a device-specific high dynamic range (HDR) mode.<wbr/></p>
   4138 <p>In this scene mode,<wbr/> the camera device captures images
   4139 that keep a larger range of scene illumination levels
   4140 visible in the final image.<wbr/> For example,<wbr/> when taking a
   4141 picture of a object in front of a bright window,<wbr/> both
   4142 the object and the scene through the window may be
   4143 visible when using HDR mode,<wbr/> while in normal AUTO mode,<wbr/>
   4144 one or the other may be poorly exposed.<wbr/> As a tradeoff,<wbr/>
   4145 HDR mode generally takes much longer to capture a single
   4146 image,<wbr/> has no user control,<wbr/> and may have other artifacts
   4147 depending on the HDR method used.<wbr/></p>
   4148 <p>Therefore,<wbr/> HDR captures operate at a much slower rate
   4149 than regular captures.<wbr/></p>
   4150 <p>In this mode,<wbr/> on LIMITED or FULL devices,<wbr/> when a request
   4151 is made with a <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> of
   4152 STILL_<wbr/>CAPTURE,<wbr/> the camera device will capture an image
   4153 using a high dynamic range capture technique.<wbr/>  On LEGACY
   4154 devices,<wbr/> captures that target a JPEG-format output will
   4155 be captured with HDR,<wbr/> and the capture intent is not
   4156 relevant.<wbr/></p>
   4157 <p>The HDR capture may involve the device capturing a burst
   4158 of images internally and combining them into one,<wbr/> or it
   4159 may involve the device using specialized high dynamic
   4160 range capture hardware.<wbr/> In all cases,<wbr/> a single image is
   4161 produced in response to a capture request submitted
   4162 while in HDR mode.<wbr/></p>
   4163 <p>Since substantial post-processing is generally needed to
   4164 produce an HDR image,<wbr/> only YUV,<wbr/> PRIVATE,<wbr/> and JPEG
   4165 outputs are supported for LIMITED/<wbr/>FULL device HDR
   4166 captures,<wbr/> and only JPEG outputs are supported for LEGACY
   4167 HDR captures.<wbr/> Using a RAW output for HDR capture is not
   4168 supported.<wbr/></p>
   4169 <p>Some devices may also support always-on HDR,<wbr/> which
   4170 applies HDR processing at full frame rate.<wbr/>  For these
   4171 devices,<wbr/> intents other than STILL_<wbr/>CAPTURE will also
   4172 produce an HDR output with no frame rate impact compared
   4173 to normal operation,<wbr/> though the quality may be lower
   4174 than for STILL_<wbr/>CAPTURE intents.<wbr/></p>
   4175 <p>If SCENE_<wbr/>MODE_<wbr/>HDR is used with unsupported output types
   4176 or capture intents,<wbr/> the images captured will be as if
   4177 the SCENE_<wbr/>MODE was not enabled at all.<wbr/></p></span>
   4178                   </li>
   4179                   <li>
   4180                     <span class="entry_type_enum_name">FACE_PRIORITY_LOW_LIGHT (v3.2)</span>
   4181                     <span class="entry_type_enum_optional">[optional]</span>
   4182                     <span class="entry_type_enum_hidden">[hidden]</span>
   4183                     <span class="entry_type_enum_notes"><p>Same as FACE_<wbr/>PRIORITY scene mode,<wbr/> except that the camera
   4184 device will choose higher sensitivity values (<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>)
   4185 under low light conditions.<wbr/></p>
   4186 <p>The camera device may be tuned to expose the images in a reduced
   4187 sensitivity range to produce the best quality images.<wbr/> For example,<wbr/>
   4188 if the <a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a> gives range of [100,<wbr/> 1600],<wbr/>
   4189 the camera device auto-exposure routine tuning process may limit the actual
   4190 exposure sensitivity range to [100,<wbr/> 1200] to ensure that the noise level isn't
   4191 exessive in order to preserve the image quality.<wbr/> Under this situation,<wbr/> the image under
   4192 low light may be under-exposed when the sensor max exposure time (bounded by the
   4193 <a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a> when <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of the
   4194 ON_<wbr/>* modes) and effective max sensitivity are reached.<wbr/> This scene mode allows the
   4195 camera device auto-exposure routine to increase the sensitivity up to the max
   4196 sensitivity specified by <a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a> when the scene is too
   4197 dark and the max exposure time is reached.<wbr/> The captured images may be noisier
   4198 compared with the images captured in normal FACE_<wbr/>PRIORITY mode; therefore,<wbr/> it is
   4199 recommended that the application only use this scene mode when it is capable of
   4200 reducing the noise level of the captured images.<wbr/></p>
   4201 <p>Unlike the other scene modes,<wbr/> <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
   4202 <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>
   4203 remain active when FACE_<wbr/>PRIORITY_<wbr/>LOW_<wbr/>LIGHT is set.<wbr/></p></span>
   4204                   </li>
   4205                   <li>
   4206                     <span class="entry_type_enum_name">DEVICE_CUSTOM_START (v3.2)</span>
   4207                     <span class="entry_type_enum_optional">[optional]</span>
   4208                     <span class="entry_type_enum_hidden">[hidden]</span>
   4209                     <span class="entry_type_enum_value">100</span>
   4210                     <span class="entry_type_enum_notes"><p>Scene mode values within the range of
   4211 <code>[DEVICE_<wbr/>CUSTOM_<wbr/>START,<wbr/> DEVICE_<wbr/>CUSTOM_<wbr/>END]</code> are reserved for device specific
   4212 customized scene modes.<wbr/></p></span>
   4213                   </li>
   4214                   <li>
   4215                     <span class="entry_type_enum_name">DEVICE_CUSTOM_END (v3.2)</span>
   4216                     <span class="entry_type_enum_optional">[optional]</span>
   4217                     <span class="entry_type_enum_hidden">[hidden]</span>
   4218                     <span class="entry_type_enum_value">127</span>
   4219                     <span class="entry_type_enum_notes"><p>Scene mode values within the range of
   4220 <code>[DEVICE_<wbr/>CUSTOM_<wbr/>START,<wbr/> DEVICE_<wbr/>CUSTOM_<wbr/>END]</code> are reserved for device specific
   4221 customized scene modes.<wbr/></p></span>
   4222                   </li>
   4223                 </ul>
   4224 
   4225             </td> <!-- entry_type -->
   4226 
   4227             <td class="entry_description">
   4228               <p>Control for which scene mode is currently active.<wbr/></p>
   4229             </td>
   4230 
   4231             <td class="entry_units">
   4232             </td>
   4233 
   4234             <td class="entry_range">
   4235               <p><a href="#static_android.control.availableSceneModes">android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes</a></p>
   4236             </td>
   4237 
   4238             <td class="entry_hal_version">
   4239               <p>3.<wbr/>2</p>
   4240             </td>
   4241 
   4242             <td class="entry_tags">
   4243               <ul class="entry_tags">
   4244                   <li><a href="#tag_BC">BC</a></li>
   4245               </ul>
   4246             </td>
   4247 
   4248           </tr>
   4249           <tr class="entries_header">
   4250             <th class="th_details" colspan="6">Details</th>
   4251           </tr>
   4252           <tr class="entry_cont">
   4253             <td class="entry_details" colspan="6">
   4254               <p>Scene modes are custom camera modes optimized for a certain set of conditions and
   4255 capture settings.<wbr/></p>
   4256 <p>This is the mode that that is active when
   4257 <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == USE_<wbr/>SCENE_<wbr/>MODE</code>.<wbr/> Aside from FACE_<wbr/>PRIORITY,<wbr/> these modes will
   4258 disable <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/> <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>
   4259 while in use.<wbr/></p>
   4260 <p>The interpretation and implementation of these scene modes is left
   4261 to the implementor of the camera device.<wbr/> Their behavior will not be
   4262 consistent across all devices,<wbr/> and any given device may only implement
   4263 a subset of these modes.<wbr/></p>
   4264             </td>
   4265           </tr>
   4266 
   4267           <tr class="entries_header">
   4268             <th class="th_details" colspan="6">HAL Implementation Details</th>
   4269           </tr>
   4270           <tr class="entry_cont">
   4271             <td class="entry_details" colspan="6">
   4272               <p>HAL implementations that include scene modes are expected to provide
   4273 the per-scene settings to use for <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
   4274 <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
   4275 <a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
   4276 <p>For HIGH_<wbr/>SPEED_<wbr/>VIDEO mode,<wbr/> if it is included in <a href="#static_android.control.availableSceneModes">android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes</a>,<wbr/> the
   4277 HAL must list supported video size and fps range in
   4278 <a href="#static_android.control.availableHighSpeedVideoConfigurations">android.<wbr/>control.<wbr/>available<wbr/>High<wbr/>Speed<wbr/>Video<wbr/>Configurations</a>.<wbr/> For a given size,<wbr/> e.<wbr/>g.<wbr/>  1280x720,<wbr/>
   4279 if the HAL has two different sensor configurations for normal streaming mode and high
   4280 speed streaming,<wbr/> when this scene mode is set/<wbr/>reset in a sequence of capture requests,<wbr/> the
   4281 HAL may have to switch between different sensor modes.<wbr/>  This mode is deprecated in legacy
   4282 HAL3.<wbr/>3,<wbr/> to support high speed video recording,<wbr/> please implement
   4283 <a href="#static_android.control.availableHighSpeedVideoConfigurations">android.<wbr/>control.<wbr/>available<wbr/>High<wbr/>Speed<wbr/>Video<wbr/>Configurations</a> and CONSTRAINED_<wbr/>HIGH_<wbr/>SPEED_<wbr/>VIDEO
   4284 capbility defined in <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>.<wbr/></p>
   4285             </td>
   4286           </tr>
   4287 
   4288           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   4289            <!-- end of entry -->
   4290         
   4291                 
   4292           <tr class="entry" id="controls_android.control.videoStabilizationMode">
   4293             <td class="entry_name
   4294              " rowspan="3">
   4295               android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode
   4296             </td>
   4297             <td class="entry_type">
   4298                 <span class="entry_type_name entry_type_name_enum">byte</span>
   4299 
   4300               <span class="entry_type_visibility"> [public]</span>
   4301 
   4302 
   4303               <span class="entry_type_hwlevel">[legacy] </span>
   4304 
   4305 
   4306 
   4307                 <ul class="entry_type_enum">
   4308                   <li>
   4309                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   4310                     <span class="entry_type_enum_notes"><p>Video stabilization is disabled.<wbr/></p></span>
   4311                   </li>
   4312                   <li>
   4313                     <span class="entry_type_enum_name">ON (v3.2)</span>
   4314                     <span class="entry_type_enum_notes"><p>Video stabilization is enabled.<wbr/></p></span>
   4315                   </li>
   4316                 </ul>
   4317 
   4318             </td> <!-- entry_type -->
   4319 
   4320             <td class="entry_description">
   4321               <p>Whether video stabilization is
   4322 active.<wbr/></p>
   4323             </td>
   4324 
   4325             <td class="entry_units">
   4326             </td>
   4327 
   4328             <td class="entry_range">
   4329             </td>
   4330 
   4331             <td class="entry_hal_version">
   4332               <p>3.<wbr/>2</p>
   4333             </td>
   4334 
   4335             <td class="entry_tags">
   4336               <ul class="entry_tags">
   4337                   <li><a href="#tag_BC">BC</a></li>
   4338               </ul>
   4339             </td>
   4340 
   4341           </tr>
   4342           <tr class="entries_header">
   4343             <th class="th_details" colspan="6">Details</th>
   4344           </tr>
   4345           <tr class="entry_cont">
   4346             <td class="entry_details" colspan="6">
   4347               <p>Video stabilization automatically warps images from
   4348 the camera in order to stabilize motion between consecutive frames.<wbr/></p>
   4349 <p>If enabled,<wbr/> video stabilization can modify the
   4350 <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a> to keep the video stream stabilized.<wbr/></p>
   4351 <p>Switching between different video stabilization modes may take several
   4352 frames to initialize,<wbr/> the camera device will report the current mode
   4353 in capture result metadata.<wbr/> For example,<wbr/> When "ON" mode is requested,<wbr/>
   4354 the video stabilization modes in the first several capture results may
   4355 still be "OFF",<wbr/> and it will become "ON" when the initialization is
   4356 done.<wbr/></p>
   4357 <p>In addition,<wbr/> not all recording sizes or frame rates may be supported for
   4358 stabilization by a device that reports stabilization support.<wbr/> It is guaranteed
   4359 that an output targeting a MediaRecorder or MediaCodec will be stabilized if
   4360 the recording resolution is less than or equal to 1920 x 1080 (width less than
   4361 or equal to 1920,<wbr/> height less than or equal to 1080),<wbr/> and the recording
   4362 frame rate is less than or equal to 30fps.<wbr/>  At other sizes,<wbr/> the CaptureResult
   4363 <a href="#controls_android.control.videoStabilizationMode">android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode</a> field will return
   4364 OFF if the recording output is not stabilized,<wbr/> or if there are no output
   4365 Surface types that can be stabilized.<wbr/></p>
   4366 <p>If a camera device supports both this mode and OIS
   4367 (<a href="#controls_android.lens.opticalStabilizationMode">android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode</a>),<wbr/> turning both modes on may
   4368 produce undesirable interaction,<wbr/> so it is recommended not to enable
   4369 both at the same time.<wbr/></p>
   4370             </td>
   4371           </tr>
   4372 
   4373 
   4374           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   4375            <!-- end of entry -->
   4376         
   4377                 
   4378           <tr class="entry" id="controls_android.control.postRawSensitivityBoost">
   4379             <td class="entry_name
   4380              " rowspan="3">
   4381               android.<wbr/>control.<wbr/>post<wbr/>Raw<wbr/>Sensitivity<wbr/>Boost
   4382             </td>
   4383             <td class="entry_type">
   4384                 <span class="entry_type_name">int32</span>
   4385 
   4386               <span class="entry_type_visibility"> [public]</span>
   4387 
   4388 
   4389 
   4390 
   4391 
   4392 
   4393             </td> <!-- entry_type -->
   4394 
   4395             <td class="entry_description">
   4396               <p>The amount of additional sensitivity boost applied to output images
   4397 after RAW sensor data is captured.<wbr/></p>
   4398             </td>
   4399 
   4400             <td class="entry_units">
   4401               ISO arithmetic units,<wbr/> the same as android.<wbr/>sensor.<wbr/>sensitivity
   4402             </td>
   4403 
   4404             <td class="entry_range">
   4405               <p><a href="#static_android.control.postRawSensitivityBoostRange">android.<wbr/>control.<wbr/>post<wbr/>Raw<wbr/>Sensitivity<wbr/>Boost<wbr/>Range</a></p>
   4406             </td>
   4407 
   4408             <td class="entry_hal_version">
   4409               <p>3.<wbr/>2</p>
   4410             </td>
   4411 
   4412             <td class="entry_tags">
   4413             </td>
   4414 
   4415           </tr>
   4416           <tr class="entries_header">
   4417             <th class="th_details" colspan="6">Details</th>
   4418           </tr>
   4419           <tr class="entry_cont">
   4420             <td class="entry_details" colspan="6">
   4421               <p>Some camera devices support additional digital sensitivity boosting in the
   4422 camera processing pipeline after sensor RAW image is captured.<wbr/>
   4423 Such a boost will be applied to YUV/<wbr/>JPEG format output images but will not
   4424 have effect on RAW output formats like RAW_<wbr/>SENSOR,<wbr/> RAW10,<wbr/> RAW12 or RAW_<wbr/>OPAQUE.<wbr/></p>
   4425 <p>This key will be <code>null</code> for devices that do not support any RAW format
   4426 outputs.<wbr/> For devices that do support RAW format outputs,<wbr/> this key will always
   4427 present,<wbr/> and if a device does not support post RAW sensitivity boost,<wbr/> it will
   4428 list <code>100</code> in this key.<wbr/></p>
   4429 <p>If the camera device cannot apply the exact boost requested,<wbr/> it will reduce the
   4430 boost to the nearest supported value.<wbr/>
   4431 The final boost value used will be available in the output capture result.<wbr/></p>
   4432 <p>For devices that support post RAW sensitivity boost,<wbr/> the YUV/<wbr/>JPEG output images
   4433 of such device will have the total sensitivity of
   4434 <code><a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> * <a href="#controls_android.control.postRawSensitivityBoost">android.<wbr/>control.<wbr/>post<wbr/>Raw<wbr/>Sensitivity<wbr/>Boost</a> /<wbr/> 100</code>
   4435 The sensitivity of RAW format images will always be <code><a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a></code></p>
   4436 <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
   4437 OFF; otherwise the auto-exposure algorithm will override this value.<wbr/></p>
   4438             </td>
   4439           </tr>
   4440 
   4441 
   4442           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   4443            <!-- end of entry -->
   4444         
   4445                 
   4446           <tr class="entry" id="controls_android.control.enableZsl">
   4447             <td class="entry_name
   4448              " rowspan="5">
   4449               android.<wbr/>control.<wbr/>enable<wbr/>Zsl
   4450             </td>
   4451             <td class="entry_type">
   4452                 <span class="entry_type_name entry_type_name_enum">byte</span>
   4453 
   4454               <span class="entry_type_visibility"> [public as boolean]</span>
   4455 
   4456 
   4457 
   4458 
   4459 
   4460                 <ul class="entry_type_enum">
   4461                   <li>
   4462                     <span class="entry_type_enum_name">FALSE (v3.2)</span>
   4463                     <span class="entry_type_enum_notes"><p>Requests with <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> == STILL_<wbr/>CAPTURE must be captured
   4464 after previous requests.<wbr/></p></span>
   4465                   </li>
   4466                   <li>
   4467                     <span class="entry_type_enum_name">TRUE (v3.2)</span>
   4468                     <span class="entry_type_enum_notes"><p>Requests with <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> == STILL_<wbr/>CAPTURE may or may not be
   4469 captured before previous requests.<wbr/></p></span>
   4470                   </li>
   4471                 </ul>
   4472 
   4473             </td> <!-- entry_type -->
   4474 
   4475             <td class="entry_description">
   4476               <p>Allow camera device to enable zero-shutter-lag mode for requests with
   4477 <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> == STILL_<wbr/>CAPTURE.<wbr/></p>
   4478             </td>
   4479 
   4480             <td class="entry_units">
   4481             </td>
   4482 
   4483             <td class="entry_range">
   4484             </td>
   4485 
   4486             <td class="entry_hal_version">
   4487               <p>3.<wbr/>2</p>
   4488             </td>
   4489 
   4490             <td class="entry_tags">
   4491             </td>
   4492 
   4493           </tr>
   4494           <tr class="entries_header">
   4495             <th class="th_details" colspan="6">Details</th>
   4496           </tr>
   4497           <tr class="entry_cont">
   4498             <td class="entry_details" colspan="6">
   4499               <p>If enableZsl is <code>true</code>,<wbr/> the camera device may enable zero-shutter-lag mode for requests with
   4500 STILL_<wbr/>CAPTURE capture intent.<wbr/> The camera device may use images captured in the past to
   4501 produce output images for a zero-shutter-lag request.<wbr/> The result metadata including the
   4502 <a href="#dynamic_android.sensor.timestamp">android.<wbr/>sensor.<wbr/>timestamp</a> reflects the source frames used to produce output images.<wbr/>
   4503 Therefore,<wbr/> the contents of the output images and the result metadata may be out of order
   4504 compared to previous regular requests.<wbr/> enableZsl does not affect requests with other
   4505 capture intents.<wbr/></p>
   4506 <p>For example,<wbr/> when requests are submitted in the following order:
   4507   Request A: enableZsl is ON,<wbr/> <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> is PREVIEW
   4508   Request B: enableZsl is ON,<wbr/> <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> is STILL_<wbr/>CAPTURE</p>
   4509 <p>The output images for request B may have contents captured before the output images for
   4510 request A,<wbr/> and the result metadata for request B may be older than the result metadata for
   4511 request A.<wbr/></p>
   4512 <p>Note that when enableZsl is <code>true</code>,<wbr/> it is not guaranteed to get output images captured in
   4513 the past for requests with STILL_<wbr/>CAPTURE capture intent.<wbr/></p>
   4514 <p>For applications targeting SDK versions O and newer,<wbr/> the value of enableZsl in
   4515 TEMPLATE_<wbr/>STILL_<wbr/>CAPTURE template may be <code>true</code>.<wbr/> The value in other templates is always
   4516 <code>false</code> if present.<wbr/></p>
   4517 <p>For applications targeting SDK versions older than O,<wbr/> the value of enableZsl in all
   4518 capture templates is always <code>false</code> if present.<wbr/></p>
   4519 <p>For application-operated ZSL,<wbr/> use CAMERA3_<wbr/>TEMPLATE_<wbr/>ZERO_<wbr/>SHUTTER_<wbr/>LAG template.<wbr/></p>
   4520             </td>
   4521           </tr>
   4522 
   4523           <tr class="entries_header">
   4524             <th class="th_details" colspan="6">HAL Implementation Details</th>
   4525           </tr>
   4526           <tr class="entry_cont">
   4527             <td class="entry_details" colspan="6">
   4528               <p>It is valid for HAL to produce regular output images for requests with STILL_<wbr/>CAPTURE
   4529 capture intent.<wbr/></p>
   4530             </td>
   4531           </tr>
   4532 
   4533           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   4534            <!-- end of entry -->
   4535         
   4536         
   4537 
   4538       <!-- end of kind -->
   4539       </tbody>
   4540       <tr><td colspan="7" class="kind">static</td></tr>
   4541 
   4542       <thead class="entries_header">
   4543         <tr>
   4544           <th class="th_name">Property Name</th>
   4545           <th class="th_type">Type</th>
   4546           <th class="th_description">Description</th>
   4547           <th class="th_units">Units</th>
   4548           <th class="th_range">Range</th>
   4549           <th class="th_hal_version">Initial HIDL HAL version</th>
   4550           <th class="th_tags">Tags</th>
   4551         </tr>
   4552       </thead>
   4553 
   4554       <tbody>
   4555 
   4556         
   4557 
   4558         
   4559 
   4560         
   4561 
   4562         
   4563 
   4564                 
   4565           <tr class="entry" id="static_android.control.aeAvailableAntibandingModes">
   4566             <td class="entry_name
   4567              " rowspan="3">
   4568               android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes
   4569             </td>
   4570             <td class="entry_type">
   4571                 <span class="entry_type_name">byte</span>
   4572                 <span class="entry_type_container">x</span>
   4573 
   4574                 <span class="entry_type_array">
   4575                   n
   4576                 </span>
   4577               <span class="entry_type_visibility"> [public as enumList]</span>
   4578 
   4579 
   4580               <span class="entry_type_hwlevel">[legacy] </span>
   4581 
   4582 
   4583                 <div class="entry_type_notes">list of enums</div>
   4584 
   4585 
   4586             </td> <!-- entry_type -->
   4587 
   4588             <td class="entry_description">
   4589               <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
   4590 supported by this camera device.<wbr/></p>
   4591             </td>
   4592 
   4593             <td class="entry_units">
   4594             </td>
   4595 
   4596             <td class="entry_range">
   4597               <p>Any value listed in <a href="#controls_android.control.aeAntibandingMode">android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode</a></p>
   4598             </td>
   4599 
   4600             <td class="entry_hal_version">
   4601               <p>3.<wbr/>2</p>
   4602             </td>
   4603 
   4604             <td class="entry_tags">
   4605               <ul class="entry_tags">
   4606                   <li><a href="#tag_BC">BC</a></li>
   4607               </ul>
   4608             </td>
   4609 
   4610           </tr>
   4611           <tr class="entries_header">
   4612             <th class="th_details" colspan="6">Details</th>
   4613           </tr>
   4614           <tr class="entry_cont">
   4615             <td class="entry_details" colspan="6">
   4616               <p>Not all of the auto-exposure anti-banding modes may be
   4617 supported by a given camera device.<wbr/> This field lists the
   4618 valid anti-banding modes that the application may request
   4619 for this camera device with the
   4620 <a href="#controls_android.control.aeAntibandingMode">android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode</a> control.<wbr/></p>
   4621             </td>
   4622           </tr>
   4623 
   4624 
   4625           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   4626            <!-- end of entry -->
   4627         
   4628                 
   4629           <tr class="entry" id="static_android.control.aeAvailableModes">
   4630             <td class="entry_name
   4631              " rowspan="3">
   4632               android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes
   4633             </td>
   4634             <td class="entry_type">
   4635                 <span class="entry_type_name">byte</span>
   4636                 <span class="entry_type_container">x</span>
   4637 
   4638                 <span class="entry_type_array">
   4639                   n
   4640                 </span>
   4641               <span class="entry_type_visibility"> [public as enumList]</span>
   4642 
   4643 
   4644               <span class="entry_type_hwlevel">[legacy] </span>
   4645 
   4646 
   4647                 <div class="entry_type_notes">list of enums</div>
   4648 
   4649 
   4650             </td> <!-- entry_type -->
   4651 
   4652             <td class="entry_description">
   4653               <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
   4654 device.<wbr/></p>
   4655             </td>
   4656 
   4657             <td class="entry_units">
   4658             </td>
   4659 
   4660             <td class="entry_range">
   4661               <p>Any value listed in <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a></p>
   4662             </td>
   4663 
   4664             <td class="entry_hal_version">
   4665               <p>3.<wbr/>2</p>
   4666             </td>
   4667 
   4668             <td class="entry_tags">
   4669               <ul class="entry_tags">
   4670                   <li><a href="#tag_BC">BC</a></li>
   4671               </ul>
   4672             </td>
   4673 
   4674           </tr>
   4675           <tr class="entries_header">
   4676             <th class="th_details" colspan="6">Details</th>
   4677           </tr>
   4678           <tr class="entry_cont">
   4679             <td class="entry_details" colspan="6">
   4680               <p>Not all the auto-exposure modes may be supported by a
   4681 given camera device,<wbr/> especially if no flash unit is
   4682 available.<wbr/> This entry lists the valid modes for
   4683 <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> for this camera device.<wbr/></p>
   4684 <p>All camera devices support ON,<wbr/> and all camera devices with flash
   4685 units support ON_<wbr/>AUTO_<wbr/>FLASH and ON_<wbr/>ALWAYS_<wbr/>FLASH.<wbr/></p>
   4686 <p>FULL mode camera devices always support OFF mode,<wbr/>
   4687 which enables application control of camera exposure time,<wbr/>
   4688 sensitivity,<wbr/> and frame duration.<wbr/></p>
   4689 <p>LEGACY mode camera devices never support OFF mode.<wbr/>
   4690 LIMITED mode devices support OFF if they support the MANUAL_<wbr/>SENSOR
   4691 capability.<wbr/></p>
   4692             </td>
   4693           </tr>
   4694 
   4695 
   4696           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   4697            <!-- end of entry -->
   4698         
   4699                 
   4700           <tr class="entry" id="static_android.control.aeAvailableTargetFpsRanges">
   4701             <td class="entry_name
   4702              " rowspan="3">
   4703               android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges
   4704             </td>
   4705             <td class="entry_type">
   4706                 <span class="entry_type_name">int32</span>
   4707                 <span class="entry_type_container">x</span>
   4708 
   4709                 <span class="entry_type_array">
   4710                   2 x n
   4711                 </span>
   4712               <span class="entry_type_visibility"> [public as rangeInt]</span>
   4713 
   4714 
   4715               <span class="entry_type_hwlevel">[legacy] </span>
   4716 
   4717 
   4718                 <div class="entry_type_notes">list of pairs of frame rates</div>
   4719 
   4720 
   4721             </td> <!-- entry_type -->
   4722 
   4723             <td class="entry_description">
   4724               <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
   4725 this camera device.<wbr/></p>
   4726             </td>
   4727 
   4728             <td class="entry_units">
   4729               Frames per second (FPS)
   4730             </td>
   4731 
   4732             <td class="entry_range">
   4733             </td>
   4734 
   4735             <td class="entry_hal_version">
   4736               <p>3.<wbr/>2</p>
   4737             </td>
   4738 
   4739             <td class="entry_tags">
   4740               <ul class="entry_tags">
   4741                   <li><a href="#tag_BC">BC</a></li>
   4742               </ul>
   4743             </td>
   4744 
   4745           </tr>
   4746           <tr class="entries_header">
   4747             <th class="th_details" colspan="6">Details</th>
   4748           </tr>
   4749           <tr class="entry_cont">
   4750             <td class="entry_details" colspan="6">
   4751               <p>For devices at the LEGACY level or above:</p>
   4752 <ul>
   4753 <li>
   4754 <p>For constant-framerate recording,<wbr/> for each normal
   4755 <a href="https://developer.android.com/reference/android/media/CamcorderProfile.html">CamcorderProfile</a>,<wbr/> that is,<wbr/> a
   4756 <a href="https://developer.android.com/reference/android/media/CamcorderProfile.html">CamcorderProfile</a> that has
   4757 <a href="https://developer.android.com/reference/android/media/CamcorderProfile.html#quality">quality</a> in
   4758 the range [<a href="https://developer.android.com/reference/android/media/CamcorderProfile.html#QUALITY_LOW">QUALITY_<wbr/>LOW</a>,<wbr/>
   4759 <a href="https://developer.android.com/reference/android/media/CamcorderProfile.html#QUALITY_2160P">QUALITY_<wbr/>2160P</a>],<wbr/> if the profile is
   4760 supported by the device and has
   4761 <a href="https://developer.android.com/reference/android/media/CamcorderProfile.html#videoFrameRate">videoFrameRate</a> <code>x</code>,<wbr/> this list will
   4762 always include (<code>x</code>,<wbr/><code>x</code>).<wbr/></p>
   4763 </li>
   4764 <li>
   4765 <p>Also,<wbr/> a camera device must either not support any
   4766 <a href="https://developer.android.com/reference/android/media/CamcorderProfile.html">CamcorderProfile</a>,<wbr/>
   4767 or support at least one
   4768 normal <a href="https://developer.android.com/reference/android/media/CamcorderProfile.html">CamcorderProfile</a> that has
   4769 <a href="https://developer.android.com/reference/android/media/CamcorderProfile.html#videoFrameRate">videoFrameRate</a> <code>x</code> &gt;= 24.<wbr/></p>
   4770 </li>
   4771 </ul>
   4772 <p>For devices at the LIMITED level or above:</p>
   4773 <ul>
   4774 <li>For YUV_<wbr/>420_<wbr/>888 burst capture use case,<wbr/> this list will always include (<code>min</code>,<wbr/> <code>max</code>)
   4775 and (<code>max</code>,<wbr/> <code>max</code>) where <code>min</code> &lt;= 15 and <code>max</code> = the maximum output frame rate of the
   4776 maximum YUV_<wbr/>420_<wbr/>888 output size.<wbr/></li>
   4777 </ul>
   4778             </td>
   4779           </tr>
   4780 
   4781 
   4782           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   4783            <!-- end of entry -->
   4784         
   4785                 
   4786           <tr class="entry" id="static_android.control.aeCompensationRange">
   4787             <td class="entry_name
   4788              " rowspan="1">
   4789               android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range
   4790             </td>
   4791             <td class="entry_type">
   4792                 <span class="entry_type_name">int32</span>
   4793                 <span class="entry_type_container">x</span>
   4794 
   4795                 <span class="entry_type_array">
   4796                   2
   4797                 </span>
   4798               <span class="entry_type_visibility"> [public as rangeInt]</span>
   4799 
   4800 
   4801               <span class="entry_type_hwlevel">[legacy] </span>
   4802 
   4803 
   4804 
   4805 
   4806             </td> <!-- entry_type -->
   4807 
   4808             <td class="entry_description">
   4809               <p>Maximum and minimum exposure compensation values for
   4810 <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/>
   4811 that are supported by this camera device.<wbr/></p>
   4812             </td>
   4813 
   4814             <td class="entry_units">
   4815             </td>
   4816 
   4817             <td class="entry_range">
   4818               <p>Range [0,<wbr/>0] indicates that exposure compensation is not supported.<wbr/></p>
   4819 <p>For LIMITED and FULL devices,<wbr/> range must follow below requirements if exposure
   4820 compensation is supported (<code>range != [0,<wbr/> 0]</code>):</p>
   4821 <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>
   4822 <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>
   4823 <p>LEGACY devices may support a smaller range than this.<wbr/></p>
   4824             </td>
   4825 
   4826             <td class="entry_hal_version">
   4827               <p>3.<wbr/>2</p>
   4828             </td>
   4829 
   4830             <td class="entry_tags">
   4831               <ul class="entry_tags">
   4832                   <li><a href="#tag_BC">BC</a></li>
   4833               </ul>
   4834             </td>
   4835 
   4836           </tr>
   4837 
   4838 
   4839           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   4840            <!-- end of entry -->
   4841         
   4842                 
   4843           <tr class="entry" id="static_android.control.aeCompensationStep">
   4844             <td class="entry_name
   4845              " rowspan="5">
   4846               android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step
   4847             </td>
   4848             <td class="entry_type">
   4849                 <span class="entry_type_name">rational</span>
   4850 
   4851               <span class="entry_type_visibility"> [public]</span>
   4852 
   4853 
   4854               <span class="entry_type_hwlevel">[legacy] </span>
   4855 
   4856 
   4857 
   4858 
   4859             </td> <!-- entry_type -->
   4860 
   4861             <td class="entry_description">
   4862               <p>Smallest step by which the exposure compensation
   4863 can be changed.<wbr/></p>
   4864             </td>
   4865 
   4866             <td class="entry_units">
   4867               Exposure Value (EV)
   4868             </td>
   4869 
   4870             <td class="entry_range">
   4871             </td>
   4872 
   4873             <td class="entry_hal_version">
   4874               <p>3.<wbr/>2</p>
   4875             </td>
   4876 
   4877             <td class="entry_tags">
   4878               <ul class="entry_tags">
   4879                   <li><a href="#tag_BC">BC</a></li>
   4880               </ul>
   4881             </td>
   4882 
   4883           </tr>
   4884           <tr class="entries_header">
   4885             <th class="th_details" colspan="6">Details</th>
   4886           </tr>
   4887           <tr class="entry_cont">
   4888             <td class="entry_details" colspan="6">
   4889               <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
   4890 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
   4891 that the target EV offset for the auto-exposure routine is -1 EV.<wbr/></p>
   4892 <p>One unit of EV compensation changes the brightness of the captured image by a factor
   4893 of two.<wbr/> +1 EV doubles the image brightness,<wbr/> while -1 EV halves the image brightness.<wbr/></p>
   4894             </td>
   4895           </tr>
   4896 
   4897           <tr class="entries_header">
   4898             <th class="th_details" colspan="6">HAL Implementation Details</th>
   4899           </tr>
   4900           <tr class="entry_cont">
   4901             <td class="entry_details" colspan="6">
   4902               <p>This must be less than or equal to 1/<wbr/>2.<wbr/></p>
   4903             </td>
   4904           </tr>
   4905 
   4906           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   4907            <!-- end of entry -->
   4908         
   4909                 
   4910           <tr class="entry" id="static_android.control.afAvailableModes">
   4911             <td class="entry_name
   4912              " rowspan="3">
   4913               android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes
   4914             </td>
   4915             <td class="entry_type">
   4916                 <span class="entry_type_name">byte</span>
   4917                 <span class="entry_type_container">x</span>
   4918 
   4919                 <span class="entry_type_array">
   4920                   n
   4921                 </span>
   4922               <span class="entry_type_visibility"> [public as enumList]</span>
   4923 
   4924 
   4925               <span class="entry_type_hwlevel">[legacy] </span>
   4926 
   4927 
   4928                 <div class="entry_type_notes">List of enums</div>
   4929 
   4930 
   4931             </td> <!-- entry_type -->
   4932 
   4933             <td class="entry_description">
   4934               <p>List of auto-focus (AF) modes for <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> that are
   4935 supported by this camera device.<wbr/></p>
   4936             </td>
   4937 
   4938             <td class="entry_units">
   4939             </td>
   4940 
   4941             <td class="entry_range">
   4942               <p>Any value listed in <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a></p>
   4943             </td>
   4944 
   4945             <td class="entry_hal_version">
   4946               <p>3.<wbr/>2</p>
   4947             </td>
   4948 
   4949             <td class="entry_tags">
   4950               <ul class="entry_tags">
   4951                   <li><a href="#tag_BC">BC</a></li>
   4952               </ul>
   4953             </td>
   4954 
   4955           </tr>
   4956           <tr class="entries_header">
   4957             <th class="th_details" colspan="6">Details</th>
   4958           </tr>
   4959           <tr class="entry_cont">
   4960             <td class="entry_details" colspan="6">
   4961               <p>Not all the auto-focus modes may be supported by a
   4962 given camera device.<wbr/> This entry lists the valid modes for
   4963 <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> for this camera device.<wbr/></p>
   4964 <p>All LIMITED and FULL mode camera devices will support OFF mode,<wbr/> and all
   4965 camera devices with adjustable focuser units
   4966 (<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>
   4967 <p>LEGACY devices will support OFF mode only if they support
   4968 focusing to infinity (by also setting <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> to
   4969 <code>0.<wbr/>0f</code>).<wbr/></p>
   4970             </td>
   4971           </tr>
   4972 
   4973 
   4974           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   4975            <!-- end of entry -->
   4976         
   4977                 
   4978           <tr class="entry" id="static_android.control.availableEffects">
   4979             <td class="entry_name
   4980              " rowspan="3">
   4981               android.<wbr/>control.<wbr/>available<wbr/>Effects
   4982             </td>
   4983             <td class="entry_type">
   4984                 <span class="entry_type_name">byte</span>
   4985                 <span class="entry_type_container">x</span>
   4986 
   4987                 <span class="entry_type_array">
   4988                   n
   4989                 </span>
   4990               <span class="entry_type_visibility"> [public as enumList]</span>
   4991 
   4992 
   4993               <span class="entry_type_hwlevel">[legacy] </span>
   4994 
   4995 
   4996                 <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>effect<wbr/>Mode).<wbr/></div>
   4997 
   4998 
   4999             </td> <!-- entry_type -->
   5000 
   5001             <td class="entry_description">
   5002               <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
   5003 device.<wbr/></p>
   5004             </td>
   5005 
   5006             <td class="entry_units">
   5007             </td>
   5008 
   5009             <td class="entry_range">
   5010               <p>Any value listed in <a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a></p>
   5011             </td>
   5012 
   5013             <td class="entry_hal_version">
   5014               <p>3.<wbr/>2</p>
   5015             </td>
   5016 
   5017             <td class="entry_tags">
   5018               <ul class="entry_tags">
   5019                   <li><a href="#tag_BC">BC</a></li>
   5020               </ul>
   5021             </td>
   5022 
   5023           </tr>
   5024           <tr class="entries_header">
   5025             <th class="th_details" colspan="6">Details</th>
   5026           </tr>
   5027           <tr class="entry_cont">
   5028             <td class="entry_details" colspan="6">
   5029               <p>This list contains the color effect modes that can be applied to
   5030 images produced by the camera device.<wbr/>
   5031 Implementations are not expected to be consistent across all devices.<wbr/>
   5032 If no color effect modes are available for a device,<wbr/> this will only list
   5033 OFF.<wbr/></p>
   5034 <p>A color effect will only be applied if
   5035 <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF.<wbr/>  OFF is always included in this list.<wbr/></p>
   5036 <p>This control has no effect on the operation of other control routines such
   5037 as auto-exposure,<wbr/> white balance,<wbr/> or focus.<wbr/></p>
   5038             </td>
   5039           </tr>
   5040 
   5041 
   5042           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   5043            <!-- end of entry -->
   5044         
   5045                 
   5046           <tr class="entry" id="static_android.control.availableSceneModes">
   5047             <td class="entry_name
   5048              " rowspan="3">
   5049               android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes
   5050             </td>
   5051             <td class="entry_type">
   5052                 <span class="entry_type_name">byte</span>
   5053                 <span class="entry_type_container">x</span>
   5054 
   5055                 <span class="entry_type_array">
   5056                   n
   5057                 </span>
   5058               <span class="entry_type_visibility"> [public as enumList]</span>
   5059 
   5060 
   5061               <span class="entry_type_hwlevel">[legacy] </span>
   5062 
   5063 
   5064                 <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>scene<wbr/>Mode).<wbr/></div>
   5065 
   5066 
   5067             </td> <!-- entry_type -->
   5068 
   5069             <td class="entry_description">
   5070               <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
   5071 device.<wbr/></p>
   5072             </td>
   5073 
   5074             <td class="entry_units">
   5075             </td>
   5076 
   5077             <td class="entry_range">
   5078               <p>Any value listed in <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a></p>
   5079             </td>
   5080 
   5081             <td class="entry_hal_version">
   5082               <p>3.<wbr/>2</p>
   5083             </td>
   5084 
   5085             <td class="entry_tags">
   5086               <ul class="entry_tags">
   5087                   <li><a href="#tag_BC">BC</a></li>
   5088               </ul>
   5089             </td>
   5090 
   5091           </tr>
   5092           <tr class="entries_header">
   5093             <th class="th_details" colspan="6">Details</th>
   5094           </tr>
   5095           <tr class="entry_cont">
   5096             <td class="entry_details" colspan="6">
   5097               <p>This list contains scene modes that can be set for the camera device.<wbr/>
   5098 Only scene modes that have been fully implemented for the
   5099 camera device may be included here.<wbr/> Implementations are not expected
   5100 to be consistent across all devices.<wbr/></p>
   5101 <p>If no scene modes are supported by the camera device,<wbr/> this
   5102 will be set to DISABLED.<wbr/> Otherwise DISABLED will not be listed.<wbr/></p>
   5103 <p>FACE_<wbr/>PRIORITY is always listed if face detection is
   5104 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;
   5105 0</code>).<wbr/></p>
   5106             </td>
   5107           </tr>
   5108 
   5109 
   5110           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   5111            <!-- end of entry -->
   5112         
   5113                 
   5114           <tr class="entry" id="static_android.control.availableVideoStabilizationModes">
   5115             <td class="entry_name
   5116              " rowspan="3">
   5117               android.<wbr/>control.<wbr/>available<wbr/>Video<wbr/>Stabilization<wbr/>Modes
   5118             </td>
   5119             <td class="entry_type">
   5120                 <span class="entry_type_name">byte</span>
   5121                 <span class="entry_type_container">x</span>
   5122 
   5123                 <span class="entry_type_array">
   5124                   n
   5125                 </span>
   5126               <span class="entry_type_visibility"> [public as enumList]</span>
   5127 
   5128 
   5129               <span class="entry_type_hwlevel">[legacy] </span>
   5130 
   5131 
   5132                 <div class="entry_type_notes">List of enums.<wbr/></div>
   5133 
   5134 
   5135             </td> <!-- entry_type -->
   5136 
   5137             <td class="entry_description">
   5138               <p>List of video stabilization modes for <a href="#controls_android.control.videoStabilizationMode">android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode</a>
   5139 that are supported by this camera device.<wbr/></p>
   5140             </td>
   5141 
   5142             <td class="entry_units">
   5143             </td>
   5144 
   5145             <td class="entry_range">
   5146               <p>Any value listed in <a href="#controls_android.control.videoStabilizationMode">android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode</a></p>
   5147             </td>
   5148 
   5149             <td class="entry_hal_version">
   5150               <p>3.<wbr/>2</p>
   5151             </td>
   5152 
   5153             <td class="entry_tags">
   5154               <ul class="entry_tags">
   5155                   <li><a href="#tag_BC">BC</a></li>
   5156               </ul>
   5157             </td>
   5158 
   5159           </tr>
   5160           <tr class="entries_header">
   5161             <th class="th_details" colspan="6">Details</th>
   5162           </tr>
   5163           <tr class="entry_cont">
   5164             <td class="entry_details" colspan="6">
   5165               <p>OFF will always be listed.<wbr/></p>
   5166             </td>
   5167           </tr>
   5168 
   5169 
   5170           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   5171            <!-- end of entry -->
   5172         
   5173                 
   5174           <tr class="entry" id="static_android.control.awbAvailableModes">
   5175             <td class="entry_name
   5176              " rowspan="3">
   5177               android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes
   5178             </td>
   5179             <td class="entry_type">
   5180                 <span class="entry_type_name">byte</span>
   5181                 <span class="entry_type_container">x</span>
   5182 
   5183                 <span class="entry_type_array">
   5184                   n
   5185                 </span>
   5186               <span class="entry_type_visibility"> [public as enumList]</span>
   5187 
   5188 
   5189               <span class="entry_type_hwlevel">[legacy] </span>
   5190 
   5191 
   5192                 <div class="entry_type_notes">List of enums</div>
   5193 
   5194 
   5195             </td> <!-- entry_type -->
   5196 
   5197             <td class="entry_description">
   5198               <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
   5199 camera device.<wbr/></p>
   5200             </td>
   5201 
   5202             <td class="entry_units">
   5203             </td>
   5204 
   5205             <td class="entry_range">
   5206               <p>Any value listed in <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a></p>
   5207             </td>
   5208 
   5209             <td class="entry_hal_version">
   5210               <p>3.<wbr/>2</p>
   5211             </td>
   5212 
   5213             <td class="entry_tags">
   5214               <ul class="entry_tags">
   5215                   <li><a href="#tag_BC">BC</a></li>
   5216               </ul>
   5217             </td>
   5218 
   5219           </tr>
   5220           <tr class="entries_header">
   5221             <th class="th_details" colspan="6">Details</th>
   5222           </tr>
   5223           <tr class="entry_cont">
   5224             <td class="entry_details" colspan="6">
   5225               <p>Not all the auto-white-balance modes may be supported by a
   5226 given camera device.<wbr/> This entry lists the valid modes for
   5227 <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> for this camera device.<wbr/></p>
   5228 <p>All camera devices will support ON mode.<wbr/></p>
   5229 <p>Camera devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability will always support OFF
   5230 mode,<wbr/> which enables application control of white balance,<wbr/> by using
   5231 <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
   5232 mode camera devices.<wbr/></p>
   5233             </td>
   5234           </tr>
   5235 
   5236 
   5237           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   5238            <!-- end of entry -->
   5239         
   5240                 
   5241           <tr class="entry" id="static_android.control.maxRegions">
   5242             <td class="entry_name
   5243              " rowspan="1">
   5244               android.<wbr/>control.<wbr/>max<wbr/>Regions
   5245             </td>
   5246             <td class="entry_type">
   5247                 <span class="entry_type_name">int32</span>
   5248                 <span class="entry_type_container">x</span>
   5249 
   5250                 <span class="entry_type_array">
   5251                   3
   5252                 </span>
   5253               <span class="entry_type_visibility"> [ndk_public]</span>
   5254 
   5255 
   5256               <span class="entry_type_hwlevel">[legacy] </span>
   5257 
   5258 
   5259 
   5260 
   5261             </td> <!-- entry_type -->
   5262 
   5263             <td class="entry_description">
   5264               <p>List of the maximum number of regions that can be used for metering in
   5265 auto-exposure (AE),<wbr/> auto-white balance (AWB),<wbr/> and auto-focus (AF);
   5266 this corresponds to the the maximum number of elements in
   5267 <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/>
   5268 and <a href="#controls_android.control.afRegions">android.<wbr/>control.<wbr/>af<wbr/>Regions</a>.<wbr/></p>
   5269             </td>
   5270 
   5271             <td class="entry_units">
   5272             </td>
   5273 
   5274             <td class="entry_range">
   5275               <p>Value must be &gt;= 0 for each element.<wbr/> For full-capability devices
   5276 this value must be &gt;= 1 for AE and AF.<wbr/> The order of the elements is:
   5277 <code>(AE,<wbr/> AWB,<wbr/> AF)</code>.<wbr/></p>
   5278             </td>
   5279 
   5280             <td class="entry_hal_version">
   5281               <p>3.<wbr/>2</p>
   5282             </td>
   5283 
   5284             <td class="entry_tags">
   5285               <ul class="entry_tags">
   5286                   <li><a href="#tag_BC">BC</a></li>
   5287               </ul>
   5288             </td>
   5289 
   5290           </tr>
   5291 
   5292 
   5293           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   5294            <!-- end of entry -->
   5295         
   5296                 
   5297           <tr class="entry" id="static_android.control.maxRegionsAe">
   5298             <td class="entry_name
   5299              " rowspan="5">
   5300               android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Ae
   5301             </td>
   5302             <td class="entry_type">
   5303                 <span class="entry_type_name">int32</span>
   5304 
   5305               <span class="entry_type_visibility"> [java_public]</span>
   5306 
   5307               <span class="entry_type_synthetic">[synthetic] </span>
   5308 
   5309               <span class="entry_type_hwlevel">[legacy] </span>
   5310 
   5311 
   5312 
   5313 
   5314             </td> <!-- entry_type -->
   5315 
   5316             <td class="entry_description">
   5317               <p>The maximum number of metering regions that can be used by the auto-exposure (AE)
   5318 routine.<wbr/></p>
   5319             </td>
   5320 
   5321             <td class="entry_units">
   5322             </td>
   5323 
   5324             <td class="entry_range">
   5325               <p>Value will be &gt;= 0.<wbr/> For FULL-capability devices,<wbr/> this
   5326 value will be &gt;= 1.<wbr/></p>
   5327             </td>
   5328 
   5329             <td class="entry_hal_version">
   5330               <p>3.<wbr/>2</p>
   5331             </td>
   5332 
   5333             <td class="entry_tags">
   5334             </td>
   5335 
   5336           </tr>
   5337           <tr class="entries_header">
   5338             <th class="th_details" colspan="6">Details</th>
   5339           </tr>
   5340           <tr class="entry_cont">
   5341             <td class="entry_details" colspan="6">
   5342               <p>This corresponds to the the maximum allowed number of elements in
   5343 <a href="#controls_android.control.aeRegions">android.<wbr/>control.<wbr/>ae<wbr/>Regions</a>.<wbr/></p>
   5344             </td>
   5345           </tr>
   5346 
   5347           <tr class="entries_header">
   5348             <th class="th_details" colspan="6">HAL Implementation Details</th>
   5349           </tr>
   5350           <tr class="entry_cont">
   5351             <td class="entry_details" colspan="6">
   5352               <p>This entry is private to the framework.<wbr/> Fill in
   5353 maxRegions to have this entry be automatically populated.<wbr/></p>
   5354             </td>
   5355           </tr>
   5356 
   5357           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   5358            <!-- end of entry -->
   5359         
   5360                 
   5361           <tr class="entry" id="static_android.control.maxRegionsAwb">
   5362             <td class="entry_name
   5363              " rowspan="5">
   5364               android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Awb
   5365             </td>
   5366             <td class="entry_type">
   5367                 <span class="entry_type_name">int32</span>
   5368 
   5369               <span class="entry_type_visibility"> [java_public]</span>
   5370 
   5371               <span class="entry_type_synthetic">[synthetic] </span>
   5372 
   5373               <span class="entry_type_hwlevel">[legacy] </span>
   5374 
   5375 
   5376 
   5377 
   5378             </td> <!-- entry_type -->
   5379 
   5380             <td class="entry_description">
   5381               <p>The maximum number of metering regions that can be used by the auto-white balance (AWB)
   5382 routine.<wbr/></p>
   5383             </td>
   5384 
   5385             <td class="entry_units">
   5386             </td>
   5387 
   5388             <td class="entry_range">
   5389               <p>Value will be &gt;= 0.<wbr/></p>
   5390             </td>
   5391 
   5392             <td class="entry_hal_version">
   5393               <p>3.<wbr/>2</p>
   5394             </td>
   5395 
   5396             <td class="entry_tags">
   5397             </td>
   5398 
   5399           </tr>
   5400           <tr class="entries_header">
   5401             <th class="th_details" colspan="6">Details</th>
   5402           </tr>
   5403           <tr class="entry_cont">
   5404             <td class="entry_details" colspan="6">
   5405               <p>This corresponds to the the maximum allowed number of elements in
   5406 <a href="#controls_android.control.awbRegions">android.<wbr/>control.<wbr/>awb<wbr/>Regions</a>.<wbr/></p>
   5407             </td>
   5408           </tr>
   5409 
   5410           <tr class="entries_header">
   5411             <th class="th_details" colspan="6">HAL Implementation Details</th>
   5412           </tr>
   5413           <tr class="entry_cont">
   5414             <td class="entry_details" colspan="6">
   5415               <p>This entry is private to the framework.<wbr/> Fill in
   5416 maxRegions to have this entry be automatically populated.<wbr/></p>
   5417             </td>
   5418           </tr>
   5419 
   5420           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   5421            <!-- end of entry -->
   5422         
   5423                 
   5424           <tr class="entry" id="static_android.control.maxRegionsAf">
   5425             <td class="entry_name
   5426              " rowspan="5">
   5427               android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Af
   5428             </td>
   5429             <td class="entry_type">
   5430                 <span class="entry_type_name">int32</span>
   5431 
   5432               <span class="entry_type_visibility"> [java_public]</span>
   5433 
   5434               <span class="entry_type_synthetic">[synthetic] </span>
   5435 
   5436               <span class="entry_type_hwlevel">[legacy] </span>
   5437 
   5438 
   5439 
   5440 
   5441             </td> <!-- entry_type -->
   5442 
   5443             <td class="entry_description">
   5444               <p>The maximum number of metering regions that can be used by the auto-focus (AF) routine.<wbr/></p>
   5445             </td>
   5446 
   5447             <td class="entry_units">
   5448             </td>
   5449 
   5450             <td class="entry_range">
   5451               <p>Value will be &gt;= 0.<wbr/> For FULL-capability devices,<wbr/> this
   5452 value will be &gt;= 1.<wbr/></p>
   5453             </td>
   5454 
   5455             <td class="entry_hal_version">
   5456               <p>3.<wbr/>2</p>
   5457             </td>
   5458 
   5459             <td class="entry_tags">
   5460             </td>
   5461 
   5462           </tr>
   5463           <tr class="entries_header">
   5464             <th class="th_details" colspan="6">Details</th>
   5465           </tr>
   5466           <tr class="entry_cont">
   5467             <td class="entry_details" colspan="6">
   5468               <p>This corresponds to the the maximum allowed number of elements in
   5469 <a href="#controls_android.control.afRegions">android.<wbr/>control.<wbr/>af<wbr/>Regions</a>.<wbr/></p>
   5470             </td>
   5471           </tr>
   5472 
   5473           <tr class="entries_header">
   5474             <th class="th_details" colspan="6">HAL Implementation Details</th>
   5475           </tr>
   5476           <tr class="entry_cont">
   5477             <td class="entry_details" colspan="6">
   5478               <p>This entry is private to the framework.<wbr/> Fill in
   5479 maxRegions to have this entry be automatically populated.<wbr/></p>
   5480             </td>
   5481           </tr>
   5482 
   5483           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   5484            <!-- end of entry -->
   5485         
   5486                 
   5487           <tr class="entry" id="static_android.control.sceneModeOverrides">
   5488             <td class="entry_name
   5489              " rowspan="5">
   5490               android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides
   5491             </td>
   5492             <td class="entry_type">
   5493                 <span class="entry_type_name">byte</span>
   5494                 <span class="entry_type_container">x</span>
   5495 
   5496                 <span class="entry_type_array">
   5497                   3 x length(availableSceneModes)
   5498                 </span>
   5499               <span class="entry_type_visibility"> [system]</span>
   5500 
   5501 
   5502               <span class="entry_type_hwlevel">[limited] </span>
   5503 
   5504 
   5505 
   5506 
   5507             </td> <!-- entry_type -->
   5508 
   5509             <td class="entry_description">
   5510               <p>Ordered list of auto-exposure,<wbr/> auto-white balance,<wbr/> and auto-focus
   5511 settings to use with each available scene mode.<wbr/></p>
   5512             </td>
   5513 
   5514             <td class="entry_units">
   5515             </td>
   5516 
   5517             <td class="entry_range">
   5518               <p>For each available scene mode,<wbr/> the list must contain three
   5519 entries containing the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
   5520 <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
   5521 by the camera device.<wbr/> The entry order is <code>(aeMode,<wbr/> awbMode,<wbr/> afMode)</code>
   5522 where aeMode has the lowest index position.<wbr/></p>
   5523             </td>
   5524 
   5525             <td class="entry_hal_version">
   5526               <p>3.<wbr/>2</p>
   5527             </td>
   5528 
   5529             <td class="entry_tags">
   5530               <ul class="entry_tags">
   5531                   <li><a href="#tag_BC">BC</a></li>
   5532               </ul>
   5533             </td>
   5534 
   5535           </tr>
   5536           <tr class="entries_header">
   5537             <th class="th_details" colspan="6">Details</th>
   5538           </tr>
   5539           <tr class="entry_cont">
   5540             <td class="entry_details" colspan="6">
   5541               <p>When a scene mode is enabled,<wbr/> the camera device is expected
   5542 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/>
   5543 and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> with its preferred settings for
   5544 that scene mode.<wbr/></p>
   5545 <p>The order of this list matches that of availableSceneModes,<wbr/>
   5546 with 3 entries for each mode.<wbr/>  The overrides listed
   5547 for FACE_<wbr/>PRIORITY and FACE_<wbr/>PRIORITY_<wbr/>LOW_<wbr/>LIGHT (if supported) are ignored,<wbr/>
   5548 since for that mode the application-set <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
   5549 <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
   5550 used instead,<wbr/> matching the behavior when <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>
   5551 is set to AUTO.<wbr/> It is recommended that the FACE_<wbr/>PRIORITY and
   5552 FACE_<wbr/>PRIORITY_<wbr/>LOW_<wbr/>LIGHT (if supported) overrides should be set to 0.<wbr/></p>
   5553 <p>For example,<wbr/> if availableSceneModes contains
   5554 <code>(FACE_<wbr/>PRIORITY,<wbr/> ACTION,<wbr/> NIGHT)</code>,<wbr/>  then the camera framework
   5555 expects sceneModeOverrides to have 9 entries formatted like:
   5556 <code>(0,<wbr/> 0,<wbr/> 0,<wbr/> ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> AUTO,<wbr/> CONTINUOUS_<wbr/>PICTURE,<wbr/>
   5557 ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> INCANDESCENT,<wbr/> AUTO)</code>.<wbr/></p>
   5558             </td>
   5559           </tr>
   5560 
   5561           <tr class="entries_header">
   5562             <th class="th_details" colspan="6">HAL Implementation Details</th>
   5563           </tr>
   5564           <tr class="entry_cont">
   5565             <td class="entry_details" colspan="6">
   5566               <p>To maintain backward compatibility,<wbr/> this list will be made available
   5567 in the static metadata of the camera service.<wbr/>  The camera service will
   5568 use these values to set <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
   5569 <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
   5570 mode other than FACE_<wbr/>PRIORITY and FACE_<wbr/>PRIORITY_<wbr/>LOW_<wbr/>LIGHT (if supported).<wbr/></p>
   5571             </td>
   5572           </tr>
   5573 
   5574           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   5575            <!-- end of entry -->
   5576         
   5577                 
   5578           <tr class="entry" id="static_android.control.availableHighSpeedVideoConfigurations">
   5579             <td class="entry_name
   5580              " rowspan="5">
   5581               android.<wbr/>control.<wbr/>available<wbr/>High<wbr/>Speed<wbr/>Video<wbr/>Configurations
   5582             </td>
   5583             <td class="entry_type">
   5584                 <span class="entry_type_name">int32</span>
   5585                 <span class="entry_type_container">x</span>
   5586 
   5587                 <span class="entry_type_array">
   5588                   5 x n
   5589                 </span>
   5590               <span class="entry_type_visibility"> [hidden as highSpeedVideoConfiguration]</span>
   5591 
   5592 
   5593               <span class="entry_type_hwlevel">[limited] </span>
   5594 
   5595 
   5596 
   5597 
   5598             </td> <!-- entry_type -->
   5599 
   5600             <td class="entry_description">
   5601               <p>List of available high speed video size,<wbr/> fps range and max batch size configurations
   5602 supported by the camera device,<wbr/> in the format of (width,<wbr/> height,<wbr/> fps_<wbr/>min,<wbr/> fps_<wbr/>max,<wbr/> batch_<wbr/>size_<wbr/>max).<wbr/></p>
   5603             </td>
   5604 
   5605             <td class="entry_units">
   5606             </td>
   5607 
   5608             <td class="entry_range">
   5609               <p>For each configuration,<wbr/> the fps_<wbr/>max &gt;= 120fps.<wbr/></p>
   5610             </td>
   5611 
   5612             <td class="entry_hal_version">
   5613               <p>3.<wbr/>2</p>
   5614             </td>
   5615 
   5616             <td class="entry_tags">
   5617               <ul class="entry_tags">
   5618                   <li><a href="#tag_V1">V1</a></li>
   5619               </ul>
   5620             </td>
   5621 
   5622           </tr>
   5623           <tr class="entries_header">
   5624             <th class="th_details" colspan="6">Details</th>
   5625           </tr>
   5626           <tr class="entry_cont">
   5627             <td class="entry_details" colspan="6">
   5628               <p>When CONSTRAINED_<wbr/>HIGH_<wbr/>SPEED_<wbr/>VIDEO is supported in <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>,<wbr/>
   5629 this metadata will list the supported high speed video size,<wbr/> fps range and max batch size
   5630 configurations.<wbr/> All the sizes listed in this configuration will be a subset of the sizes
   5631 reported by <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputSizes">StreamConfigurationMap#getOutputSizes</a>
   5632 for processed non-stalling formats.<wbr/></p>
   5633 <p>For the high speed video use case,<wbr/> the application must
   5634 select the video size and fps range from this metadata to configure the recording and
   5635 preview streams and setup the recording requests.<wbr/> For example,<wbr/> if the application intends
   5636 to do high speed recording,<wbr/> it can select the maximum size reported by this metadata to
   5637 configure output streams.<wbr/> Once the size is selected,<wbr/> application can filter this metadata
   5638 by selected size and get the supported fps ranges,<wbr/> and use these fps ranges to setup the
   5639 recording requests.<wbr/> Note that for the use case of multiple output streams,<wbr/> application
   5640 must select one unique size from this metadata to use (e.<wbr/>g.,<wbr/> preview and recording streams
   5641 must have the same size).<wbr/> Otherwise,<wbr/> the high speed capture session creation will fail.<wbr/></p>
   5642 <p>The min and max fps will be multiple times of 30fps.<wbr/></p>
   5643 <p>High speed video streaming extends significant performance pressue to camera hardware,<wbr/>
   5644 to achieve efficient high speed streaming,<wbr/> the camera device may have to aggregate
   5645 multiple frames together and send to camera device for processing where the request
   5646 controls are same for all the frames in this batch.<wbr/> Max batch size indicates
   5647 the max possible number of frames the camera device will group together for this high
   5648 speed stream configuration.<wbr/> This max batch size will be used to generate a high speed
   5649 recording request list by
   5650 <a href="https://developer.android.com/reference/android/hardware/camera2/CameraConstrainedHighSpeedCaptureSession.html#createHighSpeedRequestList">CameraConstrainedHighSpeedCaptureSession#createHighSpeedRequestList</a>.<wbr/>
   5651 The max batch size for each configuration will satisfy below conditions:</p>
   5652 <ul>
   5653 <li>Each max batch size will be a divisor of its corresponding fps_<wbr/>max /<wbr/> 30.<wbr/> For example,<wbr/>
   5654 if max_<wbr/>fps is 300,<wbr/> max batch size will only be 1,<wbr/> 2,<wbr/> 5,<wbr/> or 10.<wbr/></li>
   5655 <li>The camera device may choose smaller internal batch size for each configuration,<wbr/> but
   5656 the actual batch size will be a divisor of max batch size.<wbr/> For example,<wbr/> if the max batch
   5657 size is 8,<wbr/> the actual batch size used by camera device will only be 1,<wbr/> 2,<wbr/> 4,<wbr/> or 8.<wbr/></li>
   5658 <li>The max batch size in each configuration entry must be no larger than 32.<wbr/></li>
   5659 </ul>
   5660 <p>The camera device doesn't have to support batch mode to achieve high speed video recording,<wbr/>
   5661 in such case,<wbr/> batch_<wbr/>size_<wbr/>max will be reported as 1 in each configuration entry.<wbr/></p>
   5662 <p>This fps ranges in this configuration list can only be used to create requests
   5663 that are submitted to a high speed camera capture session created by
   5664 <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createConstrainedHighSpeedCaptureSession">CameraDevice#createConstrainedHighSpeedCaptureSession</a>.<wbr/>
   5665 The fps ranges reported in this metadata must not be used to setup capture requests for
   5666 normal capture session,<wbr/> or it will cause request error.<wbr/></p>
   5667             </td>
   5668           </tr>
   5669 
   5670           <tr class="entries_header">
   5671             <th class="th_details" colspan="6">HAL Implementation Details</th>
   5672           </tr>
   5673           <tr class="entry_cont">
   5674             <td class="entry_details" colspan="6">
   5675               <p>All the sizes listed in this configuration will be a subset of the sizes reported by
   5676 <a href="#static_android.scaler.availableStreamConfigurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stream<wbr/>Configurations</a> for processed non-stalling output formats.<wbr/>
   5677 Note that for all high speed video configurations,<wbr/> HAL must be able to support a minimum
   5678 of two streams,<wbr/> though the application might choose to configure just one stream.<wbr/></p>
   5679 <p>The HAL may support multiple sensor modes for high speed outputs,<wbr/> for example,<wbr/> 120fps
   5680 sensor mode and 120fps recording,<wbr/> 240fps sensor mode for 240fps recording.<wbr/> The application
   5681 usually starts preview first,<wbr/> then starts recording.<wbr/> To avoid sensor mode switch caused
   5682 stutter when starting recording as much as possible,<wbr/> the application may want to ensure
   5683 the same sensor mode is used for preview and recording.<wbr/> Therefore,<wbr/> The HAL must advertise
   5684 the variable fps range [30,<wbr/> fps_<wbr/>max] for each fixed fps range in this configuration list.<wbr/>
   5685 For example,<wbr/> if the HAL advertises [120,<wbr/> 120] and [240,<wbr/> 240],<wbr/> the HAL must also advertise
   5686 [30,<wbr/> 120] and [30,<wbr/> 240] for each configuration.<wbr/> In doing so,<wbr/> if the application intends to
   5687 do 120fps recording,<wbr/> it can select [30,<wbr/> 120] to start preview,<wbr/> and [120,<wbr/> 120] to start
   5688 recording.<wbr/> For these variable fps ranges,<wbr/> it's up to the HAL to decide the actual fps
   5689 values that are suitable for smooth preview streaming.<wbr/> If the HAL sees different max_<wbr/>fps
   5690 values that fall into different sensor modes in a sequence of requests,<wbr/> the HAL must
   5691 switch the sensor mode as quick as possible to minimize the mode switch caused stutter.<wbr/></p>
   5692             </td>
   5693           </tr>
   5694 
   5695           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   5696            <!-- end of entry -->
   5697         
   5698                 
   5699           <tr class="entry" id="static_android.control.aeLockAvailable">
   5700             <td class="entry_name
   5701              " rowspan="3">
   5702               android.<wbr/>control.<wbr/>ae<wbr/>Lock<wbr/>Available
   5703             </td>
   5704             <td class="entry_type">
   5705                 <span class="entry_type_name entry_type_name_enum">byte</span>
   5706 
   5707               <span class="entry_type_visibility"> [public as boolean]</span>
   5708 
   5709 
   5710               <span class="entry_type_hwlevel">[legacy] </span>
   5711 
   5712 
   5713 
   5714                 <ul class="entry_type_enum">
   5715                   <li>
   5716                     <span class="entry_type_enum_name">FALSE (v3.2)</span>
   5717                   </li>
   5718                   <li>
   5719                     <span class="entry_type_enum_name">TRUE (v3.2)</span>
   5720                   </li>
   5721                 </ul>
   5722 
   5723             </td> <!-- entry_type -->
   5724 
   5725             <td class="entry_description">
   5726               <p>Whether the camera device supports <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a></p>
   5727             </td>
   5728 
   5729             <td class="entry_units">
   5730             </td>
   5731 
   5732             <td class="entry_range">
   5733             </td>
   5734 
   5735             <td class="entry_hal_version">
   5736               <p>3.<wbr/>2</p>
   5737             </td>
   5738 
   5739             <td class="entry_tags">
   5740               <ul class="entry_tags">
   5741                   <li><a href="#tag_BC">BC</a></li>
   5742               </ul>
   5743             </td>
   5744 
   5745           </tr>
   5746           <tr class="entries_header">
   5747             <th class="th_details" colspan="6">Details</th>
   5748           </tr>
   5749           <tr class="entry_cont">
   5750             <td class="entry_details" colspan="6">
   5751               <p>Devices with MANUAL_<wbr/>SENSOR capability or BURST_<wbr/>CAPTURE capability will always
   5752 list <code>true</code>.<wbr/> This includes FULL devices.<wbr/></p>
   5753             </td>
   5754           </tr>
   5755 
   5756 
   5757           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   5758            <!-- end of entry -->
   5759         
   5760                 
   5761           <tr class="entry" id="static_android.control.awbLockAvailable">
   5762             <td class="entry_name
   5763              " rowspan="3">
   5764               android.<wbr/>control.<wbr/>awb<wbr/>Lock<wbr/>Available
   5765             </td>
   5766             <td class="entry_type">
   5767                 <span class="entry_type_name entry_type_name_enum">byte</span>
   5768 
   5769               <span class="entry_type_visibility"> [public as boolean]</span>
   5770 
   5771 
   5772               <span class="entry_type_hwlevel">[legacy] </span>
   5773 
   5774 
   5775 
   5776                 <ul class="entry_type_enum">
   5777                   <li>
   5778                     <span class="entry_type_enum_name">FALSE (v3.2)</span>
   5779                   </li>
   5780                   <li>
   5781                     <span class="entry_type_enum_name">TRUE (v3.2)</span>
   5782                   </li>
   5783                 </ul>
   5784 
   5785             </td> <!-- entry_type -->
   5786 
   5787             <td class="entry_description">
   5788               <p>Whether the camera device supports <a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a></p>
   5789             </td>
   5790 
   5791             <td class="entry_units">
   5792             </td>
   5793 
   5794             <td class="entry_range">
   5795             </td>
   5796 
   5797             <td class="entry_hal_version">
   5798               <p>3.<wbr/>2</p>
   5799             </td>
   5800 
   5801             <td class="entry_tags">
   5802               <ul class="entry_tags">
   5803                   <li><a href="#tag_BC">BC</a></li>
   5804               </ul>
   5805             </td>
   5806 
   5807           </tr>
   5808           <tr class="entries_header">
   5809             <th class="th_details" colspan="6">Details</th>
   5810           </tr>
   5811           <tr class="entry_cont">
   5812             <td class="entry_details" colspan="6">
   5813               <p>Devices with MANUAL_<wbr/>POST_<wbr/>PROCESSING capability or BURST_<wbr/>CAPTURE capability will
   5814 always list <code>true</code>.<wbr/> This includes FULL devices.<wbr/></p>
   5815             </td>
   5816           </tr>
   5817 
   5818 
   5819           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   5820            <!-- end of entry -->
   5821         
   5822                 
   5823           <tr class="entry" id="static_android.control.availableModes">
   5824             <td class="entry_name
   5825              " rowspan="3">
   5826               android.<wbr/>control.<wbr/>available<wbr/>Modes
   5827             </td>
   5828             <td class="entry_type">
   5829                 <span class="entry_type_name">byte</span>
   5830                 <span class="entry_type_container">x</span>
   5831 
   5832                 <span class="entry_type_array">
   5833                   n
   5834                 </span>
   5835               <span class="entry_type_visibility"> [public as enumList]</span>
   5836 
   5837 
   5838               <span class="entry_type_hwlevel">[legacy] </span>
   5839 
   5840 
   5841                 <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>mode).<wbr/></div>
   5842 
   5843 
   5844             </td> <!-- entry_type -->
   5845 
   5846             <td class="entry_description">
   5847               <p>List of control modes for <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> that are supported by this camera
   5848 device.<wbr/></p>
   5849             </td>
   5850 
   5851             <td class="entry_units">
   5852             </td>
   5853 
   5854             <td class="entry_range">
   5855               <p>Any value listed in <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a></p>
   5856             </td>
   5857 
   5858             <td class="entry_hal_version">
   5859               <p>3.<wbr/>2</p>
   5860             </td>
   5861 
   5862             <td class="entry_tags">
   5863             </td>
   5864 
   5865           </tr>
   5866           <tr class="entries_header">
   5867             <th class="th_details" colspan="6">Details</th>
   5868           </tr>
   5869           <tr class="entry_cont">
   5870             <td class="entry_details" colspan="6">
   5871               <p>This list contains control modes that can be set for the camera device.<wbr/>
   5872 LEGACY mode devices will always support AUTO mode.<wbr/> LIMITED and FULL
   5873 devices will always support OFF,<wbr/> AUTO modes.<wbr/></p>
   5874             </td>
   5875           </tr>
   5876 
   5877 
   5878           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   5879            <!-- end of entry -->
   5880         
   5881                 
   5882           <tr class="entry" id="static_android.control.postRawSensitivityBoostRange">
   5883             <td class="entry_name
   5884              " rowspan="5">
   5885               android.<wbr/>control.<wbr/>post<wbr/>Raw<wbr/>Sensitivity<wbr/>Boost<wbr/>Range
   5886             </td>
   5887             <td class="entry_type">
   5888                 <span class="entry_type_name">int32</span>
   5889                 <span class="entry_type_container">x</span>
   5890 
   5891                 <span class="entry_type_array">
   5892                   2
   5893                 </span>
   5894               <span class="entry_type_visibility"> [public as rangeInt]</span>
   5895 
   5896 
   5897 
   5898 
   5899                 <div class="entry_type_notes">Range of supported post RAW sensitivitiy boosts</div>
   5900 
   5901 
   5902             </td> <!-- entry_type -->
   5903 
   5904             <td class="entry_description">
   5905               <p>Range of boosts for <a href="#controls_android.control.postRawSensitivityBoost">android.<wbr/>control.<wbr/>post<wbr/>Raw<wbr/>Sensitivity<wbr/>Boost</a> supported
   5906 by this camera device.<wbr/></p>
   5907             </td>
   5908 
   5909             <td class="entry_units">
   5910               ISO arithmetic units,<wbr/> the same as android.<wbr/>sensor.<wbr/>sensitivity
   5911             </td>
   5912 
   5913             <td class="entry_range">
   5914             </td>
   5915 
   5916             <td class="entry_hal_version">
   5917               <p>3.<wbr/>2</p>
   5918             </td>
   5919 
   5920             <td class="entry_tags">
   5921             </td>
   5922 
   5923           </tr>
   5924           <tr class="entries_header">
   5925             <th class="th_details" colspan="6">Details</th>
   5926           </tr>
   5927           <tr class="entry_cont">
   5928             <td class="entry_details" colspan="6">
   5929               <p>Devices support post RAW sensitivity boost  will advertise
   5930 <a href="#controls_android.control.postRawSensitivityBoost">android.<wbr/>control.<wbr/>post<wbr/>Raw<wbr/>Sensitivity<wbr/>Boost</a> key for controling
   5931 post RAW sensitivity boost.<wbr/></p>
   5932 <p>This key will be <code>null</code> for devices that do not support any RAW format
   5933 outputs.<wbr/> For devices that do support RAW format outputs,<wbr/> this key will always
   5934 present,<wbr/> and if a device does not support post RAW sensitivity boost,<wbr/> it will
   5935 list <code>(100,<wbr/> 100)</code> in this key.<wbr/></p>
   5936             </td>
   5937           </tr>
   5938 
   5939           <tr class="entries_header">
   5940             <th class="th_details" colspan="6">HAL Implementation Details</th>
   5941           </tr>
   5942           <tr class="entry_cont">
   5943             <td class="entry_details" colspan="6">
   5944               <p>This key is added in legacy HAL3.<wbr/>4.<wbr/> For legacy HAL3.<wbr/>3 or earlier devices,<wbr/> camera
   5945 framework will generate this key as <code>(100,<wbr/> 100)</code> if device supports any of RAW output
   5946 formats.<wbr/>  All legacy HAL3.<wbr/>4 and above devices should list this key if device supports
   5947 any of RAW output formats.<wbr/></p>
   5948             </td>
   5949           </tr>
   5950 
   5951           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   5952            <!-- end of entry -->
   5953         
   5954         
   5955 
   5956       <!-- end of kind -->
   5957       </tbody>
   5958       <tr><td colspan="7" class="kind">dynamic</td></tr>
   5959 
   5960       <thead class="entries_header">
   5961         <tr>
   5962           <th class="th_name">Property Name</th>
   5963           <th class="th_type">Type</th>
   5964           <th class="th_description">Description</th>
   5965           <th class="th_units">Units</th>
   5966           <th class="th_range">Range</th>
   5967           <th class="th_hal_version">Initial HIDL HAL version</th>
   5968           <th class="th_tags">Tags</th>
   5969         </tr>
   5970       </thead>
   5971 
   5972       <tbody>
   5973 
   5974         
   5975 
   5976         
   5977 
   5978         
   5979 
   5980         
   5981 
   5982                 
   5983           <tr class="entry" id="dynamic_android.control.aePrecaptureId">
   5984             <td class="entry_name
   5985                 entry_name_deprecated
   5986              " rowspan="3">
   5987               android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Id
   5988             </td>
   5989             <td class="entry_type">
   5990                 <span class="entry_type_name">int32</span>
   5991 
   5992               <span class="entry_type_visibility"> [system]</span>
   5993 
   5994 
   5995 
   5996               <span class="entry_type_deprecated">[deprecated] </span>
   5997 
   5998 
   5999 
   6000             </td> <!-- entry_type -->
   6001 
   6002             <td class="entry_description">
   6003               <p>The ID sent with the latest
   6004 CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING call</p>
   6005             </td>
   6006 
   6007             <td class="entry_units">
   6008             </td>
   6009 
   6010             <td class="entry_range">
   6011               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   6012             </td>
   6013 
   6014             <td class="entry_hal_version">
   6015               <p>3.<wbr/>2</p>
   6016             </td>
   6017 
   6018             <td class="entry_tags">
   6019             </td>
   6020 
   6021           </tr>
   6022           <tr class="entries_header">
   6023             <th class="th_details" colspan="6">Details</th>
   6024           </tr>
   6025           <tr class="entry_cont">
   6026             <td class="entry_details" colspan="6">
   6027               <p>Must be 0 if no
   6028 CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING trigger received yet
   6029 by HAL.<wbr/> Always updated even if AE algorithm ignores the
   6030 trigger</p>
   6031             </td>
   6032           </tr>
   6033 
   6034 
   6035           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   6036            <!-- end of entry -->
   6037         
   6038                 
   6039           <tr class="entry" id="dynamic_android.control.aeAntibandingMode">
   6040             <td class="entry_name
   6041              " rowspan="5">
   6042               android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode
   6043             </td>
   6044             <td class="entry_type">
   6045                 <span class="entry_type_name entry_type_name_enum">byte</span>
   6046 
   6047               <span class="entry_type_visibility"> [public]</span>
   6048 
   6049 
   6050               <span class="entry_type_hwlevel">[legacy] </span>
   6051 
   6052 
   6053 
   6054                 <ul class="entry_type_enum">
   6055                   <li>
   6056                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   6057                     <span class="entry_type_enum_notes"><p>The camera device will not adjust exposure duration to
   6058 avoid banding problems.<wbr/></p></span>
   6059                   </li>
   6060                   <li>
   6061                     <span class="entry_type_enum_name">50HZ (v3.2)</span>
   6062                     <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
   6063 avoid banding problems with 50Hz illumination sources.<wbr/></p></span>
   6064                   </li>
   6065                   <li>
   6066                     <span class="entry_type_enum_name">60HZ (v3.2)</span>
   6067                     <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
   6068 avoid banding problems with 60Hz illumination
   6069 sources.<wbr/></p></span>
   6070                   </li>
   6071                   <li>
   6072                     <span class="entry_type_enum_name">AUTO (v3.2)</span>
   6073                     <span class="entry_type_enum_notes"><p>The camera device will automatically adapt its
   6074 antibanding routine to the current illumination
   6075 condition.<wbr/> This is the default mode if AUTO is
   6076 available on given camera device.<wbr/></p></span>
   6077                   </li>
   6078                 </ul>
   6079 
   6080             </td> <!-- entry_type -->
   6081 
   6082             <td class="entry_description">
   6083               <p>The desired setting for the camera device's auto-exposure
   6084 algorithm's antibanding compensation.<wbr/></p>
   6085             </td>
   6086 
   6087             <td class="entry_units">
   6088             </td>
   6089 
   6090             <td class="entry_range">
   6091               <p><a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a></p>
   6092             </td>
   6093 
   6094             <td class="entry_hal_version">
   6095               <p>3.<wbr/>2</p>
   6096             </td>
   6097 
   6098             <td class="entry_tags">
   6099               <ul class="entry_tags">
   6100                   <li><a href="#tag_BC">BC</a></li>
   6101               </ul>
   6102             </td>
   6103 
   6104           </tr>
   6105           <tr class="entries_header">
   6106             <th class="th_details" colspan="6">Details</th>
   6107           </tr>
   6108           <tr class="entry_cont">
   6109             <td class="entry_details" colspan="6">
   6110               <p>Some kinds of lighting fixtures,<wbr/> such as some fluorescent
   6111 lights,<wbr/> flicker at the rate of the power supply frequency
   6112 (60Hz or 50Hz,<wbr/> depending on country).<wbr/> While this is
   6113 typically not noticeable to a person,<wbr/> it can be visible to
   6114 a camera device.<wbr/> If a camera sets its exposure time to the
   6115 wrong value,<wbr/> the flicker may become visible in the
   6116 viewfinder as flicker or in a final captured image,<wbr/> as a
   6117 set of variable-brightness bands across the image.<wbr/></p>
   6118 <p>Therefore,<wbr/> the auto-exposure routines of camera devices
   6119 include antibanding routines that ensure that the chosen
   6120 exposure value will not cause such banding.<wbr/> The choice of
   6121 exposure time depends on the rate of flicker,<wbr/> which the
   6122 camera device can detect automatically,<wbr/> or the expected
   6123 rate can be selected by the application using this
   6124 control.<wbr/></p>
   6125 <p>A given camera device may not support all of the possible
   6126 options for the antibanding mode.<wbr/> The
   6127 <a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a> key contains
   6128 the available modes for a given camera device.<wbr/></p>
   6129 <p>AUTO mode is the default if it is available on given
   6130 camera device.<wbr/> When AUTO mode is not available,<wbr/> the
   6131 default will be either 50HZ or 60HZ,<wbr/> and both 50HZ
   6132 and 60HZ will be available.<wbr/></p>
   6133 <p>If manual exposure control is enabled (by setting
   6134 <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/>
   6135 then this setting has no effect,<wbr/> and the application must
   6136 ensure it selects exposure times that do not cause banding
   6137 issues.<wbr/> The <a href="#dynamic_android.statistics.sceneFlicker">android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker</a> key can assist
   6138 the application in this.<wbr/></p>
   6139             </td>
   6140           </tr>
   6141 
   6142           <tr class="entries_header">
   6143             <th class="th_details" colspan="6">HAL Implementation Details</th>
   6144           </tr>
   6145           <tr class="entry_cont">
   6146             <td class="entry_details" colspan="6">
   6147               <p>For all capture request templates,<wbr/> this field must be set
   6148 to AUTO if AUTO mode is available.<wbr/> If AUTO is not available,<wbr/>
   6149 the default must be either 50HZ or 60HZ,<wbr/> and both 50HZ and
   6150 60HZ must be available.<wbr/></p>
   6151 <p>If manual exposure control is enabled (by setting
   6152 <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/>
   6153 then the exposure values provided by the application must not be
   6154 adjusted for antibanding.<wbr/></p>
   6155             </td>
   6156           </tr>
   6157 
   6158           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   6159            <!-- end of entry -->
   6160         
   6161                 
   6162           <tr class="entry" id="dynamic_android.control.aeExposureCompensation">
   6163             <td class="entry_name
   6164              " rowspan="3">
   6165               android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation
   6166             </td>
   6167             <td class="entry_type">
   6168                 <span class="entry_type_name">int32</span>
   6169 
   6170               <span class="entry_type_visibility"> [public]</span>
   6171 
   6172 
   6173               <span class="entry_type_hwlevel">[legacy] </span>
   6174 
   6175 
   6176 
   6177 
   6178             </td> <!-- entry_type -->
   6179 
   6180             <td class="entry_description">
   6181               <p>Adjustment to auto-exposure (AE) target image
   6182 brightness.<wbr/></p>
   6183             </td>
   6184 
   6185             <td class="entry_units">
   6186               Compensation steps
   6187             </td>
   6188 
   6189             <td class="entry_range">
   6190               <p><a href="#static_android.control.aeCompensationRange">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range</a></p>
   6191             </td>
   6192 
   6193             <td class="entry_hal_version">
   6194               <p>3.<wbr/>2</p>
   6195             </td>
   6196 
   6197             <td class="entry_tags">
   6198               <ul class="entry_tags">
   6199                   <li><a href="#tag_BC">BC</a></li>
   6200               </ul>
   6201             </td>
   6202 
   6203           </tr>
   6204           <tr class="entries_header">
   6205             <th class="th_details" colspan="6">Details</th>
   6206           </tr>
   6207           <tr class="entry_cont">
   6208             <td class="entry_details" colspan="6">
   6209               <p>The adjustment is measured as a count of steps,<wbr/> with the
   6210 step size defined by <a href="#static_android.control.aeCompensationStep">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step</a> and the
   6211 allowed range by <a href="#static_android.control.aeCompensationRange">android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range</a>.<wbr/></p>
   6212 <p>For example,<wbr/> if the exposure value (EV) step is 0.<wbr/>333,<wbr/> '6'
   6213 will mean an exposure compensation of +2 EV; -3 will mean an
   6214 exposure compensation of -1 EV.<wbr/> One EV represents a doubling
   6215 of image brightness.<wbr/> Note that this control will only be
   6216 effective if <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> <code>!=</code> OFF.<wbr/> This control
   6217 will take effect even when <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> <code>== true</code>.<wbr/></p>
   6218 <p>In the event of exposure compensation value being changed,<wbr/> camera device
   6219 may take several frames to reach the newly requested exposure target.<wbr/>
   6220 During that time,<wbr/> <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> field will be in the SEARCHING
   6221 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
   6222 change from SEARCHING to either CONVERGED,<wbr/> LOCKED (if AE lock is enabled),<wbr/> or
   6223 FLASH_<wbr/>REQUIRED (if the scene is too dark for still capture).<wbr/></p>
   6224             </td>
   6225           </tr>
   6226 
   6227 
   6228           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   6229            <!-- end of entry -->
   6230         
   6231                 
   6232           <tr class="entry" id="dynamic_android.control.aeLock">
   6233             <td class="entry_name
   6234              " rowspan="3">
   6235               android.<wbr/>control.<wbr/>ae<wbr/>Lock
   6236             </td>
   6237             <td class="entry_type">
   6238                 <span class="entry_type_name entry_type_name_enum">byte</span>
   6239 
   6240               <span class="entry_type_visibility"> [public as boolean]</span>
   6241 
   6242 
   6243               <span class="entry_type_hwlevel">[legacy] </span>
   6244 
   6245 
   6246 
   6247                 <ul class="entry_type_enum">
   6248                   <li>
   6249                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   6250                     <span class="entry_type_enum_notes"><p>Auto-exposure lock is disabled; the AE algorithm
   6251 is free to update its parameters.<wbr/></p></span>
   6252                   </li>
   6253                   <li>
   6254                     <span class="entry_type_enum_name">ON (v3.2)</span>
   6255                     <span class="entry_type_enum_notes"><p>Auto-exposure lock is enabled; the AE algorithm
   6256 must not update the exposure and sensitivity parameters
   6257 while the lock is active.<wbr/></p>
   6258 <p><a href="#controls_android.control.aeExposureCompensation">android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation</a> setting changes
   6259 will still take effect while auto-exposure is locked.<wbr/></p>
   6260 <p>Some rare LEGACY devices may not support
   6261 this,<wbr/> in which case the value will always be overridden to OFF.<wbr/></p></span>
   6262                   </li>
   6263                 </ul>
   6264 
   6265             </td> <!-- entry_type -->
   6266 
   6267             <td class="entry_description">
   6268               <p>Whether auto-exposure (AE) is currently locked to its latest
   6269 calculated values.<wbr/></p>
   6270             </td>
   6271 
   6272             <td class="entry_units">
   6273             </td>
   6274 
   6275             <td class="entry_range">
   6276             </td>
   6277 
   6278             <td class="entry_hal_version">
   6279               <p>3.<wbr/>2</p>
   6280             </td>
   6281 
   6282             <td class="entry_tags">
   6283               <ul class="entry_tags">
   6284                   <li><a href="#tag_BC">BC</a></li>
   6285               </ul>
   6286             </td>
   6287 
   6288           </tr>
   6289           <tr class="entries_header">
   6290             <th class="th_details" colspan="6">Details</th>
   6291           </tr>
   6292           <tr class="entry_cont">
   6293             <td class="entry_details" colspan="6">
   6294               <p>When set to <code>true</code> (ON),<wbr/> the AE algorithm is locked to its latest parameters,<wbr/>
   6295 and will not change exposure settings until the lock is set to <code>false</code> (OFF).<wbr/></p>
   6296 <p>Note that even when AE is locked,<wbr/> the flash may be fired if
   6297 the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is ON_<wbr/>AUTO_<wbr/>FLASH /<wbr/>
   6298 ON_<wbr/>ALWAYS_<wbr/>FLASH /<wbr/> ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE.<wbr/></p>
   6299 <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
   6300 is ON,<wbr/> the camera device will still adjust its exposure value.<wbr/></p>
   6301 <p>If AE precapture is triggered (see <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>)
   6302 when AE is already locked,<wbr/> the camera device will not change the exposure time
   6303 (<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>)
   6304 parameters.<wbr/> The flash may be fired if the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>
   6305 is ON_<wbr/>AUTO_<wbr/>FLASH/<wbr/>ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE and the scene is too dark.<wbr/> If the
   6306 <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/>
   6307 Similarly,<wbr/> AE precapture trigger CANCEL has no effect when AE is already locked.<wbr/></p>
   6308 <p>When an AE precapture sequence is triggered,<wbr/> AE unlock will not be able to unlock
   6309 the AE if AE is locked by the camera device internally during precapture metering
   6310 sequence In other words,<wbr/> submitting requests with AE unlock has no effect for an
   6311 ongoing precapture metering sequence.<wbr/> Otherwise,<wbr/> the precapture metering sequence
   6312 will never succeed in a sequence of preview requests where AE lock is always set
   6313 to <code>false</code>.<wbr/></p>
   6314 <p>Since the camera device has a pipeline of in-flight requests,<wbr/> the settings that
   6315 get locked do not necessarily correspond to the settings that were present in the
   6316 latest capture result received from the camera device,<wbr/> since additional captures
   6317 and AE updates may have occurred even before the result was sent out.<wbr/> If an
   6318 application is switching between automatic and manual control and wishes to eliminate
   6319 any flicker during the switch,<wbr/> the following procedure is recommended:</p>
   6320 <ol>
   6321 <li>Starting in auto-AE mode:</li>
   6322 <li>Lock AE</li>
   6323 <li>Wait for the first result to be output that has the AE locked</li>
   6324 <li>Copy exposure settings from that result into a request,<wbr/> set the request to manual AE</li>
   6325 <li>Submit the capture request,<wbr/> proceed to run manual AE as desired.<wbr/></li>
   6326 </ol>
   6327 <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>
   6328             </td>
   6329           </tr>
   6330 
   6331 
   6332           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   6333            <!-- end of entry -->
   6334         
   6335                 
   6336           <tr class="entry" id="dynamic_android.control.aeMode">
   6337             <td class="entry_name
   6338              " rowspan="3">
   6339               android.<wbr/>control.<wbr/>ae<wbr/>Mode
   6340             </td>
   6341             <td class="entry_type">
   6342                 <span class="entry_type_name entry_type_name_enum">byte</span>
   6343 
   6344               <span class="entry_type_visibility"> [public]</span>
   6345 
   6346 
   6347               <span class="entry_type_hwlevel">[legacy] </span>
   6348 
   6349 
   6350 
   6351                 <ul class="entry_type_enum">
   6352                   <li>
   6353                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   6354                     <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled.<wbr/></p>
   6355 <p>The application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
   6356 <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
   6357 <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera
   6358 device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's
   6359 a flash unit for this camera device.<wbr/></p>
   6360 <p>Note that auto-white balance (AWB) and auto-focus (AF)
   6361 behavior is device dependent when AE is in OFF mode.<wbr/>
   6362 To have consistent behavior across different devices,<wbr/>
   6363 it is recommended to either set AWB and AF to OFF mode
   6364 or lock AWB and AF before setting AE to OFF.<wbr/>
   6365 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/>
   6366 <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>
   6367 for more details.<wbr/></p>
   6368 <p>LEGACY devices do not support the OFF mode and will
   6369 override attempts to use this value to ON.<wbr/></p></span>
   6370                   </li>
   6371                   <li>
   6372                     <span class="entry_type_enum_name">ON (v3.2)</span>
   6373                     <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
   6374 with no flash control.<wbr/></p>
   6375 <p>The application's values for
   6376 <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
   6377 <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
   6378 <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The
   6379 application has control over the various
   6380 android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
   6381                   </li>
   6382                   <li>
   6383                     <span class="entry_type_enum_name">ON_AUTO_FLASH (v3.2)</span>
   6384                     <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
   6385 the camera's flash unit,<wbr/> firing it in low-light
   6386 conditions.<wbr/></p>
   6387 <p>The flash may be fired during a precapture sequence
   6388 (triggered by <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and
   6389 may be fired for captures for which the
   6390 <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
   6391 STILL_<wbr/>CAPTURE</p></span>
   6392                   </li>
   6393                   <li>
   6394                     <span class="entry_type_enum_name">ON_ALWAYS_FLASH (v3.2)</span>
   6395                     <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
   6396 the camera's flash unit,<wbr/> always firing it for still
   6397 captures.<wbr/></p>
   6398 <p>The flash may be fired during a precapture sequence
   6399 (triggered by <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and
   6400 will always be fired for captures for which the
   6401 <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
   6402 STILL_<wbr/>CAPTURE</p></span>
   6403                   </li>
   6404                   <li>
   6405                     <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE (v3.2)</span>
   6406                     <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
   6407 reduction.<wbr/></p>
   6408 <p>If deemed necessary by the camera device,<wbr/> a red eye
   6409 reduction flash will fire during the precapture
   6410 sequence.<wbr/></p></span>
   6411                   </li>
   6412                   <li>
   6413                     <span class="entry_type_enum_name">ON_EXTERNAL_FLASH (v3.3)</span>
   6414                     <span class="entry_type_enum_notes"><p>An external flash has been turned on.<wbr/></p>
   6415 <p>It informs the camera device that an external flash has been turned on,<wbr/> and that
   6416 metering (and continuous focus if active) should be quickly recaculated to account
   6417 for the external flash.<wbr/> Otherwise,<wbr/> this mode acts like ON.<wbr/></p>
   6418 <p>When the external flash is turned off,<wbr/> AE mode should be changed to one of the
   6419 other available AE modes.<wbr/></p>
   6420 <p>If the camera device supports AE external flash mode,<wbr/> <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> must
   6421 be FLASH_<wbr/>REQUIRED after the camera device finishes AE scan and it's too dark without
   6422 flash.<wbr/></p></span>
   6423                   </li>
   6424                 </ul>
   6425 
   6426             </td> <!-- entry_type -->
   6427 
   6428             <td class="entry_description">
   6429               <p>The desired mode for the camera device's
   6430 auto-exposure routine.<wbr/></p>
   6431             </td>
   6432 
   6433             <td class="entry_units">
   6434             </td>
   6435 
   6436             <td class="entry_range">
   6437               <p><a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a></p>
   6438             </td>
   6439 
   6440             <td class="entry_hal_version">
   6441               <p>3.<wbr/>2</p>
   6442             </td>
   6443 
   6444             <td class="entry_tags">
   6445               <ul class="entry_tags">
   6446                   <li><a href="#tag_BC">BC</a></li>
   6447               </ul>
   6448             </td>
   6449 
   6450           </tr>
   6451           <tr class="entries_header">
   6452             <th class="th_details" colspan="6">Details</th>
   6453           </tr>
   6454           <tr class="entry_cont">
   6455             <td class="entry_details" colspan="6">
   6456               <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
   6457 AUTO.<wbr/></p>
   6458 <p>When set to any of the ON modes,<wbr/> the camera device's
   6459 auto-exposure routine is enabled,<wbr/> overriding the
   6460 application's selected exposure time,<wbr/> sensor sensitivity,<wbr/>
   6461 and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
   6462 <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
   6463 <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes
   6464 is selected,<wbr/> the camera device's flash unit controls are
   6465 also overridden.<wbr/></p>
   6466 <p>The FLASH modes are only available if the camera device
   6467 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>
   6468 <p>If flash TORCH mode is desired,<wbr/> this field must be set to
   6469 ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p>
   6470 <p>When set to any of the ON modes,<wbr/> the values chosen by the
   6471 camera device auto-exposure routine for the overridden
   6472 fields for a given capture will be available in its
   6473 CaptureResult.<wbr/></p>
   6474             </td>
   6475           </tr>
   6476 
   6477 
   6478           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   6479            <!-- end of entry -->
   6480         
   6481                 
   6482           <tr class="entry" id="dynamic_android.control.aeRegions">
   6483             <td class="entry_name
   6484              " rowspan="5">
   6485               android.<wbr/>control.<wbr/>ae<wbr/>Regions
   6486             </td>
   6487             <td class="entry_type">
   6488                 <span class="entry_type_name">int32</span>
   6489                 <span class="entry_type_container">x</span>
   6490 
   6491                 <span class="entry_type_array">
   6492                   5 x area_count
   6493                 </span>
   6494               <span class="entry_type_visibility"> [public as meteringRectangle]</span>
   6495 
   6496 
   6497 
   6498 
   6499 
   6500 
   6501             </td> <!-- entry_type -->
   6502 
   6503             <td class="entry_description">
   6504               <p>List of metering areas to use for auto-exposure adjustment.<wbr/></p>
   6505             </td>
   6506 
   6507             <td class="entry_units">
   6508               Pixel coordinates within android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
   6509             </td>
   6510 
   6511             <td class="entry_range">
   6512               <p>Coordinates must be between <code>[(0,<wbr/>0),<wbr/> (width,<wbr/> height))</code> of
   6513 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></p>
   6514             </td>
   6515 
   6516             <td class="entry_hal_version">
   6517               <p>3.<wbr/>2</p>
   6518             </td>
   6519 
   6520             <td class="entry_tags">
   6521               <ul class="entry_tags">
   6522                   <li><a href="#tag_BC">BC</a></li>
   6523               </ul>
   6524             </td>
   6525 
   6526           </tr>
   6527           <tr class="entries_header">
   6528             <th class="th_details" colspan="6">Details</th>
   6529           </tr>
   6530           <tr class="entry_cont">
   6531             <td class="entry_details" colspan="6">
   6532               <p>Not available if <a href="#static_android.control.maxRegionsAe">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Ae</a> is 0.<wbr/>
   6533 Otherwise will always be present.<wbr/></p>
   6534 <p>The maximum number of regions supported by the device is determined by the value
   6535 of <a href="#static_android.control.maxRegionsAe">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Ae</a>.<wbr/></p>
   6536 <p>The coordinate system is based on the active pixel array,<wbr/>
   6537 with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
   6538 (<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
   6539 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
   6540 bottom-right pixel in the active pixel array.<wbr/></p>
   6541 <p>The weight must be within <code>[0,<wbr/> 1000]</code>,<wbr/> and represents a weight
   6542 for every pixel in the area.<wbr/> This means that a large metering area
   6543 with the same weight as a smaller area will have more effect in
   6544 the metering result.<wbr/> Metering areas can partially overlap and the
   6545 camera device will add the weights in the overlap region.<wbr/></p>
   6546 <p>The weights are relative to weights of other exposure metering regions,<wbr/> so if only one
   6547 region is used,<wbr/> all non-zero weights will have the same effect.<wbr/> A region with 0
   6548 weight is ignored.<wbr/></p>
   6549 <p>If all regions have 0 weight,<wbr/> then no specific metering area needs to be used by the
   6550 camera device.<wbr/></p>
   6551 <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
   6552 capture result metadata,<wbr/> the camera device will ignore the sections outside the crop
   6553 region and output only the intersection rectangle as the metering region in the result
   6554 metadata.<wbr/>  If the region is entirely outside the crop region,<wbr/> it will be ignored and
   6555 not reported in the result metadata.<wbr/></p>
   6556             </td>
   6557           </tr>
   6558 
   6559           <tr class="entries_header">
   6560             <th class="th_details" colspan="6">HAL Implementation Details</th>
   6561           </tr>
   6562           <tr class="entry_cont">
   6563             <td class="entry_details" colspan="6">
   6564               <p>The HAL level representation of MeteringRectangle[] is a
   6565 int[5 * area_<wbr/>count].<wbr/>
   6566 Every five elements represent a metering region of
   6567 (xmin,<wbr/> ymin,<wbr/> xmax,<wbr/> ymax,<wbr/> weight).<wbr/>
   6568 The rectangle is defined to be inclusive on xmin and ymin,<wbr/> but
   6569 exclusive on xmax and ymax.<wbr/></p>
   6570             </td>
   6571           </tr>
   6572 
   6573           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   6574            <!-- end of entry -->
   6575         
   6576                 
   6577           <tr class="entry" id="dynamic_android.control.aeTargetFpsRange">
   6578             <td class="entry_name
   6579              " rowspan="3">
   6580               android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range
   6581             </td>
   6582             <td class="entry_type">
   6583                 <span class="entry_type_name">int32</span>
   6584                 <span class="entry_type_container">x</span>
   6585 
   6586                 <span class="entry_type_array">
   6587                   2
   6588                 </span>
   6589               <span class="entry_type_visibility"> [public as rangeInt]</span>
   6590 
   6591 
   6592               <span class="entry_type_hwlevel">[legacy] </span>
   6593 
   6594 
   6595 
   6596 
   6597             </td> <!-- entry_type -->
   6598 
   6599             <td class="entry_description">
   6600               <p>Range over which the auto-exposure routine can
   6601 adjust the capture frame rate to maintain good
   6602 exposure.<wbr/></p>
   6603             </td>
   6604 
   6605             <td class="entry_units">
   6606               Frames per second (FPS)
   6607             </td>
   6608 
   6609             <td class="entry_range">
   6610               <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>
   6611             </td>
   6612 
   6613             <td class="entry_hal_version">
   6614               <p>3.<wbr/>2</p>
   6615             </td>
   6616 
   6617             <td class="entry_tags">
   6618               <ul class="entry_tags">
   6619                   <li><a href="#tag_BC">BC</a></li>
   6620               </ul>
   6621             </td>
   6622 
   6623           </tr>
   6624           <tr class="entries_header">
   6625             <th class="th_details" colspan="6">Details</th>
   6626           </tr>
   6627           <tr class="entry_cont">
   6628             <td class="entry_details" colspan="6">
   6629               <p>Only constrains auto-exposure (AE) algorithm,<wbr/> not
   6630 manual control of <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a> and
   6631 <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>.<wbr/></p>
   6632             </td>
   6633           </tr>
   6634 
   6635 
   6636           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   6637            <!-- end of entry -->
   6638         
   6639                 
   6640           <tr class="entry" id="dynamic_android.control.aePrecaptureTrigger">
   6641             <td class="entry_name
   6642              " rowspan="5">
   6643               android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger
   6644             </td>
   6645             <td class="entry_type">
   6646                 <span class="entry_type_name entry_type_name_enum">byte</span>
   6647 
   6648               <span class="entry_type_visibility"> [public]</span>
   6649 
   6650 
   6651               <span class="entry_type_hwlevel">[limited] </span>
   6652 
   6653 
   6654 
   6655                 <ul class="entry_type_enum">
   6656                   <li>
   6657                     <span class="entry_type_enum_name">IDLE (v3.2)</span>
   6658                     <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
   6659                   </li>
   6660                   <li>
   6661                     <span class="entry_type_enum_name">START (v3.2)</span>
   6662                     <span class="entry_type_enum_notes"><p>The precapture metering sequence will be started
   6663 by the camera device.<wbr/></p>
   6664 <p>The exact effect of the precapture trigger depends on
   6665 the current AE mode and state.<wbr/></p></span>
   6666                   </li>
   6667                   <li>
   6668                     <span class="entry_type_enum_name">CANCEL (v3.2)</span>
   6669                     <span class="entry_type_enum_notes"><p>The camera device will cancel any currently active or completed
   6670 precapture metering sequence,<wbr/> the auto-exposure routine will return to its
   6671 initial state.<wbr/></p></span>
   6672                   </li>
   6673                 </ul>
   6674 
   6675             </td> <!-- entry_type -->
   6676 
   6677             <td class="entry_description">
   6678               <p>Whether the camera device will trigger a precapture
   6679 metering sequence when it processes this request.<wbr/></p>
   6680             </td>
   6681 
   6682             <td class="entry_units">
   6683             </td>
   6684 
   6685             <td class="entry_range">
   6686             </td>
   6687 
   6688             <td class="entry_hal_version">
   6689               <p>3.<wbr/>2</p>
   6690             </td>
   6691 
   6692             <td class="entry_tags">
   6693               <ul class="entry_tags">
   6694                   <li><a href="#tag_BC">BC</a></li>
   6695               </ul>
   6696             </td>
   6697 
   6698           </tr>
   6699           <tr class="entries_header">
   6700             <th class="th_details" colspan="6">Details</th>
   6701           </tr>
   6702           <tr class="entry_cont">
   6703             <td class="entry_details" colspan="6">
   6704               <p>This entry is normally set to IDLE,<wbr/> or is not
   6705 included at all in the request settings.<wbr/> When included and
   6706 set to START,<wbr/> the camera device will trigger the auto-exposure (AE)
   6707 precapture metering sequence.<wbr/></p>
   6708 <p>When set to CANCEL,<wbr/> the camera device will cancel any active
   6709 precapture metering trigger,<wbr/> and return to its initial AE state.<wbr/>
   6710 If a precapture metering sequence is already completed,<wbr/> and the camera
   6711 device has implicitly locked the AE for subsequent still capture,<wbr/> the
   6712 CANCEL trigger will unlock the AE and return to its initial AE state.<wbr/></p>
   6713 <p>The precapture sequence should be triggered before starting a
   6714 high-quality still capture for final metering decisions to
   6715 be made,<wbr/> and for firing pre-capture flash pulses to estimate
   6716 scene brightness and required final capture flash power,<wbr/> when
   6717 the flash is enabled.<wbr/></p>
   6718 <p>Normally,<wbr/> this entry should be set to START for only a
   6719 single request,<wbr/> and the application should wait until the
   6720 sequence completes before starting a new one.<wbr/></p>
   6721 <p>When a precapture metering sequence is finished,<wbr/> the camera device
   6722 may lock the auto-exposure routine internally to be able to accurately expose the
   6723 subsequent still capture image (<code><a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> == STILL_<wbr/>CAPTURE</code>).<wbr/>
   6724 For this case,<wbr/> the AE may not resume normal scan if no subsequent still capture is
   6725 submitted.<wbr/> To ensure that the AE routine restarts normal scan,<wbr/> the application should
   6726 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
   6727 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
   6728 still capture request after the precapture sequence completes.<wbr/> Alternatively,<wbr/> for
   6729 API level 23 or newer devices,<wbr/> the CANCEL can be used to unlock the camera device
   6730 internally locked AE if the application doesn't submit a still capture request after
   6731 the AE precapture trigger.<wbr/> Note that,<wbr/> the CANCEL was added in API level 23,<wbr/> and must not
   6732 be used in devices that have earlier API levels.<wbr/></p>
   6733 <p>The exact effect of auto-exposure (AE) precapture trigger
   6734 depends on the current AE mode and state; see
   6735 <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> for AE precapture state transition
   6736 details.<wbr/></p>
   6737 <p>On LEGACY-level devices,<wbr/> the precapture trigger is not supported;
   6738 capturing a high-resolution JPEG image will automatically trigger a
   6739 precapture sequence before the high-resolution capture,<wbr/> including
   6740 potentially firing a pre-capture flash.<wbr/></p>
   6741 <p>Using the precapture trigger and the auto-focus trigger <a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a>
   6742 simultaneously is allowed.<wbr/> However,<wbr/> since these triggers often require cooperation between
   6743 the auto-focus and auto-exposure routines (for example,<wbr/> the may need to be enabled for a
   6744 focus sweep),<wbr/> the camera device may delay acting on a later trigger until the previous
   6745 trigger has been fully handled.<wbr/> This may lead to longer intervals between the trigger and
   6746 changes to <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> indicating the start of the precapture sequence,<wbr/> for
   6747 example.<wbr/></p>
   6748 <p>If both the precapture and the auto-focus trigger are activated on the same request,<wbr/> then
   6749 the camera device will complete them in the optimal order for that device.<wbr/></p>
   6750             </td>
   6751           </tr>
   6752 
   6753           <tr class="entries_header">
   6754             <th class="th_details" colspan="6">HAL Implementation Details</th>
   6755           </tr>
   6756           <tr class="entry_cont">
   6757             <td class="entry_details" colspan="6">
   6758               <p>The HAL must support triggering the AE precapture trigger while an AF trigger is active
   6759 (and vice versa),<wbr/> or at the same time as the AF trigger.<wbr/>  It is acceptable for the HAL to
   6760 treat these as two consecutive triggers,<wbr/> for example handling the AF trigger and then the
   6761 AE trigger.<wbr/>  Or the HAL may choose to optimize the case with both triggers fired at once,<wbr/>
   6762 to minimize the latency for converging both focus and exposure/<wbr/>flash usage.<wbr/></p>
   6763             </td>
   6764           </tr>
   6765 
   6766           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   6767            <!-- end of entry -->
   6768         
   6769                 
   6770           <tr class="entry" id="dynamic_android.control.aeState">
   6771             <td class="entry_name
   6772              " rowspan="3">
   6773               android.<wbr/>control.<wbr/>ae<wbr/>State
   6774             </td>
   6775             <td class="entry_type">
   6776                 <span class="entry_type_name entry_type_name_enum">byte</span>
   6777 
   6778               <span class="entry_type_visibility"> [public]</span>
   6779 
   6780 
   6781               <span class="entry_type_hwlevel">[limited] </span>
   6782 
   6783 
   6784 
   6785                 <ul class="entry_type_enum">
   6786                   <li>
   6787                     <span class="entry_type_enum_name">INACTIVE (v3.2)</span>
   6788                     <span class="entry_type_enum_notes"><p>AE is off or recently reset.<wbr/></p>
   6789 <p>When a camera device is opened,<wbr/> it starts in
   6790 this state.<wbr/> This is a transient state,<wbr/> the camera device may skip reporting
   6791 this state in capture result.<wbr/></p></span>
   6792                   </li>
   6793                   <li>
   6794                     <span class="entry_type_enum_name">SEARCHING (v3.2)</span>
   6795                     <span class="entry_type_enum_notes"><p>AE doesn't yet have a good set of control values
   6796 for the current scene.<wbr/></p>
   6797 <p>This is a transient state,<wbr/> the camera device may skip
   6798 reporting this state in capture result.<wbr/></p></span>
   6799                   </li>
   6800                   <li>
   6801                     <span class="entry_type_enum_name">CONVERGED (v3.2)</span>
   6802                     <span class="entry_type_enum_notes"><p>AE has a good set of control values for the
   6803 current scene.<wbr/></p></span>
   6804                   </li>
   6805                   <li>
   6806                     <span class="entry_type_enum_name">LOCKED (v3.2)</span>
   6807                     <span class="entry_type_enum_notes"><p>AE has been locked.<wbr/></p></span>
   6808                   </li>
   6809                   <li>
   6810                     <span class="entry_type_enum_name">FLASH_REQUIRED (v3.2)</span>
   6811                     <span class="entry_type_enum_notes"><p>AE has a good set of control values,<wbr/> but flash
   6812 needs to be fired for good quality still
   6813 capture.<wbr/></p></span>
   6814                   </li>
   6815                   <li>
   6816                     <span class="entry_type_enum_name">PRECAPTURE (v3.2)</span>
   6817                     <span class="entry_type_enum_notes"><p>AE has been asked to do a precapture sequence
   6818 and is currently executing it.<wbr/></p>
   6819 <p>Precapture can be triggered through setting
   6820 <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> to START.<wbr/> Currently
   6821 active and completed (if it causes camera device internal AE lock) precapture
   6822 metering sequence can be canceled through setting
   6823 <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> to CANCEL.<wbr/></p>
   6824 <p>Once PRECAPTURE completes,<wbr/> AE will transition to CONVERGED
   6825 or FLASH_<wbr/>REQUIRED as appropriate.<wbr/> This is a transient
   6826 state,<wbr/> the camera device may skip reporting this state in
   6827 capture result.<wbr/></p></span>
   6828                   </li>
   6829                 </ul>
   6830 
   6831             </td> <!-- entry_type -->
   6832 
   6833             <td class="entry_description">
   6834               <p>Current state of the auto-exposure (AE) algorithm.<wbr/></p>
   6835             </td>
   6836 
   6837             <td class="entry_units">
   6838             </td>
   6839 
   6840             <td class="entry_range">
   6841             </td>
   6842 
   6843             <td class="entry_hal_version">
   6844               <p>3.<wbr/>2</p>
   6845             </td>
   6846 
   6847             <td class="entry_tags">
   6848             </td>
   6849 
   6850           </tr>
   6851           <tr class="entries_header">
   6852             <th class="th_details" colspan="6">Details</th>
   6853           </tr>
   6854           <tr class="entry_cont">
   6855             <td class="entry_details" colspan="6">
   6856               <p>Switching between or enabling AE modes (<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>) always
   6857 resets the AE state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
   6858 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
   6859 the algorithm states to INACTIVE.<wbr/></p>
   6860 <p>The camera device can do several state transitions between two results,<wbr/> if it is
   6861 allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
   6862 seen in a result.<wbr/></p>
   6863 <p>The state in the result is the state for this image (in sync with this image): if
   6864 AE state becomes CONVERGED,<wbr/> then the image data associated with this result should
   6865 be good to use.<wbr/></p>
   6866 <p>Below are state transition tables for different AE modes.<wbr/></p>
   6867 <table>
   6868 <thead>
   6869 <tr>
   6870 <th align="center">State</th>
   6871 <th align="center">Transition Cause</th>
   6872 <th align="center">New State</th>
   6873 <th align="center">Notes</th>
   6874 </tr>
   6875 </thead>
   6876 <tbody>
   6877 <tr>
   6878 <td align="center">INACTIVE</td>
   6879 <td align="center"></td>
   6880 <td align="center">INACTIVE</td>
   6881 <td align="center">Camera device auto exposure algorithm is disabled</td>
   6882 </tr>
   6883 </tbody>
   6884 </table>
   6885 <p>When <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is AE_<wbr/>MODE_<wbr/>ON*:</p>
   6886 <table>
   6887 <thead>
   6888 <tr>
   6889 <th align="center">State</th>
   6890 <th align="center">Transition Cause</th>
   6891 <th align="center">New State</th>
   6892 <th align="center">Notes</th>
   6893 </tr>
   6894 </thead>
   6895 <tbody>
   6896 <tr>
   6897 <td align="center">INACTIVE</td>
   6898 <td align="center">Camera device initiates AE scan</td>
   6899 <td align="center">SEARCHING</td>
   6900 <td align="center">Values changing</td>
   6901 </tr>
   6902 <tr>
   6903 <td align="center">INACTIVE</td>
   6904 <td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
   6905 <td align="center">LOCKED</td>
   6906 <td align="center">Values locked</td>
   6907 </tr>
   6908 <tr>
   6909 <td align="center">SEARCHING</td>
   6910 <td align="center">Camera device finishes AE scan</td>
   6911 <td align="center">CONVERGED</td>
   6912 <td align="center">Good values,<wbr/> not changing</td>
   6913 </tr>
   6914 <tr>
   6915 <td align="center">SEARCHING</td>
   6916 <td align="center">Camera device finishes AE scan</td>
   6917 <td align="center">FLASH_<wbr/>REQUIRED</td>
   6918 <td align="center">Converged but too dark w/<wbr/>o flash</td>
   6919 </tr>
   6920 <tr>
   6921 <td align="center">SEARCHING</td>
   6922 <td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
   6923 <td align="center">LOCKED</td>
   6924 <td align="center">Values locked</td>
   6925 </tr>
   6926 <tr>
   6927 <td align="center">CONVERGED</td>
   6928 <td align="center">Camera device initiates AE scan</td>
   6929 <td align="center">SEARCHING</td>
   6930 <td align="center">Values changing</td>
   6931 </tr>
   6932 <tr>
   6933 <td align="center">CONVERGED</td>
   6934 <td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
   6935 <td align="center">LOCKED</td>
   6936 <td align="center">Values locked</td>
   6937 </tr>
   6938 <tr>
   6939 <td align="center">FLASH_<wbr/>REQUIRED</td>
   6940 <td align="center">Camera device initiates AE scan</td>
   6941 <td align="center">SEARCHING</td>
   6942 <td align="center">Values changing</td>
   6943 </tr>
   6944 <tr>
   6945 <td align="center">FLASH_<wbr/>REQUIRED</td>
   6946 <td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
   6947 <td align="center">LOCKED</td>
   6948 <td align="center">Values locked</td>
   6949 </tr>
   6950 <tr>
   6951 <td align="center">LOCKED</td>
   6952 <td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
   6953 <td align="center">SEARCHING</td>
   6954 <td align="center">Values not good after unlock</td>
   6955 </tr>
   6956 <tr>
   6957 <td align="center">LOCKED</td>
   6958 <td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
   6959 <td align="center">CONVERGED</td>
   6960 <td align="center">Values good after unlock</td>
   6961 </tr>
   6962 <tr>
   6963 <td align="center">LOCKED</td>
   6964 <td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
   6965 <td align="center">FLASH_<wbr/>REQUIRED</td>
   6966 <td align="center">Exposure good,<wbr/> but too dark</td>
   6967 </tr>
   6968 <tr>
   6969 <td align="center">PRECAPTURE</td>
   6970 <td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
   6971 <td align="center">CONVERGED</td>
   6972 <td align="center">Ready for high-quality capture</td>
   6973 </tr>
   6974 <tr>
   6975 <td align="center">PRECAPTURE</td>
   6976 <td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
   6977 <td align="center">LOCKED</td>
   6978 <td align="center">Ready for high-quality capture</td>
   6979 </tr>
   6980 <tr>
   6981 <td align="center">LOCKED</td>
   6982 <td align="center">aeLock is ON and aePrecaptureTrigger is START</td>
   6983 <td align="center">LOCKED</td>
   6984 <td align="center">Precapture trigger is ignored when AE is already locked</td>
   6985 </tr>
   6986 <tr>
   6987 <td align="center">LOCKED</td>
   6988 <td align="center">aeLock is ON and aePrecaptureTrigger is CANCEL</td>
   6989 <td align="center">LOCKED</td>
   6990 <td align="center">Precapture trigger is ignored when AE is already locked</td>
   6991 </tr>
   6992 <tr>
   6993 <td align="center">Any state (excluding LOCKED)</td>
   6994 <td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is START</td>
   6995 <td align="center">PRECAPTURE</td>
   6996 <td align="center">Start AE precapture metering sequence</td>
   6997 </tr>
   6998 <tr>
   6999 <td align="center">Any state (excluding LOCKED)</td>
   7000 <td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is CANCEL</td>
   7001 <td align="center">INACTIVE</td>
   7002 <td align="center">Currently active precapture metering sequence is canceled</td>
   7003 </tr>
   7004 </tbody>
   7005 </table>
   7006 <p>If the camera device supports AE external flash mode (ON_<wbr/>EXTERNAL_<wbr/>FLASH is included in
   7007 <a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a>),<wbr/> <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> must be FLASH_<wbr/>REQUIRED after
   7008 the camera device finishes AE scan and it's too dark without flash.<wbr/></p>
   7009 <p>For the above table,<wbr/> the camera device may skip reporting any state changes that happen
   7010 without application intervention (i.<wbr/>e.<wbr/> mode switch,<wbr/> trigger,<wbr/> locking).<wbr/> Any state that
   7011 can be skipped in that manner is called a transient state.<wbr/></p>
   7012 <p>For example,<wbr/> for above AE modes (AE_<wbr/>MODE_<wbr/>ON*),<wbr/> in addition to the state transitions
   7013 listed in above table,<wbr/> it is also legal for the camera device to skip one or more
   7014 transient states between two results.<wbr/> See below table for examples:</p>
   7015 <table>
   7016 <thead>
   7017 <tr>
   7018 <th align="center">State</th>
   7019 <th align="center">Transition Cause</th>
   7020 <th align="center">New State</th>
   7021 <th align="center">Notes</th>
   7022 </tr>
   7023 </thead>
   7024 <tbody>
   7025 <tr>
   7026 <td align="center">INACTIVE</td>
   7027 <td align="center">Camera device finished AE scan</td>
   7028 <td align="center">CONVERGED</td>
   7029 <td align="center">Values are already good,<wbr/> transient states are skipped by camera device.<wbr/></td>
   7030 </tr>
   7031 <tr>
   7032 <td align="center">Any state (excluding LOCKED)</td>
   7033 <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>
   7034 <td align="center">FLASH_<wbr/>REQUIRED</td>
   7035 <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>
   7036 </tr>
   7037 <tr>
   7038 <td align="center">Any state (excluding LOCKED)</td>
   7039 <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>
   7040 <td align="center">CONVERGED</td>
   7041 <td align="center">Converged after a precapture sequence,<wbr/> transient states are skipped by camera device.<wbr/></td>
   7042 </tr>
   7043 <tr>
   7044 <td align="center">Any state (excluding LOCKED)</td>
   7045 <td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is CANCEL,<wbr/> converged</td>
   7046 <td align="center">FLASH_<wbr/>REQUIRED</td>
   7047 <td align="center">Converged but too dark w/<wbr/>o flash after a precapture sequence is canceled,<wbr/> transient states are skipped by camera device.<wbr/></td>
   7048 </tr>
   7049 <tr>
   7050 <td align="center">Any state (excluding LOCKED)</td>
   7051 <td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is CANCEL,<wbr/> converged</td>
   7052 <td align="center">CONVERGED</td>
   7053 <td align="center">Converged after a precapture sequenceis canceled,<wbr/> transient states are skipped by camera device.<wbr/></td>
   7054 </tr>
   7055 <tr>
   7056 <td align="center">CONVERGED</td>
   7057 <td align="center">Camera device finished AE scan</td>
   7058 <td align="center">FLASH_<wbr/>REQUIRED</td>
   7059 <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>
   7060 </tr>
   7061 <tr>
   7062 <td align="center">FLASH_<wbr/>REQUIRED</td>
   7063 <td align="center">Camera device finished AE scan</td>
   7064 <td align="center">CONVERGED</td>
   7065 <td align="center">Converged after a new scan,<wbr/> transient states are skipped by camera device.<wbr/></td>
   7066 </tr>
   7067 </tbody>
   7068 </table>
   7069             </td>
   7070           </tr>
   7071 
   7072 
   7073           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   7074            <!-- end of entry -->
   7075         
   7076                 
   7077           <tr class="entry" id="dynamic_android.control.afMode">
   7078             <td class="entry_name
   7079              " rowspan="5">
   7080               android.<wbr/>control.<wbr/>af<wbr/>Mode
   7081             </td>
   7082             <td class="entry_type">
   7083                 <span class="entry_type_name entry_type_name_enum">byte</span>
   7084 
   7085               <span class="entry_type_visibility"> [public]</span>
   7086 
   7087 
   7088               <span class="entry_type_hwlevel">[legacy] </span>
   7089 
   7090 
   7091 
   7092                 <ul class="entry_type_enum">
   7093                   <li>
   7094                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   7095                     <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
   7096 <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
   7097 application.<wbr/></p></span>
   7098                   </li>
   7099                   <li>
   7100                     <span class="entry_type_enum_name">AUTO (v3.2)</span>
   7101                     <span class="entry_type_enum_notes"><p>Basic automatic focus mode.<wbr/></p>
   7102 <p>In this mode,<wbr/> the lens does not move unless
   7103 the autofocus trigger action is called.<wbr/> When that trigger
   7104 is activated,<wbr/> AF will transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
   7105 the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
   7106 <p>Always supported if lens is not fixed focus.<wbr/></p>
   7107 <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
   7108 is fixed-focus.<wbr/></p>
   7109 <p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
   7110 and sets the AF state to INACTIVE.<wbr/></p></span>
   7111                   </li>
   7112                   <li>
   7113                     <span class="entry_type_enum_name">MACRO (v3.2)</span>
   7114                     <span class="entry_type_enum_notes"><p>Close-up focusing mode.<wbr/></p>
   7115 <p>In this mode,<wbr/> the lens does not move unless the
   7116 autofocus trigger action is called.<wbr/> When that trigger is
   7117 activated,<wbr/> AF will transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
   7118 the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/> This
   7119 mode is optimized for focusing on objects very close to
   7120 the camera.<wbr/></p>
   7121 <p>When that trigger is activated,<wbr/> AF will transition to
   7122 ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or
   7123 NOT_<wbr/>FOCUSED).<wbr/> Triggering cancel AF resets the lens
   7124 position to default,<wbr/> and sets the AF state to
   7125 INACTIVE.<wbr/></p></span>
   7126                   </li>
   7127                   <li>
   7128                     <span class="entry_type_enum_name">CONTINUOUS_VIDEO (v3.2)</span>
   7129                     <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
   7130 position continually to attempt to provide a
   7131 constantly-in-focus image stream.<wbr/></p>
   7132 <p>The focusing behavior should be suitable for good quality
   7133 video recording; typically this means slower focus
   7134 movement and no overshoots.<wbr/> When the AF trigger is not
   7135 involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/>
   7136 and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED
   7137 states as appropriate.<wbr/> When the AF trigger is activated,<wbr/>
   7138 the algorithm should immediately transition into
   7139 AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
   7140 lens position until a cancel AF trigger is received.<wbr/></p>
   7141 <p>Once cancel is received,<wbr/> the algorithm should transition
   7142 back to INACTIVE and resume passive scan.<wbr/> Note that this
   7143 behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an
   7144 ongoing PASSIVE_<wbr/>SCAN must immediately be
   7145 canceled.<wbr/></p></span>
   7146                   </li>
   7147                   <li>
   7148                     <span class="entry_type_enum_name">CONTINUOUS_PICTURE (v3.2)</span>
   7149                     <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
   7150 position continually to attempt to provide a
   7151 constantly-in-focus image stream.<wbr/></p>
   7152 <p>The focusing behavior should be suitable for still image
   7153 capture; typically this means focusing as fast as
   7154 possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF
   7155 algorithm should start in INACTIVE state,<wbr/> and then
   7156 transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as
   7157 appropriate as it attempts to maintain focus.<wbr/> When the AF
   7158 trigger is activated,<wbr/> the algorithm should finish its
   7159 PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into
   7160 AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
   7161 lens position until a cancel AF trigger is received.<wbr/></p>
   7162 <p>When the AF cancel trigger is activated,<wbr/> the algorithm
   7163 should transition back to INACTIVE and then act as if it
   7164 has just been started.<wbr/></p></span>
   7165                   </li>
   7166                   <li>
   7167                     <span class="entry_type_enum_name">EDOF (v3.2)</span>
   7168                     <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus) mode.<wbr/></p>
   7169 <p>The camera device will produce images with an extended
   7170 depth of field automatically; no special focusing
   7171 operations need to be done before taking a picture.<wbr/></p>
   7172 <p>AF triggers are ignored,<wbr/> and the AF state will always be
   7173 INACTIVE.<wbr/></p></span>
   7174                   </li>
   7175                 </ul>
   7176 
   7177             </td> <!-- entry_type -->
   7178 
   7179             <td class="entry_description">
   7180               <p>Whether auto-focus (AF) is currently enabled,<wbr/> and what
   7181 mode it is set to.<wbr/></p>
   7182             </td>
   7183 
   7184             <td class="entry_units">
   7185             </td>
   7186 
   7187             <td class="entry_range">
   7188               <p><a href="#static_android.control.afAvailableModes">android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes</a></p>
   7189             </td>
   7190 
   7191             <td class="entry_hal_version">
   7192               <p>3.<wbr/>2</p>
   7193             </td>
   7194 
   7195             <td class="entry_tags">
   7196               <ul class="entry_tags">
   7197                   <li><a href="#tag_BC">BC</a></li>
   7198               </ul>
   7199             </td>
   7200 
   7201           </tr>
   7202           <tr class="entries_header">
   7203             <th class="th_details" colspan="6">Details</th>
   7204           </tr>
   7205           <tr class="entry_cont">
   7206             <td class="entry_details" colspan="6">
   7207               <p>Only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> = AUTO and the lens is not fixed focus
   7208 (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
   7209 when <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/> the behavior of AF is device
   7210 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
   7211 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>
   7212 <p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
   7213 the camera device will report the current AF status in <a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a>
   7214 in result metadata.<wbr/></p>
   7215             </td>
   7216           </tr>
   7217 
   7218           <tr class="entries_header">
   7219             <th class="th_details" colspan="6">HAL Implementation Details</th>
   7220           </tr>
   7221           <tr class="entry_cont">
   7222             <td class="entry_details" colspan="6">
   7223               <p>When afMode is AUTO or MACRO,<wbr/> the lens must not move until an AF trigger is sent in a
   7224 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
   7225 up with either FOCUSED_<wbr/>LOCKED or NOT_<wbr/>FOCUSED_<wbr/>LOCKED state (see
   7226 <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
   7227 locked and will not move.<wbr/> If camera movement (e.<wbr/>g.<wbr/> tilting camera) causes the lens to move
   7228 after the lens is locked,<wbr/> the HAL must compensate this movement appropriately such that
   7229 the same focal plane remains in focus.<wbr/></p>
   7230 <p>When afMode is one of the continuous auto focus modes,<wbr/> the HAL is free to start a AF
   7231 scan whenever it's not locked.<wbr/> When the lens is locked after an AF trigger
   7232 (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
   7233 same lock behavior as above.<wbr/></p>
   7234 <p>When afMode is OFF,<wbr/> the application controls focus manually.<wbr/> The accuracy of the
   7235 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/>
   7236 However,<wbr/> the lens must not move regardless of the camera movement for any focus distance
   7237 manual control.<wbr/></p>
   7238 <p>To put this in concrete terms,<wbr/> if the camera has lens elements which may move based on
   7239 camera orientation or motion (e.<wbr/>g.<wbr/> due to gravity),<wbr/> then the HAL must drive the lens to
   7240 remain in a fixed position invariant to the camera's orientation or motion,<wbr/> for example,<wbr/>
   7241 by using accelerometer measurements in the lens control logic.<wbr/> This is a typical issue
   7242 that will arise on camera modules with open-loop VCMs.<wbr/></p>
   7243             </td>
   7244           </tr>
   7245 
   7246           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   7247            <!-- end of entry -->
   7248         
   7249                 
   7250           <tr class="entry" id="dynamic_android.control.afRegions">
   7251             <td class="entry_name
   7252              " rowspan="5">
   7253               android.<wbr/>control.<wbr/>af<wbr/>Regions
   7254             </td>
   7255             <td class="entry_type">
   7256                 <span class="entry_type_name">int32</span>
   7257                 <span class="entry_type_container">x</span>
   7258 
   7259                 <span class="entry_type_array">
   7260                   5 x area_count
   7261                 </span>
   7262               <span class="entry_type_visibility"> [public as meteringRectangle]</span>
   7263 
   7264 
   7265 
   7266 
   7267 
   7268 
   7269             </td> <!-- entry_type -->
   7270 
   7271             <td class="entry_description">
   7272               <p>List of metering areas to use for auto-focus.<wbr/></p>
   7273             </td>
   7274 
   7275             <td class="entry_units">
   7276               Pixel coordinates within android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
   7277             </td>
   7278 
   7279             <td class="entry_range">
   7280               <p>Coordinates must be between <code>[(0,<wbr/>0),<wbr/> (width,<wbr/> height))</code> of
   7281 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></p>
   7282             </td>
   7283 
   7284             <td class="entry_hal_version">
   7285               <p>3.<wbr/>2</p>
   7286             </td>
   7287 
   7288             <td class="entry_tags">
   7289               <ul class="entry_tags">
   7290                   <li><a href="#tag_BC">BC</a></li>
   7291               </ul>
   7292             </td>
   7293 
   7294           </tr>
   7295           <tr class="entries_header">
   7296             <th class="th_details" colspan="6">Details</th>
   7297           </tr>
   7298           <tr class="entry_cont">
   7299             <td class="entry_details" colspan="6">
   7300               <p>Not available if <a href="#static_android.control.maxRegionsAf">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Af</a> is 0.<wbr/>
   7301 Otherwise will always be present.<wbr/></p>
   7302 <p>The maximum number of focus areas supported by the device is determined by the value
   7303 of <a href="#static_android.control.maxRegionsAf">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Af</a>.<wbr/></p>
   7304 <p>The coordinate system is based on the active pixel array,<wbr/>
   7305 with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
   7306 (<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
   7307 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
   7308 bottom-right pixel in the active pixel array.<wbr/></p>
   7309 <p>The weight must be within <code>[0,<wbr/> 1000]</code>,<wbr/> and represents a weight
   7310 for every pixel in the area.<wbr/> This means that a large metering area
   7311 with the same weight as a smaller area will have more effect in
   7312 the metering result.<wbr/> Metering areas can partially overlap and the
   7313 camera device will add the weights in the overlap region.<wbr/></p>
   7314 <p>The weights are relative to weights of other metering regions,<wbr/> so if only one region
   7315 is used,<wbr/> all non-zero weights will have the same effect.<wbr/> A region with 0 weight is
   7316 ignored.<wbr/></p>
   7317 <p>If all regions have 0 weight,<wbr/> then no specific metering area needs to be used by the
   7318 camera device.<wbr/> The capture result will either be a zero weight region as well,<wbr/> or
   7319 the region selected by the camera device as the focus area of interest.<wbr/></p>
   7320 <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
   7321 capture result metadata,<wbr/> the camera device will ignore the sections outside the crop
   7322 region and output only the intersection rectangle as the metering region in the result
   7323 metadata.<wbr/> If the region is entirely outside the crop region,<wbr/> it will be ignored and
   7324 not reported in the result metadata.<wbr/></p>
   7325             </td>
   7326           </tr>
   7327 
   7328           <tr class="entries_header">
   7329             <th class="th_details" colspan="6">HAL Implementation Details</th>
   7330           </tr>
   7331           <tr class="entry_cont">
   7332             <td class="entry_details" colspan="6">
   7333               <p>The HAL level representation of MeteringRectangle[] is a
   7334 int[5 * area_<wbr/>count].<wbr/>
   7335 Every five elements represent a metering region of
   7336 (xmin,<wbr/> ymin,<wbr/> xmax,<wbr/> ymax,<wbr/> weight).<wbr/>
   7337 The rectangle is defined to be inclusive on xmin and ymin,<wbr/> but
   7338 exclusive on xmax and ymax.<wbr/></p>
   7339             </td>
   7340           </tr>
   7341 
   7342           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   7343            <!-- end of entry -->
   7344         
   7345                 
   7346           <tr class="entry" id="dynamic_android.control.afTrigger">
   7347             <td class="entry_name
   7348              " rowspan="5">
   7349               android.<wbr/>control.<wbr/>af<wbr/>Trigger
   7350             </td>
   7351             <td class="entry_type">
   7352                 <span class="entry_type_name entry_type_name_enum">byte</span>
   7353 
   7354               <span class="entry_type_visibility"> [public]</span>
   7355 
   7356 
   7357               <span class="entry_type_hwlevel">[legacy] </span>
   7358 
   7359 
   7360 
   7361                 <ul class="entry_type_enum">
   7362                   <li>
   7363                     <span class="entry_type_enum_name">IDLE (v3.2)</span>
   7364                     <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
   7365                   </li>
   7366                   <li>
   7367                     <span class="entry_type_enum_name">START (v3.2)</span>
   7368                     <span class="entry_type_enum_notes"><p>Autofocus will trigger now.<wbr/></p></span>
   7369                   </li>
   7370                   <li>
   7371                     <span class="entry_type_enum_name">CANCEL (v3.2)</span>
   7372                     <span class="entry_type_enum_notes"><p>Autofocus will return to its initial
   7373 state,<wbr/> and cancel any currently active trigger.<wbr/></p></span>
   7374                   </li>
   7375                 </ul>
   7376 
   7377             </td> <!-- entry_type -->
   7378 
   7379             <td class="entry_description">
   7380               <p>Whether the camera device will trigger autofocus for this request.<wbr/></p>
   7381             </td>
   7382 
   7383             <td class="entry_units">
   7384             </td>
   7385 
   7386             <td class="entry_range">
   7387             </td>
   7388 
   7389             <td class="entry_hal_version">
   7390               <p>3.<wbr/>2</p>
   7391             </td>
   7392 
   7393             <td class="entry_tags">
   7394               <ul class="entry_tags">
   7395                   <li><a href="#tag_BC">BC</a></li>
   7396               </ul>
   7397             </td>
   7398 
   7399           </tr>
   7400           <tr class="entries_header">
   7401             <th class="th_details" colspan="6">Details</th>
   7402           </tr>
   7403           <tr class="entry_cont">
   7404             <td class="entry_details" colspan="6">
   7405               <p>This entry is normally set to IDLE,<wbr/> or is not
   7406 included at all in the request settings.<wbr/></p>
   7407 <p>When included and set to START,<wbr/> the camera device will trigger the
   7408 autofocus algorithm.<wbr/> If autofocus is disabled,<wbr/> this trigger has no effect.<wbr/></p>
   7409 <p>When set to CANCEL,<wbr/> the camera device will cancel any active trigger,<wbr/>
   7410 and return to its initial AF state.<wbr/></p>
   7411 <p>Generally,<wbr/> applications should set this entry to START or CANCEL for only a
   7412 single capture,<wbr/> and then return it to IDLE (or not set at all).<wbr/> Specifying
   7413 START for multiple captures in a row means restarting the AF operation over
   7414 and over again.<wbr/></p>
   7415 <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>
   7416 <p>Using the autofocus trigger and the precapture trigger <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>
   7417 simultaneously is allowed.<wbr/> However,<wbr/> since these triggers often require cooperation between
   7418 the auto-focus and auto-exposure routines (for example,<wbr/> the may need to be enabled for a
   7419 focus sweep),<wbr/> the camera device may delay acting on a later trigger until the previous
   7420 trigger has been fully handled.<wbr/> This may lead to longer intervals between the trigger and
   7421 changes to <a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a>,<wbr/> for example.<wbr/></p>
   7422             </td>
   7423           </tr>
   7424 
   7425           <tr class="entries_header">
   7426             <th class="th_details" colspan="6">HAL Implementation Details</th>
   7427           </tr>
   7428           <tr class="entry_cont">
   7429             <td class="entry_details" colspan="6">
   7430               <p>The HAL must support triggering the AF trigger while an AE precapture trigger is active
   7431 (and vice versa),<wbr/> or at the same time as the AE trigger.<wbr/>  It is acceptable for the HAL to
   7432 treat these as two consecutive triggers,<wbr/> for example handling the AF trigger and then the
   7433 AE trigger.<wbr/>  Or the HAL may choose to optimize the case with both triggers fired at once,<wbr/>
   7434 to minimize the latency for converging both focus and exposure/<wbr/>flash usage.<wbr/></p>
   7435             </td>
   7436           </tr>
   7437 
   7438           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   7439            <!-- end of entry -->
   7440         
   7441                 
   7442           <tr class="entry" id="dynamic_android.control.afState">
   7443             <td class="entry_name
   7444              " rowspan="3">
   7445               android.<wbr/>control.<wbr/>af<wbr/>State
   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">INACTIVE (v3.2)</span>
   7460                     <span class="entry_type_enum_notes"><p>AF is off or has not yet tried to scan/<wbr/>been asked
   7461 to scan.<wbr/></p>
   7462 <p>When a camera device is opened,<wbr/> it starts in this
   7463 state.<wbr/> This is a transient state,<wbr/> the camera device may
   7464 skip reporting this state in capture
   7465 result.<wbr/></p></span>
   7466                   </li>
   7467                   <li>
   7468                     <span class="entry_type_enum_name">PASSIVE_SCAN (v3.2)</span>
   7469                     <span class="entry_type_enum_notes"><p>AF is currently performing an AF scan initiated the
   7470 camera device in a continuous autofocus mode.<wbr/></p>
   7471 <p>Only used by CONTINUOUS_<wbr/>* AF modes.<wbr/> This is a transient
   7472 state,<wbr/> the camera device may skip reporting this state in
   7473 capture result.<wbr/></p></span>
   7474                   </li>
   7475                   <li>
   7476                     <span class="entry_type_enum_name">PASSIVE_FOCUSED (v3.2)</span>
   7477                     <span class="entry_type_enum_notes"><p>AF currently believes it is in focus,<wbr/> but may
   7478 restart scanning at any time.<wbr/></p>
   7479 <p>Only used by CONTINUOUS_<wbr/>* AF modes.<wbr/> This is a transient
   7480 state,<wbr/> the camera device may skip reporting this state in
   7481 capture result.<wbr/></p></span>
   7482                   </li>
   7483                   <li>
   7484                     <span class="entry_type_enum_name">ACTIVE_SCAN (v3.2)</span>
   7485                     <span class="entry_type_enum_notes"><p>AF is performing an AF scan because it was
   7486 triggered by AF trigger.<wbr/></p>
   7487 <p>Only used by AUTO or MACRO AF modes.<wbr/> This is a transient
   7488 state,<wbr/> the camera device may skip reporting this state in
   7489 capture result.<wbr/></p></span>
   7490                   </li>
   7491                   <li>
   7492                     <span class="entry_type_enum_name">FOCUSED_LOCKED (v3.2)</span>
   7493                     <span class="entry_type_enum_notes"><p>AF believes it is focused correctly and has locked
   7494 focus.<wbr/></p>
   7495 <p>This state is reached only after an explicit START AF trigger has been
   7496 sent (<a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a>),<wbr/> when good focus has been obtained.<wbr/></p>
   7497 <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
   7498 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>
   7499                   </li>
   7500                   <li>
   7501                     <span class="entry_type_enum_name">NOT_FOCUSED_LOCKED (v3.2)</span>
   7502                     <span class="entry_type_enum_notes"><p>AF has failed to focus successfully and has locked
   7503 focus.<wbr/></p>
   7504 <p>This state is reached only after an explicit START AF trigger has been
   7505 sent (<a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a>),<wbr/> when good focus cannot be obtained.<wbr/></p>
   7506 <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
   7507 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>
   7508                   </li>
   7509                   <li>
   7510                     <span class="entry_type_enum_name">PASSIVE_UNFOCUSED (v3.2)</span>
   7511                     <span class="entry_type_enum_notes"><p>AF finished a passive scan without finding focus,<wbr/>
   7512 and may restart scanning at any time.<wbr/></p>
   7513 <p>Only used by CONTINUOUS_<wbr/>* AF modes.<wbr/> This is a transient state,<wbr/> the camera
   7514 device may skip reporting this state in capture result.<wbr/></p>
   7515 <p>LEGACY camera devices do not support this state.<wbr/> When a passive
   7516 scan has finished,<wbr/> it will always go to PASSIVE_<wbr/>FOCUSED.<wbr/></p></span>
   7517                   </li>
   7518                 </ul>
   7519 
   7520             </td> <!-- entry_type -->
   7521 
   7522             <td class="entry_description">
   7523               <p>Current state of auto-focus (AF) algorithm.<wbr/></p>
   7524             </td>
   7525 
   7526             <td class="entry_units">
   7527             </td>
   7528 
   7529             <td class="entry_range">
   7530             </td>
   7531 
   7532             <td class="entry_hal_version">
   7533               <p>3.<wbr/>2</p>
   7534             </td>
   7535 
   7536             <td class="entry_tags">
   7537             </td>
   7538 
   7539           </tr>
   7540           <tr class="entries_header">
   7541             <th class="th_details" colspan="6">Details</th>
   7542           </tr>
   7543           <tr class="entry_cont">
   7544             <td class="entry_details" colspan="6">
   7545               <p>Switching between or enabling AF modes (<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>) always
   7546 resets the AF state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
   7547 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
   7548 the algorithm states to INACTIVE.<wbr/></p>
   7549 <p>The camera device can do several state transitions between two results,<wbr/> if it is
   7550 allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
   7551 seen in a result.<wbr/></p>
   7552 <p>The state in the result is the state for this image (in sync with this image): if
   7553 AF state becomes FOCUSED,<wbr/> then the image data associated with this result should
   7554 be sharp.<wbr/></p>
   7555 <p>Below are state transition tables for different AF modes.<wbr/></p>
   7556 <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>
   7557 <table>
   7558 <thead>
   7559 <tr>
   7560 <th align="center">State</th>
   7561 <th align="center">Transition Cause</th>
   7562 <th align="center">New State</th>
   7563 <th align="center">Notes</th>
   7564 </tr>
   7565 </thead>
   7566 <tbody>
   7567 <tr>
   7568 <td align="center">INACTIVE</td>
   7569 <td align="center"></td>
   7570 <td align="center">INACTIVE</td>
   7571 <td align="center">Never changes</td>
   7572 </tr>
   7573 </tbody>
   7574 </table>
   7575 <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>
   7576 <table>
   7577 <thead>
   7578 <tr>
   7579 <th align="center">State</th>
   7580 <th align="center">Transition Cause</th>
   7581 <th align="center">New State</th>
   7582 <th align="center">Notes</th>
   7583 </tr>
   7584 </thead>
   7585 <tbody>
   7586 <tr>
   7587 <td align="center">INACTIVE</td>
   7588 <td align="center">AF_<wbr/>TRIGGER</td>
   7589 <td align="center">ACTIVE_<wbr/>SCAN</td>
   7590 <td align="center">Start AF sweep,<wbr/> Lens now moving</td>
   7591 </tr>
   7592 <tr>
   7593 <td align="center">ACTIVE_<wbr/>SCAN</td>
   7594 <td align="center">AF sweep done</td>
   7595 <td align="center">FOCUSED_<wbr/>LOCKED</td>
   7596 <td align="center">Focused,<wbr/> Lens now locked</td>
   7597 </tr>
   7598 <tr>
   7599 <td align="center">ACTIVE_<wbr/>SCAN</td>
   7600 <td align="center">AF sweep done</td>
   7601 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
   7602 <td align="center">Not focused,<wbr/> Lens now locked</td>
   7603 </tr>
   7604 <tr>
   7605 <td align="center">ACTIVE_<wbr/>SCAN</td>
   7606 <td align="center">AF_<wbr/>CANCEL</td>
   7607 <td align="center">INACTIVE</td>
   7608 <td align="center">Cancel/<wbr/>reset AF,<wbr/> Lens now locked</td>
   7609 </tr>
   7610 <tr>
   7611 <td align="center">FOCUSED_<wbr/>LOCKED</td>
   7612 <td align="center">AF_<wbr/>CANCEL</td>
   7613 <td align="center">INACTIVE</td>
   7614 <td align="center">Cancel/<wbr/>reset AF</td>
   7615 </tr>
   7616 <tr>
   7617 <td align="center">FOCUSED_<wbr/>LOCKED</td>
   7618 <td align="center">AF_<wbr/>TRIGGER</td>
   7619 <td align="center">ACTIVE_<wbr/>SCAN</td>
   7620 <td align="center">Start new sweep,<wbr/> Lens now moving</td>
   7621 </tr>
   7622 <tr>
   7623 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
   7624 <td align="center">AF_<wbr/>CANCEL</td>
   7625 <td align="center">INACTIVE</td>
   7626 <td align="center">Cancel/<wbr/>reset AF</td>
   7627 </tr>
   7628 <tr>
   7629 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
   7630 <td align="center">AF_<wbr/>TRIGGER</td>
   7631 <td align="center">ACTIVE_<wbr/>SCAN</td>
   7632 <td align="center">Start new sweep,<wbr/> Lens now moving</td>
   7633 </tr>
   7634 <tr>
   7635 <td align="center">Any state</td>
   7636 <td align="center">Mode change</td>
   7637 <td align="center">INACTIVE</td>
   7638 <td align="center"></td>
   7639 </tr>
   7640 </tbody>
   7641 </table>
   7642 <p>For the above table,<wbr/> the camera device may skip reporting any state changes that happen
   7643 without application intervention (i.<wbr/>e.<wbr/> mode switch,<wbr/> trigger,<wbr/> locking).<wbr/> Any state that
   7644 can be skipped in that manner is called a transient state.<wbr/></p>
   7645 <p>For example,<wbr/> for these AF modes (AF_<wbr/>MODE_<wbr/>AUTO and AF_<wbr/>MODE_<wbr/>MACRO),<wbr/> in addition to the
   7646 state transitions listed in above table,<wbr/> it is also legal for the camera device to skip
   7647 one or more transient states between two results.<wbr/> See below table for examples:</p>
   7648 <table>
   7649 <thead>
   7650 <tr>
   7651 <th align="center">State</th>
   7652 <th align="center">Transition Cause</th>
   7653 <th align="center">New State</th>
   7654 <th align="center">Notes</th>
   7655 </tr>
   7656 </thead>
   7657 <tbody>
   7658 <tr>
   7659 <td align="center">INACTIVE</td>
   7660 <td align="center">AF_<wbr/>TRIGGER</td>
   7661 <td align="center">FOCUSED_<wbr/>LOCKED</td>
   7662 <td align="center">Focus is already good or good after a scan,<wbr/> lens is now locked.<wbr/></td>
   7663 </tr>
   7664 <tr>
   7665 <td align="center">INACTIVE</td>
   7666 <td align="center">AF_<wbr/>TRIGGER</td>
   7667 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
   7668 <td align="center">Focus failed after a scan,<wbr/> lens is now locked.<wbr/></td>
   7669 </tr>
   7670 <tr>
   7671 <td align="center">FOCUSED_<wbr/>LOCKED</td>
   7672 <td align="center">AF_<wbr/>TRIGGER</td>
   7673 <td align="center">FOCUSED_<wbr/>LOCKED</td>
   7674 <td align="center">Focus is already good or good after a scan,<wbr/> lens is now locked.<wbr/></td>
   7675 </tr>
   7676 <tr>
   7677 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
   7678 <td align="center">AF_<wbr/>TRIGGER</td>
   7679 <td align="center">FOCUSED_<wbr/>LOCKED</td>
   7680 <td align="center">Focus is good after a scan,<wbr/> lens is not locked.<wbr/></td>
   7681 </tr>
   7682 </tbody>
   7683 </table>
   7684 <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>
   7685 <table>
   7686 <thead>
   7687 <tr>
   7688 <th align="center">State</th>
   7689 <th align="center">Transition Cause</th>
   7690 <th align="center">New State</th>
   7691 <th align="center">Notes</th>
   7692 </tr>
   7693 </thead>
   7694 <tbody>
   7695 <tr>
   7696 <td align="center">INACTIVE</td>
   7697 <td align="center">Camera device initiates new scan</td>
   7698 <td align="center">PASSIVE_<wbr/>SCAN</td>
   7699 <td align="center">Start AF scan,<wbr/> Lens now moving</td>
   7700 </tr>
   7701 <tr>
   7702 <td align="center">INACTIVE</td>
   7703 <td align="center">AF_<wbr/>TRIGGER</td>
   7704 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
   7705 <td align="center">AF state query,<wbr/> Lens now locked</td>
   7706 </tr>
   7707 <tr>
   7708 <td align="center">PASSIVE_<wbr/>SCAN</td>
   7709 <td align="center">Camera device completes current scan</td>
   7710 <td align="center">PASSIVE_<wbr/>FOCUSED</td>
   7711 <td align="center">End AF scan,<wbr/> Lens now locked</td>
   7712 </tr>
   7713 <tr>
   7714 <td align="center">PASSIVE_<wbr/>SCAN</td>
   7715 <td align="center">Camera device fails current scan</td>
   7716 <td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
   7717 <td align="center">End AF scan,<wbr/> Lens now locked</td>
   7718 </tr>
   7719 <tr>
   7720 <td align="center">PASSIVE_<wbr/>SCAN</td>
   7721 <td align="center">AF_<wbr/>TRIGGER</td>
   7722 <td align="center">FOCUSED_<wbr/>LOCKED</td>
   7723 <td align="center">Immediate transition,<wbr/> if focus is good.<wbr/> Lens now locked</td>
   7724 </tr>
   7725 <tr>
   7726 <td align="center">PASSIVE_<wbr/>SCAN</td>
   7727 <td align="center">AF_<wbr/>TRIGGER</td>
   7728 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
   7729 <td align="center">Immediate transition,<wbr/> if focus is bad.<wbr/> Lens now locked</td>
   7730 </tr>
   7731 <tr>
   7732 <td align="center">PASSIVE_<wbr/>SCAN</td>
   7733 <td align="center">AF_<wbr/>CANCEL</td>
   7734 <td align="center">INACTIVE</td>
   7735 <td align="center">Reset lens position,<wbr/> Lens now locked</td>
   7736 </tr>
   7737 <tr>
   7738 <td align="center">PASSIVE_<wbr/>FOCUSED</td>
   7739 <td align="center">Camera device initiates new scan</td>
   7740 <td align="center">PASSIVE_<wbr/>SCAN</td>
   7741 <td align="center">Start AF scan,<wbr/> Lens now moving</td>
   7742 </tr>
   7743 <tr>
   7744 <td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
   7745 <td align="center">Camera device initiates new scan</td>
   7746 <td align="center">PASSIVE_<wbr/>SCAN</td>
   7747 <td align="center">Start AF scan,<wbr/> Lens now moving</td>
   7748 </tr>
   7749 <tr>
   7750 <td align="center">PASSIVE_<wbr/>FOCUSED</td>
   7751 <td align="center">AF_<wbr/>TRIGGER</td>
   7752 <td align="center">FOCUSED_<wbr/>LOCKED</td>
   7753 <td align="center">Immediate transition,<wbr/> lens now locked</td>
   7754 </tr>
   7755 <tr>
   7756 <td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
   7757 <td align="center">AF_<wbr/>TRIGGER</td>
   7758 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
   7759 <td align="center">Immediate transition,<wbr/> lens now locked</td>
   7760 </tr>
   7761 <tr>
   7762 <td align="center">FOCUSED_<wbr/>LOCKED</td>
   7763 <td align="center">AF_<wbr/>TRIGGER</td>
   7764 <td align="center">FOCUSED_<wbr/>LOCKED</td>
   7765 <td align="center">No effect</td>
   7766 </tr>
   7767 <tr>
   7768 <td align="center">FOCUSED_<wbr/>LOCKED</td>
   7769 <td align="center">AF_<wbr/>CANCEL</td>
   7770 <td align="center">INACTIVE</td>
   7771 <td align="center">Restart AF scan</td>
   7772 </tr>
   7773 <tr>
   7774 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
   7775 <td align="center">AF_<wbr/>TRIGGER</td>
   7776 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
   7777 <td align="center">No effect</td>
   7778 </tr>
   7779 <tr>
   7780 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
   7781 <td align="center">AF_<wbr/>CANCEL</td>
   7782 <td align="center">INACTIVE</td>
   7783 <td align="center">Restart AF scan</td>
   7784 </tr>
   7785 </tbody>
   7786 </table>
   7787 <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>
   7788 <table>
   7789 <thead>
   7790 <tr>
   7791 <th align="center">State</th>
   7792 <th align="center">Transition Cause</th>
   7793 <th align="center">New State</th>
   7794 <th align="center">Notes</th>
   7795 </tr>
   7796 </thead>
   7797 <tbody>
   7798 <tr>
   7799 <td align="center">INACTIVE</td>
   7800 <td align="center">Camera device initiates new scan</td>
   7801 <td align="center">PASSIVE_<wbr/>SCAN</td>
   7802 <td align="center">Start AF scan,<wbr/> Lens now moving</td>
   7803 </tr>
   7804 <tr>
   7805 <td align="center">INACTIVE</td>
   7806 <td align="center">AF_<wbr/>TRIGGER</td>
   7807 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
   7808 <td align="center">AF state query,<wbr/> Lens now locked</td>
   7809 </tr>
   7810 <tr>
   7811 <td align="center">PASSIVE_<wbr/>SCAN</td>
   7812 <td align="center">Camera device completes current scan</td>
   7813 <td align="center">PASSIVE_<wbr/>FOCUSED</td>
   7814 <td align="center">End AF scan,<wbr/> Lens now locked</td>
   7815 </tr>
   7816 <tr>
   7817 <td align="center">PASSIVE_<wbr/>SCAN</td>
   7818 <td align="center">Camera device fails current scan</td>
   7819 <td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
   7820 <td align="center">End AF scan,<wbr/> Lens now locked</td>
   7821 </tr>
   7822 <tr>
   7823 <td align="center">PASSIVE_<wbr/>SCAN</td>
   7824 <td align="center">AF_<wbr/>TRIGGER</td>
   7825 <td align="center">FOCUSED_<wbr/>LOCKED</td>
   7826 <td align="center">Eventual transition once the focus is good.<wbr/> Lens now locked</td>
   7827 </tr>
   7828 <tr>
   7829 <td align="center">PASSIVE_<wbr/>SCAN</td>
   7830 <td align="center">AF_<wbr/>TRIGGER</td>
   7831 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
   7832 <td align="center">Eventual transition if cannot find focus.<wbr/> Lens now locked</td>
   7833 </tr>
   7834 <tr>
   7835 <td align="center">PASSIVE_<wbr/>SCAN</td>
   7836 <td align="center">AF_<wbr/>CANCEL</td>
   7837 <td align="center">INACTIVE</td>
   7838 <td align="center">Reset lens position,<wbr/> Lens now locked</td>
   7839 </tr>
   7840 <tr>
   7841 <td align="center">PASSIVE_<wbr/>FOCUSED</td>
   7842 <td align="center">Camera device initiates new scan</td>
   7843 <td align="center">PASSIVE_<wbr/>SCAN</td>
   7844 <td align="center">Start AF scan,<wbr/> Lens now moving</td>
   7845 </tr>
   7846 <tr>
   7847 <td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
   7848 <td align="center">Camera device initiates new scan</td>
   7849 <td align="center">PASSIVE_<wbr/>SCAN</td>
   7850 <td align="center">Start AF scan,<wbr/> Lens now moving</td>
   7851 </tr>
   7852 <tr>
   7853 <td align="center">PASSIVE_<wbr/>FOCUSED</td>
   7854 <td align="center">AF_<wbr/>TRIGGER</td>
   7855 <td align="center">FOCUSED_<wbr/>LOCKED</td>
   7856 <td align="center">Immediate trans.<wbr/> Lens now locked</td>
   7857 </tr>
   7858 <tr>
   7859 <td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
   7860 <td align="center">AF_<wbr/>TRIGGER</td>
   7861 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
   7862 <td align="center">Immediate trans.<wbr/> Lens now locked</td>
   7863 </tr>
   7864 <tr>
   7865 <td align="center">FOCUSED_<wbr/>LOCKED</td>
   7866 <td align="center">AF_<wbr/>TRIGGER</td>
   7867 <td align="center">FOCUSED_<wbr/>LOCKED</td>
   7868 <td align="center">No effect</td>
   7869 </tr>
   7870 <tr>
   7871 <td align="center">FOCUSED_<wbr/>LOCKED</td>
   7872 <td align="center">AF_<wbr/>CANCEL</td>
   7873 <td align="center">INACTIVE</td>
   7874 <td align="center">Restart AF scan</td>
   7875 </tr>
   7876 <tr>
   7877 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
   7878 <td align="center">AF_<wbr/>TRIGGER</td>
   7879 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
   7880 <td align="center">No effect</td>
   7881 </tr>
   7882 <tr>
   7883 <td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
   7884 <td align="center">AF_<wbr/>CANCEL</td>
   7885 <td align="center">INACTIVE</td>
   7886 <td align="center">Restart AF scan</td>
   7887 </tr>
   7888 </tbody>
   7889 </table>
   7890 <p>When switch between AF_<wbr/>MODE_<wbr/>CONTINUOUS_<wbr/>* (CAF modes) and AF_<wbr/>MODE_<wbr/>AUTO/<wbr/>AF_<wbr/>MODE_<wbr/>MACRO
   7891 (AUTO modes),<wbr/> the initial INACTIVE or PASSIVE_<wbr/>SCAN states may be skipped by the
   7892 camera device.<wbr/> When a trigger is included in a mode switch request,<wbr/> the trigger
   7893 will be evaluated in the context of the new mode in the request.<wbr/>
   7894 See below table for examples:</p>
   7895 <table>
   7896 <thead>
   7897 <tr>
   7898 <th align="center">State</th>
   7899 <th align="center">Transition Cause</th>
   7900 <th align="center">New State</th>
   7901 <th align="center">Notes</th>
   7902 </tr>
   7903 </thead>
   7904 <tbody>
   7905 <tr>
   7906 <td align="center">any state</td>
   7907 <td align="center">CAF--&gt;AUTO mode switch</td>
   7908 <td align="center">INACTIVE</td>
   7909 <td align="center">Mode switch without trigger,<wbr/> initial state must be INACTIVE</td>
   7910 </tr>
   7911 <tr>
   7912 <td align="center">any state</td>
   7913 <td align="center">CAF--&gt;AUTO mode switch with AF_<wbr/>TRIGGER</td>
   7914 <td align="center">trigger-reachable states from INACTIVE</td>
   7915 <td align="center">Mode switch with trigger,<wbr/> INACTIVE is skipped</td>
   7916 </tr>
   7917 <tr>
   7918 <td align="center">any state</td>
   7919 <td align="center">AUTO--&gt;CAF mode switch</td>
   7920 <td align="center">passively reachable states from INACTIVE</td>
   7921 <td align="center">Mode switch without trigger,<wbr/> passive transient state is skipped</td>
   7922 </tr>
   7923 </tbody>
   7924 </table>
   7925             </td>
   7926           </tr>
   7927 
   7928 
   7929           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   7930            <!-- end of entry -->
   7931         
   7932                 
   7933           <tr class="entry" id="dynamic_android.control.afTriggerId">
   7934             <td class="entry_name
   7935                 entry_name_deprecated
   7936              " rowspan="3">
   7937               android.<wbr/>control.<wbr/>af<wbr/>Trigger<wbr/>Id
   7938             </td>
   7939             <td class="entry_type">
   7940                 <span class="entry_type_name">int32</span>
   7941 
   7942               <span class="entry_type_visibility"> [system]</span>
   7943 
   7944 
   7945 
   7946               <span class="entry_type_deprecated">[deprecated] </span>
   7947 
   7948 
   7949 
   7950             </td> <!-- entry_type -->
   7951 
   7952             <td class="entry_description">
   7953               <p>The ID sent with the latest
   7954 CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS call</p>
   7955             </td>
   7956 
   7957             <td class="entry_units">
   7958             </td>
   7959 
   7960             <td class="entry_range">
   7961               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   7962             </td>
   7963 
   7964             <td class="entry_hal_version">
   7965               <p>3.<wbr/>2</p>
   7966             </td>
   7967 
   7968             <td class="entry_tags">
   7969             </td>
   7970 
   7971           </tr>
   7972           <tr class="entries_header">
   7973             <th class="th_details" colspan="6">Details</th>
   7974           </tr>
   7975           <tr class="entry_cont">
   7976             <td class="entry_details" colspan="6">
   7977               <p>Must be 0 if no CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS trigger
   7978 received yet by HAL.<wbr/> Always updated even if AF algorithm
   7979 ignores the trigger</p>
   7980             </td>
   7981           </tr>
   7982 
   7983 
   7984           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   7985            <!-- end of entry -->
   7986         
   7987                 
   7988           <tr class="entry" id="dynamic_android.control.awbLock">
   7989             <td class="entry_name
   7990              " rowspan="3">
   7991               android.<wbr/>control.<wbr/>awb<wbr/>Lock
   7992             </td>
   7993             <td class="entry_type">
   7994                 <span class="entry_type_name entry_type_name_enum">byte</span>
   7995 
   7996               <span class="entry_type_visibility"> [public as boolean]</span>
   7997 
   7998 
   7999               <span class="entry_type_hwlevel">[legacy] </span>
   8000 
   8001 
   8002 
   8003                 <ul class="entry_type_enum">
   8004                   <li>
   8005                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   8006                     <span class="entry_type_enum_notes"><p>Auto-white balance lock is disabled; the AWB
   8007 algorithm is free to update its parameters if in AUTO
   8008 mode.<wbr/></p></span>
   8009                   </li>
   8010                   <li>
   8011                     <span class="entry_type_enum_name">ON (v3.2)</span>
   8012                     <span class="entry_type_enum_notes"><p>Auto-white balance lock is enabled; the AWB
   8013 algorithm will not update its parameters while the lock
   8014 is active.<wbr/></p></span>
   8015                   </li>
   8016                 </ul>
   8017 
   8018             </td> <!-- entry_type -->
   8019 
   8020             <td class="entry_description">
   8021               <p>Whether auto-white balance (AWB) is currently locked to its
   8022 latest calculated values.<wbr/></p>
   8023             </td>
   8024 
   8025             <td class="entry_units">
   8026             </td>
   8027 
   8028             <td class="entry_range">
   8029             </td>
   8030 
   8031             <td class="entry_hal_version">
   8032               <p>3.<wbr/>2</p>
   8033             </td>
   8034 
   8035             <td class="entry_tags">
   8036               <ul class="entry_tags">
   8037                   <li><a href="#tag_BC">BC</a></li>
   8038               </ul>
   8039             </td>
   8040 
   8041           </tr>
   8042           <tr class="entries_header">
   8043             <th class="th_details" colspan="6">Details</th>
   8044           </tr>
   8045           <tr class="entry_cont">
   8046             <td class="entry_details" colspan="6">
   8047               <p>When set to <code>true</code> (ON),<wbr/> the AWB algorithm is locked to its latest parameters,<wbr/>
   8048 and will not change color balance settings until the lock is set to <code>false</code> (OFF).<wbr/></p>
   8049 <p>Since the camera device has a pipeline of in-flight requests,<wbr/> the settings that
   8050 get locked do not necessarily correspond to the settings that were present in the
   8051 latest capture result received from the camera device,<wbr/> since additional captures
   8052 and AWB updates may have occurred even before the result was sent out.<wbr/> If an
   8053 application is switching between automatic and manual control and wishes to eliminate
   8054 any flicker during the switch,<wbr/> the following procedure is recommended:</p>
   8055 <ol>
   8056 <li>Starting in auto-AWB mode:</li>
   8057 <li>Lock AWB</li>
   8058 <li>Wait for the first result to be output that has the AWB locked</li>
   8059 <li>Copy AWB settings from that result into a request,<wbr/> set the request to manual AWB</li>
   8060 <li>Submit the capture request,<wbr/> proceed to run manual AWB as desired.<wbr/></li>
   8061 </ol>
   8062 <p>Note that AWB lock is only meaningful when
   8063 <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> is in the AUTO mode; in other modes,<wbr/>
   8064 AWB is already fixed to a specific setting.<wbr/></p>
   8065 <p>Some LEGACY devices may not support ON; the value is then overridden to OFF.<wbr/></p>
   8066             </td>
   8067           </tr>
   8068 
   8069 
   8070           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   8071            <!-- end of entry -->
   8072         
   8073                 
   8074           <tr class="entry" id="dynamic_android.control.awbMode">
   8075             <td class="entry_name
   8076              " rowspan="3">
   8077               android.<wbr/>control.<wbr/>awb<wbr/>Mode
   8078             </td>
   8079             <td class="entry_type">
   8080                 <span class="entry_type_name entry_type_name_enum">byte</span>
   8081 
   8082               <span class="entry_type_visibility"> [public]</span>
   8083 
   8084 
   8085               <span class="entry_type_hwlevel">[legacy] </span>
   8086 
   8087 
   8088 
   8089                 <ul class="entry_type_enum">
   8090                   <li>
   8091                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   8092                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled.<wbr/></p>
   8093 <p>The application-selected color transform matrix
   8094 (<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
   8095 (<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
   8096 device for manual white balance control.<wbr/></p></span>
   8097                   </li>
   8098                   <li>
   8099                     <span class="entry_type_enum_name">AUTO (v3.2)</span>
   8100                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is active.<wbr/></p>
   8101 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
   8102 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
   8103 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
   8104 values used by the camera device for the transform and gains
   8105 will be available in the capture result for this request.<wbr/></p></span>
   8106                   </li>
   8107                   <li>
   8108                     <span class="entry_type_enum_name">INCANDESCENT (v3.2)</span>
   8109                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
   8110 the camera device uses incandescent light as the assumed scene
   8111 illumination for white balance.<wbr/></p>
   8112 <p>While the exact white balance transforms are up to the
   8113 camera device,<wbr/> they will approximately match the CIE
   8114 standard illuminant A.<wbr/></p>
   8115 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
   8116 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
   8117 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
   8118 values used by the camera device for the transform and gains
   8119 will be available in the capture result for this request.<wbr/></p></span>
   8120                   </li>
   8121                   <li>
   8122                     <span class="entry_type_enum_name">FLUORESCENT (v3.2)</span>
   8123                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
   8124 the camera device uses fluorescent light as the assumed scene
   8125 illumination for white balance.<wbr/></p>
   8126 <p>While the exact white balance transforms are up to the
   8127 camera device,<wbr/> they will approximately match the CIE
   8128 standard illuminant F2.<wbr/></p>
   8129 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
   8130 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
   8131 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
   8132 values used by the camera device for the transform and gains
   8133 will be available in the capture result for this request.<wbr/></p></span>
   8134                   </li>
   8135                   <li>
   8136                     <span class="entry_type_enum_name">WARM_FLUORESCENT (v3.2)</span>
   8137                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
   8138 the camera device uses warm fluorescent light as the assumed scene
   8139 illumination for white balance.<wbr/></p>
   8140 <p>While the exact white balance transforms are up to the
   8141 camera device,<wbr/> they will approximately match the CIE
   8142 standard illuminant F4.<wbr/></p>
   8143 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
   8144 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
   8145 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
   8146 values used by the camera device for the transform and gains
   8147 will be available in the capture result for this request.<wbr/></p></span>
   8148                   </li>
   8149                   <li>
   8150                     <span class="entry_type_enum_name">DAYLIGHT (v3.2)</span>
   8151                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
   8152 the camera device uses daylight light as the assumed scene
   8153 illumination for white balance.<wbr/></p>
   8154 <p>While the exact white balance transforms are up to the
   8155 camera device,<wbr/> they will approximately match the CIE
   8156 standard illuminant D65.<wbr/></p>
   8157 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
   8158 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
   8159 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
   8160 values used by the camera device for the transform and gains
   8161 will be available in the capture result for this request.<wbr/></p></span>
   8162                   </li>
   8163                   <li>
   8164                     <span class="entry_type_enum_name">CLOUDY_DAYLIGHT (v3.2)</span>
   8165                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
   8166 the camera device uses cloudy daylight light as the assumed scene
   8167 illumination for white balance.<wbr/></p>
   8168 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
   8169 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
   8170 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
   8171 values used by the camera device for the transform and gains
   8172 will be available in the capture result for this request.<wbr/></p></span>
   8173                   </li>
   8174                   <li>
   8175                     <span class="entry_type_enum_name">TWILIGHT (v3.2)</span>
   8176                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
   8177 the camera device uses twilight light as the assumed scene
   8178 illumination for white balance.<wbr/></p>
   8179 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
   8180 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
   8181 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
   8182 values used by the camera device for the transform and gains
   8183 will be available in the capture result for this request.<wbr/></p></span>
   8184                   </li>
   8185                   <li>
   8186                     <span class="entry_type_enum_name">SHADE (v3.2)</span>
   8187                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
   8188 the camera device uses shade light as the assumed scene
   8189 illumination for white balance.<wbr/></p>
   8190 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
   8191 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
   8192 For devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability,<wbr/> the
   8193 values used by the camera device for the transform and gains
   8194 will be available in the capture result for this request.<wbr/></p></span>
   8195                   </li>
   8196                 </ul>
   8197 
   8198             </td> <!-- entry_type -->
   8199 
   8200             <td class="entry_description">
   8201               <p>Whether auto-white balance (AWB) is currently setting the color
   8202 transform fields,<wbr/> and what its illumination target
   8203 is.<wbr/></p>
   8204             </td>
   8205 
   8206             <td class="entry_units">
   8207             </td>
   8208 
   8209             <td class="entry_range">
   8210               <p><a href="#static_android.control.awbAvailableModes">android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes</a></p>
   8211             </td>
   8212 
   8213             <td class="entry_hal_version">
   8214               <p>3.<wbr/>2</p>
   8215             </td>
   8216 
   8217             <td class="entry_tags">
   8218               <ul class="entry_tags">
   8219                   <li><a href="#tag_BC">BC</a></li>
   8220               </ul>
   8221             </td>
   8222 
   8223           </tr>
   8224           <tr class="entries_header">
   8225             <th class="th_details" colspan="6">Details</th>
   8226           </tr>
   8227           <tr class="entry_cont">
   8228             <td class="entry_details" colspan="6">
   8229               <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
   8230 <p>When set to the ON mode,<wbr/> the camera device's auto-white balance
   8231 routine is enabled,<wbr/> overriding the application's selected
   8232 <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
   8233 <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>
   8234 is OFF,<wbr/> the behavior of AWB is device dependent.<wbr/> It is recommened to
   8235 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
   8236 setting AE mode to OFF.<wbr/></p>
   8237 <p>When set to the OFF mode,<wbr/> the camera device's auto-white balance
   8238 routine is disabled.<wbr/> The application manually controls the white
   8239 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>
   8240 and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
   8241 <p>When set to any other modes,<wbr/> the camera device's auto-white
   8242 balance routine is disabled.<wbr/> The camera device uses each
   8243 particular illumination target for white balance
   8244 adjustment.<wbr/> The application's values for
   8245 <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/>
   8246 <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
   8247 <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> are ignored.<wbr/></p>
   8248             </td>
   8249           </tr>
   8250 
   8251 
   8252           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   8253            <!-- end of entry -->
   8254         
   8255                 
   8256           <tr class="entry" id="dynamic_android.control.awbRegions">
   8257             <td class="entry_name
   8258              " rowspan="5">
   8259               android.<wbr/>control.<wbr/>awb<wbr/>Regions
   8260             </td>
   8261             <td class="entry_type">
   8262                 <span class="entry_type_name">int32</span>
   8263                 <span class="entry_type_container">x</span>
   8264 
   8265                 <span class="entry_type_array">
   8266                   5 x area_count
   8267                 </span>
   8268               <span class="entry_type_visibility"> [public as meteringRectangle]</span>
   8269 
   8270 
   8271 
   8272 
   8273 
   8274 
   8275             </td> <!-- entry_type -->
   8276 
   8277             <td class="entry_description">
   8278               <p>List of metering areas to use for auto-white-balance illuminant
   8279 estimation.<wbr/></p>
   8280             </td>
   8281 
   8282             <td class="entry_units">
   8283               Pixel coordinates within android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
   8284             </td>
   8285 
   8286             <td class="entry_range">
   8287               <p>Coordinates must be between <code>[(0,<wbr/>0),<wbr/> (width,<wbr/> height))</code> of
   8288 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></p>
   8289             </td>
   8290 
   8291             <td class="entry_hal_version">
   8292               <p>3.<wbr/>2</p>
   8293             </td>
   8294 
   8295             <td class="entry_tags">
   8296               <ul class="entry_tags">
   8297                   <li><a href="#tag_BC">BC</a></li>
   8298               </ul>
   8299             </td>
   8300 
   8301           </tr>
   8302           <tr class="entries_header">
   8303             <th class="th_details" colspan="6">Details</th>
   8304           </tr>
   8305           <tr class="entry_cont">
   8306             <td class="entry_details" colspan="6">
   8307               <p>Not available if <a href="#static_android.control.maxRegionsAwb">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Awb</a> is 0.<wbr/>
   8308 Otherwise will always be present.<wbr/></p>
   8309 <p>The maximum number of regions supported by the device is determined by the value
   8310 of <a href="#static_android.control.maxRegionsAwb">android.<wbr/>control.<wbr/>max<wbr/>Regions<wbr/>Awb</a>.<wbr/></p>
   8311 <p>The coordinate system is based on the active pixel array,<wbr/>
   8312 with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
   8313 (<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
   8314 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
   8315 bottom-right pixel in the active pixel array.<wbr/></p>
   8316 <p>The weight must range from 0 to 1000,<wbr/> and represents a weight
   8317 for every pixel in the area.<wbr/> This means that a large metering area
   8318 with the same weight as a smaller area will have more effect in
   8319 the metering result.<wbr/> Metering areas can partially overlap and the
   8320 camera device will add the weights in the overlap region.<wbr/></p>
   8321 <p>The weights are relative to weights of other white balance metering regions,<wbr/> so if
   8322 only one region is used,<wbr/> all non-zero weights will have the same effect.<wbr/> A region with
   8323 0 weight is ignored.<wbr/></p>
   8324 <p>If all regions have 0 weight,<wbr/> then no specific metering area needs to be used by the
   8325 camera device.<wbr/></p>
   8326 <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
   8327 capture result metadata,<wbr/> the camera device will ignore the sections outside the crop
   8328 region and output only the intersection rectangle as the metering region in the result
   8329 metadata.<wbr/>  If the region is entirely outside the crop region,<wbr/> it will be ignored and
   8330 not reported in the result metadata.<wbr/></p>
   8331             </td>
   8332           </tr>
   8333 
   8334           <tr class="entries_header">
   8335             <th class="th_details" colspan="6">HAL Implementation Details</th>
   8336           </tr>
   8337           <tr class="entry_cont">
   8338             <td class="entry_details" colspan="6">
   8339               <p>The HAL level representation of MeteringRectangle[] is a
   8340 int[5 * area_<wbr/>count].<wbr/>
   8341 Every five elements represent a metering region of
   8342 (xmin,<wbr/> ymin,<wbr/> xmax,<wbr/> ymax,<wbr/> weight).<wbr/>
   8343 The rectangle is defined to be inclusive on xmin and ymin,<wbr/> but
   8344 exclusive on xmax and ymax.<wbr/></p>
   8345             </td>
   8346           </tr>
   8347 
   8348           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   8349            <!-- end of entry -->
   8350         
   8351                 
   8352           <tr class="entry" id="dynamic_android.control.captureIntent">
   8353             <td class="entry_name
   8354              " rowspan="3">
   8355               android.<wbr/>control.<wbr/>capture<wbr/>Intent
   8356             </td>
   8357             <td class="entry_type">
   8358                 <span class="entry_type_name entry_type_name_enum">byte</span>
   8359 
   8360               <span class="entry_type_visibility"> [public]</span>
   8361 
   8362 
   8363               <span class="entry_type_hwlevel">[legacy] </span>
   8364 
   8365 
   8366 
   8367                 <ul class="entry_type_enum">
   8368                   <li>
   8369                     <span class="entry_type_enum_name">CUSTOM (v3.2)</span>
   8370                     <span class="entry_type_enum_notes"><p>The goal of this request doesn't fall into the other
   8371 categories.<wbr/> The camera device will default to preview-like
   8372 behavior.<wbr/></p></span>
   8373                   </li>
   8374                   <li>
   8375                     <span class="entry_type_enum_name">PREVIEW (v3.2)</span>
   8376                     <span class="entry_type_enum_notes"><p>This request is for a preview-like use case.<wbr/></p>
   8377 <p>The precapture trigger may be used to start off a metering
   8378 w/<wbr/>flash sequence.<wbr/></p></span>
   8379                   </li>
   8380                   <li>
   8381                     <span class="entry_type_enum_name">STILL_CAPTURE (v3.2)</span>
   8382                     <span class="entry_type_enum_notes"><p>This request is for a still capture-type
   8383 use case.<wbr/></p>
   8384 <p>If the flash unit is under automatic control,<wbr/> it may fire as needed.<wbr/></p></span>
   8385                   </li>
   8386                   <li>
   8387                     <span class="entry_type_enum_name">VIDEO_RECORD (v3.2)</span>
   8388                     <span class="entry_type_enum_notes"><p>This request is for a video recording
   8389 use case.<wbr/></p></span>
   8390                   </li>
   8391                   <li>
   8392                     <span class="entry_type_enum_name">VIDEO_SNAPSHOT (v3.2)</span>
   8393                     <span class="entry_type_enum_notes"><p>This request is for a video snapshot (still
   8394 image while recording video) use case.<wbr/></p>
   8395 <p>The camera device should take the highest-quality image
   8396 possible (given the other settings) without disrupting the
   8397 frame rate of video recording.<wbr/>  </p></span>
   8398                   </li>
   8399                   <li>
   8400                     <span class="entry_type_enum_name">ZERO_SHUTTER_LAG (v3.2)</span>
   8401                     <span class="entry_type_enum_notes"><p>This request is for a ZSL usecase; the
   8402 application will stream full-resolution images and
   8403 reprocess one or several later for a final
   8404 capture.<wbr/></p></span>
   8405                   </li>
   8406                   <li>
   8407                     <span class="entry_type_enum_name">MANUAL (v3.2)</span>
   8408                     <span class="entry_type_enum_notes"><p>This request is for manual capture use case where
   8409 the applications want to directly control the capture parameters.<wbr/></p>
   8410 <p>For example,<wbr/> the application may wish to manually control
   8411 <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>
   8412                   </li>
   8413                   <li>
   8414                     <span class="entry_type_enum_name">MOTION_TRACKING (v3.3)</span>
   8415                     <span class="entry_type_enum_notes"><p>This request is for a motion tracking use case,<wbr/> where
   8416 the application will use camera and inertial sensor data to
   8417 locate and track objects in the world.<wbr/></p>
   8418 <p>The camera device auto-exposure routine will limit the exposure time
   8419 of the camera to no more than 20 milliseconds,<wbr/> to minimize motion blur.<wbr/></p></span>
   8420                   </li>
   8421                 </ul>
   8422 
   8423             </td> <!-- entry_type -->
   8424 
   8425             <td class="entry_description">
   8426               <p>Information to the camera device 3A (auto-exposure,<wbr/>
   8427 auto-focus,<wbr/> auto-white balance) routines about the purpose
   8428 of this capture,<wbr/> to help the camera device to decide optimal 3A
   8429 strategy.<wbr/></p>
   8430             </td>
   8431 
   8432             <td class="entry_units">
   8433             </td>
   8434 
   8435             <td class="entry_range">
   8436             </td>
   8437 
   8438             <td class="entry_hal_version">
   8439               <p>3.<wbr/>2</p>
   8440             </td>
   8441 
   8442             <td class="entry_tags">
   8443               <ul class="entry_tags">
   8444                   <li><a href="#tag_BC">BC</a></li>
   8445               </ul>
   8446             </td>
   8447 
   8448           </tr>
   8449           <tr class="entries_header">
   8450             <th class="th_details" colspan="6">Details</th>
   8451           </tr>
   8452           <tr class="entry_cont">
   8453             <td class="entry_details" colspan="6">
   8454               <p>This control (except for MANUAL) is only effective if
   8455 <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF</code> and any 3A routine is active.<wbr/></p>
   8456 <p>All intents are supported by all devices,<wbr/> except that:
   8457   * ZERO_<wbr/>SHUTTER_<wbr/>LAG will be supported if <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains
   8458 PRIVATE_<wbr/>REPROCESSING or YUV_<wbr/>REPROCESSING.<wbr/>
   8459   * MANUAL will be supported if <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains
   8460 MANUAL_<wbr/>SENSOR.<wbr/>
   8461   * MOTION_<wbr/>TRACKING will be supported if <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains
   8462 MOTION_<wbr/>TRACKING.<wbr/></p>
   8463             </td>
   8464           </tr>
   8465 
   8466 
   8467           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   8468            <!-- end of entry -->
   8469         
   8470                 
   8471           <tr class="entry" id="dynamic_android.control.awbState">
   8472             <td class="entry_name
   8473              " rowspan="3">
   8474               android.<wbr/>control.<wbr/>awb<wbr/>State
   8475             </td>
   8476             <td class="entry_type">
   8477                 <span class="entry_type_name entry_type_name_enum">byte</span>
   8478 
   8479               <span class="entry_type_visibility"> [public]</span>
   8480 
   8481 
   8482               <span class="entry_type_hwlevel">[limited] </span>
   8483 
   8484 
   8485 
   8486                 <ul class="entry_type_enum">
   8487                   <li>
   8488                     <span class="entry_type_enum_name">INACTIVE (v3.2)</span>
   8489                     <span class="entry_type_enum_notes"><p>AWB is not in auto mode,<wbr/> or has not yet started metering.<wbr/></p>
   8490 <p>When a camera device is opened,<wbr/> it starts in this
   8491 state.<wbr/> This is a transient state,<wbr/> the camera device may
   8492 skip reporting this state in capture
   8493 result.<wbr/></p></span>
   8494                   </li>
   8495                   <li>
   8496                     <span class="entry_type_enum_name">SEARCHING (v3.2)</span>
   8497                     <span class="entry_type_enum_notes"><p>AWB doesn't yet have a good set of control
   8498 values for the current scene.<wbr/></p>
   8499 <p>This is a transient state,<wbr/> the camera device
   8500 may skip reporting this state in capture result.<wbr/></p></span>
   8501                   </li>
   8502                   <li>
   8503                     <span class="entry_type_enum_name">CONVERGED (v3.2)</span>
   8504                     <span class="entry_type_enum_notes"><p>AWB has a good set of control values for the
   8505 current scene.<wbr/></p></span>
   8506                   </li>
   8507                   <li>
   8508                     <span class="entry_type_enum_name">LOCKED (v3.2)</span>
   8509                     <span class="entry_type_enum_notes"><p>AWB has been locked.<wbr/></p></span>
   8510                   </li>
   8511                 </ul>
   8512 
   8513             </td> <!-- entry_type -->
   8514 
   8515             <td class="entry_description">
   8516               <p>Current state of auto-white balance (AWB) algorithm.<wbr/></p>
   8517             </td>
   8518 
   8519             <td class="entry_units">
   8520             </td>
   8521 
   8522             <td class="entry_range">
   8523             </td>
   8524 
   8525             <td class="entry_hal_version">
   8526               <p>3.<wbr/>2</p>
   8527             </td>
   8528 
   8529             <td class="entry_tags">
   8530             </td>
   8531 
   8532           </tr>
   8533           <tr class="entries_header">
   8534             <th class="th_details" colspan="6">Details</th>
   8535           </tr>
   8536           <tr class="entry_cont">
   8537             <td class="entry_details" colspan="6">
   8538               <p>Switching between or enabling AWB modes (<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>) always
   8539 resets the AWB state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
   8540 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
   8541 the algorithm states to INACTIVE.<wbr/></p>
   8542 <p>The camera device can do several state transitions between two results,<wbr/> if it is
   8543 allowed by the state transition table.<wbr/> So INACTIVE may never actually be seen in
   8544 a result.<wbr/></p>
   8545 <p>The state in the result is the state for this image (in sync with this image): if
   8546 AWB state becomes CONVERGED,<wbr/> then the image data associated with this result should
   8547 be good to use.<wbr/></p>
   8548 <p>Below are state transition tables for different AWB modes.<wbr/></p>
   8549 <p>When <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != AWB_<wbr/>MODE_<wbr/>AUTO</code>:</p>
   8550 <table>
   8551 <thead>
   8552 <tr>
   8553 <th align="center">State</th>
   8554 <th align="center">Transition Cause</th>
   8555 <th align="center">New State</th>
   8556 <th align="center">Notes</th>
   8557 </tr>
   8558 </thead>
   8559 <tbody>
   8560 <tr>
   8561 <td align="center">INACTIVE</td>
   8562 <td align="center"></td>
   8563 <td align="center">INACTIVE</td>
   8564 <td align="center">Camera device auto white balance algorithm is disabled</td>
   8565 </tr>
   8566 </tbody>
   8567 </table>
   8568 <p>When <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> is AWB_<wbr/>MODE_<wbr/>AUTO:</p>
   8569 <table>
   8570 <thead>
   8571 <tr>
   8572 <th align="center">State</th>
   8573 <th align="center">Transition Cause</th>
   8574 <th align="center">New State</th>
   8575 <th align="center">Notes</th>
   8576 </tr>
   8577 </thead>
   8578 <tbody>
   8579 <tr>
   8580 <td align="center">INACTIVE</td>
   8581 <td align="center">Camera device initiates AWB scan</td>
   8582 <td align="center">SEARCHING</td>
   8583 <td align="center">Values changing</td>
   8584 </tr>
   8585 <tr>
   8586 <td align="center">INACTIVE</td>
   8587 <td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
   8588 <td align="center">LOCKED</td>
   8589 <td align="center">Values locked</td>
   8590 </tr>
   8591 <tr>
   8592 <td align="center">SEARCHING</td>
   8593 <td align="center">Camera device finishes AWB scan</td>
   8594 <td align="center">CONVERGED</td>
   8595 <td align="center">Good values,<wbr/> not changing</td>
   8596 </tr>
   8597 <tr>
   8598 <td align="center">SEARCHING</td>
   8599 <td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
   8600 <td align="center">LOCKED</td>
   8601 <td align="center">Values locked</td>
   8602 </tr>
   8603 <tr>
   8604 <td align="center">CONVERGED</td>
   8605 <td align="center">Camera device initiates AWB scan</td>
   8606 <td align="center">SEARCHING</td>
   8607 <td align="center">Values changing</td>
   8608 </tr>
   8609 <tr>
   8610 <td align="center">CONVERGED</td>
   8611 <td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
   8612 <td align="center">LOCKED</td>
   8613 <td align="center">Values locked</td>
   8614 </tr>
   8615 <tr>
   8616 <td align="center">LOCKED</td>
   8617 <td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
   8618 <td align="center">SEARCHING</td>
   8619 <td align="center">Values not good after unlock</td>
   8620 </tr>
   8621 </tbody>
   8622 </table>
   8623 <p>For the above table,<wbr/> the camera device may skip reporting any state changes that happen
   8624 without application intervention (i.<wbr/>e.<wbr/> mode switch,<wbr/> trigger,<wbr/> locking).<wbr/> Any state that
   8625 can be skipped in that manner is called a transient state.<wbr/></p>
   8626 <p>For example,<wbr/> for this AWB mode (AWB_<wbr/>MODE_<wbr/>AUTO),<wbr/> in addition to the state transitions
   8627 listed in above table,<wbr/> it is also legal for the camera device to skip one or more
   8628 transient states between two results.<wbr/> See below table for examples:</p>
   8629 <table>
   8630 <thead>
   8631 <tr>
   8632 <th align="center">State</th>
   8633 <th align="center">Transition Cause</th>
   8634 <th align="center">New State</th>
   8635 <th align="center">Notes</th>
   8636 </tr>
   8637 </thead>
   8638 <tbody>
   8639 <tr>
   8640 <td align="center">INACTIVE</td>
   8641 <td align="center">Camera device finished AWB scan</td>
   8642 <td align="center">CONVERGED</td>
   8643 <td align="center">Values are already good,<wbr/> transient states are skipped by camera device.<wbr/></td>
   8644 </tr>
   8645 <tr>
   8646 <td align="center">LOCKED</td>
   8647 <td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
   8648 <td align="center">CONVERGED</td>
   8649 <td align="center">Values good after unlock,<wbr/> transient states are skipped by camera device.<wbr/></td>
   8650 </tr>
   8651 </tbody>
   8652 </table>
   8653             </td>
   8654           </tr>
   8655 
   8656 
   8657           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   8658            <!-- end of entry -->
   8659         
   8660                 
   8661           <tr class="entry" id="dynamic_android.control.effectMode">
   8662             <td class="entry_name
   8663              " rowspan="3">
   8664               android.<wbr/>control.<wbr/>effect<wbr/>Mode
   8665             </td>
   8666             <td class="entry_type">
   8667                 <span class="entry_type_name entry_type_name_enum">byte</span>
   8668 
   8669               <span class="entry_type_visibility"> [public]</span>
   8670 
   8671 
   8672               <span class="entry_type_hwlevel">[legacy] </span>
   8673 
   8674 
   8675 
   8676                 <ul class="entry_type_enum">
   8677                   <li>
   8678                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   8679                     <span class="entry_type_enum_notes"><p>No color effect will be applied.<wbr/></p></span>
   8680                   </li>
   8681                   <li>
   8682                     <span class="entry_type_enum_name">MONO (v3.2)</span>
   8683                     <span class="entry_type_enum_optional">[optional]</span>
   8684                     <span class="entry_type_enum_notes"><p>A "monocolor" effect where the image is mapped into
   8685 a single color.<wbr/></p>
   8686 <p>This will typically be grayscale.<wbr/></p></span>
   8687                   </li>
   8688                   <li>
   8689                     <span class="entry_type_enum_name">NEGATIVE (v3.2)</span>
   8690                     <span class="entry_type_enum_optional">[optional]</span>
   8691                     <span class="entry_type_enum_notes"><p>A "photo-negative" effect where the image's colors
   8692 are inverted.<wbr/></p></span>
   8693                   </li>
   8694                   <li>
   8695                     <span class="entry_type_enum_name">SOLARIZE (v3.2)</span>
   8696                     <span class="entry_type_enum_optional">[optional]</span>
   8697                     <span class="entry_type_enum_notes"><p>A "solarisation" effect (Sabattier effect) where the
   8698 image is wholly or partially reversed in
   8699 tone.<wbr/></p></span>
   8700                   </li>
   8701                   <li>
   8702                     <span class="entry_type_enum_name">SEPIA (v3.2)</span>
   8703                     <span class="entry_type_enum_optional">[optional]</span>
   8704                     <span class="entry_type_enum_notes"><p>A "sepia" effect where the image is mapped into warm
   8705 gray,<wbr/> red,<wbr/> and brown tones.<wbr/></p></span>
   8706                   </li>
   8707                   <li>
   8708                     <span class="entry_type_enum_name">POSTERIZE (v3.2)</span>
   8709                     <span class="entry_type_enum_optional">[optional]</span>
   8710                     <span class="entry_type_enum_notes"><p>A "posterization" effect where the image uses
   8711 discrete regions of tone rather than a continuous
   8712 gradient of tones.<wbr/></p></span>
   8713                   </li>
   8714                   <li>
   8715                     <span class="entry_type_enum_name">WHITEBOARD (v3.2)</span>
   8716                     <span class="entry_type_enum_optional">[optional]</span>
   8717                     <span class="entry_type_enum_notes"><p>A "whiteboard" effect where the image is typically displayed
   8718 as regions of white,<wbr/> with black or grey details.<wbr/></p></span>
   8719                   </li>
   8720                   <li>
   8721                     <span class="entry_type_enum_name">BLACKBOARD (v3.2)</span>
   8722                     <span class="entry_type_enum_optional">[optional]</span>
   8723                     <span class="entry_type_enum_notes"><p>A "blackboard" effect where the image is typically displayed
   8724 as regions of black,<wbr/> with white or grey details.<wbr/></p></span>
   8725                   </li>
   8726                   <li>
   8727                     <span class="entry_type_enum_name">AQUA (v3.2)</span>
   8728                     <span class="entry_type_enum_optional">[optional]</span>
   8729                     <span class="entry_type_enum_notes"><p>An "aqua" effect where a blue hue is added to the image.<wbr/></p></span>
   8730                   </li>
   8731                 </ul>
   8732 
   8733             </td> <!-- entry_type -->
   8734 
   8735             <td class="entry_description">
   8736               <p>A special color effect to apply.<wbr/></p>
   8737             </td>
   8738 
   8739             <td class="entry_units">
   8740             </td>
   8741 
   8742             <td class="entry_range">
   8743               <p><a href="#static_android.control.availableEffects">android.<wbr/>control.<wbr/>available<wbr/>Effects</a></p>
   8744             </td>
   8745 
   8746             <td class="entry_hal_version">
   8747               <p>3.<wbr/>2</p>
   8748             </td>
   8749 
   8750             <td class="entry_tags">
   8751               <ul class="entry_tags">
   8752                   <li><a href="#tag_BC">BC</a></li>
   8753               </ul>
   8754             </td>
   8755 
   8756           </tr>
   8757           <tr class="entries_header">
   8758             <th class="th_details" colspan="6">Details</th>
   8759           </tr>
   8760           <tr class="entry_cont">
   8761             <td class="entry_details" colspan="6">
   8762               <p>When this mode is set,<wbr/> a color effect will be applied
   8763 to images produced by the camera device.<wbr/> The interpretation
   8764 and implementation of these color effects is left to the
   8765 implementor of the camera device,<wbr/> and should not be
   8766 depended on to be consistent (or present) across all
   8767 devices.<wbr/></p>
   8768             </td>
   8769           </tr>
   8770 
   8771 
   8772           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   8773            <!-- end of entry -->
   8774         
   8775                 
   8776           <tr class="entry" id="dynamic_android.control.mode">
   8777             <td class="entry_name
   8778              " rowspan="3">
   8779               android.<wbr/>control.<wbr/>mode
   8780             </td>
   8781             <td class="entry_type">
   8782                 <span class="entry_type_name entry_type_name_enum">byte</span>
   8783 
   8784               <span class="entry_type_visibility"> [public]</span>
   8785 
   8786 
   8787               <span class="entry_type_hwlevel">[legacy] </span>
   8788 
   8789 
   8790 
   8791                 <ul class="entry_type_enum">
   8792                   <li>
   8793                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   8794                     <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/></p>
   8795 <p>All control by the device's metering and focusing (3A)
   8796 routines is disabled,<wbr/> and no other settings in
   8797 android.<wbr/>control.<wbr/>* have any effect,<wbr/> except that
   8798 <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> may be used by the camera
   8799 device to select post-processing values for processing
   8800 blocks that do not allow for manual control,<wbr/> or are not
   8801 exposed by the camera API.<wbr/></p>
   8802 <p>However,<wbr/> the camera device's 3A routines may continue to
   8803 collect statistics and update their internal state so that
   8804 when control is switched to AUTO mode,<wbr/> good control values
   8805 can be immediately applied.<wbr/></p></span>
   8806                   </li>
   8807                   <li>
   8808                     <span class="entry_type_enum_name">AUTO (v3.2)</span>
   8809                     <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/></p>
   8810 <p>Manual control of capture parameters is disabled.<wbr/> All
   8811 controls in android.<wbr/>control.<wbr/>* besides sceneMode take
   8812 effect.<wbr/></p></span>
   8813                   </li>
   8814                   <li>
   8815                     <span class="entry_type_enum_name">USE_SCENE_MODE (v3.2)</span>
   8816                     <span class="entry_type_enum_optional">[optional]</span>
   8817                     <span class="entry_type_enum_notes"><p>Use a specific scene mode.<wbr/></p>
   8818 <p>Enabling this disables control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and
   8819 control.<wbr/>afMode controls; the camera device will ignore
   8820 those settings while USE_<wbr/>SCENE_<wbr/>MODE is active (except for
   8821 FACE_<wbr/>PRIORITY scene mode).<wbr/> Other control entries are still active.<wbr/>
   8822 This setting can only be used if scene mode is supported (i.<wbr/>e.<wbr/>
   8823 <a href="#static_android.control.availableSceneModes">android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes</a>
   8824 contain some modes other than DISABLED).<wbr/></p></span>
   8825                   </li>
   8826                   <li>
   8827                     <span class="entry_type_enum_name">OFF_KEEP_STATE (v3.2)</span>
   8828                     <span class="entry_type_enum_optional">[optional]</span>
   8829                     <span class="entry_type_enum_notes"><p>Same as OFF mode,<wbr/> except that this capture will not be
   8830 used by camera device background auto-exposure,<wbr/> auto-white balance and
   8831 auto-focus algorithms (3A) to update their statistics.<wbr/></p>
   8832 <p>Specifically,<wbr/> the 3A routines are locked to the last
   8833 values set from a request with AUTO,<wbr/> OFF,<wbr/> or
   8834 USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> and any statistics or state updates
   8835 collected from manual captures with OFF_<wbr/>KEEP_<wbr/>STATE will be
   8836 discarded by the camera device.<wbr/></p></span>
   8837                   </li>
   8838                 </ul>
   8839 
   8840             </td> <!-- entry_type -->
   8841 
   8842             <td class="entry_description">
   8843               <p>Overall mode of 3A (auto-exposure,<wbr/> auto-white-balance,<wbr/> auto-focus) control
   8844 routines.<wbr/></p>
   8845             </td>
   8846 
   8847             <td class="entry_units">
   8848             </td>
   8849 
   8850             <td class="entry_range">
   8851               <p><a href="#static_android.control.availableModes">android.<wbr/>control.<wbr/>available<wbr/>Modes</a></p>
   8852             </td>
   8853 
   8854             <td class="entry_hal_version">
   8855               <p>3.<wbr/>2</p>
   8856             </td>
   8857 
   8858             <td class="entry_tags">
   8859               <ul class="entry_tags">
   8860                   <li><a href="#tag_BC">BC</a></li>
   8861               </ul>
   8862             </td>
   8863 
   8864           </tr>
   8865           <tr class="entries_header">
   8866             <th class="th_details" colspan="6">Details</th>
   8867           </tr>
   8868           <tr class="entry_cont">
   8869             <td class="entry_details" colspan="6">
   8870               <p>This is a top-level 3A control switch.<wbr/> When set to OFF,<wbr/> all 3A control
   8871 by the camera device is disabled.<wbr/> The application must set the fields for
   8872 capture parameters itself.<wbr/></p>
   8873 <p>When set to AUTO,<wbr/> the individual algorithm controls in
   8874 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>
   8875 <p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
   8876 android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device
   8877 implements one of the scene mode settings (such as ACTION,<wbr/>
   8878 SUNSET,<wbr/> or PARTY) as it wishes.<wbr/> The camera device scene mode
   8879 3A settings are provided by <a href="https://developer.android.com/reference/android/hardware/camera2/CaptureResult.html">capture results</a>.<wbr/></p>
   8880 <p>When set to OFF_<wbr/>KEEP_<wbr/>STATE,<wbr/> it is similar to OFF mode,<wbr/> the only difference
   8881 is that this frame will not be used by camera device background 3A statistics
   8882 update,<wbr/> as if this frame is never captured.<wbr/> This mode can be used in the scenario
   8883 where the application doesn't want a 3A manual control capture to affect
   8884 the subsequent auto 3A capture results.<wbr/></p>
   8885             </td>
   8886           </tr>
   8887 
   8888 
   8889           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   8890            <!-- end of entry -->
   8891         
   8892                 
   8893           <tr class="entry" id="dynamic_android.control.sceneMode">
   8894             <td class="entry_name
   8895              " rowspan="5">
   8896               android.<wbr/>control.<wbr/>scene<wbr/>Mode
   8897             </td>
   8898             <td class="entry_type">
   8899                 <span class="entry_type_name entry_type_name_enum">byte</span>
   8900 
   8901               <span class="entry_type_visibility"> [public]</span>
   8902 
   8903 
   8904               <span class="entry_type_hwlevel">[legacy] </span>
   8905 
   8906 
   8907 
   8908                 <ul class="entry_type_enum">
   8909                   <li>
   8910                     <span class="entry_type_enum_name">DISABLED (v3.2)</span>
   8911                     <span class="entry_type_enum_value">0</span>
   8912                     <span class="entry_type_enum_notes"><p>Indicates that no scene modes are set for a given capture request.<wbr/></p></span>
   8913                   </li>
   8914                   <li>
   8915                     <span class="entry_type_enum_name">FACE_PRIORITY (v3.2)</span>
   8916                     <span class="entry_type_enum_notes"><p>If face detection support exists,<wbr/> use face
   8917 detection data for auto-focus,<wbr/> auto-white balance,<wbr/> and
   8918 auto-exposure routines.<wbr/></p>
   8919 <p>If face detection statistics are disabled
   8920 (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/>
   8921 this should still operate correctly (but will not return
   8922 face detection statistics to the framework).<wbr/></p>
   8923 <p>Unlike the other scene modes,<wbr/> <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
   8924 <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>
   8925 remain active when FACE_<wbr/>PRIORITY is set.<wbr/></p></span>
   8926                   </li>
   8927                   <li>
   8928                     <span class="entry_type_enum_name">ACTION (v3.2)</span>
   8929                     <span class="entry_type_enum_optional">[optional]</span>
   8930                     <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving objects.<wbr/></p>
   8931 <p>Similar to SPORTS.<wbr/></p></span>
   8932                   </li>
   8933                   <li>
   8934                     <span class="entry_type_enum_name">PORTRAIT (v3.2)</span>
   8935                     <span class="entry_type_enum_optional">[optional]</span>
   8936                     <span class="entry_type_enum_notes"><p>Optimized for still photos of people.<wbr/></p></span>
   8937                   </li>
   8938                   <li>
   8939                     <span class="entry_type_enum_name">LANDSCAPE (v3.2)</span>
   8940                     <span class="entry_type_enum_optional">[optional]</span>
   8941                     <span class="entry_type_enum_notes"><p>Optimized for photos of distant macroscopic objects.<wbr/></p></span>
   8942                   </li>
   8943                   <li>
   8944                     <span class="entry_type_enum_name">NIGHT (v3.2)</span>
   8945                     <span class="entry_type_enum_optional">[optional]</span>
   8946                     <span class="entry_type_enum_notes"><p>Optimized for low-light settings.<wbr/></p></span>
   8947                   </li>
   8948                   <li>
   8949                     <span class="entry_type_enum_name">NIGHT_PORTRAIT (v3.2)</span>
   8950                     <span class="entry_type_enum_optional">[optional]</span>
   8951                     <span class="entry_type_enum_notes"><p>Optimized for still photos of people in low-light
   8952 settings.<wbr/></p></span>
   8953                   </li>
   8954                   <li>
   8955                     <span class="entry_type_enum_name">THEATRE (v3.2)</span>
   8956                     <span class="entry_type_enum_optional">[optional]</span>
   8957                     <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings where flash must
   8958 remain off.<wbr/></p></span>
   8959                   </li>
   8960                   <li>
   8961                     <span class="entry_type_enum_name">BEACH (v3.2)</span>
   8962                     <span class="entry_type_enum_optional">[optional]</span>
   8963                     <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor beach settings.<wbr/></p></span>
   8964                   </li>
   8965                   <li>
   8966                     <span class="entry_type_enum_name">SNOW (v3.2)</span>
   8967                     <span class="entry_type_enum_optional">[optional]</span>
   8968                     <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor settings containing snow.<wbr/></p></span>
   8969                   </li>
   8970                   <li>
   8971                     <span class="entry_type_enum_name">SUNSET (v3.2)</span>
   8972                     <span class="entry_type_enum_optional">[optional]</span>
   8973                     <span class="entry_type_enum_notes"><p>Optimized for scenes of the setting sun.<wbr/></p></span>
   8974                   </li>
   8975                   <li>
   8976                     <span class="entry_type_enum_name">STEADYPHOTO (v3.2)</span>
   8977                     <span class="entry_type_enum_optional">[optional]</span>
   8978                     <span class="entry_type_enum_notes"><p>Optimized to avoid blurry photos due to small amounts of
   8979 device motion (for example: due to hand shake).<wbr/></p></span>
   8980                   </li>
   8981                   <li>
   8982                     <span class="entry_type_enum_name">FIREWORKS (v3.2)</span>
   8983                     <span class="entry_type_enum_optional">[optional]</span>
   8984                     <span class="entry_type_enum_notes"><p>Optimized for nighttime photos of fireworks.<wbr/></p></span>
   8985                   </li>
   8986                   <li>
   8987                     <span class="entry_type_enum_name">SPORTS (v3.2)</span>
   8988                     <span class="entry_type_enum_optional">[optional]</span>
   8989                     <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving people.<wbr/></p>
   8990 <p>Similar to ACTION.<wbr/></p></span>
   8991                   </li>
   8992                   <li>
   8993                     <span class="entry_type_enum_name">PARTY (v3.2)</span>
   8994                     <span class="entry_type_enum_optional">[optional]</span>
   8995                     <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings with multiple moving
   8996 people.<wbr/></p></span>
   8997                   </li>
   8998                   <li>
   8999                     <span class="entry_type_enum_name">CANDLELIGHT (v3.2)</span>
   9000                     <span class="entry_type_enum_optional">[optional]</span>
   9001                     <span class="entry_type_enum_notes"><p>Optimized for dim settings where the main light source
   9002 is a flame.<wbr/></p></span>
   9003                   </li>
   9004                   <li>
   9005                     <span class="entry_type_enum_name">BARCODE (v3.2)</span>
   9006                     <span class="entry_type_enum_optional">[optional]</span>
   9007                     <span class="entry_type_enum_notes"><p>Optimized for accurately capturing a photo of barcode
   9008 for use by camera applications that wish to read the
   9009 barcode value.<wbr/></p></span>
   9010                   </li>
   9011                   <li>
   9012                     <span class="entry_type_enum_name">HIGH_SPEED_VIDEO (v3.2)</span>
   9013                     <span class="entry_type_enum_deprecated">[deprecated]</span>
   9014                     <span class="entry_type_enum_optional">[optional]</span>
   9015                     <span class="entry_type_enum_notes"><p>This is deprecated,<wbr/> please use <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createConstrainedHighSpeedCaptureSession">CameraDevice#createConstrainedHighSpeedCaptureSession</a>
   9016 and <a href="https://developer.android.com/reference/android/hardware/camera2/CameraConstrainedHighSpeedCaptureSession.html#createHighSpeedRequestList">CameraConstrainedHighSpeedCaptureSession#createHighSpeedRequestList</a>
   9017 for high speed video recording.<wbr/></p>
   9018 <p>Optimized for high speed video recording (frame rate &gt;=60fps) use case.<wbr/></p>
   9019 <p>The supported high speed video sizes and fps ranges are specified in
   9020 <a href="#static_android.control.availableHighSpeedVideoConfigurations">android.<wbr/>control.<wbr/>available<wbr/>High<wbr/>Speed<wbr/>Video<wbr/>Configurations</a>.<wbr/> To get desired
   9021 output frame rates,<wbr/> the application is only allowed to select video size
   9022 and fps range combinations listed in this static metadata.<wbr/> The fps range
   9023 can be control via <a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a>.<wbr/></p>
   9024 <p>In this mode,<wbr/> the camera device will override aeMode,<wbr/> awbMode,<wbr/> and afMode to
   9025 ON,<wbr/> ON,<wbr/> and CONTINUOUS_<wbr/>VIDEO,<wbr/> respectively.<wbr/> All post-processing block mode
   9026 controls will be overridden to be FAST.<wbr/> Therefore,<wbr/> no manual control of capture
   9027 and post-processing parameters is possible.<wbr/> All other controls operate the
   9028 same as when <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == AUTO.<wbr/> This means that all other
   9029 android.<wbr/>control.<wbr/>* fields continue to work,<wbr/> such as</p>
   9030 <ul>
   9031 <li><a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a></li>
   9032 <li><a href="#controls_android.control.aeExposureCompensation">android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation</a></li>
   9033 <li><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a></li>
   9034 <li><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a></li>
   9035 <li><a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a></li>
   9036 <li><a href="#controls_android.control.aeRegions">android.<wbr/>control.<wbr/>ae<wbr/>Regions</a></li>
   9037 <li><a href="#controls_android.control.afRegions">android.<wbr/>control.<wbr/>af<wbr/>Regions</a></li>
   9038 <li><a href="#controls_android.control.awbRegions">android.<wbr/>control.<wbr/>awb<wbr/>Regions</a></li>
   9039 <li><a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a></li>
   9040 <li><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a></li>
   9041 </ul>
   9042 <p>Outside of android.<wbr/>control.<wbr/>*,<wbr/> the following controls will work:</p>
   9043 <ul>
   9044 <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>
   9045 <li><a href="#controls_android.lens.opticalStabilizationMode">android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode</a> (if it is supported)</li>
   9046 <li><a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a></li>
   9047 <li><a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a></li>
   9048 </ul>
   9049 <p>For high speed recording use case,<wbr/> the actual maximum supported frame rate may
   9050 be lower than what camera can output,<wbr/> depending on the destination Surfaces for
   9051 the image data.<wbr/> For example,<wbr/> if the destination surface is from video encoder,<wbr/>
   9052 the application need check if the video encoder is capable of supporting the
   9053 high frame rate for a given video size,<wbr/> or it will end up with lower recording
   9054 frame rate.<wbr/> If the destination surface is from preview window,<wbr/> the preview frame
   9055 rate will be bounded by the screen refresh rate.<wbr/></p>
   9056 <p>The camera device will only support up to 2 output high speed streams
   9057 (processed non-stalling format defined in <a href="#static_android.request.maxNumOutputStreams">android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Streams</a>)
   9058 in this mode.<wbr/> This control will be effective only if all of below conditions are true:</p>
   9059 <ul>
   9060 <li>The application created no more than maxNumHighSpeedStreams processed non-stalling
   9061 format output streams,<wbr/> where maxNumHighSpeedStreams is calculated as
   9062 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>
   9063 <li>The stream sizes are selected from the sizes reported by
   9064 <a href="#static_android.control.availableHighSpeedVideoConfigurations">android.<wbr/>control.<wbr/>available<wbr/>High<wbr/>Speed<wbr/>Video<wbr/>Configurations</a>.<wbr/></li>
   9065 <li>No processed non-stalling or raw streams are configured.<wbr/></li>
   9066 </ul>
   9067 <p>When above conditions are NOT satistied,<wbr/> the controls of this mode and
   9068 <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/>
   9069 the camera device will fall back to <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> <code>==</code> AUTO,<wbr/>
   9070 and the returned capture result metadata will give the fps range choosen
   9071 by the camera device.<wbr/></p>
   9072 <p>Switching into or out of this mode may trigger some camera ISP/<wbr/>sensor
   9073 reconfigurations,<wbr/> which may introduce extra latency.<wbr/> It is recommended that
   9074 the application avoids unnecessary scene mode switch as much as possible.<wbr/></p></span>
   9075                   </li>
   9076                   <li>
   9077                     <span class="entry_type_enum_name">HDR (v3.2)</span>
   9078                     <span class="entry_type_enum_optional">[optional]</span>
   9079                     <span class="entry_type_enum_notes"><p>Turn on a device-specific high dynamic range (HDR) mode.<wbr/></p>
   9080 <p>In this scene mode,<wbr/> the camera device captures images
   9081 that keep a larger range of scene illumination levels
   9082 visible in the final image.<wbr/> For example,<wbr/> when taking a
   9083 picture of a object in front of a bright window,<wbr/> both
   9084 the object and the scene through the window may be
   9085 visible when using HDR mode,<wbr/> while in normal AUTO mode,<wbr/>
   9086 one or the other may be poorly exposed.<wbr/> As a tradeoff,<wbr/>
   9087 HDR mode generally takes much longer to capture a single
   9088 image,<wbr/> has no user control,<wbr/> and may have other artifacts
   9089 depending on the HDR method used.<wbr/></p>
   9090 <p>Therefore,<wbr/> HDR captures operate at a much slower rate
   9091 than regular captures.<wbr/></p>
   9092 <p>In this mode,<wbr/> on LIMITED or FULL devices,<wbr/> when a request
   9093 is made with a <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> of
   9094 STILL_<wbr/>CAPTURE,<wbr/> the camera device will capture an image
   9095 using a high dynamic range capture technique.<wbr/>  On LEGACY
   9096 devices,<wbr/> captures that target a JPEG-format output will
   9097 be captured with HDR,<wbr/> and the capture intent is not
   9098 relevant.<wbr/></p>
   9099 <p>The HDR capture may involve the device capturing a burst
   9100 of images internally and combining them into one,<wbr/> or it
   9101 may involve the device using specialized high dynamic
   9102 range capture hardware.<wbr/> In all cases,<wbr/> a single image is
   9103 produced in response to a capture request submitted
   9104 while in HDR mode.<wbr/></p>
   9105 <p>Since substantial post-processing is generally needed to
   9106 produce an HDR image,<wbr/> only YUV,<wbr/> PRIVATE,<wbr/> and JPEG
   9107 outputs are supported for LIMITED/<wbr/>FULL device HDR
   9108 captures,<wbr/> and only JPEG outputs are supported for LEGACY
   9109 HDR captures.<wbr/> Using a RAW output for HDR capture is not
   9110 supported.<wbr/></p>
   9111 <p>Some devices may also support always-on HDR,<wbr/> which
   9112 applies HDR processing at full frame rate.<wbr/>  For these
   9113 devices,<wbr/> intents other than STILL_<wbr/>CAPTURE will also
   9114 produce an HDR output with no frame rate impact compared
   9115 to normal operation,<wbr/> though the quality may be lower
   9116 than for STILL_<wbr/>CAPTURE intents.<wbr/></p>
   9117 <p>If SCENE_<wbr/>MODE_<wbr/>HDR is used with unsupported output types
   9118 or capture intents,<wbr/> the images captured will be as if
   9119 the SCENE_<wbr/>MODE was not enabled at all.<wbr/></p></span>
   9120                   </li>
   9121                   <li>
   9122                     <span class="entry_type_enum_name">FACE_PRIORITY_LOW_LIGHT (v3.2)</span>
   9123                     <span class="entry_type_enum_optional">[optional]</span>
   9124                     <span class="entry_type_enum_hidden">[hidden]</span>
   9125                     <span class="entry_type_enum_notes"><p>Same as FACE_<wbr/>PRIORITY scene mode,<wbr/> except that the camera
   9126 device will choose higher sensitivity values (<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>)
   9127 under low light conditions.<wbr/></p>
   9128 <p>The camera device may be tuned to expose the images in a reduced
   9129 sensitivity range to produce the best quality images.<wbr/> For example,<wbr/>
   9130 if the <a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a> gives range of [100,<wbr/> 1600],<wbr/>
   9131 the camera device auto-exposure routine tuning process may limit the actual
   9132 exposure sensitivity range to [100,<wbr/> 1200] to ensure that the noise level isn't
   9133 exessive in order to preserve the image quality.<wbr/> Under this situation,<wbr/> the image under
   9134 low light may be under-exposed when the sensor max exposure time (bounded by the
   9135 <a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a> when <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of the
   9136 ON_<wbr/>* modes) and effective max sensitivity are reached.<wbr/> This scene mode allows the
   9137 camera device auto-exposure routine to increase the sensitivity up to the max
   9138 sensitivity specified by <a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a> when the scene is too
   9139 dark and the max exposure time is reached.<wbr/> The captured images may be noisier
   9140 compared with the images captured in normal FACE_<wbr/>PRIORITY mode; therefore,<wbr/> it is
   9141 recommended that the application only use this scene mode when it is capable of
   9142 reducing the noise level of the captured images.<wbr/></p>
   9143 <p>Unlike the other scene modes,<wbr/> <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
   9144 <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>
   9145 remain active when FACE_<wbr/>PRIORITY_<wbr/>LOW_<wbr/>LIGHT is set.<wbr/></p></span>
   9146                   </li>
   9147                   <li>
   9148                     <span class="entry_type_enum_name">DEVICE_CUSTOM_START (v3.2)</span>
   9149                     <span class="entry_type_enum_optional">[optional]</span>
   9150                     <span class="entry_type_enum_hidden">[hidden]</span>
   9151                     <span class="entry_type_enum_value">100</span>
   9152                     <span class="entry_type_enum_notes"><p>Scene mode values within the range of
   9153 <code>[DEVICE_<wbr/>CUSTOM_<wbr/>START,<wbr/> DEVICE_<wbr/>CUSTOM_<wbr/>END]</code> are reserved for device specific
   9154 customized scene modes.<wbr/></p></span>
   9155                   </li>
   9156                   <li>
   9157                     <span class="entry_type_enum_name">DEVICE_CUSTOM_END (v3.2)</span>
   9158                     <span class="entry_type_enum_optional">[optional]</span>
   9159                     <span class="entry_type_enum_hidden">[hidden]</span>
   9160                     <span class="entry_type_enum_value">127</span>
   9161                     <span class="entry_type_enum_notes"><p>Scene mode values within the range of
   9162 <code>[DEVICE_<wbr/>CUSTOM_<wbr/>START,<wbr/> DEVICE_<wbr/>CUSTOM_<wbr/>END]</code> are reserved for device specific
   9163 customized scene modes.<wbr/></p></span>
   9164                   </li>
   9165                 </ul>
   9166 
   9167             </td> <!-- entry_type -->
   9168 
   9169             <td class="entry_description">
   9170               <p>Control for which scene mode is currently active.<wbr/></p>
   9171             </td>
   9172 
   9173             <td class="entry_units">
   9174             </td>
   9175 
   9176             <td class="entry_range">
   9177               <p><a href="#static_android.control.availableSceneModes">android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes</a></p>
   9178             </td>
   9179 
   9180             <td class="entry_hal_version">
   9181               <p>3.<wbr/>2</p>
   9182             </td>
   9183 
   9184             <td class="entry_tags">
   9185               <ul class="entry_tags">
   9186                   <li><a href="#tag_BC">BC</a></li>
   9187               </ul>
   9188             </td>
   9189 
   9190           </tr>
   9191           <tr class="entries_header">
   9192             <th class="th_details" colspan="6">Details</th>
   9193           </tr>
   9194           <tr class="entry_cont">
   9195             <td class="entry_details" colspan="6">
   9196               <p>Scene modes are custom camera modes optimized for a certain set of conditions and
   9197 capture settings.<wbr/></p>
   9198 <p>This is the mode that that is active when
   9199 <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == USE_<wbr/>SCENE_<wbr/>MODE</code>.<wbr/> Aside from FACE_<wbr/>PRIORITY,<wbr/> these modes will
   9200 disable <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/> <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>
   9201 while in use.<wbr/></p>
   9202 <p>The interpretation and implementation of these scene modes is left
   9203 to the implementor of the camera device.<wbr/> Their behavior will not be
   9204 consistent across all devices,<wbr/> and any given device may only implement
   9205 a subset of these modes.<wbr/></p>
   9206             </td>
   9207           </tr>
   9208 
   9209           <tr class="entries_header">
   9210             <th class="th_details" colspan="6">HAL Implementation Details</th>
   9211           </tr>
   9212           <tr class="entry_cont">
   9213             <td class="entry_details" colspan="6">
   9214               <p>HAL implementations that include scene modes are expected to provide
   9215 the per-scene settings to use for <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
   9216 <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
   9217 <a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
   9218 <p>For HIGH_<wbr/>SPEED_<wbr/>VIDEO mode,<wbr/> if it is included in <a href="#static_android.control.availableSceneModes">android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes</a>,<wbr/> the
   9219 HAL must list supported video size and fps range in
   9220 <a href="#static_android.control.availableHighSpeedVideoConfigurations">android.<wbr/>control.<wbr/>available<wbr/>High<wbr/>Speed<wbr/>Video<wbr/>Configurations</a>.<wbr/> For a given size,<wbr/> e.<wbr/>g.<wbr/>  1280x720,<wbr/>
   9221 if the HAL has two different sensor configurations for normal streaming mode and high
   9222 speed streaming,<wbr/> when this scene mode is set/<wbr/>reset in a sequence of capture requests,<wbr/> the
   9223 HAL may have to switch between different sensor modes.<wbr/>  This mode is deprecated in legacy
   9224 HAL3.<wbr/>3,<wbr/> to support high speed video recording,<wbr/> please implement
   9225 <a href="#static_android.control.availableHighSpeedVideoConfigurations">android.<wbr/>control.<wbr/>available<wbr/>High<wbr/>Speed<wbr/>Video<wbr/>Configurations</a> and CONSTRAINED_<wbr/>HIGH_<wbr/>SPEED_<wbr/>VIDEO
   9226 capbility defined in <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>.<wbr/></p>
   9227             </td>
   9228           </tr>
   9229 
   9230           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   9231            <!-- end of entry -->
   9232         
   9233                 
   9234           <tr class="entry" id="dynamic_android.control.videoStabilizationMode">
   9235             <td class="entry_name
   9236              " rowspan="3">
   9237               android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode
   9238             </td>
   9239             <td class="entry_type">
   9240                 <span class="entry_type_name entry_type_name_enum">byte</span>
   9241 
   9242               <span class="entry_type_visibility"> [public]</span>
   9243 
   9244 
   9245               <span class="entry_type_hwlevel">[legacy] </span>
   9246 
   9247 
   9248 
   9249                 <ul class="entry_type_enum">
   9250                   <li>
   9251                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   9252                     <span class="entry_type_enum_notes"><p>Video stabilization is disabled.<wbr/></p></span>
   9253                   </li>
   9254                   <li>
   9255                     <span class="entry_type_enum_name">ON (v3.2)</span>
   9256                     <span class="entry_type_enum_notes"><p>Video stabilization is enabled.<wbr/></p></span>
   9257                   </li>
   9258                 </ul>
   9259 
   9260             </td> <!-- entry_type -->
   9261 
   9262             <td class="entry_description">
   9263               <p>Whether video stabilization is
   9264 active.<wbr/></p>
   9265             </td>
   9266 
   9267             <td class="entry_units">
   9268             </td>
   9269 
   9270             <td class="entry_range">
   9271             </td>
   9272 
   9273             <td class="entry_hal_version">
   9274               <p>3.<wbr/>2</p>
   9275             </td>
   9276 
   9277             <td class="entry_tags">
   9278               <ul class="entry_tags">
   9279                   <li><a href="#tag_BC">BC</a></li>
   9280               </ul>
   9281             </td>
   9282 
   9283           </tr>
   9284           <tr class="entries_header">
   9285             <th class="th_details" colspan="6">Details</th>
   9286           </tr>
   9287           <tr class="entry_cont">
   9288             <td class="entry_details" colspan="6">
   9289               <p>Video stabilization automatically warps images from
   9290 the camera in order to stabilize motion between consecutive frames.<wbr/></p>
   9291 <p>If enabled,<wbr/> video stabilization can modify the
   9292 <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a> to keep the video stream stabilized.<wbr/></p>
   9293 <p>Switching between different video stabilization modes may take several
   9294 frames to initialize,<wbr/> the camera device will report the current mode
   9295 in capture result metadata.<wbr/> For example,<wbr/> When "ON" mode is requested,<wbr/>
   9296 the video stabilization modes in the first several capture results may
   9297 still be "OFF",<wbr/> and it will become "ON" when the initialization is
   9298 done.<wbr/></p>
   9299 <p>In addition,<wbr/> not all recording sizes or frame rates may be supported for
   9300 stabilization by a device that reports stabilization support.<wbr/> It is guaranteed
   9301 that an output targeting a MediaRecorder or MediaCodec will be stabilized if
   9302 the recording resolution is less than or equal to 1920 x 1080 (width less than
   9303 or equal to 1920,<wbr/> height less than or equal to 1080),<wbr/> and the recording
   9304 frame rate is less than or equal to 30fps.<wbr/>  At other sizes,<wbr/> the CaptureResult
   9305 <a href="#controls_android.control.videoStabilizationMode">android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode</a> field will return
   9306 OFF if the recording output is not stabilized,<wbr/> or if there are no output
   9307 Surface types that can be stabilized.<wbr/></p>
   9308 <p>If a camera device supports both this mode and OIS
   9309 (<a href="#controls_android.lens.opticalStabilizationMode">android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode</a>),<wbr/> turning both modes on may
   9310 produce undesirable interaction,<wbr/> so it is recommended not to enable
   9311 both at the same time.<wbr/></p>
   9312             </td>
   9313           </tr>
   9314 
   9315 
   9316           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   9317            <!-- end of entry -->
   9318         
   9319                 
   9320           <tr class="entry" id="dynamic_android.control.postRawSensitivityBoost">
   9321             <td class="entry_name
   9322              " rowspan="3">
   9323               android.<wbr/>control.<wbr/>post<wbr/>Raw<wbr/>Sensitivity<wbr/>Boost
   9324             </td>
   9325             <td class="entry_type">
   9326                 <span class="entry_type_name">int32</span>
   9327 
   9328               <span class="entry_type_visibility"> [public]</span>
   9329 
   9330 
   9331 
   9332 
   9333 
   9334 
   9335             </td> <!-- entry_type -->
   9336 
   9337             <td class="entry_description">
   9338               <p>The amount of additional sensitivity boost applied to output images
   9339 after RAW sensor data is captured.<wbr/></p>
   9340             </td>
   9341 
   9342             <td class="entry_units">
   9343               ISO arithmetic units,<wbr/> the same as android.<wbr/>sensor.<wbr/>sensitivity
   9344             </td>
   9345 
   9346             <td class="entry_range">
   9347               <p><a href="#static_android.control.postRawSensitivityBoostRange">android.<wbr/>control.<wbr/>post<wbr/>Raw<wbr/>Sensitivity<wbr/>Boost<wbr/>Range</a></p>
   9348             </td>
   9349 
   9350             <td class="entry_hal_version">
   9351               <p>3.<wbr/>2</p>
   9352             </td>
   9353 
   9354             <td class="entry_tags">
   9355             </td>
   9356 
   9357           </tr>
   9358           <tr class="entries_header">
   9359             <th class="th_details" colspan="6">Details</th>
   9360           </tr>
   9361           <tr class="entry_cont">
   9362             <td class="entry_details" colspan="6">
   9363               <p>Some camera devices support additional digital sensitivity boosting in the
   9364 camera processing pipeline after sensor RAW image is captured.<wbr/>
   9365 Such a boost will be applied to YUV/<wbr/>JPEG format output images but will not
   9366 have effect on RAW output formats like RAW_<wbr/>SENSOR,<wbr/> RAW10,<wbr/> RAW12 or RAW_<wbr/>OPAQUE.<wbr/></p>
   9367 <p>This key will be <code>null</code> for devices that do not support any RAW format
   9368 outputs.<wbr/> For devices that do support RAW format outputs,<wbr/> this key will always
   9369 present,<wbr/> and if a device does not support post RAW sensitivity boost,<wbr/> it will
   9370 list <code>100</code> in this key.<wbr/></p>
   9371 <p>If the camera device cannot apply the exact boost requested,<wbr/> it will reduce the
   9372 boost to the nearest supported value.<wbr/>
   9373 The final boost value used will be available in the output capture result.<wbr/></p>
   9374 <p>For devices that support post RAW sensitivity boost,<wbr/> the YUV/<wbr/>JPEG output images
   9375 of such device will have the total sensitivity of
   9376 <code><a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> * <a href="#controls_android.control.postRawSensitivityBoost">android.<wbr/>control.<wbr/>post<wbr/>Raw<wbr/>Sensitivity<wbr/>Boost</a> /<wbr/> 100</code>
   9377 The sensitivity of RAW format images will always be <code><a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a></code></p>
   9378 <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
   9379 OFF; otherwise the auto-exposure algorithm will override this value.<wbr/></p>
   9380             </td>
   9381           </tr>
   9382 
   9383 
   9384           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   9385            <!-- end of entry -->
   9386         
   9387                 
   9388           <tr class="entry" id="dynamic_android.control.enableZsl">
   9389             <td class="entry_name
   9390              " rowspan="5">
   9391               android.<wbr/>control.<wbr/>enable<wbr/>Zsl
   9392             </td>
   9393             <td class="entry_type">
   9394                 <span class="entry_type_name entry_type_name_enum">byte</span>
   9395 
   9396               <span class="entry_type_visibility"> [public as boolean]</span>
   9397 
   9398 
   9399 
   9400 
   9401 
   9402                 <ul class="entry_type_enum">
   9403                   <li>
   9404                     <span class="entry_type_enum_name">FALSE (v3.2)</span>
   9405                     <span class="entry_type_enum_notes"><p>Requests with <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> == STILL_<wbr/>CAPTURE must be captured
   9406 after previous requests.<wbr/></p></span>
   9407                   </li>
   9408                   <li>
   9409                     <span class="entry_type_enum_name">TRUE (v3.2)</span>
   9410                     <span class="entry_type_enum_notes"><p>Requests with <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> == STILL_<wbr/>CAPTURE may or may not be
   9411 captured before previous requests.<wbr/></p></span>
   9412                   </li>
   9413                 </ul>
   9414 
   9415             </td> <!-- entry_type -->
   9416 
   9417             <td class="entry_description">
   9418               <p>Allow camera device to enable zero-shutter-lag mode for requests with
   9419 <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> == STILL_<wbr/>CAPTURE.<wbr/></p>
   9420             </td>
   9421 
   9422             <td class="entry_units">
   9423             </td>
   9424 
   9425             <td class="entry_range">
   9426             </td>
   9427 
   9428             <td class="entry_hal_version">
   9429               <p>3.<wbr/>2</p>
   9430             </td>
   9431 
   9432             <td class="entry_tags">
   9433             </td>
   9434 
   9435           </tr>
   9436           <tr class="entries_header">
   9437             <th class="th_details" colspan="6">Details</th>
   9438           </tr>
   9439           <tr class="entry_cont">
   9440             <td class="entry_details" colspan="6">
   9441               <p>If enableZsl is <code>true</code>,<wbr/> the camera device may enable zero-shutter-lag mode for requests with
   9442 STILL_<wbr/>CAPTURE capture intent.<wbr/> The camera device may use images captured in the past to
   9443 produce output images for a zero-shutter-lag request.<wbr/> The result metadata including the
   9444 <a href="#dynamic_android.sensor.timestamp">android.<wbr/>sensor.<wbr/>timestamp</a> reflects the source frames used to produce output images.<wbr/>
   9445 Therefore,<wbr/> the contents of the output images and the result metadata may be out of order
   9446 compared to previous regular requests.<wbr/> enableZsl does not affect requests with other
   9447 capture intents.<wbr/></p>
   9448 <p>For example,<wbr/> when requests are submitted in the following order:
   9449   Request A: enableZsl is ON,<wbr/> <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> is PREVIEW
   9450   Request B: enableZsl is ON,<wbr/> <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> is STILL_<wbr/>CAPTURE</p>
   9451 <p>The output images for request B may have contents captured before the output images for
   9452 request A,<wbr/> and the result metadata for request B may be older than the result metadata for
   9453 request A.<wbr/></p>
   9454 <p>Note that when enableZsl is <code>true</code>,<wbr/> it is not guaranteed to get output images captured in
   9455 the past for requests with STILL_<wbr/>CAPTURE capture intent.<wbr/></p>
   9456 <p>For applications targeting SDK versions O and newer,<wbr/> the value of enableZsl in
   9457 TEMPLATE_<wbr/>STILL_<wbr/>CAPTURE template may be <code>true</code>.<wbr/> The value in other templates is always
   9458 <code>false</code> if present.<wbr/></p>
   9459 <p>For applications targeting SDK versions older than O,<wbr/> the value of enableZsl in all
   9460 capture templates is always <code>false</code> if present.<wbr/></p>
   9461 <p>For application-operated ZSL,<wbr/> use CAMERA3_<wbr/>TEMPLATE_<wbr/>ZERO_<wbr/>SHUTTER_<wbr/>LAG template.<wbr/></p>
   9462             </td>
   9463           </tr>
   9464 
   9465           <tr class="entries_header">
   9466             <th class="th_details" colspan="6">HAL Implementation Details</th>
   9467           </tr>
   9468           <tr class="entry_cont">
   9469             <td class="entry_details" colspan="6">
   9470               <p>It is valid for HAL to produce regular output images for requests with STILL_<wbr/>CAPTURE
   9471 capture intent.<wbr/></p>
   9472             </td>
   9473           </tr>
   9474 
   9475           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   9476            <!-- end of entry -->
   9477         
   9478                 
   9479           <tr class="entry" id="dynamic_android.control.afSceneChange">
   9480             <td class="entry_name
   9481              " rowspan="3">
   9482               android.<wbr/>control.<wbr/>af<wbr/>Scene<wbr/>Change
   9483             </td>
   9484             <td class="entry_type">
   9485                 <span class="entry_type_name entry_type_name_enum">byte</span>
   9486 
   9487               <span class="entry_type_visibility"> [public]</span>
   9488 
   9489 
   9490 
   9491 
   9492 
   9493                 <ul class="entry_type_enum">
   9494                   <li>
   9495                     <span class="entry_type_enum_name">NOT_DETECTED (v3.3)</span>
   9496                     <span class="entry_type_enum_notes"><p>Scene change is not detected within the AF region(s).<wbr/></p></span>
   9497                   </li>
   9498                   <li>
   9499                     <span class="entry_type_enum_name">DETECTED (v3.3)</span>
   9500                     <span class="entry_type_enum_notes"><p>Scene change is detected within the AF region(s).<wbr/></p></span>
   9501                   </li>
   9502                 </ul>
   9503 
   9504             </td> <!-- entry_type -->
   9505 
   9506             <td class="entry_description">
   9507               <p>Whether a significant scene change is detected within the currently-set AF
   9508 region(s).<wbr/></p>
   9509             </td>
   9510 
   9511             <td class="entry_units">
   9512             </td>
   9513 
   9514             <td class="entry_range">
   9515             </td>
   9516 
   9517             <td class="entry_hal_version">
   9518               <p>3.<wbr/>3</p>
   9519             </td>
   9520 
   9521             <td class="entry_tags">
   9522             </td>
   9523 
   9524           </tr>
   9525           <tr class="entries_header">
   9526             <th class="th_details" colspan="6">Details</th>
   9527           </tr>
   9528           <tr class="entry_cont">
   9529             <td class="entry_details" colspan="6">
   9530               <p>When the camera focus routine detects a change in the scene it is looking at,<wbr/>
   9531 such as a large shift in camera viewpoint,<wbr/> significant motion in the scene,<wbr/> or a
   9532 significant illumination change,<wbr/> this value will be set to DETECTED for a single capture
   9533 result.<wbr/> Otherwise the value will be NOT_<wbr/>DETECTED.<wbr/> The threshold for detection is similar
   9534 to what would trigger a new passive focus scan to begin in CONTINUOUS autofocus modes.<wbr/></p>
   9535 <p>This key will be available if the camera device advertises this key via <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#getAvailableCaptureResultKeys">CameraCharacteristics#getAvailableCaptureResultKeys</a>.<wbr/></p>
   9536             </td>
   9537           </tr>
   9538 
   9539 
   9540           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   9541            <!-- end of entry -->
   9542         
   9543         
   9544 
   9545       <!-- end of kind -->
   9546       </tbody>
   9547 
   9548   <!-- end of section -->
   9549   <tr><td colspan="7" id="section_demosaic" class="section">demosaic</td></tr>
   9550 
   9551 
   9552       <tr><td colspan="7" class="kind">controls</td></tr>
   9553 
   9554       <thead class="entries_header">
   9555         <tr>
   9556           <th class="th_name">Property Name</th>
   9557           <th class="th_type">Type</th>
   9558           <th class="th_description">Description</th>
   9559           <th class="th_units">Units</th>
   9560           <th class="th_range">Range</th>
   9561           <th class="th_hal_version">Initial HIDL HAL version</th>
   9562           <th class="th_tags">Tags</th>
   9563         </tr>
   9564       </thead>
   9565 
   9566       <tbody>
   9567 
   9568         
   9569 
   9570         
   9571 
   9572         
   9573 
   9574         
   9575 
   9576                 
   9577           <tr class="entry" id="controls_android.demosaic.mode">
   9578             <td class="entry_name
   9579              " rowspan="1">
   9580               android.<wbr/>demosaic.<wbr/>mode
   9581             </td>
   9582             <td class="entry_type">
   9583                 <span class="entry_type_name entry_type_name_enum">byte</span>
   9584 
   9585               <span class="entry_type_visibility"> [system]</span>
   9586 
   9587 
   9588 
   9589 
   9590 
   9591                 <ul class="entry_type_enum">
   9592                   <li>
   9593                     <span class="entry_type_enum_name">FAST (v3.2)</span>
   9594                     <span class="entry_type_enum_notes"><p>Minimal or no slowdown of frame rate compared to
   9595 Bayer RAW output.<wbr/></p></span>
   9596                   </li>
   9597                   <li>
   9598                     <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
   9599                     <span class="entry_type_enum_notes"><p>Improved processing quality but the frame rate might be slowed down
   9600 relative to raw output.<wbr/></p></span>
   9601                   </li>
   9602                 </ul>
   9603 
   9604             </td> <!-- entry_type -->
   9605 
   9606             <td class="entry_description">
   9607               <p>Controls the quality of the demosaicing
   9608 processing.<wbr/></p>
   9609             </td>
   9610 
   9611             <td class="entry_units">
   9612             </td>
   9613 
   9614             <td class="entry_range">
   9615             </td>
   9616 
   9617             <td class="entry_hal_version">
   9618               <p>3.<wbr/>2</p>
   9619             </td>
   9620 
   9621             <td class="entry_tags">
   9622               <ul class="entry_tags">
   9623                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   9624               </ul>
   9625             </td>
   9626 
   9627           </tr>
   9628 
   9629 
   9630           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   9631            <!-- end of entry -->
   9632         
   9633         
   9634 
   9635       <!-- end of kind -->
   9636       </tbody>
   9637 
   9638   <!-- end of section -->
   9639   <tr><td colspan="7" id="section_edge" class="section">edge</td></tr>
   9640 
   9641 
   9642       <tr><td colspan="7" class="kind">controls</td></tr>
   9643 
   9644       <thead class="entries_header">
   9645         <tr>
   9646           <th class="th_name">Property Name</th>
   9647           <th class="th_type">Type</th>
   9648           <th class="th_description">Description</th>
   9649           <th class="th_units">Units</th>
   9650           <th class="th_range">Range</th>
   9651           <th class="th_hal_version">Initial HIDL HAL version</th>
   9652           <th class="th_tags">Tags</th>
   9653         </tr>
   9654       </thead>
   9655 
   9656       <tbody>
   9657 
   9658         
   9659 
   9660         
   9661 
   9662         
   9663 
   9664         
   9665 
   9666                 
   9667           <tr class="entry" id="controls_android.edge.mode">
   9668             <td class="entry_name
   9669              " rowspan="5">
   9670               android.<wbr/>edge.<wbr/>mode
   9671             </td>
   9672             <td class="entry_type">
   9673                 <span class="entry_type_name entry_type_name_enum">byte</span>
   9674 
   9675               <span class="entry_type_visibility"> [public]</span>
   9676 
   9677 
   9678               <span class="entry_type_hwlevel">[full] </span>
   9679 
   9680 
   9681 
   9682                 <ul class="entry_type_enum">
   9683                   <li>
   9684                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   9685                     <span class="entry_type_enum_notes"><p>No edge enhancement is applied.<wbr/></p></span>
   9686                   </li>
   9687                   <li>
   9688                     <span class="entry_type_enum_name">FAST (v3.2)</span>
   9689                     <span class="entry_type_enum_notes"><p>Apply edge enhancement at a quality level that does not slow down frame rate
   9690 relative to sensor output.<wbr/> It may be the same as OFF if edge enhancement will
   9691 slow down frame rate relative to sensor.<wbr/></p></span>
   9692                   </li>
   9693                   <li>
   9694                     <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
   9695                     <span class="entry_type_enum_notes"><p>Apply high-quality edge enhancement,<wbr/> at a cost of possibly reduced output frame rate.<wbr/></p></span>
   9696                   </li>
   9697                   <li>
   9698                     <span class="entry_type_enum_name">ZERO_SHUTTER_LAG (v3.2)</span>
   9699                     <span class="entry_type_enum_optional">[optional]</span>
   9700                     <span class="entry_type_enum_notes"><p>Edge enhancement is applied at different
   9701 levels for different output streams,<wbr/> based on resolution.<wbr/> Streams at maximum recording
   9702 resolution (see <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureSession">CameraDevice#createCaptureSession</a>)
   9703 or below have edge enhancement applied,<wbr/> while higher-resolution streams have no edge
   9704 enhancement applied.<wbr/> The level of edge enhancement for low-resolution streams is tuned
   9705 so that frame rate is not impacted,<wbr/> and the quality is equal to or better than FAST
   9706 (since it is only applied to lower-resolution outputs,<wbr/> quality may improve from FAST).<wbr/></p>
   9707 <p>This mode is intended to be used by applications operating in a zero-shutter-lag mode
   9708 with YUV or PRIVATE reprocessing,<wbr/> where the application continuously captures
   9709 high-resolution intermediate buffers into a circular buffer,<wbr/> from which a final image is
   9710 produced via reprocessing when a user takes a picture.<wbr/>  For such a use case,<wbr/> the
   9711 high-resolution buffers must not have edge enhancement applied to maximize efficiency of
   9712 preview and to avoid double-applying enhancement when reprocessed,<wbr/> while low-resolution
   9713 buffers (used for recording or preview,<wbr/> generally) need edge enhancement applied for
   9714 reasonable preview quality.<wbr/></p>
   9715 <p>This mode is guaranteed to be supported by devices that support either the
   9716 YUV_<wbr/>REPROCESSING or PRIVATE_<wbr/>REPROCESSING capabilities
   9717 (<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> lists either of those capabilities) and it will
   9718 be the default mode for CAMERA3_<wbr/>TEMPLATE_<wbr/>ZERO_<wbr/>SHUTTER_<wbr/>LAG template.<wbr/></p></span>
   9719                   </li>
   9720                 </ul>
   9721 
   9722             </td> <!-- entry_type -->
   9723 
   9724             <td class="entry_description">
   9725               <p>Operation mode for edge
   9726 enhancement.<wbr/></p>
   9727             </td>
   9728 
   9729             <td class="entry_units">
   9730             </td>
   9731 
   9732             <td class="entry_range">
   9733               <p><a href="#static_android.edge.availableEdgeModes">android.<wbr/>edge.<wbr/>available<wbr/>Edge<wbr/>Modes</a></p>
   9734             </td>
   9735 
   9736             <td class="entry_hal_version">
   9737               <p>3.<wbr/>2</p>
   9738             </td>
   9739 
   9740             <td class="entry_tags">
   9741               <ul class="entry_tags">
   9742                   <li><a href="#tag_V1">V1</a></li>
   9743                   <li><a href="#tag_REPROC">REPROC</a></li>
   9744               </ul>
   9745             </td>
   9746 
   9747           </tr>
   9748           <tr class="entries_header">
   9749             <th class="th_details" colspan="6">Details</th>
   9750           </tr>
   9751           <tr class="entry_cont">
   9752             <td class="entry_details" colspan="6">
   9753               <p>Edge enhancement improves sharpness and details in the captured image.<wbr/> OFF means
   9754 no enhancement will be applied by the camera device.<wbr/></p>
   9755 <p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
   9756 will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
   9757 camera device will use the highest-quality enhancement algorithms,<wbr/>
   9758 even if it slows down capture rate.<wbr/> FAST means the camera device will
   9759 not slow down capture rate when applying edge enhancement.<wbr/> FAST may be the same as OFF if
   9760 edge enhancement will slow down capture rate.<wbr/> Every output stream will have a similar
   9761 amount of enhancement applied.<wbr/></p>
   9762 <p>ZERO_<wbr/>SHUTTER_<wbr/>LAG is meant to be used by applications that maintain a continuous circular
   9763 buffer of high-resolution images during preview and reprocess image(s) from that buffer
   9764 into a final capture when triggered by the user.<wbr/> In this mode,<wbr/> the camera device applies
   9765 edge enhancement to low-resolution streams (below maximum recording resolution) to
   9766 maximize preview quality,<wbr/> but does not apply edge enhancement to high-resolution streams,<wbr/>
   9767 since those will be reprocessed later if necessary.<wbr/></p>
   9768 <p>For YUV_<wbr/>REPROCESSING,<wbr/> these FAST/<wbr/>HIGH_<wbr/>QUALITY modes both mean that the camera
   9769 device will apply FAST/<wbr/>HIGH_<wbr/>QUALITY YUV-domain edge enhancement,<wbr/> respectively.<wbr/>
   9770 The camera device may adjust its internal edge enhancement parameters for best
   9771 image quality based on the <a href="#controls_android.reprocess.effectiveExposureFactor">android.<wbr/>reprocess.<wbr/>effective<wbr/>Exposure<wbr/>Factor</a>,<wbr/> if it is set.<wbr/></p>
   9772             </td>
   9773           </tr>
   9774 
   9775           <tr class="entries_header">
   9776             <th class="th_details" colspan="6">HAL Implementation Details</th>
   9777           </tr>
   9778           <tr class="entry_cont">
   9779             <td class="entry_details" colspan="6">
   9780               <p>For YUV_<wbr/>REPROCESSING The HAL can use <a href="#controls_android.reprocess.effectiveExposureFactor">android.<wbr/>reprocess.<wbr/>effective<wbr/>Exposure<wbr/>Factor</a> to
   9781 adjust the internal edge enhancement reduction parameters appropriately to get the best
   9782 quality images.<wbr/></p>
   9783             </td>
   9784           </tr>
   9785 
   9786           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   9787            <!-- end of entry -->
   9788         
   9789                 
   9790           <tr class="entry" id="controls_android.edge.strength">
   9791             <td class="entry_name
   9792              " rowspan="1">
   9793               android.<wbr/>edge.<wbr/>strength
   9794             </td>
   9795             <td class="entry_type">
   9796                 <span class="entry_type_name">byte</span>
   9797 
   9798               <span class="entry_type_visibility"> [system]</span>
   9799 
   9800 
   9801 
   9802 
   9803 
   9804 
   9805             </td> <!-- entry_type -->
   9806 
   9807             <td class="entry_description">
   9808               <p>Control the amount of edge enhancement
   9809 applied to the images</p>
   9810             </td>
   9811 
   9812             <td class="entry_units">
   9813               1-10; 10 is maximum sharpening
   9814             </td>
   9815 
   9816             <td class="entry_range">
   9817             </td>
   9818 
   9819             <td class="entry_hal_version">
   9820               <p>3.<wbr/>2</p>
   9821             </td>
   9822 
   9823             <td class="entry_tags">
   9824               <ul class="entry_tags">
   9825                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   9826               </ul>
   9827             </td>
   9828 
   9829           </tr>
   9830 
   9831 
   9832           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   9833            <!-- end of entry -->
   9834         
   9835         
   9836 
   9837       <!-- end of kind -->
   9838       </tbody>
   9839       <tr><td colspan="7" class="kind">static</td></tr>
   9840 
   9841       <thead class="entries_header">
   9842         <tr>
   9843           <th class="th_name">Property Name</th>
   9844           <th class="th_type">Type</th>
   9845           <th class="th_description">Description</th>
   9846           <th class="th_units">Units</th>
   9847           <th class="th_range">Range</th>
   9848           <th class="th_hal_version">Initial HIDL HAL version</th>
   9849           <th class="th_tags">Tags</th>
   9850         </tr>
   9851       </thead>
   9852 
   9853       <tbody>
   9854 
   9855         
   9856 
   9857         
   9858 
   9859         
   9860 
   9861         
   9862 
   9863                 
   9864           <tr class="entry" id="static_android.edge.availableEdgeModes">
   9865             <td class="entry_name
   9866              " rowspan="5">
   9867               android.<wbr/>edge.<wbr/>available<wbr/>Edge<wbr/>Modes
   9868             </td>
   9869             <td class="entry_type">
   9870                 <span class="entry_type_name">byte</span>
   9871                 <span class="entry_type_container">x</span>
   9872 
   9873                 <span class="entry_type_array">
   9874                   n
   9875                 </span>
   9876               <span class="entry_type_visibility"> [public as enumList]</span>
   9877 
   9878 
   9879               <span class="entry_type_hwlevel">[full] </span>
   9880 
   9881 
   9882                 <div class="entry_type_notes">list of enums</div>
   9883 
   9884 
   9885             </td> <!-- entry_type -->
   9886 
   9887             <td class="entry_description">
   9888               <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
   9889 device.<wbr/></p>
   9890             </td>
   9891 
   9892             <td class="entry_units">
   9893             </td>
   9894 
   9895             <td class="entry_range">
   9896               <p>Any value listed in <a href="#controls_android.edge.mode">android.<wbr/>edge.<wbr/>mode</a></p>
   9897             </td>
   9898 
   9899             <td class="entry_hal_version">
   9900               <p>3.<wbr/>2</p>
   9901             </td>
   9902 
   9903             <td class="entry_tags">
   9904               <ul class="entry_tags">
   9905                   <li><a href="#tag_V1">V1</a></li>
   9906                   <li><a href="#tag_REPROC">REPROC</a></li>
   9907               </ul>
   9908             </td>
   9909 
   9910           </tr>
   9911           <tr class="entries_header">
   9912             <th class="th_details" colspan="6">Details</th>
   9913           </tr>
   9914           <tr class="entry_cont">
   9915             <td class="entry_details" colspan="6">
   9916               <p>Full-capability camera devices must always support OFF; camera devices that support
   9917 YUV_<wbr/>REPROCESSING or PRIVATE_<wbr/>REPROCESSING will list ZERO_<wbr/>SHUTTER_<wbr/>LAG; all devices will
   9918 list FAST.<wbr/></p>
   9919             </td>
   9920           </tr>
   9921 
   9922           <tr class="entries_header">
   9923             <th class="th_details" colspan="6">HAL Implementation Details</th>
   9924           </tr>
   9925           <tr class="entry_cont">
   9926             <td class="entry_details" colspan="6">
   9927               <p>HAL must support both FAST and HIGH_<wbr/>QUALITY if edge enhancement control is available
   9928 on the camera device,<wbr/> but the underlying implementation can be the same for both modes.<wbr/>
   9929 That is,<wbr/> if the highest quality implementation on the camera device does not slow down
   9930 capture rate,<wbr/> then FAST and HIGH_<wbr/>QUALITY will generate the same output.<wbr/></p>
   9931             </td>
   9932           </tr>
   9933 
   9934           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   9935            <!-- end of entry -->
   9936         
   9937         
   9938 
   9939       <!-- end of kind -->
   9940       </tbody>
   9941       <tr><td colspan="7" class="kind">dynamic</td></tr>
   9942 
   9943       <thead class="entries_header">
   9944         <tr>
   9945           <th class="th_name">Property Name</th>
   9946           <th class="th_type">Type</th>
   9947           <th class="th_description">Description</th>
   9948           <th class="th_units">Units</th>
   9949           <th class="th_range">Range</th>
   9950           <th class="th_hal_version">Initial HIDL HAL version</th>
   9951           <th class="th_tags">Tags</th>
   9952         </tr>
   9953       </thead>
   9954 
   9955       <tbody>
   9956 
   9957         
   9958 
   9959         
   9960 
   9961         
   9962 
   9963         
   9964 
   9965                 
   9966           <tr class="entry" id="dynamic_android.edge.mode">
   9967             <td class="entry_name
   9968              " rowspan="5">
   9969               android.<wbr/>edge.<wbr/>mode
   9970             </td>
   9971             <td class="entry_type">
   9972                 <span class="entry_type_name entry_type_name_enum">byte</span>
   9973 
   9974               <span class="entry_type_visibility"> [public]</span>
   9975 
   9976 
   9977               <span class="entry_type_hwlevel">[full] </span>
   9978 
   9979 
   9980 
   9981                 <ul class="entry_type_enum">
   9982                   <li>
   9983                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   9984                     <span class="entry_type_enum_notes"><p>No edge enhancement is applied.<wbr/></p></span>
   9985                   </li>
   9986                   <li>
   9987                     <span class="entry_type_enum_name">FAST (v3.2)</span>
   9988                     <span class="entry_type_enum_notes"><p>Apply edge enhancement at a quality level that does not slow down frame rate
   9989 relative to sensor output.<wbr/> It may be the same as OFF if edge enhancement will
   9990 slow down frame rate relative to sensor.<wbr/></p></span>
   9991                   </li>
   9992                   <li>
   9993                     <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
   9994                     <span class="entry_type_enum_notes"><p>Apply high-quality edge enhancement,<wbr/> at a cost of possibly reduced output frame rate.<wbr/></p></span>
   9995                   </li>
   9996                   <li>
   9997                     <span class="entry_type_enum_name">ZERO_SHUTTER_LAG (v3.2)</span>
   9998                     <span class="entry_type_enum_optional">[optional]</span>
   9999                     <span class="entry_type_enum_notes"><p>Edge enhancement is applied at different
   10000 levels for different output streams,<wbr/> based on resolution.<wbr/> Streams at maximum recording
   10001 resolution (see <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureSession">CameraDevice#createCaptureSession</a>)
   10002 or below have edge enhancement applied,<wbr/> while higher-resolution streams have no edge
   10003 enhancement applied.<wbr/> The level of edge enhancement for low-resolution streams is tuned
   10004 so that frame rate is not impacted,<wbr/> and the quality is equal to or better than FAST
   10005 (since it is only applied to lower-resolution outputs,<wbr/> quality may improve from FAST).<wbr/></p>
   10006 <p>This mode is intended to be used by applications operating in a zero-shutter-lag mode
   10007 with YUV or PRIVATE reprocessing,<wbr/> where the application continuously captures
   10008 high-resolution intermediate buffers into a circular buffer,<wbr/> from which a final image is
   10009 produced via reprocessing when a user takes a picture.<wbr/>  For such a use case,<wbr/> the
   10010 high-resolution buffers must not have edge enhancement applied to maximize efficiency of
   10011 preview and to avoid double-applying enhancement when reprocessed,<wbr/> while low-resolution
   10012 buffers (used for recording or preview,<wbr/> generally) need edge enhancement applied for
   10013 reasonable preview quality.<wbr/></p>
   10014 <p>This mode is guaranteed to be supported by devices that support either the
   10015 YUV_<wbr/>REPROCESSING or PRIVATE_<wbr/>REPROCESSING capabilities
   10016 (<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> lists either of those capabilities) and it will
   10017 be the default mode for CAMERA3_<wbr/>TEMPLATE_<wbr/>ZERO_<wbr/>SHUTTER_<wbr/>LAG template.<wbr/></p></span>
   10018                   </li>
   10019                 </ul>
   10020 
   10021             </td> <!-- entry_type -->
   10022 
   10023             <td class="entry_description">
   10024               <p>Operation mode for edge
   10025 enhancement.<wbr/></p>
   10026             </td>
   10027 
   10028             <td class="entry_units">
   10029             </td>
   10030 
   10031             <td class="entry_range">
   10032               <p><a href="#static_android.edge.availableEdgeModes">android.<wbr/>edge.<wbr/>available<wbr/>Edge<wbr/>Modes</a></p>
   10033             </td>
   10034 
   10035             <td class="entry_hal_version">
   10036               <p>3.<wbr/>2</p>
   10037             </td>
   10038 
   10039             <td class="entry_tags">
   10040               <ul class="entry_tags">
   10041                   <li><a href="#tag_V1">V1</a></li>
   10042                   <li><a href="#tag_REPROC">REPROC</a></li>
   10043               </ul>
   10044             </td>
   10045 
   10046           </tr>
   10047           <tr class="entries_header">
   10048             <th class="th_details" colspan="6">Details</th>
   10049           </tr>
   10050           <tr class="entry_cont">
   10051             <td class="entry_details" colspan="6">
   10052               <p>Edge enhancement improves sharpness and details in the captured image.<wbr/> OFF means
   10053 no enhancement will be applied by the camera device.<wbr/></p>
   10054 <p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
   10055 will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
   10056 camera device will use the highest-quality enhancement algorithms,<wbr/>
   10057 even if it slows down capture rate.<wbr/> FAST means the camera device will
   10058 not slow down capture rate when applying edge enhancement.<wbr/> FAST may be the same as OFF if
   10059 edge enhancement will slow down capture rate.<wbr/> Every output stream will have a similar
   10060 amount of enhancement applied.<wbr/></p>
   10061 <p>ZERO_<wbr/>SHUTTER_<wbr/>LAG is meant to be used by applications that maintain a continuous circular
   10062 buffer of high-resolution images during preview and reprocess image(s) from that buffer
   10063 into a final capture when triggered by the user.<wbr/> In this mode,<wbr/> the camera device applies
   10064 edge enhancement to low-resolution streams (below maximum recording resolution) to
   10065 maximize preview quality,<wbr/> but does not apply edge enhancement to high-resolution streams,<wbr/>
   10066 since those will be reprocessed later if necessary.<wbr/></p>
   10067 <p>For YUV_<wbr/>REPROCESSING,<wbr/> these FAST/<wbr/>HIGH_<wbr/>QUALITY modes both mean that the camera
   10068 device will apply FAST/<wbr/>HIGH_<wbr/>QUALITY YUV-domain edge enhancement,<wbr/> respectively.<wbr/>
   10069 The camera device may adjust its internal edge enhancement parameters for best
   10070 image quality based on the <a href="#controls_android.reprocess.effectiveExposureFactor">android.<wbr/>reprocess.<wbr/>effective<wbr/>Exposure<wbr/>Factor</a>,<wbr/> if it is set.<wbr/></p>
   10071             </td>
   10072           </tr>
   10073 
   10074           <tr class="entries_header">
   10075             <th class="th_details" colspan="6">HAL Implementation Details</th>
   10076           </tr>
   10077           <tr class="entry_cont">
   10078             <td class="entry_details" colspan="6">
   10079               <p>For YUV_<wbr/>REPROCESSING The HAL can use <a href="#controls_android.reprocess.effectiveExposureFactor">android.<wbr/>reprocess.<wbr/>effective<wbr/>Exposure<wbr/>Factor</a> to
   10080 adjust the internal edge enhancement reduction parameters appropriately to get the best
   10081 quality images.<wbr/></p>
   10082             </td>
   10083           </tr>
   10084 
   10085           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   10086            <!-- end of entry -->
   10087         
   10088         
   10089 
   10090       <!-- end of kind -->
   10091       </tbody>
   10092 
   10093   <!-- end of section -->
   10094   <tr><td colspan="7" id="section_flash" class="section">flash</td></tr>
   10095 
   10096 
   10097       <tr><td colspan="7" class="kind">controls</td></tr>
   10098 
   10099       <thead class="entries_header">
   10100         <tr>
   10101           <th class="th_name">Property Name</th>
   10102           <th class="th_type">Type</th>
   10103           <th class="th_description">Description</th>
   10104           <th class="th_units">Units</th>
   10105           <th class="th_range">Range</th>
   10106           <th class="th_hal_version">Initial HIDL HAL version</th>
   10107           <th class="th_tags">Tags</th>
   10108         </tr>
   10109       </thead>
   10110 
   10111       <tbody>
   10112 
   10113         
   10114 
   10115         
   10116 
   10117         
   10118 
   10119         
   10120 
   10121                 
   10122           <tr class="entry" id="controls_android.flash.firingPower">
   10123             <td class="entry_name
   10124              " rowspan="3">
   10125               android.<wbr/>flash.<wbr/>firing<wbr/>Power
   10126             </td>
   10127             <td class="entry_type">
   10128                 <span class="entry_type_name">byte</span>
   10129 
   10130               <span class="entry_type_visibility"> [system]</span>
   10131 
   10132 
   10133 
   10134 
   10135 
   10136 
   10137             </td> <!-- entry_type -->
   10138 
   10139             <td class="entry_description">
   10140               <p>Power for flash firing/<wbr/>torch</p>
   10141             </td>
   10142 
   10143             <td class="entry_units">
   10144               10 is max power; 0 is no flash.<wbr/> Linear
   10145             </td>
   10146 
   10147             <td class="entry_range">
   10148               <p>0 - 10</p>
   10149             </td>
   10150 
   10151             <td class="entry_hal_version">
   10152               <p>3.<wbr/>2</p>
   10153             </td>
   10154 
   10155             <td class="entry_tags">
   10156               <ul class="entry_tags">
   10157                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   10158               </ul>
   10159             </td>
   10160 
   10161           </tr>
   10162           <tr class="entries_header">
   10163             <th class="th_details" colspan="6">Details</th>
   10164           </tr>
   10165           <tr class="entry_cont">
   10166             <td class="entry_details" colspan="6">
   10167               <p>Power for snapshot may use a different scale than
   10168 for torch mode.<wbr/> Only one entry for torch mode will be
   10169 used</p>
   10170             </td>
   10171           </tr>
   10172 
   10173 
   10174           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   10175            <!-- end of entry -->
   10176         
   10177                 
   10178           <tr class="entry" id="controls_android.flash.firingTime">
   10179             <td class="entry_name
   10180              " rowspan="3">
   10181               android.<wbr/>flash.<wbr/>firing<wbr/>Time
   10182             </td>
   10183             <td class="entry_type">
   10184                 <span class="entry_type_name">int64</span>
   10185 
   10186               <span class="entry_type_visibility"> [system]</span>
   10187 
   10188 
   10189 
   10190 
   10191 
   10192 
   10193             </td> <!-- entry_type -->
   10194 
   10195             <td class="entry_description">
   10196               <p>Firing time of flash relative to start of
   10197 exposure</p>
   10198             </td>
   10199 
   10200             <td class="entry_units">
   10201               nanoseconds
   10202             </td>
   10203 
   10204             <td class="entry_range">
   10205               <p>0-(exposure time-flash duration)</p>
   10206             </td>
   10207 
   10208             <td class="entry_hal_version">
   10209               <p>3.<wbr/>2</p>
   10210             </td>
   10211 
   10212             <td class="entry_tags">
   10213               <ul class="entry_tags">
   10214                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   10215               </ul>
   10216             </td>
   10217 
   10218           </tr>
   10219           <tr class="entries_header">
   10220             <th class="th_details" colspan="6">Details</th>
   10221           </tr>
   10222           <tr class="entry_cont">
   10223             <td class="entry_details" colspan="6">
   10224               <p>Clamped to (0,<wbr/> exposure time - flash
   10225 duration).<wbr/></p>
   10226             </td>
   10227           </tr>
   10228 
   10229 
   10230           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   10231            <!-- end of entry -->
   10232         
   10233                 
   10234           <tr class="entry" id="controls_android.flash.mode">
   10235             <td class="entry_name
   10236              " rowspan="3">
   10237               android.<wbr/>flash.<wbr/>mode
   10238             </td>
   10239             <td class="entry_type">
   10240                 <span class="entry_type_name entry_type_name_enum">byte</span>
   10241 
   10242               <span class="entry_type_visibility"> [public]</span>
   10243 
   10244 
   10245               <span class="entry_type_hwlevel">[legacy] </span>
   10246 
   10247 
   10248 
   10249                 <ul class="entry_type_enum">
   10250                   <li>
   10251                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   10252                     <span class="entry_type_enum_notes"><p>Do not fire the flash for this capture.<wbr/></p></span>
   10253                   </li>
   10254                   <li>
   10255                     <span class="entry_type_enum_name">SINGLE (v3.2)</span>
   10256                     <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
   10257 for this capture.<wbr/></p></span>
   10258                   </li>
   10259                   <li>
   10260                     <span class="entry_type_enum_name">TORCH (v3.2)</span>
   10261                     <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
   10262                   </li>
   10263                 </ul>
   10264 
   10265             </td> <!-- entry_type -->
   10266 
   10267             <td class="entry_description">
   10268               <p>The desired mode for for the camera device's flash control.<wbr/></p>
   10269             </td>
   10270 
   10271             <td class="entry_units">
   10272             </td>
   10273 
   10274             <td class="entry_range">
   10275             </td>
   10276 
   10277             <td class="entry_hal_version">
   10278               <p>3.<wbr/>2</p>
   10279             </td>
   10280 
   10281             <td class="entry_tags">
   10282               <ul class="entry_tags">
   10283                   <li><a href="#tag_BC">BC</a></li>
   10284               </ul>
   10285             </td>
   10286 
   10287           </tr>
   10288           <tr class="entries_header">
   10289             <th class="th_details" colspan="6">Details</th>
   10290           </tr>
   10291           <tr class="entry_cont">
   10292             <td class="entry_details" colspan="6">
   10293               <p>This control is only effective when flash unit is available
   10294 (<code><a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> == true</code>).<wbr/></p>
   10295 <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/>
   10296 Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
   10297 ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
   10298 <p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
   10299 <p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
   10300 device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
   10301 control should be used along with auto-exposure (AE) precapture metering sequence
   10302 (<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>
   10303 <p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
   10304 for use cases such as preview,<wbr/> auto-focus assist,<wbr/> still capture,<wbr/> or video recording.<wbr/></p>
   10305 <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>
   10306             </td>
   10307           </tr>
   10308 
   10309 
   10310           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   10311            <!-- end of entry -->
   10312         
   10313         
   10314 
   10315       <!-- end of kind -->
   10316       </tbody>
   10317       <tr><td colspan="7" class="kind">static</td></tr>
   10318 
   10319       <thead class="entries_header">
   10320         <tr>
   10321           <th class="th_name">Property Name</th>
   10322           <th class="th_type">Type</th>
   10323           <th class="th_description">Description</th>
   10324           <th class="th_units">Units</th>
   10325           <th class="th_range">Range</th>
   10326           <th class="th_hal_version">Initial HIDL HAL version</th>
   10327           <th class="th_tags">Tags</th>
   10328         </tr>
   10329       </thead>
   10330 
   10331       <tbody>
   10332 
   10333         
   10334 
   10335         
   10336 
   10337         
   10338 
   10339         
   10340                 
   10341             
   10342 
   10343                 
   10344           <tr class="entry" id="static_android.flash.info.available">
   10345             <td class="entry_name
   10346              " rowspan="3">
   10347               android.<wbr/>flash.<wbr/>info.<wbr/>available
   10348             </td>
   10349             <td class="entry_type">
   10350                 <span class="entry_type_name entry_type_name_enum">byte</span>
   10351 
   10352               <span class="entry_type_visibility"> [public as boolean]</span>
   10353 
   10354 
   10355               <span class="entry_type_hwlevel">[legacy] </span>
   10356 
   10357 
   10358 
   10359                 <ul class="entry_type_enum">
   10360                   <li>
   10361                     <span class="entry_type_enum_name">FALSE (v3.2)</span>
   10362                   </li>
   10363                   <li>
   10364                     <span class="entry_type_enum_name">TRUE (v3.2)</span>
   10365                   </li>
   10366                 </ul>
   10367 
   10368             </td> <!-- entry_type -->
   10369 
   10370             <td class="entry_description">
   10371               <p>Whether this camera device has a
   10372 flash unit.<wbr/></p>
   10373             </td>
   10374 
   10375             <td class="entry_units">
   10376             </td>
   10377 
   10378             <td class="entry_range">
   10379             </td>
   10380 
   10381             <td class="entry_hal_version">
   10382               <p>3.<wbr/>2</p>
   10383             </td>
   10384 
   10385             <td class="entry_tags">
   10386               <ul class="entry_tags">
   10387                   <li><a href="#tag_BC">BC</a></li>
   10388               </ul>
   10389             </td>
   10390 
   10391           </tr>
   10392           <tr class="entries_header">
   10393             <th class="th_details" colspan="6">Details</th>
   10394           </tr>
   10395           <tr class="entry_cont">
   10396             <td class="entry_details" colspan="6">
   10397               <p>Will be <code>false</code> if no flash is available.<wbr/></p>
   10398 <p>If there is no flash unit,<wbr/> none of the flash controls do
   10399 anything.<wbr/></p>
   10400             </td>
   10401           </tr>
   10402 
   10403 
   10404           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   10405            <!-- end of entry -->
   10406         
   10407                 
   10408           <tr class="entry" id="static_android.flash.info.chargeDuration">
   10409             <td class="entry_name
   10410              " rowspan="3">
   10411               android.<wbr/>flash.<wbr/>info.<wbr/>charge<wbr/>Duration
   10412             </td>
   10413             <td class="entry_type">
   10414                 <span class="entry_type_name">int64</span>
   10415 
   10416               <span class="entry_type_visibility"> [system]</span>
   10417 
   10418 
   10419 
   10420 
   10421 
   10422 
   10423             </td> <!-- entry_type -->
   10424 
   10425             <td class="entry_description">
   10426               <p>Time taken before flash can fire
   10427 again</p>
   10428             </td>
   10429 
   10430             <td class="entry_units">
   10431               nanoseconds
   10432             </td>
   10433 
   10434             <td class="entry_range">
   10435               <p>0-1e9</p>
   10436             </td>
   10437 
   10438             <td class="entry_hal_version">
   10439               <p>3.<wbr/>2</p>
   10440             </td>
   10441 
   10442             <td class="entry_tags">
   10443               <ul class="entry_tags">
   10444                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   10445               </ul>
   10446             </td>
   10447 
   10448           </tr>
   10449           <tr class="entries_header">
   10450             <th class="th_details" colspan="6">Details</th>
   10451           </tr>
   10452           <tr class="entry_cont">
   10453             <td class="entry_details" colspan="6">
   10454               <p>1 second too long/<wbr/>too short for recharge? Should
   10455 this be power-dependent?</p>
   10456             </td>
   10457           </tr>
   10458 
   10459 
   10460           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   10461            <!-- end of entry -->
   10462         
   10463         
   10464         
   10465 
   10466                 
   10467           <tr class="entry" id="static_android.flash.colorTemperature">
   10468             <td class="entry_name
   10469              " rowspan="1">
   10470               android.<wbr/>flash.<wbr/>color<wbr/>Temperature
   10471             </td>
   10472             <td class="entry_type">
   10473                 <span class="entry_type_name">byte</span>
   10474 
   10475               <span class="entry_type_visibility"> [system]</span>
   10476 
   10477 
   10478 
   10479 
   10480 
   10481 
   10482             </td> <!-- entry_type -->
   10483 
   10484             <td class="entry_description">
   10485               <p>The x,<wbr/>y whitepoint of the
   10486 flash</p>
   10487             </td>
   10488 
   10489             <td class="entry_units">
   10490               pair of floats
   10491             </td>
   10492 
   10493             <td class="entry_range">
   10494               <p>0-1 for both</p>
   10495             </td>
   10496 
   10497             <td class="entry_hal_version">
   10498               <p>3.<wbr/>2</p>
   10499             </td>
   10500 
   10501             <td class="entry_tags">
   10502               <ul class="entry_tags">
   10503                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   10504               </ul>
   10505             </td>
   10506 
   10507           </tr>
   10508 
   10509 
   10510           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   10511            <!-- end of entry -->
   10512         
   10513                 
   10514           <tr class="entry" id="static_android.flash.maxEnergy">
   10515             <td class="entry_name
   10516              " rowspan="1">
   10517               android.<wbr/>flash.<wbr/>max<wbr/>Energy
   10518             </td>
   10519             <td class="entry_type">
   10520                 <span class="entry_type_name">byte</span>
   10521 
   10522               <span class="entry_type_visibility"> [system]</span>
   10523 
   10524 
   10525 
   10526 
   10527 
   10528 
   10529             </td> <!-- entry_type -->
   10530 
   10531             <td class="entry_description">
   10532               <p>Max energy output of the flash for a full
   10533 power single flash</p>
   10534             </td>
   10535 
   10536             <td class="entry_units">
   10537               lumen-seconds
   10538             </td>
   10539 
   10540             <td class="entry_range">
   10541               <p>&gt;= 0</p>
   10542             </td>
   10543 
   10544             <td class="entry_hal_version">
   10545               <p>3.<wbr/>2</p>
   10546             </td>
   10547 
   10548             <td class="entry_tags">
   10549               <ul class="entry_tags">
   10550                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   10551               </ul>
   10552             </td>
   10553 
   10554           </tr>
   10555 
   10556 
   10557           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   10558            <!-- end of entry -->
   10559         
   10560         
   10561 
   10562       <!-- end of kind -->
   10563       </tbody>
   10564       <tr><td colspan="7" class="kind">dynamic</td></tr>
   10565 
   10566       <thead class="entries_header">
   10567         <tr>
   10568           <th class="th_name">Property Name</th>
   10569           <th class="th_type">Type</th>
   10570           <th class="th_description">Description</th>
   10571           <th class="th_units">Units</th>
   10572           <th class="th_range">Range</th>
   10573           <th class="th_hal_version">Initial HIDL HAL version</th>
   10574           <th class="th_tags">Tags</th>
   10575         </tr>
   10576       </thead>
   10577 
   10578       <tbody>
   10579 
   10580         
   10581 
   10582         
   10583 
   10584         
   10585 
   10586         
   10587 
   10588                 
   10589           <tr class="entry" id="dynamic_android.flash.firingPower">
   10590             <td class="entry_name
   10591              " rowspan="3">
   10592               android.<wbr/>flash.<wbr/>firing<wbr/>Power
   10593             </td>
   10594             <td class="entry_type">
   10595                 <span class="entry_type_name">byte</span>
   10596 
   10597               <span class="entry_type_visibility"> [system]</span>
   10598 
   10599 
   10600 
   10601 
   10602 
   10603 
   10604             </td> <!-- entry_type -->
   10605 
   10606             <td class="entry_description">
   10607               <p>Power for flash firing/<wbr/>torch</p>
   10608             </td>
   10609 
   10610             <td class="entry_units">
   10611               10 is max power; 0 is no flash.<wbr/> Linear
   10612             </td>
   10613 
   10614             <td class="entry_range">
   10615               <p>0 - 10</p>
   10616             </td>
   10617 
   10618             <td class="entry_hal_version">
   10619               <p>3.<wbr/>2</p>
   10620             </td>
   10621 
   10622             <td class="entry_tags">
   10623               <ul class="entry_tags">
   10624                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   10625               </ul>
   10626             </td>
   10627 
   10628           </tr>
   10629           <tr class="entries_header">
   10630             <th class="th_details" colspan="6">Details</th>
   10631           </tr>
   10632           <tr class="entry_cont">
   10633             <td class="entry_details" colspan="6">
   10634               <p>Power for snapshot may use a different scale than
   10635 for torch mode.<wbr/> Only one entry for torch mode will be
   10636 used</p>
   10637             </td>
   10638           </tr>
   10639 
   10640 
   10641           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   10642            <!-- end of entry -->
   10643         
   10644                 
   10645           <tr class="entry" id="dynamic_android.flash.firingTime">
   10646             <td class="entry_name
   10647              " rowspan="3">
   10648               android.<wbr/>flash.<wbr/>firing<wbr/>Time
   10649             </td>
   10650             <td class="entry_type">
   10651                 <span class="entry_type_name">int64</span>
   10652 
   10653               <span class="entry_type_visibility"> [system]</span>
   10654 
   10655 
   10656 
   10657 
   10658 
   10659 
   10660             </td> <!-- entry_type -->
   10661 
   10662             <td class="entry_description">
   10663               <p>Firing time of flash relative to start of
   10664 exposure</p>
   10665             </td>
   10666 
   10667             <td class="entry_units">
   10668               nanoseconds
   10669             </td>
   10670 
   10671             <td class="entry_range">
   10672               <p>0-(exposure time-flash duration)</p>
   10673             </td>
   10674 
   10675             <td class="entry_hal_version">
   10676               <p>3.<wbr/>2</p>
   10677             </td>
   10678 
   10679             <td class="entry_tags">
   10680               <ul class="entry_tags">
   10681                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   10682               </ul>
   10683             </td>
   10684 
   10685           </tr>
   10686           <tr class="entries_header">
   10687             <th class="th_details" colspan="6">Details</th>
   10688           </tr>
   10689           <tr class="entry_cont">
   10690             <td class="entry_details" colspan="6">
   10691               <p>Clamped to (0,<wbr/> exposure time - flash
   10692 duration).<wbr/></p>
   10693             </td>
   10694           </tr>
   10695 
   10696 
   10697           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   10698            <!-- end of entry -->
   10699         
   10700                 
   10701           <tr class="entry" id="dynamic_android.flash.mode">
   10702             <td class="entry_name
   10703              " rowspan="3">
   10704               android.<wbr/>flash.<wbr/>mode
   10705             </td>
   10706             <td class="entry_type">
   10707                 <span class="entry_type_name entry_type_name_enum">byte</span>
   10708 
   10709               <span class="entry_type_visibility"> [public]</span>
   10710 
   10711 
   10712               <span class="entry_type_hwlevel">[legacy] </span>
   10713 
   10714 
   10715 
   10716                 <ul class="entry_type_enum">
   10717                   <li>
   10718                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   10719                     <span class="entry_type_enum_notes"><p>Do not fire the flash for this capture.<wbr/></p></span>
   10720                   </li>
   10721                   <li>
   10722                     <span class="entry_type_enum_name">SINGLE (v3.2)</span>
   10723                     <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
   10724 for this capture.<wbr/></p></span>
   10725                   </li>
   10726                   <li>
   10727                     <span class="entry_type_enum_name">TORCH (v3.2)</span>
   10728                     <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
   10729                   </li>
   10730                 </ul>
   10731 
   10732             </td> <!-- entry_type -->
   10733 
   10734             <td class="entry_description">
   10735               <p>The desired mode for for the camera device's flash control.<wbr/></p>
   10736             </td>
   10737 
   10738             <td class="entry_units">
   10739             </td>
   10740 
   10741             <td class="entry_range">
   10742             </td>
   10743 
   10744             <td class="entry_hal_version">
   10745               <p>3.<wbr/>2</p>
   10746             </td>
   10747 
   10748             <td class="entry_tags">
   10749               <ul class="entry_tags">
   10750                   <li><a href="#tag_BC">BC</a></li>
   10751               </ul>
   10752             </td>
   10753 
   10754           </tr>
   10755           <tr class="entries_header">
   10756             <th class="th_details" colspan="6">Details</th>
   10757           </tr>
   10758           <tr class="entry_cont">
   10759             <td class="entry_details" colspan="6">
   10760               <p>This control is only effective when flash unit is available
   10761 (<code><a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> == true</code>).<wbr/></p>
   10762 <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/>
   10763 Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
   10764 ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
   10765 <p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
   10766 <p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
   10767 device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
   10768 control should be used along with auto-exposure (AE) precapture metering sequence
   10769 (<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>
   10770 <p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
   10771 for use cases such as preview,<wbr/> auto-focus assist,<wbr/> still capture,<wbr/> or video recording.<wbr/></p>
   10772 <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>
   10773             </td>
   10774           </tr>
   10775 
   10776 
   10777           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   10778            <!-- end of entry -->
   10779         
   10780                 
   10781           <tr class="entry" id="dynamic_android.flash.state">
   10782             <td class="entry_name
   10783              " rowspan="3">
   10784               android.<wbr/>flash.<wbr/>state
   10785             </td>
   10786             <td class="entry_type">
   10787                 <span class="entry_type_name entry_type_name_enum">byte</span>
   10788 
   10789               <span class="entry_type_visibility"> [public]</span>
   10790 
   10791 
   10792               <span class="entry_type_hwlevel">[limited] </span>
   10793 
   10794 
   10795 
   10796                 <ul class="entry_type_enum">
   10797                   <li>
   10798                     <span class="entry_type_enum_name">UNAVAILABLE (v3.2)</span>
   10799                     <span class="entry_type_enum_notes"><p>No flash on camera.<wbr/></p></span>
   10800                   </li>
   10801                   <li>
   10802                     <span class="entry_type_enum_name">CHARGING (v3.2)</span>
   10803                     <span class="entry_type_enum_notes"><p>Flash is charging and cannot be fired.<wbr/></p></span>
   10804                   </li>
   10805                   <li>
   10806                     <span class="entry_type_enum_name">READY (v3.2)</span>
   10807                     <span class="entry_type_enum_notes"><p>Flash is ready to fire.<wbr/></p></span>
   10808                   </li>
   10809                   <li>
   10810                     <span class="entry_type_enum_name">FIRED (v3.2)</span>
   10811                     <span class="entry_type_enum_notes"><p>Flash fired for this capture.<wbr/></p></span>
   10812                   </li>
   10813                   <li>
   10814                     <span class="entry_type_enum_name">PARTIAL (v3.2)</span>
   10815                     <span class="entry_type_enum_notes"><p>Flash partially illuminated this frame.<wbr/></p>
   10816 <p>This is usually due to the next or previous frame having
   10817 the flash fire,<wbr/> and the flash spilling into this capture
   10818 due to hardware limitations.<wbr/></p></span>
   10819                   </li>
   10820                 </ul>
   10821 
   10822             </td> <!-- entry_type -->
   10823 
   10824             <td class="entry_description">
   10825               <p>Current state of the flash
   10826 unit.<wbr/></p>
   10827             </td>
   10828 
   10829             <td class="entry_units">
   10830             </td>
   10831 
   10832             <td class="entry_range">
   10833             </td>
   10834 
   10835             <td class="entry_hal_version">
   10836               <p>3.<wbr/>2</p>
   10837             </td>
   10838 
   10839             <td class="entry_tags">
   10840             </td>
   10841 
   10842           </tr>
   10843           <tr class="entries_header">
   10844             <th class="th_details" colspan="6">Details</th>
   10845           </tr>
   10846           <tr class="entry_cont">
   10847             <td class="entry_details" colspan="6">
   10848               <p>When the camera device doesn't have flash unit
   10849 (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/>
   10850 Other states indicate the current flash status.<wbr/></p>
   10851 <p>In certain conditions,<wbr/> this will be available on LEGACY devices:</p>
   10852 <ul>
   10853 <li>Flash-less cameras always return UNAVAILABLE.<wbr/></li>
   10854 <li>Using <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> <code>==</code> ON_<wbr/>ALWAYS_<wbr/>FLASH
   10855    will always return FIRED.<wbr/></li>
   10856 <li>Using <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> <code>==</code> TORCH
   10857    will always return FIRED.<wbr/></li>
   10858 </ul>
   10859 <p>In all other conditions the state will not be available on
   10860 LEGACY devices (i.<wbr/>e.<wbr/> it will be <code>null</code>).<wbr/></p>
   10861             </td>
   10862           </tr>
   10863 
   10864 
   10865           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   10866            <!-- end of entry -->
   10867         
   10868         
   10869 
   10870       <!-- end of kind -->
   10871       </tbody>
   10872 
   10873   <!-- end of section -->
   10874   <tr><td colspan="7" id="section_hotPixel" class="section">hotPixel</td></tr>
   10875 
   10876 
   10877       <tr><td colspan="7" class="kind">controls</td></tr>
   10878 
   10879       <thead class="entries_header">
   10880         <tr>
   10881           <th class="th_name">Property Name</th>
   10882           <th class="th_type">Type</th>
   10883           <th class="th_description">Description</th>
   10884           <th class="th_units">Units</th>
   10885           <th class="th_range">Range</th>
   10886           <th class="th_hal_version">Initial HIDL HAL version</th>
   10887           <th class="th_tags">Tags</th>
   10888         </tr>
   10889       </thead>
   10890 
   10891       <tbody>
   10892 
   10893         
   10894 
   10895         
   10896 
   10897         
   10898 
   10899         
   10900 
   10901                 
   10902           <tr class="entry" id="controls_android.hotPixel.mode">
   10903             <td class="entry_name
   10904              " rowspan="3">
   10905               android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
   10906             </td>
   10907             <td class="entry_type">
   10908                 <span class="entry_type_name entry_type_name_enum">byte</span>
   10909 
   10910               <span class="entry_type_visibility"> [public]</span>
   10911 
   10912 
   10913 
   10914 
   10915 
   10916                 <ul class="entry_type_enum">
   10917                   <li>
   10918                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   10919                     <span class="entry_type_enum_notes"><p>No hot pixel correction is applied.<wbr/></p>
   10920 <p>The frame rate must not be reduced relative to sensor raw output
   10921 for this option.<wbr/></p>
   10922 <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>
   10923                   </li>
   10924                   <li>
   10925                     <span class="entry_type_enum_name">FAST (v3.2)</span>
   10926                     <span class="entry_type_enum_notes"><p>Hot pixel correction is applied,<wbr/> without reducing frame
   10927 rate relative to sensor raw output.<wbr/></p>
   10928 <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>
   10929                   </li>
   10930                   <li>
   10931                     <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
   10932                     <span class="entry_type_enum_notes"><p>High-quality hot pixel correction is applied,<wbr/> at a cost
   10933 of possibly reduced frame rate relative to sensor raw output.<wbr/></p>
   10934 <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>
   10935                   </li>
   10936                 </ul>
   10937 
   10938             </td> <!-- entry_type -->
   10939 
   10940             <td class="entry_description">
   10941               <p>Operational mode for hot pixel correction.<wbr/></p>
   10942             </td>
   10943 
   10944             <td class="entry_units">
   10945             </td>
   10946 
   10947             <td class="entry_range">
   10948               <p><a href="#static_android.hotPixel.availableHotPixelModes">android.<wbr/>hot<wbr/>Pixel.<wbr/>available<wbr/>Hot<wbr/>Pixel<wbr/>Modes</a></p>
   10949             </td>
   10950 
   10951             <td class="entry_hal_version">
   10952               <p>3.<wbr/>2</p>
   10953             </td>
   10954 
   10955             <td class="entry_tags">
   10956               <ul class="entry_tags">
   10957                   <li><a href="#tag_V1">V1</a></li>
   10958                   <li><a href="#tag_RAW">RAW</a></li>
   10959               </ul>
   10960             </td>
   10961 
   10962           </tr>
   10963           <tr class="entries_header">
   10964             <th class="th_details" colspan="6">Details</th>
   10965           </tr>
   10966           <tr class="entry_cont">
   10967             <td class="entry_details" colspan="6">
   10968               <p>Hotpixel correction interpolates out,<wbr/> or otherwise removes,<wbr/> pixels
   10969 that do not accurately measure the incoming light (i.<wbr/>e.<wbr/> pixels that
   10970 are stuck at an arbitrary value or are oversensitive).<wbr/></p>
   10971             </td>
   10972           </tr>
   10973 
   10974 
   10975           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   10976            <!-- end of entry -->
   10977         
   10978         
   10979 
   10980       <!-- end of kind -->
   10981       </tbody>
   10982       <tr><td colspan="7" class="kind">static</td></tr>
   10983 
   10984       <thead class="entries_header">
   10985         <tr>
   10986           <th class="th_name">Property Name</th>
   10987           <th class="th_type">Type</th>
   10988           <th class="th_description">Description</th>
   10989           <th class="th_units">Units</th>
   10990           <th class="th_range">Range</th>
   10991           <th class="th_hal_version">Initial HIDL HAL version</th>
   10992           <th class="th_tags">Tags</th>
   10993         </tr>
   10994       </thead>
   10995 
   10996       <tbody>
   10997 
   10998         
   10999 
   11000         
   11001 
   11002         
   11003 
   11004         
   11005 
   11006                 
   11007           <tr class="entry" id="static_android.hotPixel.availableHotPixelModes">
   11008             <td class="entry_name
   11009              " rowspan="5">
   11010               android.<wbr/>hot<wbr/>Pixel.<wbr/>available<wbr/>Hot<wbr/>Pixel<wbr/>Modes
   11011             </td>
   11012             <td class="entry_type">
   11013                 <span class="entry_type_name">byte</span>
   11014                 <span class="entry_type_container">x</span>
   11015 
   11016                 <span class="entry_type_array">
   11017                   n
   11018                 </span>
   11019               <span class="entry_type_visibility"> [public as enumList]</span>
   11020 
   11021 
   11022 
   11023 
   11024                 <div class="entry_type_notes">list of enums</div>
   11025 
   11026 
   11027             </td> <!-- entry_type -->
   11028 
   11029             <td class="entry_description">
   11030               <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
   11031 camera device.<wbr/></p>
   11032             </td>
   11033 
   11034             <td class="entry_units">
   11035             </td>
   11036 
   11037             <td class="entry_range">
   11038               <p>Any value listed in <a href="#controls_android.hotPixel.mode">android.<wbr/>hot<wbr/>Pixel.<wbr/>mode</a></p>
   11039             </td>
   11040 
   11041             <td class="entry_hal_version">
   11042               <p>3.<wbr/>2</p>
   11043             </td>
   11044 
   11045             <td class="entry_tags">
   11046               <ul class="entry_tags">
   11047                   <li><a href="#tag_V1">V1</a></li>
   11048                   <li><a href="#tag_RAW">RAW</a></li>
   11049               </ul>
   11050             </td>
   11051 
   11052           </tr>
   11053           <tr class="entries_header">
   11054             <th class="th_details" colspan="6">Details</th>
   11055           </tr>
   11056           <tr class="entry_cont">
   11057             <td class="entry_details" colspan="6">
   11058               <p>FULL mode camera devices will always support FAST.<wbr/></p>
   11059             </td>
   11060           </tr>
   11061 
   11062           <tr class="entries_header">
   11063             <th class="th_details" colspan="6">HAL Implementation Details</th>
   11064           </tr>
   11065           <tr class="entry_cont">
   11066             <td class="entry_details" colspan="6">
   11067               <p>To avoid performance issues,<wbr/> there will be significantly fewer hot
   11068 pixels than actual pixels on the camera sensor.<wbr/>
   11069 HAL must support both FAST and HIGH_<wbr/>QUALITY if hot pixel correction control is available
   11070 on the camera device,<wbr/> but the underlying implementation can be the same for both modes.<wbr/>
   11071 That is,<wbr/> if the highest quality implementation on the camera device does not slow down
   11072 capture rate,<wbr/> then FAST and HIGH_<wbr/>QUALITY will generate the same output.<wbr/></p>
   11073             </td>
   11074           </tr>
   11075 
   11076           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   11077            <!-- end of entry -->
   11078         
   11079         
   11080 
   11081       <!-- end of kind -->
   11082       </tbody>
   11083       <tr><td colspan="7" class="kind">dynamic</td></tr>
   11084 
   11085       <thead class="entries_header">
   11086         <tr>
   11087           <th class="th_name">Property Name</th>
   11088           <th class="th_type">Type</th>
   11089           <th class="th_description">Description</th>
   11090           <th class="th_units">Units</th>
   11091           <th class="th_range">Range</th>
   11092           <th class="th_hal_version">Initial HIDL HAL version</th>
   11093           <th class="th_tags">Tags</th>
   11094         </tr>
   11095       </thead>
   11096 
   11097       <tbody>
   11098 
   11099         
   11100 
   11101         
   11102 
   11103         
   11104 
   11105         
   11106 
   11107                 
   11108           <tr class="entry" id="dynamic_android.hotPixel.mode">
   11109             <td class="entry_name
   11110              " rowspan="3">
   11111               android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
   11112             </td>
   11113             <td class="entry_type">
   11114                 <span class="entry_type_name entry_type_name_enum">byte</span>
   11115 
   11116               <span class="entry_type_visibility"> [public]</span>
   11117 
   11118 
   11119 
   11120 
   11121 
   11122                 <ul class="entry_type_enum">
   11123                   <li>
   11124                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   11125                     <span class="entry_type_enum_notes"><p>No hot pixel correction is applied.<wbr/></p>
   11126 <p>The frame rate must not be reduced relative to sensor raw output
   11127 for this option.<wbr/></p>
   11128 <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>
   11129                   </li>
   11130                   <li>
   11131                     <span class="entry_type_enum_name">FAST (v3.2)</span>
   11132                     <span class="entry_type_enum_notes"><p>Hot pixel correction is applied,<wbr/> without reducing frame
   11133 rate relative to sensor raw output.<wbr/></p>
   11134 <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>
   11135                   </li>
   11136                   <li>
   11137                     <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
   11138                     <span class="entry_type_enum_notes"><p>High-quality hot pixel correction is applied,<wbr/> at a cost
   11139 of possibly reduced frame rate relative to sensor raw output.<wbr/></p>
   11140 <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>
   11141                   </li>
   11142                 </ul>
   11143 
   11144             </td> <!-- entry_type -->
   11145 
   11146             <td class="entry_description">
   11147               <p>Operational mode for hot pixel correction.<wbr/></p>
   11148             </td>
   11149 
   11150             <td class="entry_units">
   11151             </td>
   11152 
   11153             <td class="entry_range">
   11154               <p><a href="#static_android.hotPixel.availableHotPixelModes">android.<wbr/>hot<wbr/>Pixel.<wbr/>available<wbr/>Hot<wbr/>Pixel<wbr/>Modes</a></p>
   11155             </td>
   11156 
   11157             <td class="entry_hal_version">
   11158               <p>3.<wbr/>2</p>
   11159             </td>
   11160 
   11161             <td class="entry_tags">
   11162               <ul class="entry_tags">
   11163                   <li><a href="#tag_V1">V1</a></li>
   11164                   <li><a href="#tag_RAW">RAW</a></li>
   11165               </ul>
   11166             </td>
   11167 
   11168           </tr>
   11169           <tr class="entries_header">
   11170             <th class="th_details" colspan="6">Details</th>
   11171           </tr>
   11172           <tr class="entry_cont">
   11173             <td class="entry_details" colspan="6">
   11174               <p>Hotpixel correction interpolates out,<wbr/> or otherwise removes,<wbr/> pixels
   11175 that do not accurately measure the incoming light (i.<wbr/>e.<wbr/> pixels that
   11176 are stuck at an arbitrary value or are oversensitive).<wbr/></p>
   11177             </td>
   11178           </tr>
   11179 
   11180 
   11181           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   11182            <!-- end of entry -->
   11183         
   11184         
   11185 
   11186       <!-- end of kind -->
   11187       </tbody>
   11188 
   11189   <!-- end of section -->
   11190   <tr><td colspan="7" id="section_jpeg" class="section">jpeg</td></tr>
   11191 
   11192 
   11193       <tr><td colspan="7" class="kind">controls</td></tr>
   11194 
   11195       <thead class="entries_header">
   11196         <tr>
   11197           <th class="th_name">Property Name</th>
   11198           <th class="th_type">Type</th>
   11199           <th class="th_description">Description</th>
   11200           <th class="th_units">Units</th>
   11201           <th class="th_range">Range</th>
   11202           <th class="th_hal_version">Initial HIDL HAL version</th>
   11203           <th class="th_tags">Tags</th>
   11204         </tr>
   11205       </thead>
   11206 
   11207       <tbody>
   11208 
   11209         
   11210 
   11211         
   11212 
   11213         
   11214 
   11215         
   11216 
   11217                 
   11218           <tr class="entry" id="controls_android.jpeg.gpsLocation">
   11219             <td class="entry_name
   11220              " rowspan="3">
   11221               android.<wbr/>jpeg.<wbr/>gps<wbr/>Location
   11222             </td>
   11223             <td class="entry_type">
   11224                 <span class="entry_type_name">byte</span>
   11225 
   11226               <span class="entry_type_visibility"> [java_public as location]</span>
   11227 
   11228               <span class="entry_type_synthetic">[synthetic] </span>
   11229 
   11230               <span class="entry_type_hwlevel">[legacy] </span>
   11231 
   11232 
   11233 
   11234 
   11235             </td> <!-- entry_type -->
   11236 
   11237             <td class="entry_description">
   11238               <p>A location object to use when generating image GPS metadata.<wbr/></p>
   11239             </td>
   11240 
   11241             <td class="entry_units">
   11242             </td>
   11243 
   11244             <td class="entry_range">
   11245             </td>
   11246 
   11247             <td class="entry_hal_version">
   11248               <p>3.<wbr/>2</p>
   11249             </td>
   11250 
   11251             <td class="entry_tags">
   11252             </td>
   11253 
   11254           </tr>
   11255           <tr class="entries_header">
   11256             <th class="th_details" colspan="6">Details</th>
   11257           </tr>
   11258           <tr class="entry_cont">
   11259             <td class="entry_details" colspan="6">
   11260               <p>Setting a location object in a request will include the GPS coordinates of the location
   11261 into any JPEG images captured based on the request.<wbr/> These coordinates can then be
   11262 viewed by anyone who receives the JPEG image.<wbr/></p>
   11263             </td>
   11264           </tr>
   11265 
   11266 
   11267           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   11268            <!-- end of entry -->
   11269         
   11270                 
   11271           <tr class="entry" id="controls_android.jpeg.gpsCoordinates">
   11272             <td class="entry_name
   11273              " rowspan="1">
   11274               android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
   11275             </td>
   11276             <td class="entry_type">
   11277                 <span class="entry_type_name">double</span>
   11278                 <span class="entry_type_container">x</span>
   11279 
   11280                 <span class="entry_type_array">
   11281                   3
   11282                 </span>
   11283               <span class="entry_type_visibility"> [ndk_public]</span>
   11284 
   11285 
   11286               <span class="entry_type_hwlevel">[legacy] </span>
   11287 
   11288 
   11289                 <div class="entry_type_notes">latitude,<wbr/> longitude,<wbr/> altitude.<wbr/> First two in degrees,<wbr/> the third in meters</div>
   11290 
   11291 
   11292             </td> <!-- entry_type -->
   11293 
   11294             <td class="entry_description">
   11295               <p>GPS coordinates to include in output JPEG
   11296 EXIF.<wbr/></p>
   11297             </td>
   11298 
   11299             <td class="entry_units">
   11300             </td>
   11301 
   11302             <td class="entry_range">
   11303               <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
   11304             </td>
   11305 
   11306             <td class="entry_hal_version">
   11307               <p>3.<wbr/>2</p>
   11308             </td>
   11309 
   11310             <td class="entry_tags">
   11311               <ul class="entry_tags">
   11312                   <li><a href="#tag_BC">BC</a></li>
   11313               </ul>
   11314             </td>
   11315 
   11316           </tr>
   11317 
   11318 
   11319           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   11320            <!-- end of entry -->
   11321         
   11322                 
   11323           <tr class="entry" id="controls_android.jpeg.gpsProcessingMethod">
   11324             <td class="entry_name
   11325              " rowspan="1">
   11326               android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
   11327             </td>
   11328             <td class="entry_type">
   11329                 <span class="entry_type_name">byte</span>
   11330 
   11331               <span class="entry_type_visibility"> [ndk_public as string]</span>
   11332 
   11333 
   11334               <span class="entry_type_hwlevel">[legacy] </span>
   11335 
   11336 
   11337 
   11338 
   11339             </td> <!-- entry_type -->
   11340 
   11341             <td class="entry_description">
   11342               <p>32 characters describing GPS algorithm to
   11343 include in EXIF.<wbr/></p>
   11344             </td>
   11345 
   11346             <td class="entry_units">
   11347               UTF-8 null-terminated string
   11348             </td>
   11349 
   11350             <td class="entry_range">
   11351             </td>
   11352 
   11353             <td class="entry_hal_version">
   11354               <p>3.<wbr/>2</p>
   11355             </td>
   11356 
   11357             <td class="entry_tags">
   11358               <ul class="entry_tags">
   11359                   <li><a href="#tag_BC">BC</a></li>
   11360               </ul>
   11361             </td>
   11362 
   11363           </tr>
   11364 
   11365 
   11366           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   11367            <!-- end of entry -->
   11368         
   11369                 
   11370           <tr class="entry" id="controls_android.jpeg.gpsTimestamp">
   11371             <td class="entry_name
   11372              " rowspan="1">
   11373               android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
   11374             </td>
   11375             <td class="entry_type">
   11376                 <span class="entry_type_name">int64</span>
   11377 
   11378               <span class="entry_type_visibility"> [ndk_public]</span>
   11379 
   11380 
   11381               <span class="entry_type_hwlevel">[legacy] </span>
   11382 
   11383 
   11384 
   11385 
   11386             </td> <!-- entry_type -->
   11387 
   11388             <td class="entry_description">
   11389               <p>Time GPS fix was made to include in
   11390 EXIF.<wbr/></p>
   11391             </td>
   11392 
   11393             <td class="entry_units">
   11394               UTC in seconds since January 1,<wbr/> 1970
   11395             </td>
   11396 
   11397             <td class="entry_range">
   11398             </td>
   11399 
   11400             <td class="entry_hal_version">
   11401               <p>3.<wbr/>2</p>
   11402             </td>
   11403 
   11404             <td class="entry_tags">
   11405               <ul class="entry_tags">
   11406                   <li><a href="#tag_BC">BC</a></li>
   11407               </ul>
   11408             </td>
   11409 
   11410           </tr>
   11411 
   11412 
   11413           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   11414            <!-- end of entry -->
   11415         
   11416                 
   11417           <tr class="entry" id="controls_android.jpeg.orientation">
   11418             <td class="entry_name
   11419              " rowspan="3">
   11420               android.<wbr/>jpeg.<wbr/>orientation
   11421             </td>
   11422             <td class="entry_type">
   11423                 <span class="entry_type_name">int32</span>
   11424 
   11425               <span class="entry_type_visibility"> [public]</span>
   11426 
   11427 
   11428               <span class="entry_type_hwlevel">[legacy] </span>
   11429 
   11430 
   11431 
   11432 
   11433             </td> <!-- entry_type -->
   11434 
   11435             <td class="entry_description">
   11436               <p>The orientation for a JPEG image.<wbr/></p>
   11437             </td>
   11438 
   11439             <td class="entry_units">
   11440               Degrees in multiples of 90
   11441             </td>
   11442 
   11443             <td class="entry_range">
   11444               <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
   11445             </td>
   11446 
   11447             <td class="entry_hal_version">
   11448               <p>3.<wbr/>2</p>
   11449             </td>
   11450 
   11451             <td class="entry_tags">
   11452               <ul class="entry_tags">
   11453                   <li><a href="#tag_BC">BC</a></li>
   11454               </ul>
   11455             </td>
   11456 
   11457           </tr>
   11458           <tr class="entries_header">
   11459             <th class="th_details" colspan="6">Details</th>
   11460           </tr>
   11461           <tr class="entry_cont">
   11462             <td class="entry_details" colspan="6">
   11463               <p>The clockwise rotation angle in degrees,<wbr/> relative to the orientation
   11464 to the camera,<wbr/> that the JPEG picture needs to be rotated by,<wbr/> to be viewed
   11465 upright.<wbr/></p>
   11466 <p>Camera devices may either encode this value into the JPEG EXIF header,<wbr/> or
   11467 rotate the image data to match this orientation.<wbr/> When the image data is rotated,<wbr/>
   11468 the thumbnail data will also be rotated.<wbr/></p>
   11469 <p>Note that this orientation is relative to the orientation of the camera sensor,<wbr/> given
   11470 by <a href="#static_android.sensor.orientation">android.<wbr/>sensor.<wbr/>orientation</a>.<wbr/></p>
   11471 <p>To translate from the device orientation given by the Android sensor APIs for camera
   11472 sensors which are not EXTERNAL,<wbr/> the following sample code may be used:</p>
   11473 <pre><code>private int getJpegOrientation(CameraCharacteristics c,<wbr/> int deviceOrientation) {
   11474     if (deviceOrientation == android.<wbr/>view.<wbr/>Orientation<wbr/>Event<wbr/>Listener.<wbr/>ORIENTATION_<wbr/>UNKNOWN) return 0;
   11475     int sensorOrientation = c.<wbr/>get(Camera<wbr/>Characteristics.<wbr/>SENSOR_<wbr/>ORIENTATION);
   11476 
   11477     //<wbr/> Round device orientation to a multiple of 90
   11478     deviceOrientation = (deviceOrientation + 45) /<wbr/> 90 * 90;
   11479 
   11480     //<wbr/> Reverse device orientation for front-facing cameras
   11481     boolean facingFront = c.<wbr/>get(Camera<wbr/>Characteristics.<wbr/>LENS_<wbr/>FACING) == Camera<wbr/>Characteristics.<wbr/>LENS_<wbr/>FACING_<wbr/>FRONT;
   11482     if (facingFront) deviceOrientation = -deviceOrientation;
   11483 
   11484     //<wbr/> Calculate desired JPEG orientation relative to camera orientation to make
   11485     //<wbr/> the image upright relative to the device orientation
   11486     int jpegOrientation = (sensorOrientation + deviceOrientation + 360) % 360;
   11487 
   11488     return jpegOrientation;
   11489 }
   11490 </code></pre>
   11491 <p>For EXTERNAL cameras the sensor orientation will always be set to 0 and the facing will
   11492 also be set to EXTERNAL.<wbr/> The above code is not relevant in such case.<wbr/></p>
   11493             </td>
   11494           </tr>
   11495 
   11496 
   11497           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   11498            <!-- end of entry -->
   11499         
   11500                 
   11501           <tr class="entry" id="controls_android.jpeg.quality">
   11502             <td class="entry_name
   11503              " rowspan="3">
   11504               android.<wbr/>jpeg.<wbr/>quality
   11505             </td>
   11506             <td class="entry_type">
   11507                 <span class="entry_type_name">byte</span>
   11508 
   11509               <span class="entry_type_visibility"> [public]</span>
   11510 
   11511 
   11512               <span class="entry_type_hwlevel">[legacy] </span>
   11513 
   11514 
   11515 
   11516 
   11517             </td> <!-- entry_type -->
   11518 
   11519             <td class="entry_description">
   11520               <p>Compression quality of the final JPEG
   11521 image.<wbr/></p>
   11522             </td>
   11523 
   11524             <td class="entry_units">
   11525             </td>
   11526 
   11527             <td class="entry_range">
   11528               <p>1-100; larger is higher quality</p>
   11529             </td>
   11530 
   11531             <td class="entry_hal_version">
   11532               <p>3.<wbr/>2</p>
   11533             </td>
   11534 
   11535             <td class="entry_tags">
   11536               <ul class="entry_tags">
   11537                   <li><a href="#tag_BC">BC</a></li>
   11538               </ul>
   11539             </td>
   11540 
   11541           </tr>
   11542           <tr class="entries_header">
   11543             <th class="th_details" colspan="6">Details</th>
   11544           </tr>
   11545           <tr class="entry_cont">
   11546             <td class="entry_details" colspan="6">
   11547               <p>85-95 is typical usage range.<wbr/></p>
   11548             </td>
   11549           </tr>
   11550 
   11551 
   11552           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   11553            <!-- end of entry -->
   11554         
   11555                 
   11556           <tr class="entry" id="controls_android.jpeg.thumbnailQuality">
   11557             <td class="entry_name
   11558              " rowspan="1">
   11559               android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
   11560             </td>
   11561             <td class="entry_type">
   11562                 <span class="entry_type_name">byte</span>
   11563 
   11564               <span class="entry_type_visibility"> [public]</span>
   11565 
   11566 
   11567               <span class="entry_type_hwlevel">[legacy] </span>
   11568 
   11569 
   11570 
   11571 
   11572             </td> <!-- entry_type -->
   11573 
   11574             <td class="entry_description">
   11575               <p>Compression quality of JPEG
   11576 thumbnail.<wbr/></p>
   11577             </td>
   11578 
   11579             <td class="entry_units">
   11580             </td>
   11581 
   11582             <td class="entry_range">
   11583               <p>1-100; larger is higher quality</p>
   11584             </td>
   11585 
   11586             <td class="entry_hal_version">
   11587               <p>3.<wbr/>2</p>
   11588             </td>
   11589 
   11590             <td class="entry_tags">
   11591               <ul class="entry_tags">
   11592                   <li><a href="#tag_BC">BC</a></li>
   11593               </ul>
   11594             </td>
   11595 
   11596           </tr>
   11597 
   11598 
   11599           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   11600            <!-- end of entry -->
   11601         
   11602                 
   11603           <tr class="entry" id="controls_android.jpeg.thumbnailSize">
   11604             <td class="entry_name
   11605              " rowspan="5">
   11606               android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
   11607             </td>
   11608             <td class="entry_type">
   11609                 <span class="entry_type_name">int32</span>
   11610                 <span class="entry_type_container">x</span>
   11611 
   11612                 <span class="entry_type_array">
   11613                   2
   11614                 </span>
   11615               <span class="entry_type_visibility"> [public as size]</span>
   11616 
   11617 
   11618               <span class="entry_type_hwlevel">[legacy] </span>
   11619 
   11620 
   11621 
   11622 
   11623             </td> <!-- entry_type -->
   11624 
   11625             <td class="entry_description">
   11626               <p>Resolution of embedded JPEG thumbnail.<wbr/></p>
   11627             </td>
   11628 
   11629             <td class="entry_units">
   11630             </td>
   11631 
   11632             <td class="entry_range">
   11633               <p><a href="#static_android.jpeg.availableThumbnailSizes">android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes</a></p>
   11634             </td>
   11635 
   11636             <td class="entry_hal_version">
   11637               <p>3.<wbr/>2</p>
   11638             </td>
   11639 
   11640             <td class="entry_tags">
   11641               <ul class="entry_tags">
   11642                   <li><a href="#tag_BC">BC</a></li>
   11643               </ul>
   11644             </td>
   11645 
   11646           </tr>
   11647           <tr class="entries_header">
   11648             <th class="th_details" colspan="6">Details</th>
   11649           </tr>
   11650           <tr class="entry_cont">
   11651             <td class="entry_details" colspan="6">
   11652               <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
   11653 but the captured JPEG will still be a valid image.<wbr/></p>
   11654 <p>For best results,<wbr/> when issuing a request for a JPEG image,<wbr/> the thumbnail size selected
   11655 should have the same aspect ratio as the main JPEG output.<wbr/></p>
   11656 <p>If the thumbnail image aspect ratio differs from the JPEG primary image aspect
   11657 ratio,<wbr/> the camera device creates the thumbnail by cropping it from the primary image.<wbr/>
   11658 For example,<wbr/> if the primary image has 4:3 aspect ratio,<wbr/> the thumbnail image has
   11659 16:9 aspect ratio,<wbr/> the primary image will be cropped vertically (letterbox) to
   11660 generate the thumbnail image.<wbr/> The thumbnail image will always have a smaller Field
   11661 Of View (FOV) than the primary image when aspect ratios differ.<wbr/></p>
   11662 <p>When an <a href="#controls_android.jpeg.orientation">android.<wbr/>jpeg.<wbr/>orientation</a> of non-zero degree is requested,<wbr/>
   11663 the camera device will handle thumbnail rotation in one of the following ways:</p>
   11664 <ul>
   11665 <li>Set the <a href="https://developer.android.com/reference/android/media/ExifInterface.html#TAG_ORIENTATION">EXIF orientation flag</a>
   11666   and keep jpeg and thumbnail image data unrotated.<wbr/></li>
   11667 <li>Rotate the jpeg and thumbnail image data and not set
   11668   <a href="https://developer.android.com/reference/android/media/ExifInterface.html#TAG_ORIENTATION">EXIF orientation flag</a>.<wbr/> In this
   11669   case,<wbr/> LIMITED or FULL hardware level devices will report rotated thumnail size in
   11670   capture result,<wbr/> so the width and height will be interchanged if 90 or 270 degree
   11671   orientation is requested.<wbr/> LEGACY device will always report unrotated thumbnail
   11672   size.<wbr/></li>
   11673 </ul>
   11674             </td>
   11675           </tr>
   11676 
   11677           <tr class="entries_header">
   11678             <th class="th_details" colspan="6">HAL Implementation Details</th>
   11679           </tr>
   11680           <tr class="entry_cont">
   11681             <td class="entry_details" colspan="6">
   11682               <p>The HAL must not squeeze or stretch the downscaled primary image to generate thumbnail.<wbr/>
   11683 The cropping must be done on the primary jpeg image rather than the sensor active array.<wbr/>
   11684 The stream cropping rule specified by "S5.<wbr/> Cropping" in camera3.<wbr/>h doesn't apply to the
   11685 thumbnail image cropping.<wbr/></p>
   11686             </td>
   11687           </tr>
   11688 
   11689           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   11690            <!-- end of entry -->
   11691         
   11692         
   11693 
   11694       <!-- end of kind -->
   11695       </tbody>
   11696       <tr><td colspan="7" class="kind">static</td></tr>
   11697 
   11698       <thead class="entries_header">
   11699         <tr>
   11700           <th class="th_name">Property Name</th>
   11701           <th class="th_type">Type</th>
   11702           <th class="th_description">Description</th>
   11703           <th class="th_units">Units</th>
   11704           <th class="th_range">Range</th>
   11705           <th class="th_hal_version">Initial HIDL HAL version</th>
   11706           <th class="th_tags">Tags</th>
   11707         </tr>
   11708       </thead>
   11709 
   11710       <tbody>
   11711 
   11712         
   11713 
   11714         
   11715 
   11716         
   11717 
   11718         
   11719 
   11720                 
   11721           <tr class="entry" id="static_android.jpeg.availableThumbnailSizes">
   11722             <td class="entry_name
   11723              " rowspan="3">
   11724               android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes
   11725             </td>
   11726             <td class="entry_type">
   11727                 <span class="entry_type_name">int32</span>
   11728                 <span class="entry_type_container">x</span>
   11729 
   11730                 <span class="entry_type_array">
   11731                   2 x n
   11732                 </span>
   11733               <span class="entry_type_visibility"> [public as size]</span>
   11734 
   11735 
   11736               <span class="entry_type_hwlevel">[legacy] </span>
   11737 
   11738 
   11739 
   11740 
   11741             </td> <!-- entry_type -->
   11742 
   11743             <td class="entry_description">
   11744               <p>List of JPEG thumbnail sizes for <a href="#controls_android.jpeg.thumbnailSize">android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size</a> supported by this
   11745 camera device.<wbr/></p>
   11746             </td>
   11747 
   11748             <td class="entry_units">
   11749             </td>
   11750 
   11751             <td class="entry_range">
   11752             </td>
   11753 
   11754             <td class="entry_hal_version">
   11755               <p>3.<wbr/>2</p>
   11756             </td>
   11757 
   11758             <td class="entry_tags">
   11759               <ul class="entry_tags">
   11760                   <li><a href="#tag_BC">BC</a></li>
   11761               </ul>
   11762             </td>
   11763 
   11764           </tr>
   11765           <tr class="entries_header">
   11766             <th class="th_details" colspan="6">Details</th>
   11767           </tr>
   11768           <tr class="entry_cont">
   11769             <td class="entry_details" colspan="6">
   11770               <p>This list will include at least one non-zero resolution,<wbr/> plus <code>(0,<wbr/>0)</code> for indicating no
   11771 thumbnail should be generated.<wbr/></p>
   11772 <p>Below condiditions will be satisfied for this size list:</p>
   11773 <ul>
   11774 <li>The sizes will be sorted by increasing pixel area (width x height).<wbr/>
   11775 If several resolutions have the same area,<wbr/> they will be sorted by increasing width.<wbr/></li>
   11776 <li>The aspect ratio of the largest thumbnail size will be same as the
   11777 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/>
   11778 The largest size is defined as the size that has the largest pixel area
   11779 in a given size list.<wbr/></li>
   11780 <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
   11781 one corresponding size that has the same aspect ratio in availableThumbnailSizes,<wbr/>
   11782 and vice versa.<wbr/></li>
   11783 <li>All non-<code>(0,<wbr/> 0)</code> sizes will have non-zero widths and heights.<wbr/></li>
   11784 </ul>
   11785             </td>
   11786           </tr>
   11787 
   11788 
   11789           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   11790            <!-- end of entry -->
   11791         
   11792                 
   11793           <tr class="entry" id="static_android.jpeg.maxSize">
   11794             <td class="entry_name
   11795              " rowspan="3">
   11796               android.<wbr/>jpeg.<wbr/>max<wbr/>Size
   11797             </td>
   11798             <td class="entry_type">
   11799                 <span class="entry_type_name">int32</span>
   11800 
   11801               <span class="entry_type_visibility"> [system]</span>
   11802 
   11803 
   11804 
   11805 
   11806 
   11807 
   11808             </td> <!-- entry_type -->
   11809 
   11810             <td class="entry_description">
   11811               <p>Maximum size in bytes for the compressed
   11812 JPEG buffer</p>
   11813             </td>
   11814 
   11815             <td class="entry_units">
   11816             </td>
   11817 
   11818             <td class="entry_range">
   11819               <p>Must be large enough to fit any JPEG produced by
   11820 the camera</p>
   11821             </td>
   11822 
   11823             <td class="entry_hal_version">
   11824               <p>3.<wbr/>2</p>
   11825             </td>
   11826 
   11827             <td class="entry_tags">
   11828             </td>
   11829 
   11830           </tr>
   11831           <tr class="entries_header">
   11832             <th class="th_details" colspan="6">Details</th>
   11833           </tr>
   11834           <tr class="entry_cont">
   11835             <td class="entry_details" colspan="6">
   11836               <p>This is used for sizing the gralloc buffers for
   11837 JPEG</p>
   11838             </td>
   11839           </tr>
   11840 
   11841 
   11842           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   11843            <!-- end of entry -->
   11844         
   11845         
   11846 
   11847       <!-- end of kind -->
   11848       </tbody>
   11849       <tr><td colspan="7" class="kind">dynamic</td></tr>
   11850 
   11851       <thead class="entries_header">
   11852         <tr>
   11853           <th class="th_name">Property Name</th>
   11854           <th class="th_type">Type</th>
   11855           <th class="th_description">Description</th>
   11856           <th class="th_units">Units</th>
   11857           <th class="th_range">Range</th>
   11858           <th class="th_hal_version">Initial HIDL HAL version</th>
   11859           <th class="th_tags">Tags</th>
   11860         </tr>
   11861       </thead>
   11862 
   11863       <tbody>
   11864 
   11865         
   11866 
   11867         
   11868 
   11869         
   11870 
   11871         
   11872 
   11873                 
   11874           <tr class="entry" id="dynamic_android.jpeg.gpsLocation">
   11875             <td class="entry_name
   11876              " rowspan="3">
   11877               android.<wbr/>jpeg.<wbr/>gps<wbr/>Location
   11878             </td>
   11879             <td class="entry_type">
   11880                 <span class="entry_type_name">byte</span>
   11881 
   11882               <span class="entry_type_visibility"> [java_public as location]</span>
   11883 
   11884               <span class="entry_type_synthetic">[synthetic] </span>
   11885 
   11886               <span class="entry_type_hwlevel">[legacy] </span>
   11887 
   11888 
   11889 
   11890 
   11891             </td> <!-- entry_type -->
   11892 
   11893             <td class="entry_description">
   11894               <p>A location object to use when generating image GPS metadata.<wbr/></p>
   11895             </td>
   11896 
   11897             <td class="entry_units">
   11898             </td>
   11899 
   11900             <td class="entry_range">
   11901             </td>
   11902 
   11903             <td class="entry_hal_version">
   11904               <p>3.<wbr/>2</p>
   11905             </td>
   11906 
   11907             <td class="entry_tags">
   11908             </td>
   11909 
   11910           </tr>
   11911           <tr class="entries_header">
   11912             <th class="th_details" colspan="6">Details</th>
   11913           </tr>
   11914           <tr class="entry_cont">
   11915             <td class="entry_details" colspan="6">
   11916               <p>Setting a location object in a request will include the GPS coordinates of the location
   11917 into any JPEG images captured based on the request.<wbr/> These coordinates can then be
   11918 viewed by anyone who receives the JPEG image.<wbr/></p>
   11919             </td>
   11920           </tr>
   11921 
   11922 
   11923           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   11924            <!-- end of entry -->
   11925         
   11926                 
   11927           <tr class="entry" id="dynamic_android.jpeg.gpsCoordinates">
   11928             <td class="entry_name
   11929              " rowspan="1">
   11930               android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
   11931             </td>
   11932             <td class="entry_type">
   11933                 <span class="entry_type_name">double</span>
   11934                 <span class="entry_type_container">x</span>
   11935 
   11936                 <span class="entry_type_array">
   11937                   3
   11938                 </span>
   11939               <span class="entry_type_visibility"> [ndk_public]</span>
   11940 
   11941 
   11942               <span class="entry_type_hwlevel">[legacy] </span>
   11943 
   11944 
   11945                 <div class="entry_type_notes">latitude,<wbr/> longitude,<wbr/> altitude.<wbr/> First two in degrees,<wbr/> the third in meters</div>
   11946 
   11947 
   11948             </td> <!-- entry_type -->
   11949 
   11950             <td class="entry_description">
   11951               <p>GPS coordinates to include in output JPEG
   11952 EXIF.<wbr/></p>
   11953             </td>
   11954 
   11955             <td class="entry_units">
   11956             </td>
   11957 
   11958             <td class="entry_range">
   11959               <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
   11960             </td>
   11961 
   11962             <td class="entry_hal_version">
   11963               <p>3.<wbr/>2</p>
   11964             </td>
   11965 
   11966             <td class="entry_tags">
   11967               <ul class="entry_tags">
   11968                   <li><a href="#tag_BC">BC</a></li>
   11969               </ul>
   11970             </td>
   11971 
   11972           </tr>
   11973 
   11974 
   11975           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   11976            <!-- end of entry -->
   11977         
   11978                 
   11979           <tr class="entry" id="dynamic_android.jpeg.gpsProcessingMethod">
   11980             <td class="entry_name
   11981              " rowspan="1">
   11982               android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
   11983             </td>
   11984             <td class="entry_type">
   11985                 <span class="entry_type_name">byte</span>
   11986 
   11987               <span class="entry_type_visibility"> [ndk_public as string]</span>
   11988 
   11989 
   11990               <span class="entry_type_hwlevel">[legacy] </span>
   11991 
   11992 
   11993 
   11994 
   11995             </td> <!-- entry_type -->
   11996 
   11997             <td class="entry_description">
   11998               <p>32 characters describing GPS algorithm to
   11999 include in EXIF.<wbr/></p>
   12000             </td>
   12001 
   12002             <td class="entry_units">
   12003               UTF-8 null-terminated string
   12004             </td>
   12005 
   12006             <td class="entry_range">
   12007             </td>
   12008 
   12009             <td class="entry_hal_version">
   12010               <p>3.<wbr/>2</p>
   12011             </td>
   12012 
   12013             <td class="entry_tags">
   12014               <ul class="entry_tags">
   12015                   <li><a href="#tag_BC">BC</a></li>
   12016               </ul>
   12017             </td>
   12018 
   12019           </tr>
   12020 
   12021 
   12022           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   12023            <!-- end of entry -->
   12024         
   12025                 
   12026           <tr class="entry" id="dynamic_android.jpeg.gpsTimestamp">
   12027             <td class="entry_name
   12028              " rowspan="1">
   12029               android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
   12030             </td>
   12031             <td class="entry_type">
   12032                 <span class="entry_type_name">int64</span>
   12033 
   12034               <span class="entry_type_visibility"> [ndk_public]</span>
   12035 
   12036 
   12037               <span class="entry_type_hwlevel">[legacy] </span>
   12038 
   12039 
   12040 
   12041 
   12042             </td> <!-- entry_type -->
   12043 
   12044             <td class="entry_description">
   12045               <p>Time GPS fix was made to include in
   12046 EXIF.<wbr/></p>
   12047             </td>
   12048 
   12049             <td class="entry_units">
   12050               UTC in seconds since January 1,<wbr/> 1970
   12051             </td>
   12052 
   12053             <td class="entry_range">
   12054             </td>
   12055 
   12056             <td class="entry_hal_version">
   12057               <p>3.<wbr/>2</p>
   12058             </td>
   12059 
   12060             <td class="entry_tags">
   12061               <ul class="entry_tags">
   12062                   <li><a href="#tag_BC">BC</a></li>
   12063               </ul>
   12064             </td>
   12065 
   12066           </tr>
   12067 
   12068 
   12069           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   12070            <!-- end of entry -->
   12071         
   12072                 
   12073           <tr class="entry" id="dynamic_android.jpeg.orientation">
   12074             <td class="entry_name
   12075              " rowspan="3">
   12076               android.<wbr/>jpeg.<wbr/>orientation
   12077             </td>
   12078             <td class="entry_type">
   12079                 <span class="entry_type_name">int32</span>
   12080 
   12081               <span class="entry_type_visibility"> [public]</span>
   12082 
   12083 
   12084               <span class="entry_type_hwlevel">[legacy] </span>
   12085 
   12086 
   12087 
   12088 
   12089             </td> <!-- entry_type -->
   12090 
   12091             <td class="entry_description">
   12092               <p>The orientation for a JPEG image.<wbr/></p>
   12093             </td>
   12094 
   12095             <td class="entry_units">
   12096               Degrees in multiples of 90
   12097             </td>
   12098 
   12099             <td class="entry_range">
   12100               <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
   12101             </td>
   12102 
   12103             <td class="entry_hal_version">
   12104               <p>3.<wbr/>2</p>
   12105             </td>
   12106 
   12107             <td class="entry_tags">
   12108               <ul class="entry_tags">
   12109                   <li><a href="#tag_BC">BC</a></li>
   12110               </ul>
   12111             </td>
   12112 
   12113           </tr>
   12114           <tr class="entries_header">
   12115             <th class="th_details" colspan="6">Details</th>
   12116           </tr>
   12117           <tr class="entry_cont">
   12118             <td class="entry_details" colspan="6">
   12119               <p>The clockwise rotation angle in degrees,<wbr/> relative to the orientation
   12120 to the camera,<wbr/> that the JPEG picture needs to be rotated by,<wbr/> to be viewed
   12121 upright.<wbr/></p>
   12122 <p>Camera devices may either encode this value into the JPEG EXIF header,<wbr/> or
   12123 rotate the image data to match this orientation.<wbr/> When the image data is rotated,<wbr/>
   12124 the thumbnail data will also be rotated.<wbr/></p>
   12125 <p>Note that this orientation is relative to the orientation of the camera sensor,<wbr/> given
   12126 by <a href="#static_android.sensor.orientation">android.<wbr/>sensor.<wbr/>orientation</a>.<wbr/></p>
   12127 <p>To translate from the device orientation given by the Android sensor APIs for camera
   12128 sensors which are not EXTERNAL,<wbr/> the following sample code may be used:</p>
   12129 <pre><code>private int getJpegOrientation(CameraCharacteristics c,<wbr/> int deviceOrientation) {
   12130     if (deviceOrientation == android.<wbr/>view.<wbr/>Orientation<wbr/>Event<wbr/>Listener.<wbr/>ORIENTATION_<wbr/>UNKNOWN) return 0;
   12131     int sensorOrientation = c.<wbr/>get(Camera<wbr/>Characteristics.<wbr/>SENSOR_<wbr/>ORIENTATION);
   12132 
   12133     //<wbr/> Round device orientation to a multiple of 90
   12134     deviceOrientation = (deviceOrientation + 45) /<wbr/> 90 * 90;
   12135 
   12136     //<wbr/> Reverse device orientation for front-facing cameras
   12137     boolean facingFront = c.<wbr/>get(Camera<wbr/>Characteristics.<wbr/>LENS_<wbr/>FACING) == Camera<wbr/>Characteristics.<wbr/>LENS_<wbr/>FACING_<wbr/>FRONT;
   12138     if (facingFront) deviceOrientation = -deviceOrientation;
   12139 
   12140     //<wbr/> Calculate desired JPEG orientation relative to camera orientation to make
   12141     //<wbr/> the image upright relative to the device orientation
   12142     int jpegOrientation = (sensorOrientation + deviceOrientation + 360) % 360;
   12143 
   12144     return jpegOrientation;
   12145 }
   12146 </code></pre>
   12147 <p>For EXTERNAL cameras the sensor orientation will always be set to 0 and the facing will
   12148 also be set to EXTERNAL.<wbr/> The above code is not relevant in such case.<wbr/></p>
   12149             </td>
   12150           </tr>
   12151 
   12152 
   12153           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   12154            <!-- end of entry -->
   12155         
   12156                 
   12157           <tr class="entry" id="dynamic_android.jpeg.quality">
   12158             <td class="entry_name
   12159              " rowspan="3">
   12160               android.<wbr/>jpeg.<wbr/>quality
   12161             </td>
   12162             <td class="entry_type">
   12163                 <span class="entry_type_name">byte</span>
   12164 
   12165               <span class="entry_type_visibility"> [public]</span>
   12166 
   12167 
   12168               <span class="entry_type_hwlevel">[legacy] </span>
   12169 
   12170 
   12171 
   12172 
   12173             </td> <!-- entry_type -->
   12174 
   12175             <td class="entry_description">
   12176               <p>Compression quality of the final JPEG
   12177 image.<wbr/></p>
   12178             </td>
   12179 
   12180             <td class="entry_units">
   12181             </td>
   12182 
   12183             <td class="entry_range">
   12184               <p>1-100; larger is higher quality</p>
   12185             </td>
   12186 
   12187             <td class="entry_hal_version">
   12188               <p>3.<wbr/>2</p>
   12189             </td>
   12190 
   12191             <td class="entry_tags">
   12192               <ul class="entry_tags">
   12193                   <li><a href="#tag_BC">BC</a></li>
   12194               </ul>
   12195             </td>
   12196 
   12197           </tr>
   12198           <tr class="entries_header">
   12199             <th class="th_details" colspan="6">Details</th>
   12200           </tr>
   12201           <tr class="entry_cont">
   12202             <td class="entry_details" colspan="6">
   12203               <p>85-95 is typical usage range.<wbr/></p>
   12204             </td>
   12205           </tr>
   12206 
   12207 
   12208           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   12209            <!-- end of entry -->
   12210         
   12211                 
   12212           <tr class="entry" id="dynamic_android.jpeg.size">
   12213             <td class="entry_name
   12214              " rowspan="3">
   12215               android.<wbr/>jpeg.<wbr/>size
   12216             </td>
   12217             <td class="entry_type">
   12218                 <span class="entry_type_name">int32</span>
   12219 
   12220               <span class="entry_type_visibility"> [system]</span>
   12221 
   12222 
   12223 
   12224 
   12225 
   12226 
   12227             </td> <!-- entry_type -->
   12228 
   12229             <td class="entry_description">
   12230               <p>The size of the compressed JPEG image,<wbr/> in
   12231 bytes</p>
   12232             </td>
   12233 
   12234             <td class="entry_units">
   12235             </td>
   12236 
   12237             <td class="entry_range">
   12238               <p>&gt;= 0</p>
   12239             </td>
   12240 
   12241             <td class="entry_hal_version">
   12242               <p>3.<wbr/>2</p>
   12243             </td>
   12244 
   12245             <td class="entry_tags">
   12246               <ul class="entry_tags">
   12247                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   12248               </ul>
   12249             </td>
   12250 
   12251           </tr>
   12252           <tr class="entries_header">
   12253             <th class="th_details" colspan="6">Details</th>
   12254           </tr>
   12255           <tr class="entry_cont">
   12256             <td class="entry_details" colspan="6">
   12257               <p>If no JPEG output is produced for the request,<wbr/>
   12258 this must be 0.<wbr/></p>
   12259 <p>Otherwise,<wbr/> this describes the real size of the compressed
   12260 JPEG image placed in the output stream.<wbr/>  More specifically,<wbr/>
   12261 if <a href="#static_android.jpeg.maxSize">android.<wbr/>jpeg.<wbr/>max<wbr/>Size</a> = 1000000,<wbr/> and a specific capture
   12262 has <a href="#dynamic_android.jpeg.size">android.<wbr/>jpeg.<wbr/>size</a> = 500000,<wbr/> then the output buffer from
   12263 the JPEG stream will be 1000000 bytes,<wbr/> of which the first
   12264 500000 make up the real data.<wbr/></p>
   12265             </td>
   12266           </tr>
   12267 
   12268 
   12269           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   12270            <!-- end of entry -->
   12271         
   12272                 
   12273           <tr class="entry" id="dynamic_android.jpeg.thumbnailQuality">
   12274             <td class="entry_name
   12275              " rowspan="1">
   12276               android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
   12277             </td>
   12278             <td class="entry_type">
   12279                 <span class="entry_type_name">byte</span>
   12280 
   12281               <span class="entry_type_visibility"> [public]</span>
   12282 
   12283 
   12284               <span class="entry_type_hwlevel">[legacy] </span>
   12285 
   12286 
   12287 
   12288 
   12289             </td> <!-- entry_type -->
   12290 
   12291             <td class="entry_description">
   12292               <p>Compression quality of JPEG
   12293 thumbnail.<wbr/></p>
   12294             </td>
   12295 
   12296             <td class="entry_units">
   12297             </td>
   12298 
   12299             <td class="entry_range">
   12300               <p>1-100; larger is higher quality</p>
   12301             </td>
   12302 
   12303             <td class="entry_hal_version">
   12304               <p>3.<wbr/>2</p>
   12305             </td>
   12306 
   12307             <td class="entry_tags">
   12308               <ul class="entry_tags">
   12309                   <li><a href="#tag_BC">BC</a></li>
   12310               </ul>
   12311             </td>
   12312 
   12313           </tr>
   12314 
   12315 
   12316           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   12317            <!-- end of entry -->
   12318         
   12319                 
   12320           <tr class="entry" id="dynamic_android.jpeg.thumbnailSize">
   12321             <td class="entry_name
   12322              " rowspan="5">
   12323               android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
   12324             </td>
   12325             <td class="entry_type">
   12326                 <span class="entry_type_name">int32</span>
   12327                 <span class="entry_type_container">x</span>
   12328 
   12329                 <span class="entry_type_array">
   12330                   2
   12331                 </span>
   12332               <span class="entry_type_visibility"> [public as size]</span>
   12333 
   12334 
   12335               <span class="entry_type_hwlevel">[legacy] </span>
   12336 
   12337 
   12338 
   12339 
   12340             </td> <!-- entry_type -->
   12341 
   12342             <td class="entry_description">
   12343               <p>Resolution of embedded JPEG thumbnail.<wbr/></p>
   12344             </td>
   12345 
   12346             <td class="entry_units">
   12347             </td>
   12348 
   12349             <td class="entry_range">
   12350               <p><a href="#static_android.jpeg.availableThumbnailSizes">android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes</a></p>
   12351             </td>
   12352 
   12353             <td class="entry_hal_version">
   12354               <p>3.<wbr/>2</p>
   12355             </td>
   12356 
   12357             <td class="entry_tags">
   12358               <ul class="entry_tags">
   12359                   <li><a href="#tag_BC">BC</a></li>
   12360               </ul>
   12361             </td>
   12362 
   12363           </tr>
   12364           <tr class="entries_header">
   12365             <th class="th_details" colspan="6">Details</th>
   12366           </tr>
   12367           <tr class="entry_cont">
   12368             <td class="entry_details" colspan="6">
   12369               <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
   12370 but the captured JPEG will still be a valid image.<wbr/></p>
   12371 <p>For best results,<wbr/> when issuing a request for a JPEG image,<wbr/> the thumbnail size selected
   12372 should have the same aspect ratio as the main JPEG output.<wbr/></p>
   12373 <p>If the thumbnail image aspect ratio differs from the JPEG primary image aspect
   12374 ratio,<wbr/> the camera device creates the thumbnail by cropping it from the primary image.<wbr/>
   12375 For example,<wbr/> if the primary image has 4:3 aspect ratio,<wbr/> the thumbnail image has
   12376 16:9 aspect ratio,<wbr/> the primary image will be cropped vertically (letterbox) to
   12377 generate the thumbnail image.<wbr/> The thumbnail image will always have a smaller Field
   12378 Of View (FOV) than the primary image when aspect ratios differ.<wbr/></p>
   12379 <p>When an <a href="#controls_android.jpeg.orientation">android.<wbr/>jpeg.<wbr/>orientation</a> of non-zero degree is requested,<wbr/>
   12380 the camera device will handle thumbnail rotation in one of the following ways:</p>
   12381 <ul>
   12382 <li>Set the <a href="https://developer.android.com/reference/android/media/ExifInterface.html#TAG_ORIENTATION">EXIF orientation flag</a>
   12383   and keep jpeg and thumbnail image data unrotated.<wbr/></li>
   12384 <li>Rotate the jpeg and thumbnail image data and not set
   12385   <a href="https://developer.android.com/reference/android/media/ExifInterface.html#TAG_ORIENTATION">EXIF orientation flag</a>.<wbr/> In this
   12386   case,<wbr/> LIMITED or FULL hardware level devices will report rotated thumnail size in
   12387   capture result,<wbr/> so the width and height will be interchanged if 90 or 270 degree
   12388   orientation is requested.<wbr/> LEGACY device will always report unrotated thumbnail
   12389   size.<wbr/></li>
   12390 </ul>
   12391             </td>
   12392           </tr>
   12393 
   12394           <tr class="entries_header">
   12395             <th class="th_details" colspan="6">HAL Implementation Details</th>
   12396           </tr>
   12397           <tr class="entry_cont">
   12398             <td class="entry_details" colspan="6">
   12399               <p>The HAL must not squeeze or stretch the downscaled primary image to generate thumbnail.<wbr/>
   12400 The cropping must be done on the primary jpeg image rather than the sensor active array.<wbr/>
   12401 The stream cropping rule specified by "S5.<wbr/> Cropping" in camera3.<wbr/>h doesn't apply to the
   12402 thumbnail image cropping.<wbr/></p>
   12403             </td>
   12404           </tr>
   12405 
   12406           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   12407            <!-- end of entry -->
   12408         
   12409         
   12410 
   12411       <!-- end of kind -->
   12412       </tbody>
   12413 
   12414   <!-- end of section -->
   12415   <tr><td colspan="7" id="section_lens" class="section">lens</td></tr>
   12416 
   12417 
   12418       <tr><td colspan="7" class="kind">controls</td></tr>
   12419 
   12420       <thead class="entries_header">
   12421         <tr>
   12422           <th class="th_name">Property Name</th>
   12423           <th class="th_type">Type</th>
   12424           <th class="th_description">Description</th>
   12425           <th class="th_units">Units</th>
   12426           <th class="th_range">Range</th>
   12427           <th class="th_hal_version">Initial HIDL HAL version</th>
   12428           <th class="th_tags">Tags</th>
   12429         </tr>
   12430       </thead>
   12431 
   12432       <tbody>
   12433 
   12434         
   12435 
   12436         
   12437 
   12438         
   12439 
   12440         
   12441 
   12442                 
   12443           <tr class="entry" id="controls_android.lens.aperture">
   12444             <td class="entry_name
   12445              " rowspan="3">
   12446               android.<wbr/>lens.<wbr/>aperture
   12447             </td>
   12448             <td class="entry_type">
   12449                 <span class="entry_type_name">float</span>
   12450 
   12451               <span class="entry_type_visibility"> [public]</span>
   12452 
   12453 
   12454               <span class="entry_type_hwlevel">[full] </span>
   12455 
   12456 
   12457 
   12458 
   12459             </td> <!-- entry_type -->
   12460 
   12461             <td class="entry_description">
   12462               <p>The desired lens aperture size,<wbr/> as a ratio of lens focal length to the
   12463 effective aperture diameter.<wbr/></p>
   12464             </td>
   12465 
   12466             <td class="entry_units">
   12467               The f-number (f/<wbr/>N)
   12468             </td>
   12469 
   12470             <td class="entry_range">
   12471               <p><a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a></p>
   12472             </td>
   12473 
   12474             <td class="entry_hal_version">
   12475               <p>3.<wbr/>2</p>
   12476             </td>
   12477 
   12478             <td class="entry_tags">
   12479               <ul class="entry_tags">
   12480                   <li><a href="#tag_V1">V1</a></li>
   12481               </ul>
   12482             </td>
   12483 
   12484           </tr>
   12485           <tr class="entries_header">
   12486             <th class="th_details" colspan="6">Details</th>
   12487           </tr>
   12488           <tr class="entry_cont">
   12489             <td class="entry_details" colspan="6">
   12490               <p>Setting this value is only supported on the camera devices that have a variable
   12491 aperture lens.<wbr/></p>
   12492 <p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
   12493 this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
   12494 <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>
   12495 to achieve manual exposure control.<wbr/></p>
   12496 <p>The requested aperture value may take several frames to reach the
   12497 requested value; the camera device will report the current (intermediate)
   12498 aperture size in capture result metadata while the aperture is changing.<wbr/>
   12499 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>
   12500 <p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
   12501 the ON modes,<wbr/> this will be overridden by the camera device
   12502 auto-exposure algorithm,<wbr/> the overridden values are then provided
   12503 back to the user in the corresponding result.<wbr/></p>
   12504             </td>
   12505           </tr>
   12506 
   12507 
   12508           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   12509            <!-- end of entry -->
   12510         
   12511                 
   12512           <tr class="entry" id="controls_android.lens.filterDensity">
   12513             <td class="entry_name
   12514              " rowspan="3">
   12515               android.<wbr/>lens.<wbr/>filter<wbr/>Density
   12516             </td>
   12517             <td class="entry_type">
   12518                 <span class="entry_type_name">float</span>
   12519 
   12520               <span class="entry_type_visibility"> [public]</span>
   12521 
   12522 
   12523               <span class="entry_type_hwlevel">[full] </span>
   12524 
   12525 
   12526 
   12527 
   12528             </td> <!-- entry_type -->
   12529 
   12530             <td class="entry_description">
   12531               <p>The desired setting for the lens neutral density filter(s).<wbr/></p>
   12532             </td>
   12533 
   12534             <td class="entry_units">
   12535               Exposure Value (EV)
   12536             </td>
   12537 
   12538             <td class="entry_range">
   12539               <p><a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a></p>
   12540             </td>
   12541 
   12542             <td class="entry_hal_version">
   12543               <p>3.<wbr/>2</p>
   12544             </td>
   12545 
   12546             <td class="entry_tags">
   12547               <ul class="entry_tags">
   12548                   <li><a href="#tag_V1">V1</a></li>
   12549               </ul>
   12550             </td>
   12551 
   12552           </tr>
   12553           <tr class="entries_header">
   12554             <th class="th_details" colspan="6">Details</th>
   12555           </tr>
   12556           <tr class="entry_cont">
   12557             <td class="entry_details" colspan="6">
   12558               <p>This control will not be supported on most camera devices.<wbr/></p>
   12559 <p>Lens filters are typically used to lower the amount of light the
   12560 sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
   12561 step is the standard logarithmic representation,<wbr/> which are
   12562 non-negative,<wbr/> and inversely proportional to the amount of light
   12563 hitting the sensor.<wbr/>  For example,<wbr/> setting this to 0 would result
   12564 in no reduction of the incoming light,<wbr/> and setting this to 2 would
   12565 mean that the filter is set to reduce incoming light by two stops
   12566 (allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
   12567 <p>It may take several frames before the lens filter density changes
   12568 to the requested value.<wbr/> While the filter density is still changing,<wbr/>
   12569 <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
   12570             </td>
   12571           </tr>
   12572 
   12573 
   12574           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   12575            <!-- end of entry -->
   12576         
   12577                 
   12578           <tr class="entry" id="controls_android.lens.focalLength">
   12579             <td class="entry_name
   12580              " rowspan="3">
   12581               android.<wbr/>lens.<wbr/>focal<wbr/>Length
   12582             </td>
   12583             <td class="entry_type">
   12584                 <span class="entry_type_name">float</span>
   12585 
   12586               <span class="entry_type_visibility"> [public]</span>
   12587 
   12588 
   12589               <span class="entry_type_hwlevel">[legacy] </span>
   12590 
   12591 
   12592 
   12593 
   12594             </td> <!-- entry_type -->
   12595 
   12596             <td class="entry_description">
   12597               <p>The desired lens focal length; used for optical zoom.<wbr/></p>
   12598             </td>
   12599 
   12600             <td class="entry_units">
   12601               Millimeters
   12602             </td>
   12603 
   12604             <td class="entry_range">
   12605               <p><a href="#static_android.lens.info.availableFocalLengths">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths</a></p>
   12606             </td>
   12607 
   12608             <td class="entry_hal_version">
   12609               <p>3.<wbr/>2</p>
   12610             </td>
   12611 
   12612             <td class="entry_tags">
   12613               <ul class="entry_tags">
   12614                   <li><a href="#tag_V1">V1</a></li>
   12615               </ul>
   12616             </td>
   12617 
   12618           </tr>
   12619           <tr class="entries_header">
   12620             <th class="th_details" colspan="6">Details</th>
   12621           </tr>
   12622           <tr class="entry_cont">
   12623             <td class="entry_details" colspan="6">
   12624               <p>This setting controls the physical focal length of the camera
   12625 device's lens.<wbr/> Changing the focal length changes the field of
   12626 view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
   12627 <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
   12628 setting won't be applied instantaneously,<wbr/> and it may take several
   12629 frames before the lens can change to the requested focal length.<wbr/>
   12630 While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
   12631 be set to MOVING.<wbr/></p>
   12632 <p>Optical zoom will not be supported on most devices.<wbr/></p>
   12633             </td>
   12634           </tr>
   12635 
   12636 
   12637           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   12638            <!-- end of entry -->
   12639         
   12640                 
   12641           <tr class="entry" id="controls_android.lens.focusDistance">
   12642             <td class="entry_name
   12643              " rowspan="3">
   12644               android.<wbr/>lens.<wbr/>focus<wbr/>Distance
   12645             </td>
   12646             <td class="entry_type">
   12647                 <span class="entry_type_name">float</span>
   12648 
   12649               <span class="entry_type_visibility"> [public]</span>
   12650 
   12651 
   12652               <span class="entry_type_hwlevel">[full] </span>
   12653 
   12654 
   12655 
   12656 
   12657             </td> <!-- entry_type -->
   12658 
   12659             <td class="entry_description">
   12660               <p>Desired distance to plane of sharpest focus,<wbr/>
   12661 measured from frontmost surface of the lens.<wbr/></p>
   12662             </td>
   12663 
   12664             <td class="entry_units">
   12665               See android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details
   12666             </td>
   12667 
   12668             <td class="entry_range">
   12669               <p>&gt;= 0</p>
   12670             </td>
   12671 
   12672             <td class="entry_hal_version">
   12673               <p>3.<wbr/>2</p>
   12674             </td>
   12675 
   12676             <td class="entry_tags">
   12677               <ul class="entry_tags">
   12678                   <li><a href="#tag_BC">BC</a></li>
   12679                   <li><a href="#tag_V1">V1</a></li>
   12680               </ul>
   12681             </td>
   12682 
   12683           </tr>
   12684           <tr class="entries_header">
   12685             <th class="th_details" colspan="6">Details</th>
   12686           </tr>
   12687           <tr class="entry_cont">
   12688             <td class="entry_details" colspan="6">
   12689               <p>This control can be used for setting manual focus,<wbr/> on devices that support
   12690 the MANUAL_<wbr/>SENSOR capability and have a variable-focus lens (see
   12691 <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a>).<wbr/></p>
   12692 <p>A value of <code>0.<wbr/>0f</code> means infinity focus.<wbr/> The value set will be clamped to
   12693 <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>
   12694 <p>Like <a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>,<wbr/> this setting won't be applied
   12695 instantaneously,<wbr/> and it may take several frames before the lens
   12696 can move to the requested focus distance.<wbr/> While the lens is still moving,<wbr/>
   12697 <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
   12698 <p>LEGACY devices support at most setting this to <code>0.<wbr/>0f</code>
   12699 for infinity focus.<wbr/></p>
   12700             </td>
   12701           </tr>
   12702 
   12703 
   12704           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   12705            <!-- end of entry -->
   12706         
   12707                 
   12708           <tr class="entry" id="controls_android.lens.opticalStabilizationMode">
   12709             <td class="entry_name
   12710              " rowspan="3">
   12711               android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
   12712             </td>
   12713             <td class="entry_type">
   12714                 <span class="entry_type_name entry_type_name_enum">byte</span>
   12715 
   12716               <span class="entry_type_visibility"> [public]</span>
   12717 
   12718 
   12719               <span class="entry_type_hwlevel">[limited] </span>
   12720 
   12721 
   12722 
   12723                 <ul class="entry_type_enum">
   12724                   <li>
   12725                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   12726                     <span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
   12727                   </li>
   12728                   <li>
   12729                     <span class="entry_type_enum_name">ON (v3.2)</span>
   12730                     <span class="entry_type_enum_optional">[optional]</span>
   12731                     <span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
   12732                   </li>
   12733                 </ul>
   12734 
   12735             </td> <!-- entry_type -->
   12736 
   12737             <td class="entry_description">
   12738               <p>Sets whether the camera device uses optical image stabilization (OIS)
   12739 when capturing images.<wbr/></p>
   12740             </td>
   12741 
   12742             <td class="entry_units">
   12743             </td>
   12744 
   12745             <td class="entry_range">
   12746               <p><a href="#static_android.lens.info.availableOpticalStabilization">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization</a></p>
   12747             </td>
   12748 
   12749             <td class="entry_hal_version">
   12750               <p>3.<wbr/>2</p>
   12751             </td>
   12752 
   12753             <td class="entry_tags">
   12754               <ul class="entry_tags">
   12755                   <li><a href="#tag_V1">V1</a></li>
   12756               </ul>
   12757             </td>
   12758 
   12759           </tr>
   12760           <tr class="entries_header">
   12761             <th class="th_details" colspan="6">Details</th>
   12762           </tr>
   12763           <tr class="entry_cont">
   12764             <td class="entry_details" colspan="6">
   12765               <p>OIS is used to compensate for motion blur due to small
   12766 movements of the camera during capture.<wbr/> Unlike digital image
   12767 stabilization (<a href="#controls_android.control.videoStabilizationMode">android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode</a>),<wbr/> OIS
   12768 makes use of mechanical elements to stabilize the camera
   12769 sensor,<wbr/> and thus allows for longer exposure times before
   12770 camera shake becomes apparent.<wbr/></p>
   12771 <p>Switching between different optical stabilization modes may take several
   12772 frames to initialize,<wbr/> the camera device will report the current mode in
   12773 capture result metadata.<wbr/> For example,<wbr/> When "ON" mode is requested,<wbr/> the
   12774 optical stabilization modes in the first several capture results may still
   12775 be "OFF",<wbr/> and it will become "ON" when the initialization is done.<wbr/></p>
   12776 <p>If a camera device supports both OIS and digital image stabilization
   12777 (<a href="#controls_android.control.videoStabilizationMode">android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode</a>),<wbr/> turning both modes on may produce undesirable
   12778 interaction,<wbr/> so it is recommended not to enable both at the same time.<wbr/></p>
   12779 <p>Not all devices will support OIS; see
   12780 <a href="#static_android.lens.info.availableOpticalStabilization">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization</a> for
   12781 available controls.<wbr/></p>
   12782             </td>
   12783           </tr>
   12784 
   12785 
   12786           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   12787            <!-- end of entry -->
   12788         
   12789         
   12790 
   12791       <!-- end of kind -->
   12792       </tbody>
   12793       <tr><td colspan="7" class="kind">static</td></tr>
   12794 
   12795       <thead class="entries_header">
   12796         <tr>
   12797           <th class="th_name">Property Name</th>
   12798           <th class="th_type">Type</th>
   12799           <th class="th_description">Description</th>
   12800           <th class="th_units">Units</th>
   12801           <th class="th_range">Range</th>
   12802           <th class="th_hal_version">Initial HIDL HAL version</th>
   12803           <th class="th_tags">Tags</th>
   12804         </tr>
   12805       </thead>
   12806 
   12807       <tbody>
   12808 
   12809         
   12810 
   12811         
   12812 
   12813         
   12814 
   12815         
   12816                 
   12817             
   12818 
   12819                 
   12820           <tr class="entry" id="static_android.lens.info.availableApertures">
   12821             <td class="entry_name
   12822              " rowspan="3">
   12823               android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures
   12824             </td>
   12825             <td class="entry_type">
   12826                 <span class="entry_type_name">float</span>
   12827                 <span class="entry_type_container">x</span>
   12828 
   12829                 <span class="entry_type_array">
   12830                   n
   12831                 </span>
   12832               <span class="entry_type_visibility"> [public]</span>
   12833 
   12834 
   12835               <span class="entry_type_hwlevel">[full] </span>
   12836 
   12837 
   12838 
   12839 
   12840             </td> <!-- entry_type -->
   12841 
   12842             <td class="entry_description">
   12843               <p>List of aperture size values for <a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a> that are
   12844 supported by this camera device.<wbr/></p>
   12845             </td>
   12846 
   12847             <td class="entry_units">
   12848               The aperture f-number
   12849             </td>
   12850 
   12851             <td class="entry_range">
   12852             </td>
   12853 
   12854             <td class="entry_hal_version">
   12855               <p>3.<wbr/>2</p>
   12856             </td>
   12857 
   12858             <td class="entry_tags">
   12859               <ul class="entry_tags">
   12860                   <li><a href="#tag_V1">V1</a></li>
   12861               </ul>
   12862             </td>
   12863 
   12864           </tr>
   12865           <tr class="entries_header">
   12866             <th class="th_details" colspan="6">Details</th>
   12867           </tr>
   12868           <tr class="entry_cont">
   12869             <td class="entry_details" colspan="6">
   12870               <p>If the camera device doesn't support a variable lens aperture,<wbr/>
   12871 this list will contain only one value,<wbr/> which is the fixed aperture size.<wbr/></p>
   12872 <p>If the camera device supports a variable aperture,<wbr/> the aperture values
   12873 in this list will be sorted in ascending order.<wbr/></p>
   12874             </td>
   12875           </tr>
   12876 
   12877 
   12878           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   12879            <!-- end of entry -->
   12880         
   12881                 
   12882           <tr class="entry" id="static_android.lens.info.availableFilterDensities">
   12883             <td class="entry_name
   12884              " rowspan="3">
   12885               android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities
   12886             </td>
   12887             <td class="entry_type">
   12888                 <span class="entry_type_name">float</span>
   12889                 <span class="entry_type_container">x</span>
   12890 
   12891                 <span class="entry_type_array">
   12892                   n
   12893                 </span>
   12894               <span class="entry_type_visibility"> [public]</span>
   12895 
   12896 
   12897               <span class="entry_type_hwlevel">[full] </span>
   12898 
   12899 
   12900 
   12901 
   12902             </td> <!-- entry_type -->
   12903 
   12904             <td class="entry_description">
   12905               <p>List of neutral density filter values for
   12906 <a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a> that are supported by this camera device.<wbr/></p>
   12907             </td>
   12908 
   12909             <td class="entry_units">
   12910               Exposure value (EV)
   12911             </td>
   12912 
   12913             <td class="entry_range">
   12914               <p>Values are &gt;= 0</p>
   12915             </td>
   12916 
   12917             <td class="entry_hal_version">
   12918               <p>3.<wbr/>2</p>
   12919             </td>
   12920 
   12921             <td class="entry_tags">
   12922               <ul class="entry_tags">
   12923                   <li><a href="#tag_V1">V1</a></li>
   12924               </ul>
   12925             </td>
   12926 
   12927           </tr>
   12928           <tr class="entries_header">
   12929             <th class="th_details" colspan="6">Details</th>
   12930           </tr>
   12931           <tr class="entry_cont">
   12932             <td class="entry_details" colspan="6">
   12933               <p>If a neutral density filter is not supported by this camera device,<wbr/>
   12934 this list will contain only 0.<wbr/> Otherwise,<wbr/> this list will include every
   12935 filter density supported by the camera device,<wbr/> in ascending order.<wbr/></p>
   12936             </td>
   12937           </tr>
   12938 
   12939 
   12940           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   12941            <!-- end of entry -->
   12942         
   12943                 
   12944           <tr class="entry" id="static_android.lens.info.availableFocalLengths">
   12945             <td class="entry_name
   12946              " rowspan="3">
   12947               android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths
   12948             </td>
   12949             <td class="entry_type">
   12950                 <span class="entry_type_name">float</span>
   12951                 <span class="entry_type_container">x</span>
   12952 
   12953                 <span class="entry_type_array">
   12954                   n
   12955                 </span>
   12956               <span class="entry_type_visibility"> [public]</span>
   12957 
   12958 
   12959               <span class="entry_type_hwlevel">[legacy] </span>
   12960 
   12961 
   12962                 <div class="entry_type_notes">The list of available focal lengths</div>
   12963 
   12964 
   12965             </td> <!-- entry_type -->
   12966 
   12967             <td class="entry_description">
   12968               <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
   12969 device.<wbr/></p>
   12970             </td>
   12971 
   12972             <td class="entry_units">
   12973               Millimeters
   12974             </td>
   12975 
   12976             <td class="entry_range">
   12977               <p>Values are &gt; 0</p>
   12978             </td>
   12979 
   12980             <td class="entry_hal_version">
   12981               <p>3.<wbr/>2</p>
   12982             </td>
   12983 
   12984             <td class="entry_tags">
   12985               <ul class="entry_tags">
   12986                   <li><a href="#tag_BC">BC</a></li>
   12987                   <li><a href="#tag_V1">V1</a></li>
   12988               </ul>
   12989             </td>
   12990 
   12991           </tr>
   12992           <tr class="entries_header">
   12993             <th class="th_details" colspan="6">Details</th>
   12994           </tr>
   12995           <tr class="entry_cont">
   12996             <td class="entry_details" colspan="6">
   12997               <p>If optical zoom is not supported,<wbr/> this list will only contain
   12998 a single value corresponding to the fixed focal length of the
   12999 device.<wbr/> Otherwise,<wbr/> this list will include every focal length supported
   13000 by the camera device,<wbr/> in ascending order.<wbr/></p>
   13001             </td>
   13002           </tr>
   13003 
   13004 
   13005           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   13006            <!-- end of entry -->
   13007         
   13008                 
   13009           <tr class="entry" id="static_android.lens.info.availableOpticalStabilization">
   13010             <td class="entry_name
   13011              " rowspan="3">
   13012               android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization
   13013             </td>
   13014             <td class="entry_type">
   13015                 <span class="entry_type_name">byte</span>
   13016                 <span class="entry_type_container">x</span>
   13017 
   13018                 <span class="entry_type_array">
   13019                   n
   13020                 </span>
   13021               <span class="entry_type_visibility"> [public as enumList]</span>
   13022 
   13023 
   13024               <span class="entry_type_hwlevel">[limited] </span>
   13025 
   13026 
   13027                 <div class="entry_type_notes">list of enums</div>
   13028 
   13029 
   13030             </td> <!-- entry_type -->
   13031 
   13032             <td class="entry_description">
   13033               <p>List of optical image stabilization (OIS) modes for
   13034 <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>
   13035             </td>
   13036 
   13037             <td class="entry_units">
   13038             </td>
   13039 
   13040             <td class="entry_range">
   13041               <p>Any value listed in <a href="#controls_android.lens.opticalStabilizationMode">android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode</a></p>
   13042             </td>
   13043 
   13044             <td class="entry_hal_version">
   13045               <p>3.<wbr/>2</p>
   13046             </td>
   13047 
   13048             <td class="entry_tags">
   13049               <ul class="entry_tags">
   13050                   <li><a href="#tag_V1">V1</a></li>
   13051               </ul>
   13052             </td>
   13053 
   13054           </tr>
   13055           <tr class="entries_header">
   13056             <th class="th_details" colspan="6">Details</th>
   13057           </tr>
   13058           <tr class="entry_cont">
   13059             <td class="entry_details" colspan="6">
   13060               <p>If OIS is not supported by a given camera device,<wbr/> this list will
   13061 contain only OFF.<wbr/></p>
   13062             </td>
   13063           </tr>
   13064 
   13065 
   13066           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   13067            <!-- end of entry -->
   13068         
   13069                 
   13070           <tr class="entry" id="static_android.lens.info.hyperfocalDistance">
   13071             <td class="entry_name
   13072              " rowspan="3">
   13073               android.<wbr/>lens.<wbr/>info.<wbr/>hyperfocal<wbr/>Distance
   13074             </td>
   13075             <td class="entry_type">
   13076                 <span class="entry_type_name">float</span>
   13077 
   13078               <span class="entry_type_visibility"> [public]</span>
   13079 
   13080 
   13081               <span class="entry_type_hwlevel">[limited] </span>
   13082 
   13083 
   13084 
   13085 
   13086             </td> <!-- entry_type -->
   13087 
   13088             <td class="entry_description">
   13089               <p>Hyperfocal distance for this lens.<wbr/></p>
   13090             </td>
   13091 
   13092             <td class="entry_units">
   13093               See android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details
   13094             </td>
   13095 
   13096             <td class="entry_range">
   13097               <p>If lens is fixed focus,<wbr/> &gt;= 0.<wbr/> If lens has focuser unit,<wbr/> the value is
   13098 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>
   13099             </td>
   13100 
   13101             <td class="entry_hal_version">
   13102               <p>3.<wbr/>2</p>
   13103             </td>
   13104 
   13105             <td class="entry_tags">
   13106             </td>
   13107 
   13108           </tr>
   13109           <tr class="entries_header">
   13110             <th class="th_details" colspan="6">Details</th>
   13111           </tr>
   13112           <tr class="entry_cont">
   13113             <td class="entry_details" colspan="6">
   13114               <p>If the lens is not fixed focus,<wbr/> the camera device will report this
   13115 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>
   13116             </td>
   13117           </tr>
   13118 
   13119 
   13120           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   13121            <!-- end of entry -->
   13122         
   13123                 
   13124           <tr class="entry" id="static_android.lens.info.minimumFocusDistance">
   13125             <td class="entry_name
   13126              " rowspan="5">
   13127               android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance
   13128             </td>
   13129             <td class="entry_type">
   13130                 <span class="entry_type_name">float</span>
   13131 
   13132               <span class="entry_type_visibility"> [public]</span>
   13133 
   13134 
   13135               <span class="entry_type_hwlevel">[limited] </span>
   13136 
   13137 
   13138 
   13139 
   13140             </td> <!-- entry_type -->
   13141 
   13142             <td class="entry_description">
   13143               <p>Shortest distance from frontmost surface
   13144 of the lens that can be brought into sharp focus.<wbr/></p>
   13145             </td>
   13146 
   13147             <td class="entry_units">
   13148               See android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details
   13149             </td>
   13150 
   13151             <td class="entry_range">
   13152               <p>&gt;= 0</p>
   13153             </td>
   13154 
   13155             <td class="entry_hal_version">
   13156               <p>3.<wbr/>2</p>
   13157             </td>
   13158 
   13159             <td class="entry_tags">
   13160               <ul class="entry_tags">
   13161                   <li><a href="#tag_V1">V1</a></li>
   13162               </ul>
   13163             </td>
   13164 
   13165           </tr>
   13166           <tr class="entries_header">
   13167             <th class="th_details" colspan="6">Details</th>
   13168           </tr>
   13169           <tr class="entry_cont">
   13170             <td class="entry_details" colspan="6">
   13171               <p>If the lens is fixed-focus,<wbr/> this will be
   13172 0.<wbr/></p>
   13173             </td>
   13174           </tr>
   13175 
   13176           <tr class="entries_header">
   13177             <th class="th_details" colspan="6">HAL Implementation Details</th>
   13178           </tr>
   13179           <tr class="entry_cont">
   13180             <td class="entry_details" colspan="6">
   13181               <p>Mandatory for FULL devices; LIMITED devices
   13182 must always set this value to 0 for fixed-focus; and may omit
   13183 the minimum focus distance otherwise.<wbr/></p>
   13184 <p>This field is also mandatory for all devices advertising
   13185 the MANUAL_<wbr/>SENSOR capability.<wbr/></p>
   13186             </td>
   13187           </tr>
   13188 
   13189           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   13190            <!-- end of entry -->
   13191         
   13192                 
   13193           <tr class="entry" id="static_android.lens.info.shadingMapSize">
   13194             <td class="entry_name
   13195              " rowspan="3">
   13196               android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size
   13197             </td>
   13198             <td class="entry_type">
   13199                 <span class="entry_type_name">int32</span>
   13200                 <span class="entry_type_container">x</span>
   13201 
   13202                 <span class="entry_type_array">
   13203                   2
   13204                 </span>
   13205               <span class="entry_type_visibility"> [ndk_public as size]</span>
   13206 
   13207 
   13208               <span class="entry_type_hwlevel">[full] </span>
   13209 
   13210 
   13211                 <div class="entry_type_notes">width and height (N,<wbr/> M) of lens shading map provided by the camera device.<wbr/></div>
   13212 
   13213 
   13214             </td> <!-- entry_type -->
   13215 
   13216             <td class="entry_description">
   13217               <p>Dimensions of lens shading map.<wbr/></p>
   13218             </td>
   13219 
   13220             <td class="entry_units">
   13221             </td>
   13222 
   13223             <td class="entry_range">
   13224               <p>Both values &gt;= 1</p>
   13225             </td>
   13226 
   13227             <td class="entry_hal_version">
   13228               <p>3.<wbr/>2</p>
   13229             </td>
   13230 
   13231             <td class="entry_tags">
   13232               <ul class="entry_tags">
   13233                   <li><a href="#tag_V1">V1</a></li>
   13234               </ul>
   13235             </td>
   13236 
   13237           </tr>
   13238           <tr class="entries_header">
   13239             <th class="th_details" colspan="6">Details</th>
   13240           </tr>
   13241           <tr class="entry_cont">
   13242             <td class="entry_details" colspan="6">
   13243               <p>The map should be on the order of 30-40 rows and columns,<wbr/> and
   13244 must be smaller than 64x64.<wbr/></p>
   13245             </td>
   13246           </tr>
   13247 
   13248 
   13249           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   13250            <!-- end of entry -->
   13251         
   13252                 
   13253           <tr class="entry" id="static_android.lens.info.focusDistanceCalibration">
   13254             <td class="entry_name
   13255              " rowspan="5">
   13256               android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration
   13257             </td>
   13258             <td class="entry_type">
   13259                 <span class="entry_type_name entry_type_name_enum">byte</span>
   13260 
   13261               <span class="entry_type_visibility"> [public]</span>
   13262 
   13263 
   13264               <span class="entry_type_hwlevel">[limited] </span>
   13265 
   13266 
   13267 
   13268                 <ul class="entry_type_enum">
   13269                   <li>
   13270                     <span class="entry_type_enum_name">UNCALIBRATED (v3.2)</span>
   13271                     <span class="entry_type_enum_notes"><p>The lens focus distance is not accurate,<wbr/> and the units used for
   13272 <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> do not correspond to any physical units.<wbr/></p>
   13273 <p>Setting the lens to the same focus distance on separate occasions may
   13274 result in a different real focus distance,<wbr/> depending on factors such
   13275 as the orientation of the device,<wbr/> the age of the focusing mechanism,<wbr/>
   13276 and the device temperature.<wbr/> The focus distance value will still be
   13277 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
   13278 represents the farthest focus.<wbr/></p></span>
   13279                   </li>
   13280                   <li>
   13281                     <span class="entry_type_enum_name">APPROXIMATE (v3.2)</span>
   13282                     <span class="entry_type_enum_notes"><p>The lens focus distance is measured in diopters.<wbr/></p>
   13283 <p>However,<wbr/> setting the lens to the same focus distance
   13284 on separate occasions may result in a different real
   13285 focus distance,<wbr/> depending on factors such as the
   13286 orientation of the device,<wbr/> the age of the focusing
   13287 mechanism,<wbr/> and the device temperature.<wbr/></p></span>
   13288                   </li>
   13289                   <li>
   13290                     <span class="entry_type_enum_name">CALIBRATED (v3.2)</span>
   13291                     <span class="entry_type_enum_notes"><p>The lens focus distance is measured in diopters,<wbr/> and
   13292 is calibrated.<wbr/></p>
   13293 <p>The lens mechanism is calibrated so that setting the
   13294 same focus distance is repeatable on multiple
   13295 occasions with good accuracy,<wbr/> and the focus distance
   13296 corresponds to the real physical distance to the plane
   13297 of best focus.<wbr/></p></span>
   13298                   </li>
   13299                 </ul>
   13300 
   13301             </td> <!-- entry_type -->
   13302 
   13303             <td class="entry_description">
   13304               <p>The lens focus distance calibration quality.<wbr/></p>
   13305             </td>
   13306 
   13307             <td class="entry_units">
   13308             </td>
   13309 
   13310             <td class="entry_range">
   13311             </td>
   13312 
   13313             <td class="entry_hal_version">
   13314               <p>3.<wbr/>2</p>
   13315             </td>
   13316 
   13317             <td class="entry_tags">
   13318               <ul class="entry_tags">
   13319                   <li><a href="#tag_V1">V1</a></li>
   13320               </ul>
   13321             </td>
   13322 
   13323           </tr>
   13324           <tr class="entries_header">
   13325             <th class="th_details" colspan="6">Details</th>
   13326           </tr>
   13327           <tr class="entry_cont">
   13328             <td class="entry_details" colspan="6">
   13329               <p>The lens focus distance calibration quality determines the reliability of
   13330 focus related metadata entries,<wbr/> i.<wbr/>e.<wbr/> <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a>,<wbr/>
   13331 <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
   13332 <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a>.<wbr/></p>
   13333 <p>APPROXIMATE and CALIBRATED devices report the focus metadata in
   13334 units of diopters (1/<wbr/>meter),<wbr/> so <code>0.<wbr/>0f</code> represents focusing at infinity,<wbr/>
   13335 and increasing positive numbers represent focusing closer and closer
   13336 to the camera device.<wbr/> The focus distance control also uses diopters
   13337 on these devices.<wbr/></p>
   13338 <p>UNCALIBRATED devices do not use units that are directly comparable
   13339 to any real physical measurement,<wbr/> but <code>0.<wbr/>0f</code> still represents farthest
   13340 focus,<wbr/> and <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> represents the
   13341 nearest focus the device can achieve.<wbr/></p>
   13342             </td>
   13343           </tr>
   13344 
   13345           <tr class="entries_header">
   13346             <th class="th_details" colspan="6">HAL Implementation Details</th>
   13347           </tr>
   13348           <tr class="entry_cont">
   13349             <td class="entry_details" colspan="6">
   13350               <p>For devices advertise APPROXIMATE quality or higher,<wbr/> diopters 0 (infinity
   13351 focus) must work.<wbr/> When autofocus is disabled (<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> == OFF)
   13352 and the lens focus distance is set to 0 diopters
   13353 (<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> == 0),<wbr/> the lens will move to focus at infinity
   13354 and is stably focused at infinity even if the device tilts.<wbr/> It may take the
   13355 lens some time to move; during the move the lens state should be MOVING and
   13356 the output diopter value should be changing toward 0.<wbr/></p>
   13357             </td>
   13358           </tr>
   13359 
   13360           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   13361            <!-- end of entry -->
   13362         
   13363         
   13364         
   13365 
   13366                 
   13367           <tr class="entry" id="static_android.lens.facing">
   13368             <td class="entry_name
   13369              " rowspan="1">
   13370               android.<wbr/>lens.<wbr/>facing
   13371             </td>
   13372             <td class="entry_type">
   13373                 <span class="entry_type_name entry_type_name_enum">byte</span>
   13374 
   13375               <span class="entry_type_visibility"> [public]</span>
   13376 
   13377 
   13378               <span class="entry_type_hwlevel">[legacy] </span>
   13379 
   13380 
   13381 
   13382                 <ul class="entry_type_enum">
   13383                   <li>
   13384                     <span class="entry_type_enum_name">FRONT (v3.2)</span>
   13385                     <span class="entry_type_enum_notes"><p>The camera device faces the same direction as the device's screen.<wbr/></p></span>
   13386                   </li>
   13387                   <li>
   13388                     <span class="entry_type_enum_name">BACK (v3.2)</span>
   13389                     <span class="entry_type_enum_notes"><p>The camera device faces the opposite direction as the device's screen.<wbr/></p></span>
   13390                   </li>
   13391                   <li>
   13392                     <span class="entry_type_enum_name">EXTERNAL (v3.2)</span>
   13393                     <span class="entry_type_enum_notes"><p>The camera device is an external camera,<wbr/> and has no fixed facing relative to the
   13394 device's screen.<wbr/></p></span>
   13395                   </li>
   13396                 </ul>
   13397 
   13398             </td> <!-- entry_type -->
   13399 
   13400             <td class="entry_description">
   13401               <p>Direction the camera faces relative to
   13402 device screen.<wbr/></p>
   13403             </td>
   13404 
   13405             <td class="entry_units">
   13406             </td>
   13407 
   13408             <td class="entry_range">
   13409             </td>
   13410 
   13411             <td class="entry_hal_version">
   13412               <p>3.<wbr/>2</p>
   13413             </td>
   13414 
   13415             <td class="entry_tags">
   13416             </td>
   13417 
   13418           </tr>
   13419 
   13420 
   13421           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   13422            <!-- end of entry -->
   13423         
   13424                 
   13425           <tr class="entry" id="static_android.lens.poseRotation">
   13426             <td class="entry_name
   13427              " rowspan="3">
   13428               android.<wbr/>lens.<wbr/>pose<wbr/>Rotation
   13429             </td>
   13430             <td class="entry_type">
   13431                 <span class="entry_type_name">float</span>
   13432                 <span class="entry_type_container">x</span>
   13433 
   13434                 <span class="entry_type_array">
   13435                   4
   13436                 </span>
   13437               <span class="entry_type_visibility"> [public]</span>
   13438 
   13439 
   13440 
   13441 
   13442 
   13443 
   13444             </td> <!-- entry_type -->
   13445 
   13446             <td class="entry_description">
   13447               <p>The orientation of the camera relative to the sensor
   13448 coordinate system.<wbr/></p>
   13449             </td>
   13450 
   13451             <td class="entry_units">
   13452               
   13453             Quaternion coefficients
   13454           
   13455             </td>
   13456 
   13457             <td class="entry_range">
   13458             </td>
   13459 
   13460             <td class="entry_hal_version">
   13461               <p>3.<wbr/>2</p>
   13462             </td>
   13463 
   13464             <td class="entry_tags">
   13465               <ul class="entry_tags">
   13466                   <li><a href="#tag_DEPTH">DEPTH</a></li>
   13467               </ul>
   13468             </td>
   13469 
   13470           </tr>
   13471           <tr class="entries_header">
   13472             <th class="th_details" colspan="6">Details</th>
   13473           </tr>
   13474           <tr class="entry_cont">
   13475             <td class="entry_details" colspan="6">
   13476               <p>The four coefficients that describe the quaternion
   13477 rotation from the Android sensor coordinate system to a
   13478 camera-aligned coordinate system where the X-axis is
   13479 aligned with the long side of the image sensor,<wbr/> the Y-axis
   13480 is aligned with the short side of the image sensor,<wbr/> and
   13481 the Z-axis is aligned with the optical axis of the sensor.<wbr/></p>
   13482 <p>To convert from the quaternion coefficients <code>(x,<wbr/>y,<wbr/>z,<wbr/>w)</code>
   13483 to the axis of rotation <code>(a_<wbr/>x,<wbr/> a_<wbr/>y,<wbr/> a_<wbr/>z)</code> and rotation
   13484 amount <code>theta</code>,<wbr/> the following formulas can be used:</p>
   13485 <pre><code> theta = 2 * acos(w)
   13486 a_<wbr/>x = x /<wbr/> sin(theta/<wbr/>2)
   13487 a_<wbr/>y = y /<wbr/> sin(theta/<wbr/>2)
   13488 a_<wbr/>z = z /<wbr/> sin(theta/<wbr/>2)
   13489 </code></pre>
   13490 <p>To create a 3x3 rotation matrix that applies the rotation
   13491 defined by this quaternion,<wbr/> the following matrix can be
   13492 used:</p>
   13493 <pre><code>R = [ 1 - 2y^2 - 2z^2,<wbr/>       2xy - 2zw,<wbr/>       2xz + 2yw,<wbr/>
   13494            2xy + 2zw,<wbr/> 1 - 2x^2 - 2z^2,<wbr/>       2yz - 2xw,<wbr/>
   13495            2xz - 2yw,<wbr/>       2yz + 2xw,<wbr/> 1 - 2x^2 - 2y^2 ]
   13496 </code></pre>
   13497 <p>This matrix can then be used to apply the rotation to a
   13498  column vector point with</p>
   13499 <p><code>p' = Rp</code></p>
   13500 <p>where <code>p</code> is in the device sensor coordinate system,<wbr/> and
   13501  <code>p'</code> is in the camera-oriented coordinate system.<wbr/></p>
   13502             </td>
   13503           </tr>
   13504 
   13505 
   13506           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   13507            <!-- end of entry -->
   13508         
   13509                 
   13510           <tr class="entry" id="static_android.lens.poseTranslation">
   13511             <td class="entry_name
   13512              " rowspan="3">
   13513               android.<wbr/>lens.<wbr/>pose<wbr/>Translation
   13514             </td>
   13515             <td class="entry_type">
   13516                 <span class="entry_type_name">float</span>
   13517                 <span class="entry_type_container">x</span>
   13518 
   13519                 <span class="entry_type_array">
   13520                   3
   13521                 </span>
   13522               <span class="entry_type_visibility"> [public]</span>
   13523 
   13524 
   13525 
   13526 
   13527 
   13528 
   13529             </td> <!-- entry_type -->
   13530 
   13531             <td class="entry_description">
   13532               <p>Position of the camera optical center.<wbr/></p>
   13533             </td>
   13534 
   13535             <td class="entry_units">
   13536               Meters
   13537             </td>
   13538 
   13539             <td class="entry_range">
   13540             </td>
   13541 
   13542             <td class="entry_hal_version">
   13543               <p>3.<wbr/>2</p>
   13544             </td>
   13545 
   13546             <td class="entry_tags">
   13547               <ul class="entry_tags">
   13548                   <li><a href="#tag_DEPTH">DEPTH</a></li>
   13549               </ul>
   13550             </td>
   13551 
   13552           </tr>
   13553           <tr class="entries_header">
   13554             <th class="th_details" colspan="6">Details</th>
   13555           </tr>
   13556           <tr class="entry_cont">
   13557             <td class="entry_details" colspan="6">
   13558               <p>The position of the camera device's lens optical center,<wbr/>
   13559 as a three-dimensional vector <code>(x,<wbr/>y,<wbr/>z)</code>.<wbr/></p>
   13560 <p>Prior to Android P,<wbr/> or when <a href="#static_android.lens.poseReference">android.<wbr/>lens.<wbr/>pose<wbr/>Reference</a> is PRIMARY_<wbr/>CAMERA,<wbr/> this position
   13561 is relative to the optical center of the largest camera device facing in the same
   13562 direction as this camera,<wbr/> in the <a href="https://developer.android.com/reference/android/hardware/SensorEvent.html">Android sensor
   13563 coordinate axes</a>.<wbr/> Note that only the axis definitions are shared with the sensor
   13564 coordinate system,<wbr/> but not the origin.<wbr/></p>
   13565 <p>If this device is the largest or only camera device with a given facing,<wbr/> then this
   13566 position will be <code>(0,<wbr/> 0,<wbr/> 0)</code>; a camera device with a lens optical center located 3 cm
   13567 from the main sensor along the +X axis (to the right from the user's perspective) will
   13568 report <code>(0.<wbr/>03,<wbr/> 0,<wbr/> 0)</code>.<wbr/></p>
   13569 <p>To transform a pixel coordinates between two cameras facing the same direction,<wbr/> first
   13570 the source camera <a href="#static_android.lens.distortion">android.<wbr/>lens.<wbr/>distortion</a> must be corrected for.<wbr/>  Then the source
   13571 camera <a href="#static_android.lens.intrinsicCalibration">android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration</a> needs to be applied,<wbr/> followed by the
   13572 <a href="#static_android.lens.poseRotation">android.<wbr/>lens.<wbr/>pose<wbr/>Rotation</a> of the source camera,<wbr/> the translation of the source camera
   13573 relative to the destination camera,<wbr/> the <a href="#static_android.lens.poseRotation">android.<wbr/>lens.<wbr/>pose<wbr/>Rotation</a> of the destination
   13574 camera,<wbr/> and finally the inverse of <a href="#static_android.lens.intrinsicCalibration">android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration</a> of the destination
   13575 camera.<wbr/> This obtains a radial-distortion-free coordinate in the destination camera pixel
   13576 coordinates.<wbr/></p>
   13577 <p>To compare this against a real image from the destination camera,<wbr/> the destination camera
   13578 image then needs to be corrected for radial distortion before comparison or sampling.<wbr/></p>
   13579 <p>When <a href="#static_android.lens.poseReference">android.<wbr/>lens.<wbr/>pose<wbr/>Reference</a> is GYROSCOPE,<wbr/> then this position is relative to
   13580 the center of the primary gyroscope on the device.<wbr/></p>
   13581             </td>
   13582           </tr>
   13583 
   13584 
   13585           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   13586            <!-- end of entry -->
   13587         
   13588                 
   13589           <tr class="entry" id="static_android.lens.intrinsicCalibration">
   13590             <td class="entry_name
   13591              " rowspan="3">
   13592               android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration
   13593             </td>
   13594             <td class="entry_type">
   13595                 <span class="entry_type_name">float</span>
   13596                 <span class="entry_type_container">x</span>
   13597 
   13598                 <span class="entry_type_array">
   13599                   5
   13600                 </span>
   13601               <span class="entry_type_visibility"> [public]</span>
   13602 
   13603 
   13604 
   13605 
   13606 
   13607 
   13608             </td> <!-- entry_type -->
   13609 
   13610             <td class="entry_description">
   13611               <p>The parameters for this camera device's intrinsic
   13612 calibration.<wbr/></p>
   13613             </td>
   13614 
   13615             <td class="entry_units">
   13616               
   13617             Pixels in the
   13618             android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<wbr/>Active<wbr/>Array<wbr/>Size
   13619             coordinate system.<wbr/>
   13620           
   13621             </td>
   13622 
   13623             <td class="entry_range">
   13624             </td>
   13625 
   13626             <td class="entry_hal_version">
   13627               <p>3.<wbr/>2</p>
   13628             </td>
   13629 
   13630             <td class="entry_tags">
   13631               <ul class="entry_tags">
   13632                   <li><a href="#tag_DEPTH">DEPTH</a></li>
   13633               </ul>
   13634             </td>
   13635 
   13636           </tr>
   13637           <tr class="entries_header">
   13638             <th class="th_details" colspan="6">Details</th>
   13639           </tr>
   13640           <tr class="entry_cont">
   13641             <td class="entry_details" colspan="6">
   13642               <p>The five calibration parameters that describe the
   13643 transform from camera-centric 3D coordinates to sensor
   13644 pixel coordinates:</p>
   13645 <pre><code>[f_<wbr/>x,<wbr/> f_<wbr/>y,<wbr/> c_<wbr/>x,<wbr/> c_<wbr/>y,<wbr/> s]
   13646 </code></pre>
   13647 <p>Where <code>f_<wbr/>x</code> and <code>f_<wbr/>y</code> are the horizontal and vertical
   13648 focal lengths,<wbr/> <code>[c_<wbr/>x,<wbr/> c_<wbr/>y]</code> is the position of the optical
   13649 axis,<wbr/> and <code>s</code> is a skew parameter for the sensor plane not
   13650 being aligned with the lens plane.<wbr/></p>
   13651 <p>These are typically used within a transformation matrix K:</p>
   13652 <pre><code>K = [ f_<wbr/>x,<wbr/>   s,<wbr/> c_<wbr/>x,<wbr/>
   13653        0,<wbr/> f_<wbr/>y,<wbr/> c_<wbr/>y,<wbr/>
   13654        0    0,<wbr/>   1 ]
   13655 </code></pre>
   13656 <p>which can then be combined with the camera pose rotation
   13657 <code>R</code> and translation <code>t</code> (<a href="#static_android.lens.poseRotation">android.<wbr/>lens.<wbr/>pose<wbr/>Rotation</a> and
   13658 <a href="#static_android.lens.poseTranslation">android.<wbr/>lens.<wbr/>pose<wbr/>Translation</a>,<wbr/> respective) to calculate the
   13659 complete transform from world coordinates to pixel
   13660 coordinates:</p>
   13661 <pre><code>P = [ K 0   * [ R t
   13662      0 1 ]     0 1 ]
   13663 </code></pre>
   13664 <p>and with <code>p_<wbr/>w</code> being a point in the world coordinate system
   13665 and <code>p_<wbr/>s</code> being a point in the camera active pixel array
   13666 coordinate system,<wbr/> and with the mapping including the
   13667 homogeneous division by z:</p>
   13668 <pre><code> p_<wbr/>h = (x_<wbr/>h,<wbr/> y_<wbr/>h,<wbr/> z_<wbr/>h) = P p_<wbr/>w
   13669 p_<wbr/>s = p_<wbr/>h /<wbr/> z_<wbr/>h
   13670 </code></pre>
   13671 <p>so <code>[x_<wbr/>s,<wbr/> y_<wbr/>s]</code> is the pixel coordinates of the world
   13672 point,<wbr/> <code>z_<wbr/>s = 1</code>,<wbr/> and <code>w_<wbr/>s</code> is a measurement of disparity
   13673 (depth) in pixel coordinates.<wbr/></p>
   13674 <p>Note that the coordinate system for this transform is the
   13675 <a href="#static_android.sensor.info.preCorrectionActiveArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<wbr/>Active<wbr/>Array<wbr/>Size</a> system,<wbr/>
   13676 where <code>(0,<wbr/>0)</code> is the top-left of the
   13677 preCorrectionActiveArraySize rectangle.<wbr/> Once the pose and
   13678 intrinsic calibration transforms have been applied to a
   13679 world point,<wbr/> then the <a href="#static_android.lens.distortion">android.<wbr/>lens.<wbr/>distortion</a>
   13680 transform needs to be applied,<wbr/> and the result adjusted to
   13681 be in the <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a> coordinate
   13682 system (where <code>(0,<wbr/> 0)</code> is the top-left of the
   13683 activeArraySize rectangle),<wbr/> to determine the final pixel
   13684 coordinate of the world point for processed (non-RAW)
   13685 output buffers.<wbr/></p>
   13686             </td>
   13687           </tr>
   13688 
   13689 
   13690           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   13691            <!-- end of entry -->
   13692         
   13693                 
   13694           <tr class="entry" id="static_android.lens.radialDistortion">
   13695             <td class="entry_name
   13696                 entry_name_deprecated
   13697              " rowspan="3">
   13698               android.<wbr/>lens.<wbr/>radial<wbr/>Distortion
   13699             </td>
   13700             <td class="entry_type">
   13701                 <span class="entry_type_name">float</span>
   13702                 <span class="entry_type_container">x</span>
   13703 
   13704                 <span class="entry_type_array">
   13705                   6
   13706                 </span>
   13707               <span class="entry_type_visibility"> [public]</span>
   13708 
   13709 
   13710 
   13711               <span class="entry_type_deprecated">[deprecated] </span>
   13712 
   13713 
   13714 
   13715             </td> <!-- entry_type -->
   13716 
   13717             <td class="entry_description">
   13718               <p>The correction coefficients to correct for this camera device's
   13719 radial and tangential lens distortion.<wbr/></p>
   13720             </td>
   13721 
   13722             <td class="entry_units">
   13723               
   13724             Unitless coefficients.<wbr/>
   13725           
   13726             </td>
   13727 
   13728             <td class="entry_range">
   13729               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   13730             </td>
   13731 
   13732             <td class="entry_hal_version">
   13733               <p>3.<wbr/>2</p>
   13734             </td>
   13735 
   13736             <td class="entry_tags">
   13737               <ul class="entry_tags">
   13738                   <li><a href="#tag_DEPTH">DEPTH</a></li>
   13739               </ul>
   13740             </td>
   13741 
   13742           </tr>
   13743           <tr class="entries_header">
   13744             <th class="th_details" colspan="6">Details</th>
   13745           </tr>
   13746           <tr class="entry_cont">
   13747             <td class="entry_details" colspan="6">
   13748               <p>Four radial distortion coefficients <code>[kappa_<wbr/>0,<wbr/> kappa_<wbr/>1,<wbr/> kappa_<wbr/>2,<wbr/>
   13749 kappa_<wbr/>3]</code> and two tangential distortion coefficients
   13750 <code>[kappa_<wbr/>4,<wbr/> kappa_<wbr/>5]</code> that can be used to correct the
   13751 lens's geometric distortion with the mapping equations:</p>
   13752 <pre><code> x_<wbr/>c = x_<wbr/>i * ( kappa_<wbr/>0 + kappa_<wbr/>1 * r^2 + kappa_<wbr/>2 * r^4 + kappa_<wbr/>3 * r^6 ) +
   13753        kappa_<wbr/>4 * (2 * x_<wbr/>i * y_<wbr/>i) + kappa_<wbr/>5 * ( r^2 + 2 * x_<wbr/>i^2 )
   13754  y_<wbr/>c = y_<wbr/>i * ( kappa_<wbr/>0 + kappa_<wbr/>1 * r^2 + kappa_<wbr/>2 * r^4 + kappa_<wbr/>3 * r^6 ) +
   13755        kappa_<wbr/>5 * (2 * x_<wbr/>i * y_<wbr/>i) + kappa_<wbr/>4 * ( r^2 + 2 * y_<wbr/>i^2 )
   13756 </code></pre>
   13757 <p>Here,<wbr/> <code>[x_<wbr/>c,<wbr/> y_<wbr/>c]</code> are the coordinates to sample in the
   13758 input image that correspond to the pixel values in the
   13759 corrected image at the coordinate <code>[x_<wbr/>i,<wbr/> y_<wbr/>i]</code>:</p>
   13760 <pre><code> correctedImage(x_<wbr/>i,<wbr/> y_<wbr/>i) = sample_<wbr/>at(x_<wbr/>c,<wbr/> y_<wbr/>c,<wbr/> inputImage)
   13761 </code></pre>
   13762 <p>The pixel coordinates are defined in a normalized
   13763 coordinate system related to the
   13764 <a href="#static_android.lens.intrinsicCalibration">android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration</a> calibration fields.<wbr/>
   13765 Both <code>[x_<wbr/>i,<wbr/> y_<wbr/>i]</code> and <code>[x_<wbr/>c,<wbr/> y_<wbr/>c]</code> have <code>(0,<wbr/>0)</code> at the
   13766 lens optical center <code>[c_<wbr/>x,<wbr/> c_<wbr/>y]</code>.<wbr/> The maximum magnitudes
   13767 of both x and y coordinates are normalized to be 1 at the
   13768 edge further from the optical center,<wbr/> so the range
   13769 for both dimensions is <code>-1 &lt;= x &lt;= 1</code>.<wbr/></p>
   13770 <p>Finally,<wbr/> <code>r</code> represents the radial distance from the
   13771 optical center,<wbr/> <code>r^2 = x_<wbr/>i^2 + y_<wbr/>i^2</code>,<wbr/> and its magnitude
   13772 is therefore no larger than <code>|<wbr/>r|<wbr/> &lt;= sqrt(2)</code>.<wbr/></p>
   13773 <p>The distortion model used is the Brown-Conrady model.<wbr/></p>
   13774             </td>
   13775           </tr>
   13776 
   13777 
   13778           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   13779            <!-- end of entry -->
   13780         
   13781                 
   13782           <tr class="entry" id="static_android.lens.poseReference">
   13783             <td class="entry_name
   13784              " rowspan="3">
   13785               android.<wbr/>lens.<wbr/>pose<wbr/>Reference
   13786             </td>
   13787             <td class="entry_type">
   13788                 <span class="entry_type_name entry_type_name_enum">byte</span>
   13789 
   13790               <span class="entry_type_visibility"> [public]</span>
   13791 
   13792 
   13793 
   13794 
   13795 
   13796                 <ul class="entry_type_enum">
   13797                   <li>
   13798                     <span class="entry_type_enum_name">PRIMARY_CAMERA (v3.3)</span>
   13799                     <span class="entry_type_enum_notes"><p>The value of <a href="#static_android.lens.poseTranslation">android.<wbr/>lens.<wbr/>pose<wbr/>Translation</a> is relative to the optical center of
   13800 the largest camera device facing the same direction as this camera.<wbr/></p>
   13801 <p>This is the default value for API levels before Android P.<wbr/></p></span>
   13802                   </li>
   13803                   <li>
   13804                     <span class="entry_type_enum_name">GYROSCOPE (v3.3)</span>
   13805                     <span class="entry_type_enum_notes"><p>The value of <a href="#static_android.lens.poseTranslation">android.<wbr/>lens.<wbr/>pose<wbr/>Translation</a> is relative to the position of the
   13806 primary gyroscope of this Android device.<wbr/></p></span>
   13807                   </li>
   13808                 </ul>
   13809 
   13810             </td> <!-- entry_type -->
   13811 
   13812             <td class="entry_description">
   13813               <p>The origin for <a href="#static_android.lens.poseTranslation">android.<wbr/>lens.<wbr/>pose<wbr/>Translation</a>.<wbr/></p>
   13814             </td>
   13815 
   13816             <td class="entry_units">
   13817             </td>
   13818 
   13819             <td class="entry_range">
   13820             </td>
   13821 
   13822             <td class="entry_hal_version">
   13823               <p>3.<wbr/>3</p>
   13824             </td>
   13825 
   13826             <td class="entry_tags">
   13827             </td>
   13828 
   13829           </tr>
   13830           <tr class="entries_header">
   13831             <th class="th_details" colspan="6">Details</th>
   13832           </tr>
   13833           <tr class="entry_cont">
   13834             <td class="entry_details" colspan="6">
   13835               <p>Different calibration methods and use cases can produce better or worse results
   13836 depending on the selected coordinate origin.<wbr/></p>
   13837             </td>
   13838           </tr>
   13839 
   13840 
   13841           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   13842            <!-- end of entry -->
   13843         
   13844                 
   13845           <tr class="entry" id="static_android.lens.distortion">
   13846             <td class="entry_name
   13847              " rowspan="3">
   13848               android.<wbr/>lens.<wbr/>distortion
   13849             </td>
   13850             <td class="entry_type">
   13851                 <span class="entry_type_name">float</span>
   13852                 <span class="entry_type_container">x</span>
   13853 
   13854                 <span class="entry_type_array">
   13855                   5
   13856                 </span>
   13857               <span class="entry_type_visibility"> [public]</span>
   13858 
   13859 
   13860 
   13861 
   13862 
   13863 
   13864             </td> <!-- entry_type -->
   13865 
   13866             <td class="entry_description">
   13867               <p>The correction coefficients to correct for this camera device's
   13868 radial and tangential lens distortion.<wbr/></p>
   13869 <p>Replaces the deprecated <a href="#static_android.lens.radialDistortion">android.<wbr/>lens.<wbr/>radial<wbr/>Distortion</a> field,<wbr/> which was
   13870 inconsistently defined.<wbr/></p>
   13871             </td>
   13872 
   13873             <td class="entry_units">
   13874               
   13875             Unitless coefficients.<wbr/>
   13876           
   13877             </td>
   13878 
   13879             <td class="entry_range">
   13880             </td>
   13881 
   13882             <td class="entry_hal_version">
   13883               <p>3.<wbr/>3</p>
   13884             </td>
   13885 
   13886             <td class="entry_tags">
   13887               <ul class="entry_tags">
   13888                   <li><a href="#tag_DEPTH">DEPTH</a></li>
   13889               </ul>
   13890             </td>
   13891 
   13892           </tr>
   13893           <tr class="entries_header">
   13894             <th class="th_details" colspan="6">Details</th>
   13895           </tr>
   13896           <tr class="entry_cont">
   13897             <td class="entry_details" colspan="6">
   13898               <p>Three radial distortion coefficients <code>[kappa_<wbr/>1,<wbr/> kappa_<wbr/>2,<wbr/>
   13899 kappa_<wbr/>3]</code> and two tangential distortion coefficients
   13900 <code>[kappa_<wbr/>4,<wbr/> kappa_<wbr/>5]</code> that can be used to correct the
   13901 lens's geometric distortion with the mapping equations:</p>
   13902 <pre><code> x_<wbr/>c = x_<wbr/>i * ( 1 + kappa_<wbr/>1 * r^2 + kappa_<wbr/>2 * r^4 + kappa_<wbr/>3 * r^6 ) +
   13903        kappa_<wbr/>4 * (2 * x_<wbr/>i * y_<wbr/>i) + kappa_<wbr/>5 * ( r^2 + 2 * x_<wbr/>i^2 )
   13904  y_<wbr/>c = y_<wbr/>i * ( 1 + kappa_<wbr/>1 * r^2 + kappa_<wbr/>2 * r^4 + kappa_<wbr/>3 * r^6 ) +
   13905        kappa_<wbr/>5 * (2 * x_<wbr/>i * y_<wbr/>i) + kappa_<wbr/>4 * ( r^2 + 2 * y_<wbr/>i^2 )
   13906 </code></pre>
   13907 <p>Here,<wbr/> <code>[x_<wbr/>c,<wbr/> y_<wbr/>c]</code> are the coordinates to sample in the
   13908 input image that correspond to the pixel values in the
   13909 corrected image at the coordinate <code>[x_<wbr/>i,<wbr/> y_<wbr/>i]</code>:</p>
   13910 <pre><code> correctedImage(x_<wbr/>i,<wbr/> y_<wbr/>i) = sample_<wbr/>at(x_<wbr/>c,<wbr/> y_<wbr/>c,<wbr/> inputImage)
   13911 </code></pre>
   13912 <p>The pixel coordinates are defined in a coordinate system
   13913 related to the <a href="#static_android.lens.intrinsicCalibration">android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration</a>
   13914 calibration fields; see that entry for details of the mapping stages.<wbr/>
   13915 Both <code>[x_<wbr/>i,<wbr/> y_<wbr/>i]</code> and <code>[x_<wbr/>c,<wbr/> y_<wbr/>c]</code>
   13916 have <code>(0,<wbr/>0)</code> at the lens optical center <code>[c_<wbr/>x,<wbr/> c_<wbr/>y]</code>,<wbr/> and
   13917 the range of the coordinates depends on the focal length
   13918 terms of the intrinsic calibration.<wbr/></p>
   13919 <p>Finally,<wbr/> <code>r</code> represents the radial distance from the
   13920 optical center,<wbr/> <code>r^2 = x_<wbr/>i^2 + y_<wbr/>i^2</code>.<wbr/></p>
   13921 <p>The distortion model used is the Brown-Conrady model.<wbr/></p>
   13922             </td>
   13923           </tr>
   13924 
   13925 
   13926           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   13927            <!-- end of entry -->
   13928         
   13929         
   13930 
   13931       <!-- end of kind -->
   13932       </tbody>
   13933       <tr><td colspan="7" class="kind">dynamic</td></tr>
   13934 
   13935       <thead class="entries_header">
   13936         <tr>
   13937           <th class="th_name">Property Name</th>
   13938           <th class="th_type">Type</th>
   13939           <th class="th_description">Description</th>
   13940           <th class="th_units">Units</th>
   13941           <th class="th_range">Range</th>
   13942           <th class="th_hal_version">Initial HIDL HAL version</th>
   13943           <th class="th_tags">Tags</th>
   13944         </tr>
   13945       </thead>
   13946 
   13947       <tbody>
   13948 
   13949         
   13950 
   13951         
   13952 
   13953         
   13954 
   13955         
   13956 
   13957                 
   13958           <tr class="entry" id="dynamic_android.lens.aperture">
   13959             <td class="entry_name
   13960              " rowspan="3">
   13961               android.<wbr/>lens.<wbr/>aperture
   13962             </td>
   13963             <td class="entry_type">
   13964                 <span class="entry_type_name">float</span>
   13965 
   13966               <span class="entry_type_visibility"> [public]</span>
   13967 
   13968 
   13969               <span class="entry_type_hwlevel">[full] </span>
   13970 
   13971 
   13972 
   13973 
   13974             </td> <!-- entry_type -->
   13975 
   13976             <td class="entry_description">
   13977               <p>The desired lens aperture size,<wbr/> as a ratio of lens focal length to the
   13978 effective aperture diameter.<wbr/></p>
   13979             </td>
   13980 
   13981             <td class="entry_units">
   13982               The f-number (f/<wbr/>N)
   13983             </td>
   13984 
   13985             <td class="entry_range">
   13986               <p><a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a></p>
   13987             </td>
   13988 
   13989             <td class="entry_hal_version">
   13990               <p>3.<wbr/>2</p>
   13991             </td>
   13992 
   13993             <td class="entry_tags">
   13994               <ul class="entry_tags">
   13995                   <li><a href="#tag_V1">V1</a></li>
   13996               </ul>
   13997             </td>
   13998 
   13999           </tr>
   14000           <tr class="entries_header">
   14001             <th class="th_details" colspan="6">Details</th>
   14002           </tr>
   14003           <tr class="entry_cont">
   14004             <td class="entry_details" colspan="6">
   14005               <p>Setting this value is only supported on the camera devices that have a variable
   14006 aperture lens.<wbr/></p>
   14007 <p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
   14008 this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
   14009 <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>
   14010 to achieve manual exposure control.<wbr/></p>
   14011 <p>The requested aperture value may take several frames to reach the
   14012 requested value; the camera device will report the current (intermediate)
   14013 aperture size in capture result metadata while the aperture is changing.<wbr/>
   14014 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>
   14015 <p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
   14016 the ON modes,<wbr/> this will be overridden by the camera device
   14017 auto-exposure algorithm,<wbr/> the overridden values are then provided
   14018 back to the user in the corresponding result.<wbr/></p>
   14019             </td>
   14020           </tr>
   14021 
   14022 
   14023           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   14024            <!-- end of entry -->
   14025         
   14026                 
   14027           <tr class="entry" id="dynamic_android.lens.filterDensity">
   14028             <td class="entry_name
   14029              " rowspan="3">
   14030               android.<wbr/>lens.<wbr/>filter<wbr/>Density
   14031             </td>
   14032             <td class="entry_type">
   14033                 <span class="entry_type_name">float</span>
   14034 
   14035               <span class="entry_type_visibility"> [public]</span>
   14036 
   14037 
   14038               <span class="entry_type_hwlevel">[full] </span>
   14039 
   14040 
   14041 
   14042 
   14043             </td> <!-- entry_type -->
   14044 
   14045             <td class="entry_description">
   14046               <p>The desired setting for the lens neutral density filter(s).<wbr/></p>
   14047             </td>
   14048 
   14049             <td class="entry_units">
   14050               Exposure Value (EV)
   14051             </td>
   14052 
   14053             <td class="entry_range">
   14054               <p><a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a></p>
   14055             </td>
   14056 
   14057             <td class="entry_hal_version">
   14058               <p>3.<wbr/>2</p>
   14059             </td>
   14060 
   14061             <td class="entry_tags">
   14062               <ul class="entry_tags">
   14063                   <li><a href="#tag_V1">V1</a></li>
   14064               </ul>
   14065             </td>
   14066 
   14067           </tr>
   14068           <tr class="entries_header">
   14069             <th class="th_details" colspan="6">Details</th>
   14070           </tr>
   14071           <tr class="entry_cont">
   14072             <td class="entry_details" colspan="6">
   14073               <p>This control will not be supported on most camera devices.<wbr/></p>
   14074 <p>Lens filters are typically used to lower the amount of light the
   14075 sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
   14076 step is the standard logarithmic representation,<wbr/> which are
   14077 non-negative,<wbr/> and inversely proportional to the amount of light
   14078 hitting the sensor.<wbr/>  For example,<wbr/> setting this to 0 would result
   14079 in no reduction of the incoming light,<wbr/> and setting this to 2 would
   14080 mean that the filter is set to reduce incoming light by two stops
   14081 (allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
   14082 <p>It may take several frames before the lens filter density changes
   14083 to the requested value.<wbr/> While the filter density is still changing,<wbr/>
   14084 <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
   14085             </td>
   14086           </tr>
   14087 
   14088 
   14089           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   14090            <!-- end of entry -->
   14091         
   14092                 
   14093           <tr class="entry" id="dynamic_android.lens.focalLength">
   14094             <td class="entry_name
   14095              " rowspan="3">
   14096               android.<wbr/>lens.<wbr/>focal<wbr/>Length
   14097             </td>
   14098             <td class="entry_type">
   14099                 <span class="entry_type_name">float</span>
   14100 
   14101               <span class="entry_type_visibility"> [public]</span>
   14102 
   14103 
   14104               <span class="entry_type_hwlevel">[legacy] </span>
   14105 
   14106 
   14107 
   14108 
   14109             </td> <!-- entry_type -->
   14110 
   14111             <td class="entry_description">
   14112               <p>The desired lens focal length; used for optical zoom.<wbr/></p>
   14113             </td>
   14114 
   14115             <td class="entry_units">
   14116               Millimeters
   14117             </td>
   14118 
   14119             <td class="entry_range">
   14120               <p><a href="#static_android.lens.info.availableFocalLengths">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths</a></p>
   14121             </td>
   14122 
   14123             <td class="entry_hal_version">
   14124               <p>3.<wbr/>2</p>
   14125             </td>
   14126 
   14127             <td class="entry_tags">
   14128               <ul class="entry_tags">
   14129                   <li><a href="#tag_BC">BC</a></li>
   14130               </ul>
   14131             </td>
   14132 
   14133           </tr>
   14134           <tr class="entries_header">
   14135             <th class="th_details" colspan="6">Details</th>
   14136           </tr>
   14137           <tr class="entry_cont">
   14138             <td class="entry_details" colspan="6">
   14139               <p>This setting controls the physical focal length of the camera
   14140 device's lens.<wbr/> Changing the focal length changes the field of
   14141 view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
   14142 <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
   14143 setting won't be applied instantaneously,<wbr/> and it may take several
   14144 frames before the lens can change to the requested focal length.<wbr/>
   14145 While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
   14146 be set to MOVING.<wbr/></p>
   14147 <p>Optical zoom will not be supported on most devices.<wbr/></p>
   14148             </td>
   14149           </tr>
   14150 
   14151 
   14152           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   14153            <!-- end of entry -->
   14154         
   14155                 
   14156           <tr class="entry" id="dynamic_android.lens.focusDistance">
   14157             <td class="entry_name
   14158              " rowspan="3">
   14159               android.<wbr/>lens.<wbr/>focus<wbr/>Distance
   14160             </td>
   14161             <td class="entry_type">
   14162                 <span class="entry_type_name">float</span>
   14163 
   14164               <span class="entry_type_visibility"> [public]</span>
   14165 
   14166 
   14167               <span class="entry_type_hwlevel">[full] </span>
   14168 
   14169 
   14170 
   14171 
   14172             </td> <!-- entry_type -->
   14173 
   14174             <td class="entry_description">
   14175               <p>Desired distance to plane of sharpest focus,<wbr/>
   14176 measured from frontmost surface of the lens.<wbr/></p>
   14177             </td>
   14178 
   14179             <td class="entry_units">
   14180               See android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details
   14181             </td>
   14182 
   14183             <td class="entry_range">
   14184               <p>&gt;= 0</p>
   14185             </td>
   14186 
   14187             <td class="entry_hal_version">
   14188               <p>3.<wbr/>2</p>
   14189             </td>
   14190 
   14191             <td class="entry_tags">
   14192               <ul class="entry_tags">
   14193                   <li><a href="#tag_BC">BC</a></li>
   14194               </ul>
   14195             </td>
   14196 
   14197           </tr>
   14198           <tr class="entries_header">
   14199             <th class="th_details" colspan="6">Details</th>
   14200           </tr>
   14201           <tr class="entry_cont">
   14202             <td class="entry_details" colspan="6">
   14203               <p>Should be zero for fixed-focus cameras</p>
   14204             </td>
   14205           </tr>
   14206 
   14207 
   14208           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   14209            <!-- end of entry -->
   14210         
   14211                 
   14212           <tr class="entry" id="dynamic_android.lens.focusRange">
   14213             <td class="entry_name
   14214              " rowspan="3">
   14215               android.<wbr/>lens.<wbr/>focus<wbr/>Range
   14216             </td>
   14217             <td class="entry_type">
   14218                 <span class="entry_type_name">float</span>
   14219                 <span class="entry_type_container">x</span>
   14220 
   14221                 <span class="entry_type_array">
   14222                   2
   14223                 </span>
   14224               <span class="entry_type_visibility"> [public as pairFloatFloat]</span>
   14225 
   14226 
   14227               <span class="entry_type_hwlevel">[limited] </span>
   14228 
   14229 
   14230                 <div class="entry_type_notes">Range of scene distances that are in focus</div>
   14231 
   14232 
   14233             </td> <!-- entry_type -->
   14234 
   14235             <td class="entry_description">
   14236               <p>The range of scene distances that are in
   14237 sharp focus (depth of field).<wbr/></p>
   14238             </td>
   14239 
   14240             <td class="entry_units">
   14241               A pair of focus distances in diopters: (near,<wbr/>
   14242           far); see android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details.<wbr/>
   14243             </td>
   14244 
   14245             <td class="entry_range">
   14246               <p>&gt;=0</p>
   14247             </td>
   14248 
   14249             <td class="entry_hal_version">
   14250               <p>3.<wbr/>2</p>
   14251             </td>
   14252 
   14253             <td class="entry_tags">
   14254               <ul class="entry_tags">
   14255                   <li><a href="#tag_BC">BC</a></li>
   14256               </ul>
   14257             </td>
   14258 
   14259           </tr>
   14260           <tr class="entries_header">
   14261             <th class="th_details" colspan="6">Details</th>
   14262           </tr>
   14263           <tr class="entry_cont">
   14264             <td class="entry_details" colspan="6">
   14265               <p>If variable focus not supported,<wbr/> can still report
   14266 fixed depth of field range</p>
   14267             </td>
   14268           </tr>
   14269 
   14270 
   14271           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   14272            <!-- end of entry -->
   14273         
   14274                 
   14275           <tr class="entry" id="dynamic_android.lens.opticalStabilizationMode">
   14276             <td class="entry_name
   14277              " rowspan="3">
   14278               android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
   14279             </td>
   14280             <td class="entry_type">
   14281                 <span class="entry_type_name entry_type_name_enum">byte</span>
   14282 
   14283               <span class="entry_type_visibility"> [public]</span>
   14284 
   14285 
   14286               <span class="entry_type_hwlevel">[limited] </span>
   14287 
   14288 
   14289 
   14290                 <ul class="entry_type_enum">
   14291                   <li>
   14292                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   14293                     <span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
   14294                   </li>
   14295                   <li>
   14296                     <span class="entry_type_enum_name">ON (v3.2)</span>
   14297                     <span class="entry_type_enum_optional">[optional]</span>
   14298                     <span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
   14299                   </li>
   14300                 </ul>
   14301 
   14302             </td> <!-- entry_type -->
   14303 
   14304             <td class="entry_description">
   14305               <p>Sets whether the camera device uses optical image stabilization (OIS)
   14306 when capturing images.<wbr/></p>
   14307             </td>
   14308 
   14309             <td class="entry_units">
   14310             </td>
   14311 
   14312             <td class="entry_range">
   14313               <p><a href="#static_android.lens.info.availableOpticalStabilization">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization</a></p>
   14314             </td>
   14315 
   14316             <td class="entry_hal_version">
   14317               <p>3.<wbr/>2</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           <tr class="entries_header">
   14328             <th class="th_details" colspan="6">Details</th>
   14329           </tr>
   14330           <tr class="entry_cont">
   14331             <td class="entry_details" colspan="6">
   14332               <p>OIS is used to compensate for motion blur due to small
   14333 movements of the camera during capture.<wbr/> Unlike digital image
   14334 stabilization (<a href="#controls_android.control.videoStabilizationMode">android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode</a>),<wbr/> OIS
   14335 makes use of mechanical elements to stabilize the camera
   14336 sensor,<wbr/> and thus allows for longer exposure times before
   14337 camera shake becomes apparent.<wbr/></p>
   14338 <p>Switching between different optical stabilization modes may take several
   14339 frames to initialize,<wbr/> the camera device will report the current mode in
   14340 capture result metadata.<wbr/> For example,<wbr/> When "ON" mode is requested,<wbr/> the
   14341 optical stabilization modes in the first several capture results may still
   14342 be "OFF",<wbr/> and it will become "ON" when the initialization is done.<wbr/></p>
   14343 <p>If a camera device supports both OIS and digital image stabilization
   14344 (<a href="#controls_android.control.videoStabilizationMode">android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode</a>),<wbr/> turning both modes on may produce undesirable
   14345 interaction,<wbr/> so it is recommended not to enable both at the same time.<wbr/></p>
   14346 <p>Not all devices will support OIS; see
   14347 <a href="#static_android.lens.info.availableOpticalStabilization">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization</a> for
   14348 available controls.<wbr/></p>
   14349             </td>
   14350           </tr>
   14351 
   14352 
   14353           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   14354            <!-- end of entry -->
   14355         
   14356                 
   14357           <tr class="entry" id="dynamic_android.lens.state">
   14358             <td class="entry_name
   14359              " rowspan="3">
   14360               android.<wbr/>lens.<wbr/>state
   14361             </td>
   14362             <td class="entry_type">
   14363                 <span class="entry_type_name entry_type_name_enum">byte</span>
   14364 
   14365               <span class="entry_type_visibility"> [public]</span>
   14366 
   14367 
   14368               <span class="entry_type_hwlevel">[limited] </span>
   14369 
   14370 
   14371 
   14372                 <ul class="entry_type_enum">
   14373                   <li>
   14374                     <span class="entry_type_enum_name">STATIONARY (v3.2)</span>
   14375                     <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/>
   14376 <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>
   14377                   </li>
   14378                   <li>
   14379                     <span class="entry_type_enum_name">MOVING (v3.2)</span>
   14380                     <span class="entry_type_enum_notes"><p>One or several of the lens parameters
   14381 (<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/>
   14382 <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
   14383 currently changing.<wbr/></p></span>
   14384                   </li>
   14385                 </ul>
   14386 
   14387             </td> <!-- entry_type -->
   14388 
   14389             <td class="entry_description">
   14390               <p>Current lens status.<wbr/></p>
   14391             </td>
   14392 
   14393             <td class="entry_units">
   14394             </td>
   14395 
   14396             <td class="entry_range">
   14397             </td>
   14398 
   14399             <td class="entry_hal_version">
   14400               <p>3.<wbr/>2</p>
   14401             </td>
   14402 
   14403             <td class="entry_tags">
   14404               <ul class="entry_tags">
   14405                   <li><a href="#tag_V1">V1</a></li>
   14406               </ul>
   14407             </td>
   14408 
   14409           </tr>
   14410           <tr class="entries_header">
   14411             <th class="th_details" colspan="6">Details</th>
   14412           </tr>
   14413           <tr class="entry_cont">
   14414             <td class="entry_details" colspan="6">
   14415               <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/>
   14416 <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/>
   14417 they may take several frames to reach the requested values.<wbr/> This state indicates
   14418 the current status of the lens parameters.<wbr/></p>
   14419 <p>When the state is STATIONARY,<wbr/> the lens parameters are not changing.<wbr/> This could be
   14420 either because the parameters are all fixed,<wbr/> or because the lens has had enough
   14421 time to reach the most recently-requested values.<wbr/>
   14422 If all these lens parameters are not changable for a camera device,<wbr/> as listed below:</p>
   14423 <ul>
   14424 <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
   14425 <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> parameter will always be 0.<wbr/></li>
   14426 <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/>
   14427 which means the optical zoom is not supported.<wbr/></li>
   14428 <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>
   14429 <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>
   14430 </ul>
   14431 <p>Then this state will always be STATIONARY.<wbr/></p>
   14432 <p>When the state is MOVING,<wbr/> it indicates that at least one of the lens parameters
   14433 is changing.<wbr/></p>
   14434             </td>
   14435           </tr>
   14436 
   14437 
   14438           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   14439            <!-- end of entry -->
   14440         
   14441                 
   14442           <tr class="entry" id="dynamic_android.lens.poseRotation">
   14443             <td class="entry_name
   14444              " rowspan="3">
   14445               android.<wbr/>lens.<wbr/>pose<wbr/>Rotation
   14446             </td>
   14447             <td class="entry_type">
   14448                 <span class="entry_type_name">float</span>
   14449                 <span class="entry_type_container">x</span>
   14450 
   14451                 <span class="entry_type_array">
   14452                   4
   14453                 </span>
   14454               <span class="entry_type_visibility"> [public]</span>
   14455 
   14456 
   14457 
   14458 
   14459 
   14460 
   14461             </td> <!-- entry_type -->
   14462 
   14463             <td class="entry_description">
   14464               <p>The orientation of the camera relative to the sensor
   14465 coordinate system.<wbr/></p>
   14466             </td>
   14467 
   14468             <td class="entry_units">
   14469               
   14470             Quaternion coefficients
   14471           
   14472             </td>
   14473 
   14474             <td class="entry_range">
   14475             </td>
   14476 
   14477             <td class="entry_hal_version">
   14478               <p>3.<wbr/>2</p>
   14479             </td>
   14480 
   14481             <td class="entry_tags">
   14482               <ul class="entry_tags">
   14483                   <li><a href="#tag_DEPTH">DEPTH</a></li>
   14484               </ul>
   14485             </td>
   14486 
   14487           </tr>
   14488           <tr class="entries_header">
   14489             <th class="th_details" colspan="6">Details</th>
   14490           </tr>
   14491           <tr class="entry_cont">
   14492             <td class="entry_details" colspan="6">
   14493               <p>The four coefficients that describe the quaternion
   14494 rotation from the Android sensor coordinate system to a
   14495 camera-aligned coordinate system where the X-axis is
   14496 aligned with the long side of the image sensor,<wbr/> the Y-axis
   14497 is aligned with the short side of the image sensor,<wbr/> and
   14498 the Z-axis is aligned with the optical axis of the sensor.<wbr/></p>
   14499 <p>To convert from the quaternion coefficients <code>(x,<wbr/>y,<wbr/>z,<wbr/>w)</code>
   14500 to the axis of rotation <code>(a_<wbr/>x,<wbr/> a_<wbr/>y,<wbr/> a_<wbr/>z)</code> and rotation
   14501 amount <code>theta</code>,<wbr/> the following formulas can be used:</p>
   14502 <pre><code> theta = 2 * acos(w)
   14503 a_<wbr/>x = x /<wbr/> sin(theta/<wbr/>2)
   14504 a_<wbr/>y = y /<wbr/> sin(theta/<wbr/>2)
   14505 a_<wbr/>z = z /<wbr/> sin(theta/<wbr/>2)
   14506 </code></pre>
   14507 <p>To create a 3x3 rotation matrix that applies the rotation
   14508 defined by this quaternion,<wbr/> the following matrix can be
   14509 used:</p>
   14510 <pre><code>R = [ 1 - 2y^2 - 2z^2,<wbr/>       2xy - 2zw,<wbr/>       2xz + 2yw,<wbr/>
   14511            2xy + 2zw,<wbr/> 1 - 2x^2 - 2z^2,<wbr/>       2yz - 2xw,<wbr/>
   14512            2xz - 2yw,<wbr/>       2yz + 2xw,<wbr/> 1 - 2x^2 - 2y^2 ]
   14513 </code></pre>
   14514 <p>This matrix can then be used to apply the rotation to a
   14515  column vector point with</p>
   14516 <p><code>p' = Rp</code></p>
   14517 <p>where <code>p</code> is in the device sensor coordinate system,<wbr/> and
   14518  <code>p'</code> is in the camera-oriented coordinate system.<wbr/></p>
   14519             </td>
   14520           </tr>
   14521 
   14522 
   14523           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   14524            <!-- end of entry -->
   14525         
   14526                 
   14527           <tr class="entry" id="dynamic_android.lens.poseTranslation">
   14528             <td class="entry_name
   14529              " rowspan="3">
   14530               android.<wbr/>lens.<wbr/>pose<wbr/>Translation
   14531             </td>
   14532             <td class="entry_type">
   14533                 <span class="entry_type_name">float</span>
   14534                 <span class="entry_type_container">x</span>
   14535 
   14536                 <span class="entry_type_array">
   14537                   3
   14538                 </span>
   14539               <span class="entry_type_visibility"> [public]</span>
   14540 
   14541 
   14542 
   14543 
   14544 
   14545 
   14546             </td> <!-- entry_type -->
   14547 
   14548             <td class="entry_description">
   14549               <p>Position of the camera optical center.<wbr/></p>
   14550             </td>
   14551 
   14552             <td class="entry_units">
   14553               Meters
   14554             </td>
   14555 
   14556             <td class="entry_range">
   14557             </td>
   14558 
   14559             <td class="entry_hal_version">
   14560               <p>3.<wbr/>2</p>
   14561             </td>
   14562 
   14563             <td class="entry_tags">
   14564               <ul class="entry_tags">
   14565                   <li><a href="#tag_DEPTH">DEPTH</a></li>
   14566               </ul>
   14567             </td>
   14568 
   14569           </tr>
   14570           <tr class="entries_header">
   14571             <th class="th_details" colspan="6">Details</th>
   14572           </tr>
   14573           <tr class="entry_cont">
   14574             <td class="entry_details" colspan="6">
   14575               <p>The position of the camera device's lens optical center,<wbr/>
   14576 as a three-dimensional vector <code>(x,<wbr/>y,<wbr/>z)</code>.<wbr/></p>
   14577 <p>Prior to Android P,<wbr/> or when <a href="#static_android.lens.poseReference">android.<wbr/>lens.<wbr/>pose<wbr/>Reference</a> is PRIMARY_<wbr/>CAMERA,<wbr/> this position
   14578 is relative to the optical center of the largest camera device facing in the same
   14579 direction as this camera,<wbr/> in the <a href="https://developer.android.com/reference/android/hardware/SensorEvent.html">Android sensor
   14580 coordinate axes</a>.<wbr/> Note that only the axis definitions are shared with the sensor
   14581 coordinate system,<wbr/> but not the origin.<wbr/></p>
   14582 <p>If this device is the largest or only camera device with a given facing,<wbr/> then this
   14583 position will be <code>(0,<wbr/> 0,<wbr/> 0)</code>; a camera device with a lens optical center located 3 cm
   14584 from the main sensor along the +X axis (to the right from the user's perspective) will
   14585 report <code>(0.<wbr/>03,<wbr/> 0,<wbr/> 0)</code>.<wbr/></p>
   14586 <p>To transform a pixel coordinates between two cameras facing the same direction,<wbr/> first
   14587 the source camera <a href="#static_android.lens.distortion">android.<wbr/>lens.<wbr/>distortion</a> must be corrected for.<wbr/>  Then the source
   14588 camera <a href="#static_android.lens.intrinsicCalibration">android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration</a> needs to be applied,<wbr/> followed by the
   14589 <a href="#static_android.lens.poseRotation">android.<wbr/>lens.<wbr/>pose<wbr/>Rotation</a> of the source camera,<wbr/> the translation of the source camera
   14590 relative to the destination camera,<wbr/> the <a href="#static_android.lens.poseRotation">android.<wbr/>lens.<wbr/>pose<wbr/>Rotation</a> of the destination
   14591 camera,<wbr/> and finally the inverse of <a href="#static_android.lens.intrinsicCalibration">android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration</a> of the destination
   14592 camera.<wbr/> This obtains a radial-distortion-free coordinate in the destination camera pixel
   14593 coordinates.<wbr/></p>
   14594 <p>To compare this against a real image from the destination camera,<wbr/> the destination camera
   14595 image then needs to be corrected for radial distortion before comparison or sampling.<wbr/></p>
   14596 <p>When <a href="#static_android.lens.poseReference">android.<wbr/>lens.<wbr/>pose<wbr/>Reference</a> is GYROSCOPE,<wbr/> then this position is relative to
   14597 the center of the primary gyroscope on the device.<wbr/></p>
   14598             </td>
   14599           </tr>
   14600 
   14601 
   14602           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   14603            <!-- end of entry -->
   14604         
   14605                 
   14606           <tr class="entry" id="dynamic_android.lens.intrinsicCalibration">
   14607             <td class="entry_name
   14608              " rowspan="3">
   14609               android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration
   14610             </td>
   14611             <td class="entry_type">
   14612                 <span class="entry_type_name">float</span>
   14613                 <span class="entry_type_container">x</span>
   14614 
   14615                 <span class="entry_type_array">
   14616                   5
   14617                 </span>
   14618               <span class="entry_type_visibility"> [public]</span>
   14619 
   14620 
   14621 
   14622 
   14623 
   14624 
   14625             </td> <!-- entry_type -->
   14626 
   14627             <td class="entry_description">
   14628               <p>The parameters for this camera device's intrinsic
   14629 calibration.<wbr/></p>
   14630             </td>
   14631 
   14632             <td class="entry_units">
   14633               
   14634             Pixels in the
   14635             android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<wbr/>Active<wbr/>Array<wbr/>Size
   14636             coordinate system.<wbr/>
   14637           
   14638             </td>
   14639 
   14640             <td class="entry_range">
   14641             </td>
   14642 
   14643             <td class="entry_hal_version">
   14644               <p>3.<wbr/>2</p>
   14645             </td>
   14646 
   14647             <td class="entry_tags">
   14648               <ul class="entry_tags">
   14649                   <li><a href="#tag_DEPTH">DEPTH</a></li>
   14650               </ul>
   14651             </td>
   14652 
   14653           </tr>
   14654           <tr class="entries_header">
   14655             <th class="th_details" colspan="6">Details</th>
   14656           </tr>
   14657           <tr class="entry_cont">
   14658             <td class="entry_details" colspan="6">
   14659               <p>The five calibration parameters that describe the
   14660 transform from camera-centric 3D coordinates to sensor
   14661 pixel coordinates:</p>
   14662 <pre><code>[f_<wbr/>x,<wbr/> f_<wbr/>y,<wbr/> c_<wbr/>x,<wbr/> c_<wbr/>y,<wbr/> s]
   14663 </code></pre>
   14664 <p>Where <code>f_<wbr/>x</code> and <code>f_<wbr/>y</code> are the horizontal and vertical
   14665 focal lengths,<wbr/> <code>[c_<wbr/>x,<wbr/> c_<wbr/>y]</code> is the position of the optical
   14666 axis,<wbr/> and <code>s</code> is a skew parameter for the sensor plane not
   14667 being aligned with the lens plane.<wbr/></p>
   14668 <p>These are typically used within a transformation matrix K:</p>
   14669 <pre><code>K = [ f_<wbr/>x,<wbr/>   s,<wbr/> c_<wbr/>x,<wbr/>
   14670        0,<wbr/> f_<wbr/>y,<wbr/> c_<wbr/>y,<wbr/>
   14671        0    0,<wbr/>   1 ]
   14672 </code></pre>
   14673 <p>which can then be combined with the camera pose rotation
   14674 <code>R</code> and translation <code>t</code> (<a href="#static_android.lens.poseRotation">android.<wbr/>lens.<wbr/>pose<wbr/>Rotation</a> and
   14675 <a href="#static_android.lens.poseTranslation">android.<wbr/>lens.<wbr/>pose<wbr/>Translation</a>,<wbr/> respective) to calculate the
   14676 complete transform from world coordinates to pixel
   14677 coordinates:</p>
   14678 <pre><code>P = [ K 0   * [ R t
   14679      0 1 ]     0 1 ]
   14680 </code></pre>
   14681 <p>and with <code>p_<wbr/>w</code> being a point in the world coordinate system
   14682 and <code>p_<wbr/>s</code> being a point in the camera active pixel array
   14683 coordinate system,<wbr/> and with the mapping including the
   14684 homogeneous division by z:</p>
   14685 <pre><code> p_<wbr/>h = (x_<wbr/>h,<wbr/> y_<wbr/>h,<wbr/> z_<wbr/>h) = P p_<wbr/>w
   14686 p_<wbr/>s = p_<wbr/>h /<wbr/> z_<wbr/>h
   14687 </code></pre>
   14688 <p>so <code>[x_<wbr/>s,<wbr/> y_<wbr/>s]</code> is the pixel coordinates of the world
   14689 point,<wbr/> <code>z_<wbr/>s = 1</code>,<wbr/> and <code>w_<wbr/>s</code> is a measurement of disparity
   14690 (depth) in pixel coordinates.<wbr/></p>
   14691 <p>Note that the coordinate system for this transform is the
   14692 <a href="#static_android.sensor.info.preCorrectionActiveArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<wbr/>Active<wbr/>Array<wbr/>Size</a> system,<wbr/>
   14693 where <code>(0,<wbr/>0)</code> is the top-left of the
   14694 preCorrectionActiveArraySize rectangle.<wbr/> Once the pose and
   14695 intrinsic calibration transforms have been applied to a
   14696 world point,<wbr/> then the <a href="#static_android.lens.distortion">android.<wbr/>lens.<wbr/>distortion</a>
   14697 transform needs to be applied,<wbr/> and the result adjusted to
   14698 be in the <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a> coordinate
   14699 system (where <code>(0,<wbr/> 0)</code> is the top-left of the
   14700 activeArraySize rectangle),<wbr/> to determine the final pixel
   14701 coordinate of the world point for processed (non-RAW)
   14702 output buffers.<wbr/></p>
   14703             </td>
   14704           </tr>
   14705 
   14706 
   14707           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   14708            <!-- end of entry -->
   14709         
   14710                 
   14711           <tr class="entry" id="dynamic_android.lens.radialDistortion">
   14712             <td class="entry_name
   14713                 entry_name_deprecated
   14714              " rowspan="3">
   14715               android.<wbr/>lens.<wbr/>radial<wbr/>Distortion
   14716             </td>
   14717             <td class="entry_type">
   14718                 <span class="entry_type_name">float</span>
   14719                 <span class="entry_type_container">x</span>
   14720 
   14721                 <span class="entry_type_array">
   14722                   6
   14723                 </span>
   14724               <span class="entry_type_visibility"> [public]</span>
   14725 
   14726 
   14727 
   14728               <span class="entry_type_deprecated">[deprecated] </span>
   14729 
   14730 
   14731 
   14732             </td> <!-- entry_type -->
   14733 
   14734             <td class="entry_description">
   14735               <p>The correction coefficients to correct for this camera device's
   14736 radial and tangential lens distortion.<wbr/></p>
   14737             </td>
   14738 
   14739             <td class="entry_units">
   14740               
   14741             Unitless coefficients.<wbr/>
   14742           
   14743             </td>
   14744 
   14745             <td class="entry_range">
   14746               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   14747             </td>
   14748 
   14749             <td class="entry_hal_version">
   14750               <p>3.<wbr/>2</p>
   14751             </td>
   14752 
   14753             <td class="entry_tags">
   14754               <ul class="entry_tags">
   14755                   <li><a href="#tag_DEPTH">DEPTH</a></li>
   14756               </ul>
   14757             </td>
   14758 
   14759           </tr>
   14760           <tr class="entries_header">
   14761             <th class="th_details" colspan="6">Details</th>
   14762           </tr>
   14763           <tr class="entry_cont">
   14764             <td class="entry_details" colspan="6">
   14765               <p>Four radial distortion coefficients <code>[kappa_<wbr/>0,<wbr/> kappa_<wbr/>1,<wbr/> kappa_<wbr/>2,<wbr/>
   14766 kappa_<wbr/>3]</code> and two tangential distortion coefficients
   14767 <code>[kappa_<wbr/>4,<wbr/> kappa_<wbr/>5]</code> that can be used to correct the
   14768 lens's geometric distortion with the mapping equations:</p>
   14769 <pre><code> x_<wbr/>c = x_<wbr/>i * ( kappa_<wbr/>0 + kappa_<wbr/>1 * r^2 + kappa_<wbr/>2 * r^4 + kappa_<wbr/>3 * r^6 ) +
   14770        kappa_<wbr/>4 * (2 * x_<wbr/>i * y_<wbr/>i) + kappa_<wbr/>5 * ( r^2 + 2 * x_<wbr/>i^2 )
   14771  y_<wbr/>c = y_<wbr/>i * ( kappa_<wbr/>0 + kappa_<wbr/>1 * r^2 + kappa_<wbr/>2 * r^4 + kappa_<wbr/>3 * r^6 ) +
   14772        kappa_<wbr/>5 * (2 * x_<wbr/>i * y_<wbr/>i) + kappa_<wbr/>4 * ( r^2 + 2 * y_<wbr/>i^2 )
   14773 </code></pre>
   14774 <p>Here,<wbr/> <code>[x_<wbr/>c,<wbr/> y_<wbr/>c]</code> are the coordinates to sample in the
   14775 input image that correspond to the pixel values in the
   14776 corrected image at the coordinate <code>[x_<wbr/>i,<wbr/> y_<wbr/>i]</code>:</p>
   14777 <pre><code> correctedImage(x_<wbr/>i,<wbr/> y_<wbr/>i) = sample_<wbr/>at(x_<wbr/>c,<wbr/> y_<wbr/>c,<wbr/> inputImage)
   14778 </code></pre>
   14779 <p>The pixel coordinates are defined in a normalized
   14780 coordinate system related to the
   14781 <a href="#static_android.lens.intrinsicCalibration">android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration</a> calibration fields.<wbr/>
   14782 Both <code>[x_<wbr/>i,<wbr/> y_<wbr/>i]</code> and <code>[x_<wbr/>c,<wbr/> y_<wbr/>c]</code> have <code>(0,<wbr/>0)</code> at the
   14783 lens optical center <code>[c_<wbr/>x,<wbr/> c_<wbr/>y]</code>.<wbr/> The maximum magnitudes
   14784 of both x and y coordinates are normalized to be 1 at the
   14785 edge further from the optical center,<wbr/> so the range
   14786 for both dimensions is <code>-1 &lt;= x &lt;= 1</code>.<wbr/></p>
   14787 <p>Finally,<wbr/> <code>r</code> represents the radial distance from the
   14788 optical center,<wbr/> <code>r^2 = x_<wbr/>i^2 + y_<wbr/>i^2</code>,<wbr/> and its magnitude
   14789 is therefore no larger than <code>|<wbr/>r|<wbr/> &lt;= sqrt(2)</code>.<wbr/></p>
   14790 <p>The distortion model used is the Brown-Conrady model.<wbr/></p>
   14791             </td>
   14792           </tr>
   14793 
   14794 
   14795           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   14796            <!-- end of entry -->
   14797         
   14798                 
   14799           <tr class="entry" id="dynamic_android.lens.distortion">
   14800             <td class="entry_name
   14801              " rowspan="3">
   14802               android.<wbr/>lens.<wbr/>distortion
   14803             </td>
   14804             <td class="entry_type">
   14805                 <span class="entry_type_name">float</span>
   14806                 <span class="entry_type_container">x</span>
   14807 
   14808                 <span class="entry_type_array">
   14809                   5
   14810                 </span>
   14811               <span class="entry_type_visibility"> [public]</span>
   14812 
   14813 
   14814 
   14815 
   14816 
   14817 
   14818             </td> <!-- entry_type -->
   14819 
   14820             <td class="entry_description">
   14821               <p>The correction coefficients to correct for this camera device's
   14822 radial and tangential lens distortion.<wbr/></p>
   14823 <p>Replaces the deprecated <a href="#static_android.lens.radialDistortion">android.<wbr/>lens.<wbr/>radial<wbr/>Distortion</a> field,<wbr/> which was
   14824 inconsistently defined.<wbr/></p>
   14825             </td>
   14826 
   14827             <td class="entry_units">
   14828               
   14829             Unitless coefficients.<wbr/>
   14830           
   14831             </td>
   14832 
   14833             <td class="entry_range">
   14834             </td>
   14835 
   14836             <td class="entry_hal_version">
   14837               <p>3.<wbr/>3</p>
   14838             </td>
   14839 
   14840             <td class="entry_tags">
   14841               <ul class="entry_tags">
   14842                   <li><a href="#tag_DEPTH">DEPTH</a></li>
   14843               </ul>
   14844             </td>
   14845 
   14846           </tr>
   14847           <tr class="entries_header">
   14848             <th class="th_details" colspan="6">Details</th>
   14849           </tr>
   14850           <tr class="entry_cont">
   14851             <td class="entry_details" colspan="6">
   14852               <p>Three radial distortion coefficients <code>[kappa_<wbr/>1,<wbr/> kappa_<wbr/>2,<wbr/>
   14853 kappa_<wbr/>3]</code> and two tangential distortion coefficients
   14854 <code>[kappa_<wbr/>4,<wbr/> kappa_<wbr/>5]</code> that can be used to correct the
   14855 lens's geometric distortion with the mapping equations:</p>
   14856 <pre><code> x_<wbr/>c = x_<wbr/>i * ( 1 + kappa_<wbr/>1 * r^2 + kappa_<wbr/>2 * r^4 + kappa_<wbr/>3 * r^6 ) +
   14857        kappa_<wbr/>4 * (2 * x_<wbr/>i * y_<wbr/>i) + kappa_<wbr/>5 * ( r^2 + 2 * x_<wbr/>i^2 )
   14858  y_<wbr/>c = y_<wbr/>i * ( 1 + kappa_<wbr/>1 * r^2 + kappa_<wbr/>2 * r^4 + kappa_<wbr/>3 * r^6 ) +
   14859        kappa_<wbr/>5 * (2 * x_<wbr/>i * y_<wbr/>i) + kappa_<wbr/>4 * ( r^2 + 2 * y_<wbr/>i^2 )
   14860 </code></pre>
   14861 <p>Here,<wbr/> <code>[x_<wbr/>c,<wbr/> y_<wbr/>c]</code> are the coordinates to sample in the
   14862 input image that correspond to the pixel values in the
   14863 corrected image at the coordinate <code>[x_<wbr/>i,<wbr/> y_<wbr/>i]</code>:</p>
   14864 <pre><code> correctedImage(x_<wbr/>i,<wbr/> y_<wbr/>i) = sample_<wbr/>at(x_<wbr/>c,<wbr/> y_<wbr/>c,<wbr/> inputImage)
   14865 </code></pre>
   14866 <p>The pixel coordinates are defined in a coordinate system
   14867 related to the <a href="#static_android.lens.intrinsicCalibration">android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration</a>
   14868 calibration fields; see that entry for details of the mapping stages.<wbr/>
   14869 Both <code>[x_<wbr/>i,<wbr/> y_<wbr/>i]</code> and <code>[x_<wbr/>c,<wbr/> y_<wbr/>c]</code>
   14870 have <code>(0,<wbr/>0)</code> at the lens optical center <code>[c_<wbr/>x,<wbr/> c_<wbr/>y]</code>,<wbr/> and
   14871 the range of the coordinates depends on the focal length
   14872 terms of the intrinsic calibration.<wbr/></p>
   14873 <p>Finally,<wbr/> <code>r</code> represents the radial distance from the
   14874 optical center,<wbr/> <code>r^2 = x_<wbr/>i^2 + y_<wbr/>i^2</code>.<wbr/></p>
   14875 <p>The distortion model used is the Brown-Conrady model.<wbr/></p>
   14876             </td>
   14877           </tr>
   14878 
   14879 
   14880           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   14881            <!-- end of entry -->
   14882         
   14883         
   14884 
   14885       <!-- end of kind -->
   14886       </tbody>
   14887 
   14888   <!-- end of section -->
   14889   <tr><td colspan="7" id="section_noiseReduction" class="section">noiseReduction</td></tr>
   14890 
   14891 
   14892       <tr><td colspan="7" class="kind">controls</td></tr>
   14893 
   14894       <thead class="entries_header">
   14895         <tr>
   14896           <th class="th_name">Property Name</th>
   14897           <th class="th_type">Type</th>
   14898           <th class="th_description">Description</th>
   14899           <th class="th_units">Units</th>
   14900           <th class="th_range">Range</th>
   14901           <th class="th_hal_version">Initial HIDL HAL version</th>
   14902           <th class="th_tags">Tags</th>
   14903         </tr>
   14904       </thead>
   14905 
   14906       <tbody>
   14907 
   14908         
   14909 
   14910         
   14911 
   14912         
   14913 
   14914         
   14915 
   14916                 
   14917           <tr class="entry" id="controls_android.noiseReduction.mode">
   14918             <td class="entry_name
   14919              " rowspan="5">
   14920               android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
   14921             </td>
   14922             <td class="entry_type">
   14923                 <span class="entry_type_name entry_type_name_enum">byte</span>
   14924 
   14925               <span class="entry_type_visibility"> [public]</span>
   14926 
   14927 
   14928               <span class="entry_type_hwlevel">[full] </span>
   14929 
   14930 
   14931 
   14932                 <ul class="entry_type_enum">
   14933                   <li>
   14934                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   14935                     <span class="entry_type_enum_notes"><p>No noise reduction is applied.<wbr/></p></span>
   14936                   </li>
   14937                   <li>
   14938                     <span class="entry_type_enum_name">FAST (v3.2)</span>
   14939                     <span class="entry_type_enum_notes"><p>Noise reduction is applied without reducing frame rate relative to sensor
   14940 output.<wbr/> It may be the same as OFF if noise reduction will reduce frame rate
   14941 relative to sensor.<wbr/></p></span>
   14942                   </li>
   14943                   <li>
   14944                     <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
   14945                     <span class="entry_type_enum_notes"><p>High-quality noise reduction is applied,<wbr/> at the cost of possibly reduced frame
   14946 rate relative to sensor output.<wbr/></p></span>
   14947                   </li>
   14948                   <li>
   14949                     <span class="entry_type_enum_name">MINIMAL (v3.2)</span>
   14950                     <span class="entry_type_enum_optional">[optional]</span>
   14951                     <span class="entry_type_enum_notes"><p>MINIMAL noise reduction is applied without reducing frame rate relative to
   14952 sensor output.<wbr/> </p></span>
   14953                   </li>
   14954                   <li>
   14955                     <span class="entry_type_enum_name">ZERO_SHUTTER_LAG (v3.2)</span>
   14956                     <span class="entry_type_enum_optional">[optional]</span>
   14957                     <span class="entry_type_enum_notes"><p>Noise reduction is applied at different levels for different output streams,<wbr/>
   14958 based on resolution.<wbr/> Streams at maximum recording resolution (see <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureSession">CameraDevice#createCaptureSession</a>)
   14959 or below have noise reduction applied,<wbr/> while higher-resolution streams have MINIMAL (if
   14960 supported) or no noise reduction applied (if MINIMAL is not supported.<wbr/>) The degree of
   14961 noise reduction for low-resolution streams is tuned so that frame rate is not impacted,<wbr/>
   14962 and the quality is equal to or better than FAST (since it is only applied to
   14963 lower-resolution outputs,<wbr/> quality may improve from FAST).<wbr/></p>
   14964 <p>This mode is intended to be used by applications operating in a zero-shutter-lag mode
   14965 with YUV or PRIVATE reprocessing,<wbr/> where the application continuously captures
   14966 high-resolution intermediate buffers into a circular buffer,<wbr/> from which a final image is
   14967 produced via reprocessing when a user takes a picture.<wbr/>  For such a use case,<wbr/> the
   14968 high-resolution buffers must not have noise reduction applied to maximize efficiency of
   14969 preview and to avoid over-applying noise filtering when reprocessing,<wbr/> while
   14970 low-resolution buffers (used for recording or preview,<wbr/> generally) need noise reduction
   14971 applied for reasonable preview quality.<wbr/></p>
   14972 <p>This mode is guaranteed to be supported by devices that support either the
   14973 YUV_<wbr/>REPROCESSING or PRIVATE_<wbr/>REPROCESSING capabilities
   14974 (<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> lists either of those capabilities) and it will
   14975 be the default mode for CAMERA3_<wbr/>TEMPLATE_<wbr/>ZERO_<wbr/>SHUTTER_<wbr/>LAG template.<wbr/></p></span>
   14976                   </li>
   14977                 </ul>
   14978 
   14979             </td> <!-- entry_type -->
   14980 
   14981             <td class="entry_description">
   14982               <p>Mode of operation for the noise reduction algorithm.<wbr/></p>
   14983             </td>
   14984 
   14985             <td class="entry_units">
   14986             </td>
   14987 
   14988             <td class="entry_range">
   14989               <p><a href="#static_android.noiseReduction.availableNoiseReductionModes">android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Noise<wbr/>Reduction<wbr/>Modes</a></p>
   14990             </td>
   14991 
   14992             <td class="entry_hal_version">
   14993               <p>3.<wbr/>2</p>
   14994             </td>
   14995 
   14996             <td class="entry_tags">
   14997               <ul class="entry_tags">
   14998                   <li><a href="#tag_V1">V1</a></li>
   14999                   <li><a href="#tag_REPROC">REPROC</a></li>
   15000               </ul>
   15001             </td>
   15002 
   15003           </tr>
   15004           <tr class="entries_header">
   15005             <th class="th_details" colspan="6">Details</th>
   15006           </tr>
   15007           <tr class="entry_cont">
   15008             <td class="entry_details" colspan="6">
   15009               <p>The noise reduction algorithm attempts to improve image quality by removing
   15010 excessive noise added by the capture process,<wbr/> especially in dark conditions.<wbr/></p>
   15011 <p>OFF means no noise reduction will be applied by the camera device,<wbr/> for both raw and
   15012 YUV domain.<wbr/></p>
   15013 <p>MINIMAL means that only sensor raw domain basic noise reduction is enabled ,<wbr/>to remove
   15014 demosaicing or other processing artifacts.<wbr/> For YUV_<wbr/>REPROCESSING,<wbr/> MINIMAL is same as OFF.<wbr/>
   15015 This mode is optional,<wbr/> may not be support by all devices.<wbr/> The application should check
   15016 <a href="#static_android.noiseReduction.availableNoiseReductionModes">android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Noise<wbr/>Reduction<wbr/>Modes</a> before using it.<wbr/></p>
   15017 <p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
   15018 will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
   15019 will use the highest-quality noise filtering algorithms,<wbr/>
   15020 even if it slows down capture rate.<wbr/> FAST means the camera device will not
   15021 slow down capture rate when applying noise filtering.<wbr/> FAST may be the same as MINIMAL if
   15022 MINIMAL is listed,<wbr/> or the same as OFF if any noise filtering will slow down capture rate.<wbr/>
   15023 Every output stream will have a similar amount of enhancement applied.<wbr/></p>
   15024 <p>ZERO_<wbr/>SHUTTER_<wbr/>LAG is meant to be used by applications that maintain a continuous circular
   15025 buffer of high-resolution images during preview and reprocess image(s) from that buffer
   15026 into a final capture when triggered by the user.<wbr/> In this mode,<wbr/> the camera device applies
   15027 noise reduction to low-resolution streams (below maximum recording resolution) to maximize
   15028 preview quality,<wbr/> but does not apply noise reduction to high-resolution streams,<wbr/> since
   15029 those will be reprocessed later if necessary.<wbr/></p>
   15030 <p>For YUV_<wbr/>REPROCESSING,<wbr/> these FAST/<wbr/>HIGH_<wbr/>QUALITY modes both mean that the camera device
   15031 will apply FAST/<wbr/>HIGH_<wbr/>QUALITY YUV domain noise reduction,<wbr/> respectively.<wbr/> The camera device
   15032 may adjust the noise reduction parameters for best image quality based on the
   15033 <a href="#controls_android.reprocess.effectiveExposureFactor">android.<wbr/>reprocess.<wbr/>effective<wbr/>Exposure<wbr/>Factor</a> if it is set.<wbr/></p>
   15034             </td>
   15035           </tr>
   15036 
   15037           <tr class="entries_header">
   15038             <th class="th_details" colspan="6">HAL Implementation Details</th>
   15039           </tr>
   15040           <tr class="entry_cont">
   15041             <td class="entry_details" colspan="6">
   15042               <p>For YUV_<wbr/>REPROCESSING The HAL can use <a href="#controls_android.reprocess.effectiveExposureFactor">android.<wbr/>reprocess.<wbr/>effective<wbr/>Exposure<wbr/>Factor</a> to
   15043 adjust the internal noise reduction parameters appropriately to get the best quality
   15044 images.<wbr/></p>
   15045             </td>
   15046           </tr>
   15047 
   15048           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   15049            <!-- end of entry -->
   15050         
   15051                 
   15052           <tr class="entry" id="controls_android.noiseReduction.strength">
   15053             <td class="entry_name
   15054              " rowspan="1">
   15055               android.<wbr/>noise<wbr/>Reduction.<wbr/>strength
   15056             </td>
   15057             <td class="entry_type">
   15058                 <span class="entry_type_name">byte</span>
   15059 
   15060               <span class="entry_type_visibility"> [system]</span>
   15061 
   15062 
   15063 
   15064 
   15065 
   15066 
   15067             </td> <!-- entry_type -->
   15068 
   15069             <td class="entry_description">
   15070               <p>Control the amount of noise reduction
   15071 applied to the images</p>
   15072             </td>
   15073 
   15074             <td class="entry_units">
   15075               1-10; 10 is max noise reduction
   15076             </td>
   15077 
   15078             <td class="entry_range">
   15079               <p>1 - 10</p>
   15080             </td>
   15081 
   15082             <td class="entry_hal_version">
   15083               <p>3.<wbr/>2</p>
   15084             </td>
   15085 
   15086             <td class="entry_tags">
   15087               <ul class="entry_tags">
   15088                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   15089               </ul>
   15090             </td>
   15091 
   15092           </tr>
   15093 
   15094 
   15095           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   15096            <!-- end of entry -->
   15097         
   15098         
   15099 
   15100       <!-- end of kind -->
   15101       </tbody>
   15102       <tr><td colspan="7" class="kind">static</td></tr>
   15103 
   15104       <thead class="entries_header">
   15105         <tr>
   15106           <th class="th_name">Property Name</th>
   15107           <th class="th_type">Type</th>
   15108           <th class="th_description">Description</th>
   15109           <th class="th_units">Units</th>
   15110           <th class="th_range">Range</th>
   15111           <th class="th_hal_version">Initial HIDL HAL version</th>
   15112           <th class="th_tags">Tags</th>
   15113         </tr>
   15114       </thead>
   15115 
   15116       <tbody>
   15117 
   15118         
   15119 
   15120         
   15121 
   15122         
   15123 
   15124         
   15125 
   15126                 
   15127           <tr class="entry" id="static_android.noiseReduction.availableNoiseReductionModes">
   15128             <td class="entry_name
   15129              " rowspan="5">
   15130               android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Noise<wbr/>Reduction<wbr/>Modes
   15131             </td>
   15132             <td class="entry_type">
   15133                 <span class="entry_type_name">byte</span>
   15134                 <span class="entry_type_container">x</span>
   15135 
   15136                 <span class="entry_type_array">
   15137                   n
   15138                 </span>
   15139               <span class="entry_type_visibility"> [public as enumList]</span>
   15140 
   15141 
   15142               <span class="entry_type_hwlevel">[limited] </span>
   15143 
   15144 
   15145                 <div class="entry_type_notes">list of enums</div>
   15146 
   15147 
   15148             </td> <!-- entry_type -->
   15149 
   15150             <td class="entry_description">
   15151               <p>List of noise reduction modes for <a href="#controls_android.noiseReduction.mode">android.<wbr/>noise<wbr/>Reduction.<wbr/>mode</a> that are supported
   15152 by this camera device.<wbr/></p>
   15153             </td>
   15154 
   15155             <td class="entry_units">
   15156             </td>
   15157 
   15158             <td class="entry_range">
   15159               <p>Any value listed in <a href="#controls_android.noiseReduction.mode">android.<wbr/>noise<wbr/>Reduction.<wbr/>mode</a></p>
   15160             </td>
   15161 
   15162             <td class="entry_hal_version">
   15163               <p>3.<wbr/>2</p>
   15164             </td>
   15165 
   15166             <td class="entry_tags">
   15167               <ul class="entry_tags">
   15168                   <li><a href="#tag_V1">V1</a></li>
   15169                   <li><a href="#tag_REPROC">REPROC</a></li>
   15170               </ul>
   15171             </td>
   15172 
   15173           </tr>
   15174           <tr class="entries_header">
   15175             <th class="th_details" colspan="6">Details</th>
   15176           </tr>
   15177           <tr class="entry_cont">
   15178             <td class="entry_details" colspan="6">
   15179               <p>Full-capability camera devices will always support OFF and FAST.<wbr/></p>
   15180 <p>Camera devices that support YUV_<wbr/>REPROCESSING or PRIVATE_<wbr/>REPROCESSING will support
   15181 ZERO_<wbr/>SHUTTER_<wbr/>LAG.<wbr/></p>
   15182 <p>Legacy-capability camera devices will only support FAST mode.<wbr/></p>
   15183             </td>
   15184           </tr>
   15185 
   15186           <tr class="entries_header">
   15187             <th class="th_details" colspan="6">HAL Implementation Details</th>
   15188           </tr>
   15189           <tr class="entry_cont">
   15190             <td class="entry_details" colspan="6">
   15191               <p>HAL must support both FAST and HIGH_<wbr/>QUALITY if noise reduction control is available
   15192 on the camera device,<wbr/> but the underlying implementation can be the same for both modes.<wbr/>
   15193 That is,<wbr/> if the highest quality implementation on the camera device does not slow down
   15194 capture rate,<wbr/> then FAST and HIGH_<wbr/>QUALITY will generate the same output.<wbr/></p>
   15195             </td>
   15196           </tr>
   15197 
   15198           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   15199            <!-- end of entry -->
   15200         
   15201         
   15202 
   15203       <!-- end of kind -->
   15204       </tbody>
   15205       <tr><td colspan="7" class="kind">dynamic</td></tr>
   15206 
   15207       <thead class="entries_header">
   15208         <tr>
   15209           <th class="th_name">Property Name</th>
   15210           <th class="th_type">Type</th>
   15211           <th class="th_description">Description</th>
   15212           <th class="th_units">Units</th>
   15213           <th class="th_range">Range</th>
   15214           <th class="th_hal_version">Initial HIDL HAL version</th>
   15215           <th class="th_tags">Tags</th>
   15216         </tr>
   15217       </thead>
   15218 
   15219       <tbody>
   15220 
   15221         
   15222 
   15223         
   15224 
   15225         
   15226 
   15227         
   15228 
   15229                 
   15230           <tr class="entry" id="dynamic_android.noiseReduction.mode">
   15231             <td class="entry_name
   15232              " rowspan="5">
   15233               android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
   15234             </td>
   15235             <td class="entry_type">
   15236                 <span class="entry_type_name entry_type_name_enum">byte</span>
   15237 
   15238               <span class="entry_type_visibility"> [public]</span>
   15239 
   15240 
   15241               <span class="entry_type_hwlevel">[full] </span>
   15242 
   15243 
   15244 
   15245                 <ul class="entry_type_enum">
   15246                   <li>
   15247                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   15248                     <span class="entry_type_enum_notes"><p>No noise reduction is applied.<wbr/></p></span>
   15249                   </li>
   15250                   <li>
   15251                     <span class="entry_type_enum_name">FAST (v3.2)</span>
   15252                     <span class="entry_type_enum_notes"><p>Noise reduction is applied without reducing frame rate relative to sensor
   15253 output.<wbr/> It may be the same as OFF if noise reduction will reduce frame rate
   15254 relative to sensor.<wbr/></p></span>
   15255                   </li>
   15256                   <li>
   15257                     <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
   15258                     <span class="entry_type_enum_notes"><p>High-quality noise reduction is applied,<wbr/> at the cost of possibly reduced frame
   15259 rate relative to sensor output.<wbr/></p></span>
   15260                   </li>
   15261                   <li>
   15262                     <span class="entry_type_enum_name">MINIMAL (v3.2)</span>
   15263                     <span class="entry_type_enum_optional">[optional]</span>
   15264                     <span class="entry_type_enum_notes"><p>MINIMAL noise reduction is applied without reducing frame rate relative to
   15265 sensor output.<wbr/> </p></span>
   15266                   </li>
   15267                   <li>
   15268                     <span class="entry_type_enum_name">ZERO_SHUTTER_LAG (v3.2)</span>
   15269                     <span class="entry_type_enum_optional">[optional]</span>
   15270                     <span class="entry_type_enum_notes"><p>Noise reduction is applied at different levels for different output streams,<wbr/>
   15271 based on resolution.<wbr/> Streams at maximum recording resolution (see <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureSession">CameraDevice#createCaptureSession</a>)
   15272 or below have noise reduction applied,<wbr/> while higher-resolution streams have MINIMAL (if
   15273 supported) or no noise reduction applied (if MINIMAL is not supported.<wbr/>) The degree of
   15274 noise reduction for low-resolution streams is tuned so that frame rate is not impacted,<wbr/>
   15275 and the quality is equal to or better than FAST (since it is only applied to
   15276 lower-resolution outputs,<wbr/> quality may improve from FAST).<wbr/></p>
   15277 <p>This mode is intended to be used by applications operating in a zero-shutter-lag mode
   15278 with YUV or PRIVATE reprocessing,<wbr/> where the application continuously captures
   15279 high-resolution intermediate buffers into a circular buffer,<wbr/> from which a final image is
   15280 produced via reprocessing when a user takes a picture.<wbr/>  For such a use case,<wbr/> the
   15281 high-resolution buffers must not have noise reduction applied to maximize efficiency of
   15282 preview and to avoid over-applying noise filtering when reprocessing,<wbr/> while
   15283 low-resolution buffers (used for recording or preview,<wbr/> generally) need noise reduction
   15284 applied for reasonable preview quality.<wbr/></p>
   15285 <p>This mode is guaranteed to be supported by devices that support either the
   15286 YUV_<wbr/>REPROCESSING or PRIVATE_<wbr/>REPROCESSING capabilities
   15287 (<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> lists either of those capabilities) and it will
   15288 be the default mode for CAMERA3_<wbr/>TEMPLATE_<wbr/>ZERO_<wbr/>SHUTTER_<wbr/>LAG template.<wbr/></p></span>
   15289                   </li>
   15290                 </ul>
   15291 
   15292             </td> <!-- entry_type -->
   15293 
   15294             <td class="entry_description">
   15295               <p>Mode of operation for the noise reduction algorithm.<wbr/></p>
   15296             </td>
   15297 
   15298             <td class="entry_units">
   15299             </td>
   15300 
   15301             <td class="entry_range">
   15302               <p><a href="#static_android.noiseReduction.availableNoiseReductionModes">android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Noise<wbr/>Reduction<wbr/>Modes</a></p>
   15303             </td>
   15304 
   15305             <td class="entry_hal_version">
   15306               <p>3.<wbr/>2</p>
   15307             </td>
   15308 
   15309             <td class="entry_tags">
   15310               <ul class="entry_tags">
   15311                   <li><a href="#tag_V1">V1</a></li>
   15312                   <li><a href="#tag_REPROC">REPROC</a></li>
   15313               </ul>
   15314             </td>
   15315 
   15316           </tr>
   15317           <tr class="entries_header">
   15318             <th class="th_details" colspan="6">Details</th>
   15319           </tr>
   15320           <tr class="entry_cont">
   15321             <td class="entry_details" colspan="6">
   15322               <p>The noise reduction algorithm attempts to improve image quality by removing
   15323 excessive noise added by the capture process,<wbr/> especially in dark conditions.<wbr/></p>
   15324 <p>OFF means no noise reduction will be applied by the camera device,<wbr/> for both raw and
   15325 YUV domain.<wbr/></p>
   15326 <p>MINIMAL means that only sensor raw domain basic noise reduction is enabled ,<wbr/>to remove
   15327 demosaicing or other processing artifacts.<wbr/> For YUV_<wbr/>REPROCESSING,<wbr/> MINIMAL is same as OFF.<wbr/>
   15328 This mode is optional,<wbr/> may not be support by all devices.<wbr/> The application should check
   15329 <a href="#static_android.noiseReduction.availableNoiseReductionModes">android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Noise<wbr/>Reduction<wbr/>Modes</a> before using it.<wbr/></p>
   15330 <p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
   15331 will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
   15332 will use the highest-quality noise filtering algorithms,<wbr/>
   15333 even if it slows down capture rate.<wbr/> FAST means the camera device will not
   15334 slow down capture rate when applying noise filtering.<wbr/> FAST may be the same as MINIMAL if
   15335 MINIMAL is listed,<wbr/> or the same as OFF if any noise filtering will slow down capture rate.<wbr/>
   15336 Every output stream will have a similar amount of enhancement applied.<wbr/></p>
   15337 <p>ZERO_<wbr/>SHUTTER_<wbr/>LAG is meant to be used by applications that maintain a continuous circular
   15338 buffer of high-resolution images during preview and reprocess image(s) from that buffer
   15339 into a final capture when triggered by the user.<wbr/> In this mode,<wbr/> the camera device applies
   15340 noise reduction to low-resolution streams (below maximum recording resolution) to maximize
   15341 preview quality,<wbr/> but does not apply noise reduction to high-resolution streams,<wbr/> since
   15342 those will be reprocessed later if necessary.<wbr/></p>
   15343 <p>For YUV_<wbr/>REPROCESSING,<wbr/> these FAST/<wbr/>HIGH_<wbr/>QUALITY modes both mean that the camera device
   15344 will apply FAST/<wbr/>HIGH_<wbr/>QUALITY YUV domain noise reduction,<wbr/> respectively.<wbr/> The camera device
   15345 may adjust the noise reduction parameters for best image quality based on the
   15346 <a href="#controls_android.reprocess.effectiveExposureFactor">android.<wbr/>reprocess.<wbr/>effective<wbr/>Exposure<wbr/>Factor</a> if it is set.<wbr/></p>
   15347             </td>
   15348           </tr>
   15349 
   15350           <tr class="entries_header">
   15351             <th class="th_details" colspan="6">HAL Implementation Details</th>
   15352           </tr>
   15353           <tr class="entry_cont">
   15354             <td class="entry_details" colspan="6">
   15355               <p>For YUV_<wbr/>REPROCESSING The HAL can use <a href="#controls_android.reprocess.effectiveExposureFactor">android.<wbr/>reprocess.<wbr/>effective<wbr/>Exposure<wbr/>Factor</a> to
   15356 adjust the internal noise reduction parameters appropriately to get the best quality
   15357 images.<wbr/></p>
   15358             </td>
   15359           </tr>
   15360 
   15361           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   15362            <!-- end of entry -->
   15363         
   15364         
   15365 
   15366       <!-- end of kind -->
   15367       </tbody>
   15368 
   15369   <!-- end of section -->
   15370   <tr><td colspan="7" id="section_quirks" class="section">quirks</td></tr>
   15371 
   15372 
   15373       <tr><td colspan="7" class="kind">static</td></tr>
   15374 
   15375       <thead class="entries_header">
   15376         <tr>
   15377           <th class="th_name">Property Name</th>
   15378           <th class="th_type">Type</th>
   15379           <th class="th_description">Description</th>
   15380           <th class="th_units">Units</th>
   15381           <th class="th_range">Range</th>
   15382           <th class="th_hal_version">Initial HIDL HAL version</th>
   15383           <th class="th_tags">Tags</th>
   15384         </tr>
   15385       </thead>
   15386 
   15387       <tbody>
   15388 
   15389         
   15390 
   15391         
   15392 
   15393         
   15394 
   15395         
   15396 
   15397                 
   15398           <tr class="entry" id="static_android.quirks.meteringCropRegion">
   15399             <td class="entry_name
   15400                 entry_name_deprecated
   15401              " rowspan="3">
   15402               android.<wbr/>quirks.<wbr/>metering<wbr/>Crop<wbr/>Region
   15403             </td>
   15404             <td class="entry_type">
   15405                 <span class="entry_type_name">byte</span>
   15406 
   15407               <span class="entry_type_visibility"> [system]</span>
   15408 
   15409 
   15410 
   15411               <span class="entry_type_deprecated">[deprecated] </span>
   15412 
   15413 
   15414 
   15415             </td> <!-- entry_type -->
   15416 
   15417             <td class="entry_description">
   15418               <p>If set to 1,<wbr/> the camera service does not
   15419 scale 'normalized' coordinates with respect to the crop
   15420 region.<wbr/> This applies to metering input (a{e,<wbr/>f,<wbr/>wb}Region
   15421 and output (face rectangles).<wbr/></p>
   15422             </td>
   15423 
   15424             <td class="entry_units">
   15425             </td>
   15426 
   15427             <td class="entry_range">
   15428               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   15429             </td>
   15430 
   15431             <td class="entry_hal_version">
   15432               <p>3.<wbr/>2</p>
   15433             </td>
   15434 
   15435             <td class="entry_tags">
   15436             </td>
   15437 
   15438           </tr>
   15439           <tr class="entries_header">
   15440             <th class="th_details" colspan="6">Details</th>
   15441           </tr>
   15442           <tr class="entry_cont">
   15443             <td class="entry_details" colspan="6">
   15444               <p>Normalized coordinates refer to those in the
   15445 (-1000,<wbr/>1000) range mentioned in the
   15446 android.<wbr/>hardware.<wbr/>Camera API.<wbr/></p>
   15447 <p>HAL implementations should instead always use and emit
   15448 sensor array-relative coordinates for all region data.<wbr/> Does
   15449 not need to be listed in static metadata.<wbr/> Support will be
   15450 removed in future versions of camera service.<wbr/></p>
   15451             </td>
   15452           </tr>
   15453 
   15454 
   15455           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   15456            <!-- end of entry -->
   15457         
   15458                 
   15459           <tr class="entry" id="static_android.quirks.triggerAfWithAuto">
   15460             <td class="entry_name
   15461                 entry_name_deprecated
   15462              " rowspan="3">
   15463               android.<wbr/>quirks.<wbr/>trigger<wbr/>Af<wbr/>With<wbr/>Auto
   15464             </td>
   15465             <td class="entry_type">
   15466                 <span class="entry_type_name">byte</span>
   15467 
   15468               <span class="entry_type_visibility"> [system]</span>
   15469 
   15470 
   15471 
   15472               <span class="entry_type_deprecated">[deprecated] </span>
   15473 
   15474 
   15475 
   15476             </td> <!-- entry_type -->
   15477 
   15478             <td class="entry_description">
   15479               <p>If set to 1,<wbr/> then the camera service always
   15480 switches to FOCUS_<wbr/>MODE_<wbr/>AUTO before issuing a AF
   15481 trigger.<wbr/></p>
   15482             </td>
   15483 
   15484             <td class="entry_units">
   15485             </td>
   15486 
   15487             <td class="entry_range">
   15488               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   15489             </td>
   15490 
   15491             <td class="entry_hal_version">
   15492               <p>3.<wbr/>2</p>
   15493             </td>
   15494 
   15495             <td class="entry_tags">
   15496             </td>
   15497 
   15498           </tr>
   15499           <tr class="entries_header">
   15500             <th class="th_details" colspan="6">Details</th>
   15501           </tr>
   15502           <tr class="entry_cont">
   15503             <td class="entry_details" colspan="6">
   15504               <p>HAL implementations should implement AF trigger
   15505 modes for AUTO,<wbr/> MACRO,<wbr/> CONTINUOUS_<wbr/>FOCUS,<wbr/> and
   15506 CONTINUOUS_<wbr/>PICTURE modes instead of using this flag.<wbr/> Does
   15507 not need to be listed in static metadata.<wbr/> Support will be
   15508 removed in future versions of camera service</p>
   15509             </td>
   15510           </tr>
   15511 
   15512 
   15513           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   15514            <!-- end of entry -->
   15515         
   15516                 
   15517           <tr class="entry" id="static_android.quirks.useZslFormat">
   15518             <td class="entry_name
   15519                 entry_name_deprecated
   15520              " rowspan="3">
   15521               android.<wbr/>quirks.<wbr/>use<wbr/>Zsl<wbr/>Format
   15522             </td>
   15523             <td class="entry_type">
   15524                 <span class="entry_type_name">byte</span>
   15525 
   15526               <span class="entry_type_visibility"> [system]</span>
   15527 
   15528 
   15529 
   15530               <span class="entry_type_deprecated">[deprecated] </span>
   15531 
   15532 
   15533 
   15534             </td> <!-- entry_type -->
   15535 
   15536             <td class="entry_description">
   15537               <p>If set to 1,<wbr/> the camera service uses
   15538 CAMERA2_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>ZSL instead of
   15539 HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>IMPLEMENTATION_<wbr/>DEFINED for the zero
   15540 shutter lag stream</p>
   15541             </td>
   15542 
   15543             <td class="entry_units">
   15544             </td>
   15545 
   15546             <td class="entry_range">
   15547               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   15548             </td>
   15549 
   15550             <td class="entry_hal_version">
   15551               <p>3.<wbr/>2</p>
   15552             </td>
   15553 
   15554             <td class="entry_tags">
   15555             </td>
   15556 
   15557           </tr>
   15558           <tr class="entries_header">
   15559             <th class="th_details" colspan="6">Details</th>
   15560           </tr>
   15561           <tr class="entry_cont">
   15562             <td class="entry_details" colspan="6">
   15563               <p>HAL implementations should use gralloc usage flags
   15564 to determine that a stream will be used for
   15565 zero-shutter-lag,<wbr/> instead of relying on an explicit
   15566 format setting.<wbr/> Does not need to be listed in static
   15567 metadata.<wbr/> Support will be removed in future versions of
   15568 camera service.<wbr/></p>
   15569             </td>
   15570           </tr>
   15571 
   15572 
   15573           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   15574            <!-- end of entry -->
   15575         
   15576                 
   15577           <tr class="entry" id="static_android.quirks.usePartialResult">
   15578             <td class="entry_name
   15579                 entry_name_deprecated
   15580              " rowspan="5">
   15581               android.<wbr/>quirks.<wbr/>use<wbr/>Partial<wbr/>Result
   15582             </td>
   15583             <td class="entry_type">
   15584                 <span class="entry_type_name">byte</span>
   15585 
   15586               <span class="entry_type_visibility"> [hidden]</span>
   15587 
   15588 
   15589 
   15590               <span class="entry_type_deprecated">[deprecated] </span>
   15591 
   15592 
   15593 
   15594             </td> <!-- entry_type -->
   15595 
   15596             <td class="entry_description">
   15597               <p>If set to 1,<wbr/> the HAL will always split result
   15598 metadata for a single capture into multiple buffers,<wbr/>
   15599 returned using multiple process_<wbr/>capture_<wbr/>result calls.<wbr/></p>
   15600             </td>
   15601 
   15602             <td class="entry_units">
   15603             </td>
   15604 
   15605             <td class="entry_range">
   15606               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   15607             </td>
   15608 
   15609             <td class="entry_hal_version">
   15610               <p>3.<wbr/>2</p>
   15611             </td>
   15612 
   15613             <td class="entry_tags">
   15614             </td>
   15615 
   15616           </tr>
   15617           <tr class="entries_header">
   15618             <th class="th_details" colspan="6">Details</th>
   15619           </tr>
   15620           <tr class="entry_cont">
   15621             <td class="entry_details" colspan="6">
   15622               <p>Does not need to be listed in static
   15623 metadata.<wbr/> Support for partial results will be reworked in
   15624 future versions of camera service.<wbr/> This quirk will stop
   15625 working at that point; DO NOT USE without careful
   15626 consideration of future support.<wbr/></p>
   15627             </td>
   15628           </tr>
   15629 
   15630           <tr class="entries_header">
   15631             <th class="th_details" colspan="6">HAL Implementation Details</th>
   15632           </tr>
   15633           <tr class="entry_cont">
   15634             <td class="entry_details" colspan="6">
   15635               <p>Refer to <code>camera3_<wbr/>capture_<wbr/>result::partial_<wbr/>result</code>
   15636 for information on how to implement partial results.<wbr/></p>
   15637             </td>
   15638           </tr>
   15639 
   15640           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   15641            <!-- end of entry -->
   15642         
   15643         
   15644 
   15645       <!-- end of kind -->
   15646       </tbody>
   15647       <tr><td colspan="7" class="kind">dynamic</td></tr>
   15648 
   15649       <thead class="entries_header">
   15650         <tr>
   15651           <th class="th_name">Property Name</th>
   15652           <th class="th_type">Type</th>
   15653           <th class="th_description">Description</th>
   15654           <th class="th_units">Units</th>
   15655           <th class="th_range">Range</th>
   15656           <th class="th_hal_version">Initial HIDL HAL version</th>
   15657           <th class="th_tags">Tags</th>
   15658         </tr>
   15659       </thead>
   15660 
   15661       <tbody>
   15662 
   15663         
   15664 
   15665         
   15666 
   15667         
   15668 
   15669         
   15670 
   15671                 
   15672           <tr class="entry" id="dynamic_android.quirks.partialResult">
   15673             <td class="entry_name
   15674                 entry_name_deprecated
   15675              " rowspan="5">
   15676               android.<wbr/>quirks.<wbr/>partial<wbr/>Result
   15677             </td>
   15678             <td class="entry_type">
   15679                 <span class="entry_type_name entry_type_name_enum">byte</span>
   15680 
   15681               <span class="entry_type_visibility"> [hidden as boolean]</span>
   15682 
   15683 
   15684 
   15685               <span class="entry_type_deprecated">[deprecated] </span>
   15686 
   15687 
   15688                 <ul class="entry_type_enum">
   15689                   <li>
   15690                     <span class="entry_type_enum_name">FINAL (v3.2)</span>
   15691                     <span class="entry_type_enum_notes"><p>The last or only metadata result buffer
   15692 for this capture.<wbr/></p></span>
   15693                   </li>
   15694                   <li>
   15695                     <span class="entry_type_enum_name">PARTIAL (v3.2)</span>
   15696                     <span class="entry_type_enum_notes"><p>A partial buffer of result metadata for this
   15697 capture.<wbr/> More result buffers for this capture will be sent
   15698 by the camera device,<wbr/> the last of which will be marked
   15699 FINAL.<wbr/></p></span>
   15700                   </li>
   15701                 </ul>
   15702 
   15703             </td> <!-- entry_type -->
   15704 
   15705             <td class="entry_description">
   15706               <p>Whether a result given to the framework is the
   15707 final one for the capture,<wbr/> or only a partial that contains a
   15708 subset of the full set of dynamic metadata
   15709 values.<wbr/></p>
   15710             </td>
   15711 
   15712             <td class="entry_units">
   15713             </td>
   15714 
   15715             <td class="entry_range">
   15716               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   15717               <p>Optional.<wbr/> Default value is FINAL.<wbr/></p>
   15718             </td>
   15719 
   15720             <td class="entry_hal_version">
   15721               <p>3.<wbr/>2</p>
   15722             </td>
   15723 
   15724             <td class="entry_tags">
   15725             </td>
   15726 
   15727           </tr>
   15728           <tr class="entries_header">
   15729             <th class="th_details" colspan="6">Details</th>
   15730           </tr>
   15731           <tr class="entry_cont">
   15732             <td class="entry_details" colspan="6">
   15733               <p>The entries in the result metadata buffers for a
   15734 single capture may not overlap,<wbr/> except for this entry.<wbr/> The
   15735 FINAL buffers must retain FIFO ordering relative to the
   15736 requests that generate them,<wbr/> so the FINAL buffer for frame 3 must
   15737 always be sent to the framework after the FINAL buffer for frame 2,<wbr/> and
   15738 before the FINAL buffer for frame 4.<wbr/> PARTIAL buffers may be returned
   15739 in any order relative to other frames,<wbr/> but all PARTIAL buffers for a given
   15740 capture must arrive before the FINAL buffer for that capture.<wbr/> This entry may
   15741 only be used by the camera device if quirks.<wbr/>usePartialResult is set to 1.<wbr/></p>
   15742             </td>
   15743           </tr>
   15744 
   15745           <tr class="entries_header">
   15746             <th class="th_details" colspan="6">HAL Implementation Details</th>
   15747           </tr>
   15748           <tr class="entry_cont">
   15749             <td class="entry_details" colspan="6">
   15750               <p>Refer to <code>camera3_<wbr/>capture_<wbr/>result::partial_<wbr/>result</code>
   15751 for information on how to implement partial results.<wbr/></p>
   15752             </td>
   15753           </tr>
   15754 
   15755           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   15756            <!-- end of entry -->
   15757         
   15758         
   15759 
   15760       <!-- end of kind -->
   15761       </tbody>
   15762 
   15763   <!-- end of section -->
   15764   <tr><td colspan="7" id="section_request" class="section">request</td></tr>
   15765 
   15766 
   15767       <tr><td colspan="7" class="kind">controls</td></tr>
   15768 
   15769       <thead class="entries_header">
   15770         <tr>
   15771           <th class="th_name">Property Name</th>
   15772           <th class="th_type">Type</th>
   15773           <th class="th_description">Description</th>
   15774           <th class="th_units">Units</th>
   15775           <th class="th_range">Range</th>
   15776           <th class="th_hal_version">Initial HIDL HAL version</th>
   15777           <th class="th_tags">Tags</th>
   15778         </tr>
   15779       </thead>
   15780 
   15781       <tbody>
   15782 
   15783         
   15784 
   15785         
   15786 
   15787         
   15788 
   15789         
   15790 
   15791                 
   15792           <tr class="entry" id="controls_android.request.frameCount">
   15793             <td class="entry_name
   15794                 entry_name_deprecated
   15795              " rowspan="1">
   15796               android.<wbr/>request.<wbr/>frame<wbr/>Count
   15797             </td>
   15798             <td class="entry_type">
   15799                 <span class="entry_type_name">int32</span>
   15800 
   15801               <span class="entry_type_visibility"> [system]</span>
   15802 
   15803 
   15804 
   15805               <span class="entry_type_deprecated">[deprecated] </span>
   15806 
   15807 
   15808 
   15809             </td> <!-- entry_type -->
   15810 
   15811             <td class="entry_description">
   15812               <p>A frame counter set by the framework.<wbr/> Must
   15813 be maintained unchanged in output frame.<wbr/> This value monotonically
   15814 increases with every new result (that is,<wbr/> each new result has a unique
   15815 frameCount value).<wbr/></p>
   15816             </td>
   15817 
   15818             <td class="entry_units">
   15819               incrementing integer
   15820             </td>
   15821 
   15822             <td class="entry_range">
   15823               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   15824               <p>Any int.<wbr/></p>
   15825             </td>
   15826 
   15827             <td class="entry_hal_version">
   15828               <p>3.<wbr/>2</p>
   15829             </td>
   15830 
   15831             <td class="entry_tags">
   15832             </td>
   15833 
   15834           </tr>
   15835 
   15836 
   15837           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   15838            <!-- end of entry -->
   15839         
   15840                 
   15841           <tr class="entry" id="controls_android.request.id">
   15842             <td class="entry_name
   15843              " rowspan="1">
   15844               android.<wbr/>request.<wbr/>id
   15845             </td>
   15846             <td class="entry_type">
   15847                 <span class="entry_type_name">int32</span>
   15848 
   15849               <span class="entry_type_visibility"> [hidden]</span>
   15850 
   15851 
   15852 
   15853 
   15854 
   15855 
   15856             </td> <!-- entry_type -->
   15857 
   15858             <td class="entry_description">
   15859               <p>An application-specified ID for the current
   15860 request.<wbr/> Must be maintained unchanged in output
   15861 frame</p>
   15862             </td>
   15863 
   15864             <td class="entry_units">
   15865               arbitrary integer assigned by application
   15866             </td>
   15867 
   15868             <td class="entry_range">
   15869               <p>Any int</p>
   15870             </td>
   15871 
   15872             <td class="entry_hal_version">
   15873               <p>3.<wbr/>2</p>
   15874             </td>
   15875 
   15876             <td class="entry_tags">
   15877               <ul class="entry_tags">
   15878                   <li><a href="#tag_V1">V1</a></li>
   15879               </ul>
   15880             </td>
   15881 
   15882           </tr>
   15883 
   15884 
   15885           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   15886            <!-- end of entry -->
   15887         
   15888                 
   15889           <tr class="entry" id="controls_android.request.inputStreams">
   15890             <td class="entry_name
   15891                 entry_name_deprecated
   15892              " rowspan="3">
   15893               android.<wbr/>request.<wbr/>input<wbr/>Streams
   15894             </td>
   15895             <td class="entry_type">
   15896                 <span class="entry_type_name">int32</span>
   15897                 <span class="entry_type_container">x</span>
   15898 
   15899                 <span class="entry_type_array">
   15900                   n
   15901                 </span>
   15902               <span class="entry_type_visibility"> [system]</span>
   15903 
   15904 
   15905 
   15906               <span class="entry_type_deprecated">[deprecated] </span>
   15907 
   15908 
   15909 
   15910             </td> <!-- entry_type -->
   15911 
   15912             <td class="entry_description">
   15913               <p>List which camera reprocess stream is used
   15914 for the source of reprocessing data.<wbr/></p>
   15915             </td>
   15916 
   15917             <td class="entry_units">
   15918               List of camera reprocess stream IDs
   15919             </td>
   15920 
   15921             <td class="entry_range">
   15922               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   15923               <p>Typically,<wbr/> only one entry allowed,<wbr/> must be a valid reprocess stream ID.<wbr/></p>
   15924             </td>
   15925 
   15926             <td class="entry_hal_version">
   15927               <p>3.<wbr/>2</p>
   15928             </td>
   15929 
   15930             <td class="entry_tags">
   15931               <ul class="entry_tags">
   15932                   <li><a href="#tag_HAL2">HAL2</a></li>
   15933               </ul>
   15934             </td>
   15935 
   15936           </tr>
   15937           <tr class="entries_header">
   15938             <th class="th_details" colspan="6">Details</th>
   15939           </tr>
   15940           <tr class="entry_cont">
   15941             <td class="entry_details" colspan="6">
   15942               <p>Only meaningful when <a href="#controls_android.request.type">android.<wbr/>request.<wbr/>type</a> ==
   15943 REPROCESS.<wbr/> Ignored otherwise</p>
   15944             </td>
   15945           </tr>
   15946 
   15947 
   15948           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   15949            <!-- end of entry -->
   15950         
   15951                 
   15952           <tr class="entry" id="controls_android.request.metadataMode">
   15953             <td class="entry_name
   15954              " rowspan="1">
   15955               android.<wbr/>request.<wbr/>metadata<wbr/>Mode
   15956             </td>
   15957             <td class="entry_type">
   15958                 <span class="entry_type_name entry_type_name_enum">byte</span>
   15959 
   15960               <span class="entry_type_visibility"> [system]</span>
   15961 
   15962 
   15963 
   15964 
   15965 
   15966                 <ul class="entry_type_enum">
   15967                   <li>
   15968                     <span class="entry_type_enum_name">NONE (v3.2)</span>
   15969                     <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
   15970 for application-bound buffer data.<wbr/> If no
   15971 application-bound streams exist,<wbr/> no frame should be
   15972 placed in the output frame queue.<wbr/> If such streams
   15973 exist,<wbr/> a frame should be placed on the output queue
   15974 with null metadata but with the necessary output buffer
   15975 information.<wbr/> Timestamp information should still be
   15976 included with any output stream buffers</p></span>
   15977                   </li>
   15978                   <li>
   15979                     <span class="entry_type_enum_name">FULL (v3.2)</span>
   15980                     <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
   15981 only be produced if they are separately
   15982 enabled</p></span>
   15983                   </li>
   15984                 </ul>
   15985 
   15986             </td> <!-- entry_type -->
   15987 
   15988             <td class="entry_description">
   15989               <p>How much metadata to produce on
   15990 output</p>
   15991             </td>
   15992 
   15993             <td class="entry_units">
   15994             </td>
   15995 
   15996             <td class="entry_range">
   15997             </td>
   15998 
   15999             <td class="entry_hal_version">
   16000               <p>3.<wbr/>2</p>
   16001             </td>
   16002 
   16003             <td class="entry_tags">
   16004               <ul class="entry_tags">
   16005                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   16006               </ul>
   16007             </td>
   16008 
   16009           </tr>
   16010 
   16011 
   16012           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   16013            <!-- end of entry -->
   16014         
   16015                 
   16016           <tr class="entry" id="controls_android.request.outputStreams">
   16017             <td class="entry_name
   16018                 entry_name_deprecated
   16019              " rowspan="3">
   16020               android.<wbr/>request.<wbr/>output<wbr/>Streams
   16021             </td>
   16022             <td class="entry_type">
   16023                 <span class="entry_type_name">int32</span>
   16024                 <span class="entry_type_container">x</span>
   16025 
   16026                 <span class="entry_type_array">
   16027                   n
   16028                 </span>
   16029               <span class="entry_type_visibility"> [system]</span>
   16030 
   16031 
   16032 
   16033               <span class="entry_type_deprecated">[deprecated] </span>
   16034 
   16035 
   16036 
   16037             </td> <!-- entry_type -->
   16038 
   16039             <td class="entry_description">
   16040               <p>Lists which camera output streams image data
   16041 from this capture must be sent to</p>
   16042             </td>
   16043 
   16044             <td class="entry_units">
   16045               List of camera stream IDs
   16046             </td>
   16047 
   16048             <td class="entry_range">
   16049               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   16050               <p>List must only include streams that have been
   16051 created</p>
   16052             </td>
   16053 
   16054             <td class="entry_hal_version">
   16055               <p>3.<wbr/>2</p>
   16056             </td>
   16057 
   16058             <td class="entry_tags">
   16059               <ul class="entry_tags">
   16060                   <li><a href="#tag_HAL2">HAL2</a></li>
   16061               </ul>
   16062             </td>
   16063 
   16064           </tr>
   16065           <tr class="entries_header">
   16066             <th class="th_details" colspan="6">Details</th>
   16067           </tr>
   16068           <tr class="entry_cont">
   16069             <td class="entry_details" colspan="6">
   16070               <p>If no output streams are listed,<wbr/> then the image
   16071 data should simply be discarded.<wbr/> The image data must
   16072 still be captured for metadata and statistics production,<wbr/>
   16073 and the lens and flash must operate as requested.<wbr/></p>
   16074             </td>
   16075           </tr>
   16076 
   16077 
   16078           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   16079            <!-- end of entry -->
   16080         
   16081                 
   16082           <tr class="entry" id="controls_android.request.type">
   16083             <td class="entry_name
   16084                 entry_name_deprecated
   16085              " rowspan="1">
   16086               android.<wbr/>request.<wbr/>type
   16087             </td>
   16088             <td class="entry_type">
   16089                 <span class="entry_type_name entry_type_name_enum">byte</span>
   16090 
   16091               <span class="entry_type_visibility"> [system]</span>
   16092 
   16093 
   16094 
   16095               <span class="entry_type_deprecated">[deprecated] </span>
   16096 
   16097 
   16098                 <ul class="entry_type_enum">
   16099                   <li>
   16100                     <span class="entry_type_enum_name">CAPTURE (v3.2)</span>
   16101                     <span class="entry_type_enum_notes"><p>Capture a new image from the imaging hardware,<wbr/>
   16102 and process it according to the
   16103 settings</p></span>
   16104                   </li>
   16105                   <li>
   16106                     <span class="entry_type_enum_name">REPROCESS (v3.2)</span>
   16107                     <span class="entry_type_enum_notes"><p>Process previously captured data; the
   16108 <a href="#controls_android.request.inputStreams">android.<wbr/>request.<wbr/>input<wbr/>Streams</a> parameter determines the
   16109 source reprocessing stream.<wbr/> TODO: Mark dynamic metadata
   16110 needed for reprocessing with [RP]</p></span>
   16111                   </li>
   16112                 </ul>
   16113 
   16114             </td> <!-- entry_type -->
   16115 
   16116             <td class="entry_description">
   16117               <p>The type of the request; either CAPTURE or
   16118 REPROCESS.<wbr/> For legacy HAL3,<wbr/> this tag is redundant.<wbr/></p>
   16119             </td>
   16120 
   16121             <td class="entry_units">
   16122             </td>
   16123 
   16124             <td class="entry_range">
   16125               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   16126             </td>
   16127 
   16128             <td class="entry_hal_version">
   16129               <p>3.<wbr/>2</p>
   16130             </td>
   16131 
   16132             <td class="entry_tags">
   16133               <ul class="entry_tags">
   16134                   <li><a href="#tag_HAL2">HAL2</a></li>
   16135               </ul>
   16136             </td>
   16137 
   16138           </tr>
   16139 
   16140 
   16141           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   16142            <!-- end of entry -->
   16143         
   16144         
   16145 
   16146       <!-- end of kind -->
   16147       </tbody>
   16148       <tr><td colspan="7" class="kind">static</td></tr>
   16149 
   16150       <thead class="entries_header">
   16151         <tr>
   16152           <th class="th_name">Property Name</th>
   16153           <th class="th_type">Type</th>
   16154           <th class="th_description">Description</th>
   16155           <th class="th_units">Units</th>
   16156           <th class="th_range">Range</th>
   16157           <th class="th_hal_version">Initial HIDL HAL version</th>
   16158           <th class="th_tags">Tags</th>
   16159         </tr>
   16160       </thead>
   16161 
   16162       <tbody>
   16163 
   16164         
   16165 
   16166         
   16167 
   16168         
   16169 
   16170         
   16171 
   16172                 
   16173           <tr class="entry" id="static_android.request.maxNumOutputStreams">
   16174             <td class="entry_name
   16175              " rowspan="3">
   16176               android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Streams
   16177             </td>
   16178             <td class="entry_type">
   16179                 <span class="entry_type_name">int32</span>
   16180                 <span class="entry_type_container">x</span>
   16181 
   16182                 <span class="entry_type_array">
   16183                   3
   16184                 </span>
   16185               <span class="entry_type_visibility"> [ndk_public]</span>
   16186 
   16187 
   16188               <span class="entry_type_hwlevel">[legacy] </span>
   16189 
   16190 
   16191 
   16192 
   16193             </td> <!-- entry_type -->
   16194 
   16195             <td class="entry_description">
   16196               <p>The maximum numbers of different types of output streams
   16197 that can be configured and used simultaneously by a camera device.<wbr/></p>
   16198             </td>
   16199 
   16200             <td class="entry_units">
   16201             </td>
   16202 
   16203             <td class="entry_range">
   16204               <p>For processed (and stalling) format streams,<wbr/> &gt;= 1.<wbr/></p>
   16205 <p>For Raw format (either stalling or non-stalling) streams,<wbr/> &gt;= 0.<wbr/></p>
   16206 <p>For processed (but not stalling) format streams,<wbr/> &gt;= 3
   16207 for FULL mode devices (<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL</code>);
   16208 &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>
   16209             </td>
   16210 
   16211             <td class="entry_hal_version">
   16212               <p>3.<wbr/>2</p>
   16213             </td>
   16214 
   16215             <td class="entry_tags">
   16216               <ul class="entry_tags">
   16217                   <li><a href="#tag_BC">BC</a></li>
   16218               </ul>
   16219             </td>
   16220 
   16221           </tr>
   16222           <tr class="entries_header">
   16223             <th class="th_details" colspan="6">Details</th>
   16224           </tr>
   16225           <tr class="entry_cont">
   16226             <td class="entry_details" colspan="6">
   16227               <p>This is a 3 element tuple that contains the max number of output simultaneous
   16228 streams for raw sensor,<wbr/> processed (but not stalling),<wbr/> and processed (and stalling)
   16229 formats respectively.<wbr/> For example,<wbr/> assuming that JPEG is typically a processed and
   16230 stalling stream,<wbr/> if max raw sensor format output stream number is 1,<wbr/> max YUV streams
   16231 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>
   16232 <p>This lists the upper bound of the number of output streams supported by
   16233 the camera device.<wbr/> Using more streams simultaneously may require more hardware and
   16234 CPU resources that will consume more power.<wbr/> The image format for an output stream can
   16235 be any supported format provided by <a href="#static_android.scaler.availableStreamConfigurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stream<wbr/>Configurations</a>.<wbr/>
   16236 The formats defined in <a href="#static_android.scaler.availableStreamConfigurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stream<wbr/>Configurations</a> can be catergorized
   16237 into the 3 stream types as below:</p>
   16238 <ul>
   16239 <li>Processed (but stalling): any non-RAW format with a stallDurations &gt; 0.<wbr/>
   16240   Typically <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">JPEG format</a>.<wbr/></li>
   16241 <li>Raw formats: <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#RAW_SENSOR">RAW_<wbr/>SENSOR</a>,<wbr/> <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#RAW10">RAW10</a>,<wbr/> or
   16242   <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#RAW12">RAW12</a>.<wbr/></li>
   16243 <li>Processed (but not-stalling): any non-RAW format without a stall duration.<wbr/>  Typically
   16244   <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">YUV_<wbr/>420_<wbr/>888</a>,<wbr/>
   16245   <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#NV21">NV21</a>,<wbr/> or <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YV12">YV12</a>.<wbr/></li>
   16246 </ul>
   16247             </td>
   16248           </tr>
   16249 
   16250 
   16251           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   16252            <!-- end of entry -->
   16253         
   16254                 
   16255           <tr class="entry" id="static_android.request.maxNumOutputRaw">
   16256             <td class="entry_name
   16257              " rowspan="3">
   16258               android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Raw
   16259             </td>
   16260             <td class="entry_type">
   16261                 <span class="entry_type_name">int32</span>
   16262 
   16263               <span class="entry_type_visibility"> [java_public]</span>
   16264 
   16265               <span class="entry_type_synthetic">[synthetic] </span>
   16266 
   16267               <span class="entry_type_hwlevel">[legacy] </span>
   16268 
   16269 
   16270 
   16271 
   16272             </td> <!-- entry_type -->
   16273 
   16274             <td class="entry_description">
   16275               <p>The maximum numbers of different types of output streams
   16276 that can be configured and used simultaneously by a camera device
   16277 for any <code>RAW</code> formats.<wbr/></p>
   16278             </td>
   16279 
   16280             <td class="entry_units">
   16281             </td>
   16282 
   16283             <td class="entry_range">
   16284               <p>&gt;= 0</p>
   16285             </td>
   16286 
   16287             <td class="entry_hal_version">
   16288               <p>3.<wbr/>2</p>
   16289             </td>
   16290 
   16291             <td class="entry_tags">
   16292             </td>
   16293 
   16294           </tr>
   16295           <tr class="entries_header">
   16296             <th class="th_details" colspan="6">Details</th>
   16297           </tr>
   16298           <tr class="entry_cont">
   16299             <td class="entry_details" colspan="6">
   16300               <p>This value contains the max number of output simultaneous
   16301 streams from the raw sensor.<wbr/></p>
   16302 <p>This lists the upper bound of the number of output streams supported by
   16303 the camera device.<wbr/> Using more streams simultaneously may require more hardware and
   16304 CPU resources that will consume more power.<wbr/> The image format for this kind of an output stream can
   16305 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>
   16306 <p>In particular,<wbr/> a <code>RAW</code> format is typically one of:</p>
   16307 <ul>
   16308 <li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#RAW_SENSOR">RAW_<wbr/>SENSOR</a></li>
   16309 <li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#RAW10">RAW10</a></li>
   16310 <li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#RAW12">RAW12</a></li>
   16311 </ul>
   16312 <p>LEGACY mode devices (<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> <code>==</code> LEGACY)
   16313 never support raw streams.<wbr/></p>
   16314             </td>
   16315           </tr>
   16316 
   16317 
   16318           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   16319            <!-- end of entry -->
   16320         
   16321                 
   16322           <tr class="entry" id="static_android.request.maxNumOutputProc">
   16323             <td class="entry_name
   16324              " rowspan="3">
   16325               android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Proc
   16326             </td>
   16327             <td class="entry_type">
   16328                 <span class="entry_type_name">int32</span>
   16329 
   16330               <span class="entry_type_visibility"> [java_public]</span>
   16331 
   16332               <span class="entry_type_synthetic">[synthetic] </span>
   16333 
   16334               <span class="entry_type_hwlevel">[legacy] </span>
   16335 
   16336 
   16337 
   16338 
   16339             </td> <!-- entry_type -->
   16340 
   16341             <td class="entry_description">
   16342               <p>The maximum numbers of different types of output streams
   16343 that can be configured and used simultaneously by a camera device
   16344 for any processed (but not-stalling) formats.<wbr/></p>
   16345             </td>
   16346 
   16347             <td class="entry_units">
   16348             </td>
   16349 
   16350             <td class="entry_range">
   16351               <p>&gt;= 3
   16352 for FULL mode devices (<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL</code>);
   16353 &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>
   16354             </td>
   16355 
   16356             <td class="entry_hal_version">
   16357               <p>3.<wbr/>2</p>
   16358             </td>
   16359 
   16360             <td class="entry_tags">
   16361             </td>
   16362 
   16363           </tr>
   16364           <tr class="entries_header">
   16365             <th class="th_details" colspan="6">Details</th>
   16366           </tr>
   16367           <tr class="entry_cont">
   16368             <td class="entry_details" colspan="6">
   16369               <p>This value contains the max number of output simultaneous
   16370 streams for any processed (but not-stalling) formats.<wbr/></p>
   16371 <p>This lists the upper bound of the number of output streams supported by
   16372 the camera device.<wbr/> Using more streams simultaneously may require more hardware and
   16373 CPU resources that will consume more power.<wbr/> The image format for this kind of an output stream can
   16374 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>
   16375 <p>Processed (but not-stalling) is defined as any non-RAW format without a stall duration.<wbr/>
   16376 Typically:</p>
   16377 <ul>
   16378 <li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">YUV_<wbr/>420_<wbr/>888</a></li>
   16379 <li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#NV21">NV21</a></li>
   16380 <li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YV12">YV12</a></li>
   16381 <li>Implementation-defined formats,<wbr/> i.<wbr/>e.<wbr/> <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#isOutputSupportedFor(Class)">StreamConfigurationMap#isOutputSupportedFor(Class)</a></li>
   16382 </ul>
   16383 <p>For full guarantees,<wbr/> query <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputStallDuration">StreamConfigurationMap#getOutputStallDuration</a> with a
   16384 processed format -- it will return 0 for a non-stalling stream.<wbr/></p>
   16385 <p>LEGACY devices will support at least 2 processing/<wbr/>non-stalling streams.<wbr/></p>
   16386             </td>
   16387           </tr>
   16388 
   16389 
   16390           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   16391            <!-- end of entry -->
   16392         
   16393                 
   16394           <tr class="entry" id="static_android.request.maxNumOutputProcStalling">
   16395             <td class="entry_name
   16396              " rowspan="3">
   16397               android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Proc<wbr/>Stalling
   16398             </td>
   16399             <td class="entry_type">
   16400                 <span class="entry_type_name">int32</span>
   16401 
   16402               <span class="entry_type_visibility"> [java_public]</span>
   16403 
   16404               <span class="entry_type_synthetic">[synthetic] </span>
   16405 
   16406               <span class="entry_type_hwlevel">[legacy] </span>
   16407 
   16408 
   16409 
   16410 
   16411             </td> <!-- entry_type -->
   16412 
   16413             <td class="entry_description">
   16414               <p>The maximum numbers of different types of output streams
   16415 that can be configured and used simultaneously by a camera device
   16416 for any processed (and stalling) formats.<wbr/></p>
   16417             </td>
   16418 
   16419             <td class="entry_units">
   16420             </td>
   16421 
   16422             <td class="entry_range">
   16423               <p>&gt;= 1</p>
   16424             </td>
   16425 
   16426             <td class="entry_hal_version">
   16427               <p>3.<wbr/>2</p>
   16428             </td>
   16429 
   16430             <td class="entry_tags">
   16431             </td>
   16432 
   16433           </tr>
   16434           <tr class="entries_header">
   16435             <th class="th_details" colspan="6">Details</th>
   16436           </tr>
   16437           <tr class="entry_cont">
   16438             <td class="entry_details" colspan="6">
   16439               <p>This value contains the max number of output simultaneous
   16440 streams for any processed (but not-stalling) formats.<wbr/></p>
   16441 <p>This lists the upper bound of the number of output streams supported by
   16442 the camera device.<wbr/> Using more streams simultaneously may require more hardware and
   16443 CPU resources that will consume more power.<wbr/> The image format for this kind of an output stream can
   16444 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>
   16445 <p>A processed and stalling format is defined as any non-RAW format with a stallDurations
   16446 &gt; 0.<wbr/>  Typically only the <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">JPEG format</a> is a stalling format.<wbr/></p>
   16447 <p>For full guarantees,<wbr/> query <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputStallDuration">StreamConfigurationMap#getOutputStallDuration</a> with a
   16448 processed format -- it will return a non-0 value for a stalling stream.<wbr/></p>
   16449 <p>LEGACY devices will support up to 1 processing/<wbr/>stalling stream.<wbr/></p>
   16450             </td>
   16451           </tr>
   16452 
   16453 
   16454           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   16455            <!-- end of entry -->
   16456         
   16457                 
   16458           <tr class="entry" id="static_android.request.maxNumReprocessStreams">
   16459             <td class="entry_name
   16460                 entry_name_deprecated
   16461              " rowspan="3">
   16462               android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Reprocess<wbr/>Streams
   16463             </td>
   16464             <td class="entry_type">
   16465                 <span class="entry_type_name">int32</span>
   16466                 <span class="entry_type_container">x</span>
   16467 
   16468                 <span class="entry_type_array">
   16469                   1
   16470                 </span>
   16471               <span class="entry_type_visibility"> [system]</span>
   16472 
   16473 
   16474 
   16475               <span class="entry_type_deprecated">[deprecated] </span>
   16476 
   16477 
   16478 
   16479             </td> <!-- entry_type -->
   16480 
   16481             <td class="entry_description">
   16482               <p>How many reprocessing streams of any type
   16483 can be allocated at the same time.<wbr/></p>
   16484             </td>
   16485 
   16486             <td class="entry_units">
   16487             </td>
   16488 
   16489             <td class="entry_range">
   16490               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   16491               <p>&gt;= 0</p>
   16492             </td>
   16493 
   16494             <td class="entry_hal_version">
   16495               <p>3.<wbr/>2</p>
   16496             </td>
   16497 
   16498             <td class="entry_tags">
   16499               <ul class="entry_tags">
   16500                   <li><a href="#tag_HAL2">HAL2</a></li>
   16501               </ul>
   16502             </td>
   16503 
   16504           </tr>
   16505           <tr class="entries_header">
   16506             <th class="th_details" colspan="6">Details</th>
   16507           </tr>
   16508           <tr class="entry_cont">
   16509             <td class="entry_details" colspan="6">
   16510               <p>Only used by HAL2.<wbr/>x.<wbr/></p>
   16511 <p>When set to 0,<wbr/> it means no reprocess stream is supported.<wbr/></p>
   16512             </td>
   16513           </tr>
   16514 
   16515 
   16516           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   16517            <!-- end of entry -->
   16518         
   16519                 
   16520           <tr class="entry" id="static_android.request.maxNumInputStreams">
   16521             <td class="entry_name
   16522              " rowspan="5">
   16523               android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Input<wbr/>Streams
   16524             </td>
   16525             <td class="entry_type">
   16526                 <span class="entry_type_name">int32</span>
   16527 
   16528               <span class="entry_type_visibility"> [java_public]</span>
   16529 
   16530 
   16531               <span class="entry_type_hwlevel">[full] </span>
   16532 
   16533 
   16534 
   16535 
   16536             </td> <!-- entry_type -->
   16537 
   16538             <td class="entry_description">
   16539               <p>The maximum numbers of any type of input streams
   16540 that can be configured and used simultaneously by a camera device.<wbr/></p>
   16541             </td>
   16542 
   16543             <td class="entry_units">
   16544             </td>
   16545 
   16546             <td class="entry_range">
   16547               <p>0 or 1.<wbr/></p>
   16548             </td>
   16549 
   16550             <td class="entry_hal_version">
   16551               <p>3.<wbr/>2</p>
   16552             </td>
   16553 
   16554             <td class="entry_tags">
   16555               <ul class="entry_tags">
   16556                   <li><a href="#tag_REPROC">REPROC</a></li>
   16557               </ul>
   16558             </td>
   16559 
   16560           </tr>
   16561           <tr class="entries_header">
   16562             <th class="th_details" colspan="6">Details</th>
   16563           </tr>
   16564           <tr class="entry_cont">
   16565             <td class="entry_details" colspan="6">
   16566               <p>When set to 0,<wbr/> it means no input stream is supported.<wbr/></p>
   16567 <p>The image format for a input stream can be any supported format returned by <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getInputFormats">StreamConfigurationMap#getInputFormats</a>.<wbr/> When using an
   16568 input stream,<wbr/> there must be at least one output stream configured to to receive the
   16569 reprocessed images.<wbr/></p>
   16570 <p>When an input stream and some output streams are used in a reprocessing request,<wbr/>
   16571 only the input buffer will be used to produce these output stream buffers,<wbr/> and a
   16572 new sensor image will not be captured.<wbr/></p>
   16573 <p>For example,<wbr/> for Zero Shutter Lag (ZSL) still capture use case,<wbr/> the input
   16574 stream image format will be PRIVATE,<wbr/> the associated output stream image format
   16575 should be JPEG.<wbr/></p>
   16576             </td>
   16577           </tr>
   16578 
   16579           <tr class="entries_header">
   16580             <th class="th_details" colspan="6">HAL Implementation Details</th>
   16581           </tr>
   16582           <tr class="entry_cont">
   16583             <td class="entry_details" colspan="6">
   16584               <p>For the reprocessing flow and controls,<wbr/> see
   16585 hardware/<wbr/>libhardware/<wbr/>include/<wbr/>hardware/<wbr/>camera3.<wbr/>h Section 10 for more details.<wbr/></p>
   16586             </td>
   16587           </tr>
   16588 
   16589           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   16590            <!-- end of entry -->
   16591         
   16592                 
   16593           <tr class="entry" id="static_android.request.pipelineMaxDepth">
   16594             <td class="entry_name
   16595              " rowspan="5">
   16596               android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth
   16597             </td>
   16598             <td class="entry_type">
   16599                 <span class="entry_type_name">byte</span>
   16600 
   16601               <span class="entry_type_visibility"> [public]</span>
   16602 
   16603 
   16604               <span class="entry_type_hwlevel">[legacy] </span>
   16605 
   16606 
   16607 
   16608 
   16609             </td> <!-- entry_type -->
   16610 
   16611             <td class="entry_description">
   16612               <p>Specifies the number of maximum pipeline stages a frame
   16613 has to go through from when it's exposed to when it's available
   16614 to the framework.<wbr/></p>
   16615             </td>
   16616 
   16617             <td class="entry_units">
   16618             </td>
   16619 
   16620             <td class="entry_range">
   16621             </td>
   16622 
   16623             <td class="entry_hal_version">
   16624               <p>3.<wbr/>2</p>
   16625             </td>
   16626 
   16627             <td class="entry_tags">
   16628             </td>
   16629 
   16630           </tr>
   16631           <tr class="entries_header">
   16632             <th class="th_details" colspan="6">Details</th>
   16633           </tr>
   16634           <tr class="entry_cont">
   16635             <td class="entry_details" colspan="6">
   16636               <p>A typical minimum value for this is 2 (one stage to expose,<wbr/>
   16637 one stage to readout) from the sensor.<wbr/> The ISP then usually adds
   16638 its own stages to do custom HW processing.<wbr/> Further stages may be
   16639 added by SW processing.<wbr/></p>
   16640 <p>Depending on what settings are used (e.<wbr/>g.<wbr/> YUV,<wbr/> JPEG) and what
   16641 processing is enabled (e.<wbr/>g.<wbr/> face detection),<wbr/> the actual pipeline
   16642 depth (specified by <a href="#dynamic_android.request.pipelineDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Depth</a>) may be less than
   16643 the max pipeline depth.<wbr/></p>
   16644 <p>A pipeline depth of X stages is equivalent to a pipeline latency of
   16645 X frame intervals.<wbr/></p>
   16646 <p>This value will normally be 8 or less,<wbr/> however,<wbr/> for high speed capture session,<wbr/>
   16647 the max pipeline depth will be up to 8 x size of high speed capture request list.<wbr/></p>
   16648             </td>
   16649           </tr>
   16650 
   16651           <tr class="entries_header">
   16652             <th class="th_details" colspan="6">HAL Implementation Details</th>
   16653           </tr>
   16654           <tr class="entry_cont">
   16655             <td class="entry_details" colspan="6">
   16656               <p>This value should be 4 or less,<wbr/> expect for the high speed recording session,<wbr/> where the
   16657 max batch sizes may be larger than 1.<wbr/></p>
   16658             </td>
   16659           </tr>
   16660 
   16661           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   16662            <!-- end of entry -->
   16663         
   16664                 
   16665           <tr class="entry" id="static_android.request.partialResultCount">
   16666             <td class="entry_name
   16667              " rowspan="3">
   16668               android.<wbr/>request.<wbr/>partial<wbr/>Result<wbr/>Count
   16669             </td>
   16670             <td class="entry_type">
   16671                 <span class="entry_type_name">int32</span>
   16672 
   16673               <span class="entry_type_visibility"> [public]</span>
   16674 
   16675 
   16676 
   16677 
   16678 
   16679 
   16680             </td> <!-- entry_type -->
   16681 
   16682             <td class="entry_description">
   16683               <p>Defines how many sub-components
   16684 a result will be composed of.<wbr/></p>
   16685             </td>
   16686 
   16687             <td class="entry_units">
   16688             </td>
   16689 
   16690             <td class="entry_range">
   16691               <p>&gt;= 1</p>
   16692             </td>
   16693 
   16694             <td class="entry_hal_version">
   16695               <p>3.<wbr/>2</p>
   16696             </td>
   16697 
   16698             <td class="entry_tags">
   16699             </td>
   16700 
   16701           </tr>
   16702           <tr class="entries_header">
   16703             <th class="th_details" colspan="6">Details</th>
   16704           </tr>
   16705           <tr class="entry_cont">
   16706             <td class="entry_details" colspan="6">
   16707               <p>In order to combat the pipeline latency,<wbr/> partial results
   16708 may be delivered to the application layer from the camera device as
   16709 soon as they are available.<wbr/></p>
   16710 <p>Optional; defaults to 1.<wbr/> A value of 1 means that partial
   16711 results are not supported,<wbr/> and only the final TotalCaptureResult will
   16712 be produced by the camera device.<wbr/></p>
   16713 <p>A typical use case for this might be: after requesting an
   16714 auto-focus (AF) lock the new AF state might be available 50%
   16715 of the way through the pipeline.<wbr/>  The camera device could
   16716 then immediately dispatch this state via a partial result to
   16717 the application,<wbr/> and the rest of the metadata via later
   16718 partial results.<wbr/></p>
   16719             </td>
   16720           </tr>
   16721 
   16722 
   16723           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   16724            <!-- end of entry -->
   16725         
   16726                 
   16727           <tr class="entry" id="static_android.request.availableCapabilities">
   16728             <td class="entry_name
   16729              " rowspan="5">
   16730               android.<wbr/>request.<wbr/>available<wbr/>Capabilities
   16731             </td>
   16732             <td class="entry_type">
   16733                 <span class="entry_type_name entry_type_name_enum">byte</span>
   16734                 <span class="entry_type_container">x</span>
   16735 
   16736                 <span class="entry_type_array">
   16737                   n
   16738                 </span>
   16739               <span class="entry_type_visibility"> [public]</span>
   16740 
   16741 
   16742               <span class="entry_type_hwlevel">[legacy] </span>
   16743 
   16744 
   16745 
   16746                 <ul class="entry_type_enum">
   16747                   <li>
   16748                     <span class="entry_type_enum_name">BACKWARD_COMPATIBLE (v3.2)</span>
   16749                     <span class="entry_type_enum_notes"><p>The minimal set of capabilities that every camera
   16750 device (regardless of <a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a>)
   16751 supports.<wbr/></p>
   16752 <p>This capability is listed by all normal devices,<wbr/> and
   16753 indicates that the camera device has a feature set
   16754 that's comparable to the baseline requirements for the
   16755 older android.<wbr/>hardware.<wbr/>Camera API.<wbr/></p>
   16756 <p>Devices with the DEPTH_<wbr/>OUTPUT capability might not list this
   16757 capability,<wbr/> indicating that they support only depth measurement,<wbr/>
   16758 not standard color output.<wbr/></p></span>
   16759                   </li>
   16760                   <li>
   16761                     <span class="entry_type_enum_name">MANUAL_SENSOR (v3.2)</span>
   16762                     <span class="entry_type_enum_optional">[optional]</span>
   16763                     <span class="entry_type_enum_notes"><p>The camera device can be manually controlled (3A algorithms such
   16764 as auto-exposure,<wbr/> and auto-focus can be bypassed).<wbr/>
   16765 The camera device supports basic manual control of the sensor image
   16766 acquisition related stages.<wbr/> This means the following controls are
   16767 guaranteed to be supported:</p>
   16768 <ul>
   16769 <li>Manual frame duration control<ul>
   16770 <li><a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a></li>
   16771 <li><a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a></li>
   16772 </ul>
   16773 </li>
   16774 <li>Manual exposure control<ul>
   16775 <li><a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a></li>
   16776 <li><a href="#static_android.sensor.info.exposureTimeRange">android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range</a></li>
   16777 </ul>
   16778 </li>
   16779 <li>Manual sensitivity control<ul>
   16780 <li><a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a></li>
   16781 <li><a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a></li>
   16782 </ul>
   16783 </li>
   16784 <li>Manual lens control (if the lens is adjustable)<ul>
   16785 <li>android.<wbr/>lens.<wbr/>*</li>
   16786 </ul>
   16787 </li>
   16788 <li>Manual flash control (if a flash unit is present)<ul>
   16789 <li>android.<wbr/>flash.<wbr/>*</li>
   16790 </ul>
   16791 </li>
   16792 <li>Manual black level locking<ul>
   16793 <li><a href="#controls_android.blackLevel.lock">android.<wbr/>black<wbr/>Level.<wbr/>lock</a></li>
   16794 </ul>
   16795 </li>
   16796 <li>Auto exposure lock<ul>
   16797 <li><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a></li>
   16798 </ul>
   16799 </li>
   16800 </ul>
   16801 <p>If any of the above 3A algorithms are enabled,<wbr/> then the camera
   16802 device will accurately report the values applied by 3A in the
   16803 result.<wbr/></p>
   16804 <p>A given camera device may also support additional manual sensor controls,<wbr/>
   16805 but this capability only covers the above list of controls.<wbr/></p>
   16806 <p>If this is supported,<wbr/> <a href="#static_android.scaler.streamConfigurationMap">android.<wbr/>scaler.<wbr/>stream<wbr/>Configuration<wbr/>Map</a> will
   16807 additionally return a min frame duration that is greater than
   16808 zero for each supported size-format combination.<wbr/></p></span>
   16809                   </li>
   16810                   <li>
   16811                     <span class="entry_type_enum_name">MANUAL_POST_PROCESSING (v3.2)</span>
   16812                     <span class="entry_type_enum_optional">[optional]</span>
   16813                     <span class="entry_type_enum_notes"><p>The camera device post-processing stages can be manually controlled.<wbr/>
   16814 The camera device supports basic manual control of the image post-processing
   16815 stages.<wbr/> This means the following controls are guaranteed to be supported:</p>
   16816 <ul>
   16817 <li>
   16818 <p>Manual tonemap control</p>
   16819 <ul>
   16820 <li><a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a></li>
   16821 <li><a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a></li>
   16822 <li><a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></li>
   16823 <li><a href="#controls_android.tonemap.gamma">android.<wbr/>tonemap.<wbr/>gamma</a></li>
   16824 <li><a href="#controls_android.tonemap.presetCurve">android.<wbr/>tonemap.<wbr/>preset<wbr/>Curve</a></li>
   16825 </ul>
   16826 </li>
   16827 <li>
   16828 <p>Manual white balance control</p>
   16829 <ul>
   16830 <li><a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a></li>
   16831 <li><a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a></li>
   16832 </ul>
   16833 </li>
   16834 <li>Manual lens shading map control<ul>
   16835 <li><a href="#controls_android.shading.mode">android.<wbr/>shading.<wbr/>mode</a></li>
   16836 <li><a href="#controls_android.statistics.lensShadingMapMode">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode</a></li>
   16837 <li><a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a></li>
   16838 <li><a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a></li>
   16839 </ul>
   16840 </li>
   16841 <li>Manual aberration correction control (if aberration correction is supported)<ul>
   16842 <li><a href="#controls_android.colorCorrection.aberrationMode">android.<wbr/>color<wbr/>Correction.<wbr/>aberration<wbr/>Mode</a></li>
   16843 <li><a href="#static_android.colorCorrection.availableAberrationModes">android.<wbr/>color<wbr/>Correction.<wbr/>available<wbr/>Aberration<wbr/>Modes</a></li>
   16844 </ul>
   16845 </li>
   16846 <li>Auto white balance lock<ul>
   16847 <li><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a></li>
   16848 </ul>
   16849 </li>
   16850 </ul>
   16851 <p>If auto white balance is enabled,<wbr/> then the camera device
   16852 will accurately report the values applied by AWB in the result.<wbr/></p>
   16853 <p>A given camera device may also support additional post-processing
   16854 controls,<wbr/> but this capability only covers the above list of controls.<wbr/></p></span>
   16855                   </li>
   16856                   <li>
   16857                     <span class="entry_type_enum_name">RAW (v3.2)</span>
   16858                     <span class="entry_type_enum_optional">[optional]</span>
   16859                     <span class="entry_type_enum_notes"><p>The camera device supports outputting RAW buffers and
   16860 metadata for interpreting them.<wbr/></p>
   16861 <p>Devices supporting the RAW capability allow both for
   16862 saving DNG files,<wbr/> and for direct application processing of
   16863 raw sensor images.<wbr/></p>
   16864 <ul>
   16865 <li>RAW_<wbr/>SENSOR is supported as an output format.<wbr/></li>
   16866 <li>The maximum available resolution for RAW_<wbr/>SENSOR streams
   16867   will match either the value in
   16868   <a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a> or
   16869   <a href="#static_android.sensor.info.preCorrectionActiveArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<wbr/>Active<wbr/>Array<wbr/>Size</a>.<wbr/></li>
   16870 <li>All DNG-related optional metadata entries are provided
   16871   by the camera device.<wbr/></li>
   16872 </ul></span>
   16873                   </li>
   16874                   <li>
   16875                     <span class="entry_type_enum_name">PRIVATE_REPROCESSING (v3.2)</span>
   16876                     <span class="entry_type_enum_optional">[optional]</span>
   16877                     <span class="entry_type_enum_notes"><p>The camera device supports the Zero Shutter Lag reprocessing use case.<wbr/></p>
   16878 <ul>
   16879 <li>One input stream is supported,<wbr/> that is,<wbr/> <code><a href="#static_android.request.maxNumInputStreams">android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Input<wbr/>Streams</a> == 1</code>.<wbr/></li>
   16880 <li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#PRIVATE">ImageFormat#PRIVATE</a> is supported as an output/<wbr/>input format,<wbr/>
   16881   that is,<wbr/> <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#PRIVATE">ImageFormat#PRIVATE</a> is included in the lists of
   16882   formats returned by <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getInputFormats">StreamConfigurationMap#getInputFormats</a> and <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputFormats">StreamConfigurationMap#getOutputFormats</a>.<wbr/></li>
   16883 <li><a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getValidOutputFormatsForInput">StreamConfigurationMap#getValidOutputFormatsForInput</a>
   16884   returns non empty int[] for each supported input format returned by <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getInputFormats">StreamConfigurationMap#getInputFormats</a>.<wbr/></li>
   16885 <li>Each size returned by <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getInputSizes">getInputSizes(ImageFormat.<wbr/>PRIVATE)</a> is also included in <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputSizes">getOutputSizes(ImageFormat.<wbr/>PRIVATE)</a></li>
   16886 <li>Using <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#PRIVATE">ImageFormat#PRIVATE</a> does not cause a frame rate drop
   16887   relative to the sensor's maximum capture rate (at that resolution).<wbr/></li>
   16888 <li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#PRIVATE">ImageFormat#PRIVATE</a> will be reprocessable into both
   16889   <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a> and
   16890   <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a> formats.<wbr/></li>
   16891 <li>The maximum available resolution for PRIVATE streams
   16892   (both input/<wbr/>output) will match the maximum available
   16893   resolution of JPEG streams.<wbr/></li>
   16894 <li>Static metadata <a href="#static_android.reprocess.maxCaptureStall">android.<wbr/>reprocess.<wbr/>max<wbr/>Capture<wbr/>Stall</a>.<wbr/></li>
   16895 <li>Only below controls are effective for reprocessing requests and
   16896   will be present in capture results,<wbr/> other controls in reprocess
   16897   requests will be ignored by the camera device.<wbr/><ul>
   16898 <li>android.<wbr/>jpeg.<wbr/>*</li>
   16899 <li><a href="#controls_android.noiseReduction.mode">android.<wbr/>noise<wbr/>Reduction.<wbr/>mode</a></li>
   16900 <li><a href="#controls_android.edge.mode">android.<wbr/>edge.<wbr/>mode</a></li>
   16901 </ul>
   16902 </li>
   16903 <li><a href="#static_android.noiseReduction.availableNoiseReductionModes">android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Noise<wbr/>Reduction<wbr/>Modes</a> and
   16904   <a href="#static_android.edge.availableEdgeModes">android.<wbr/>edge.<wbr/>available<wbr/>Edge<wbr/>Modes</a> will both list ZERO_<wbr/>SHUTTER_<wbr/>LAG as a supported mode.<wbr/></li>
   16905 </ul></span>
   16906                   </li>
   16907                   <li>
   16908                     <span class="entry_type_enum_name">READ_SENSOR_SETTINGS (v3.2)</span>
   16909                     <span class="entry_type_enum_optional">[optional]</span>
   16910                     <span class="entry_type_enum_notes"><p>The camera device supports accurately reporting the sensor settings for many of
   16911 the sensor controls while the built-in 3A algorithm is running.<wbr/>  This allows
   16912 reporting of sensor settings even when these settings cannot be manually changed.<wbr/></p>
   16913 <p>The values reported for the following controls are guaranteed to be available
   16914 in the CaptureResult,<wbr/> including when 3A is enabled:</p>
   16915 <ul>
   16916 <li>Exposure control<ul>
   16917 <li><a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a></li>
   16918 </ul>
   16919 </li>
   16920 <li>Sensitivity control<ul>
   16921 <li><a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a></li>
   16922 </ul>
   16923 </li>
   16924 <li>Lens controls (if the lens is adjustable)<ul>
   16925 <li><a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a></li>
   16926 <li><a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a></li>
   16927 </ul>
   16928 </li>
   16929 </ul>
   16930 <p>This capability is a subset of the MANUAL_<wbr/>SENSOR control capability,<wbr/> and will
   16931 always be included if the MANUAL_<wbr/>SENSOR capability is available.<wbr/></p></span>
   16932                   </li>
   16933                   <li>
   16934                     <span class="entry_type_enum_name">BURST_CAPTURE (v3.2)</span>
   16935                     <span class="entry_type_enum_optional">[optional]</span>
   16936                     <span class="entry_type_enum_notes"><p>The camera device supports capturing high-resolution images at &gt;= 20 frames per
   16937 second,<wbr/> in at least the uncompressed YUV format,<wbr/> when post-processing settings are set
   16938 to FAST.<wbr/> Additionally,<wbr/> maximum-resolution images can be captured at &gt;= 10 frames
   16939 per second.<wbr/>  Here,<wbr/> 'high resolution' means at least 8 megapixels,<wbr/> or the maximum
   16940 resolution of the device,<wbr/> whichever is smaller.<wbr/></p></span>
   16941                   </li>
   16942                   <li>
   16943                     <span class="entry_type_enum_name">YUV_REPROCESSING (v3.2)</span>
   16944                     <span class="entry_type_enum_optional">[optional]</span>
   16945                     <span class="entry_type_enum_notes"><p>The camera device supports the YUV_<wbr/>420_<wbr/>888 reprocessing use case,<wbr/> similar as
   16946 PRIVATE_<wbr/>REPROCESSING,<wbr/> This capability requires the camera device to support the
   16947 following:</p>
   16948 <ul>
   16949 <li>One input stream is supported,<wbr/> that is,<wbr/> <code><a href="#static_android.request.maxNumInputStreams">android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Input<wbr/>Streams</a> == 1</code>.<wbr/></li>
   16950 <li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a> is supported as an output/<wbr/>input
   16951   format,<wbr/> that is,<wbr/> YUV_<wbr/>420_<wbr/>888 is included in the lists of formats returned by <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getInputFormats">StreamConfigurationMap#getInputFormats</a> and <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputFormats">StreamConfigurationMap#getOutputFormats</a>.<wbr/></li>
   16952 <li><a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getValidOutputFormatsForInput">StreamConfigurationMap#getValidOutputFormatsForInput</a>
   16953   returns non-empty int[] for each supported input format returned by <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getInputFormats">StreamConfigurationMap#getInputFormats</a>.<wbr/></li>
   16954 <li>Each size returned by <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getInputSizes">get<wbr/>Input<wbr/>Sizes(YUV_<wbr/>420_<wbr/>888)</a> is also included in <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputSizes">get<wbr/>Output<wbr/>Sizes(YUV_<wbr/>420_<wbr/>888)</a></li>
   16955 <li>Using <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a> does not cause a frame rate
   16956   drop relative to the sensor's maximum capture rate (at that resolution).<wbr/></li>
   16957 <li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a> will be reprocessable into both
   16958   <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a> and <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a> formats.<wbr/></li>
   16959 <li>The maximum available resolution for <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a> streams (both input/<wbr/>output) will match the
   16960   maximum available resolution of <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a> streams.<wbr/></li>
   16961 <li>Static metadata <a href="#static_android.reprocess.maxCaptureStall">android.<wbr/>reprocess.<wbr/>max<wbr/>Capture<wbr/>Stall</a>.<wbr/></li>
   16962 <li>Only the below controls are effective for reprocessing requests and will be present
   16963   in capture results.<wbr/> The reprocess requests are from the original capture results
   16964   that are associated with the intermediate <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a> output buffers.<wbr/>  All other controls in the
   16965   reprocess requests will be ignored by the camera device.<wbr/><ul>
   16966 <li>android.<wbr/>jpeg.<wbr/>*</li>
   16967 <li><a href="#controls_android.noiseReduction.mode">android.<wbr/>noise<wbr/>Reduction.<wbr/>mode</a></li>
   16968 <li><a href="#controls_android.edge.mode">android.<wbr/>edge.<wbr/>mode</a></li>
   16969 <li><a href="#controls_android.reprocess.effectiveExposureFactor">android.<wbr/>reprocess.<wbr/>effective<wbr/>Exposure<wbr/>Factor</a></li>
   16970 </ul>
   16971 </li>
   16972 <li><a href="#static_android.noiseReduction.availableNoiseReductionModes">android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Noise<wbr/>Reduction<wbr/>Modes</a> and
   16973   <a href="#static_android.edge.availableEdgeModes">android.<wbr/>edge.<wbr/>available<wbr/>Edge<wbr/>Modes</a> will both list ZERO_<wbr/>SHUTTER_<wbr/>LAG as a supported mode.<wbr/></li>
   16974 </ul></span>
   16975                   </li>
   16976                   <li>
   16977                     <span class="entry_type_enum_name">DEPTH_OUTPUT (v3.2)</span>
   16978                     <span class="entry_type_enum_optional">[optional]</span>
   16979                     <span class="entry_type_enum_notes"><p>The camera device can produce depth measurements from its field of view.<wbr/></p>
   16980 <p>This capability requires the camera device to support the following:</p>
   16981 <ul>
   16982 <li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#DEPTH16">ImageFormat#DEPTH16</a> is supported as
   16983   an output format.<wbr/></li>
   16984 <li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#DEPTH_POINT_CLOUD">Image<wbr/>Format#DEPTH_<wbr/>POINT_<wbr/>CLOUD</a> is
   16985   optionally supported as an output format.<wbr/></li>
   16986 <li>This camera device,<wbr/> and all camera devices with the same <a href="#static_android.lens.facing">android.<wbr/>lens.<wbr/>facing</a>,<wbr/> will
   16987   list the following calibration metadata entries in both <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html">CameraCharacteristics</a>
   16988   and <a href="https://developer.android.com/reference/android/hardware/camera2/CaptureResult.html">CaptureResult</a>:<ul>
   16989 <li><a href="#static_android.lens.poseTranslation">android.<wbr/>lens.<wbr/>pose<wbr/>Translation</a></li>
   16990 <li><a href="#static_android.lens.poseRotation">android.<wbr/>lens.<wbr/>pose<wbr/>Rotation</a></li>
   16991 <li><a href="#static_android.lens.intrinsicCalibration">android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration</a></li>
   16992 <li><a href="#static_android.lens.distortion">android.<wbr/>lens.<wbr/>distortion</a></li>
   16993 </ul>
   16994 </li>
   16995 <li>The <a href="#static_android.depth.depthIsExclusive">android.<wbr/>depth.<wbr/>depth<wbr/>Is<wbr/>Exclusive</a> entry is listed by this device.<wbr/></li>
   16996 <li>As of Android P,<wbr/> the <a href="#static_android.lens.poseReference">android.<wbr/>lens.<wbr/>pose<wbr/>Reference</a> entry is listed by this device.<wbr/></li>
   16997 <li>A LIMITED camera with only the DEPTH_<wbr/>OUTPUT capability does not have to support
   16998   normal YUV_<wbr/>420_<wbr/>888,<wbr/> JPEG,<wbr/> and PRIV-format outputs.<wbr/> It only has to support the DEPTH16
   16999   format.<wbr/></li>
   17000 </ul>
   17001 <p>Generally,<wbr/> depth output operates at a slower frame rate than standard color capture,<wbr/>
   17002 so the DEPTH16 and DEPTH_<wbr/>POINT_<wbr/>CLOUD formats will commonly have a stall duration that
   17003 should be accounted for (see <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputStallDuration">StreamConfigurationMap#getOutputStallDuration</a>).<wbr/>
   17004 On a device that supports both depth and color-based output,<wbr/> to enable smooth preview,<wbr/>
   17005 using a repeating burst is recommended,<wbr/> where a depth-output target is only included
   17006 once every N frames,<wbr/> where N is the ratio between preview output rate and depth output
   17007 rate,<wbr/> including depth stall time.<wbr/></p></span>
   17008                   </li>
   17009                   <li>
   17010                     <span class="entry_type_enum_name">CONSTRAINED_HIGH_SPEED_VIDEO (v3.2)</span>
   17011                     <span class="entry_type_enum_optional">[optional]</span>
   17012                     <span class="entry_type_enum_notes"><p>The device supports constrained high speed video recording (frame rate &gt;=120fps) use
   17013 case.<wbr/> The camera device will support high speed capture session created by <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createConstrainedHighSpeedCaptureSession">CameraDevice#createConstrainedHighSpeedCaptureSession</a>,<wbr/> which
   17014 only accepts high speed request lists created by <a href="https://developer.android.com/reference/android/hardware/camera2/CameraConstrainedHighSpeedCaptureSession.html#createHighSpeedRequestList">CameraConstrainedHighSpeedCaptureSession#createHighSpeedRequestList</a>.<wbr/></p>
   17015 <p>A camera device can still support high speed video streaming by advertising the high
   17016 speed FPS ranges in <a href="#static_android.control.aeAvailableTargetFpsRanges">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges</a>.<wbr/> For this case,<wbr/> all
   17017 normal capture request per frame control and synchronization requirements will apply
   17018 to the high speed fps ranges,<wbr/> the same as all other fps ranges.<wbr/> This capability
   17019 describes the capability of a specialized operating mode with many limitations (see
   17020 below),<wbr/> which is only targeted at high speed video recording.<wbr/></p>
   17021 <p>The supported high speed video sizes and fps ranges are specified in <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getHighSpeedVideoFpsRanges">StreamConfigurationMap#getHighSpeedVideoFpsRanges</a>.<wbr/>
   17022 To get desired output frame rates,<wbr/> the application is only allowed to select video
   17023 size and FPS range combinations provided by <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getHighSpeedVideoSizes">StreamConfigurationMap#getHighSpeedVideoSizes</a>.<wbr/>  The
   17024 fps range can be controlled via <a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a>.<wbr/></p>
   17025 <p>In this capability,<wbr/> the camera device will override aeMode,<wbr/> awbMode,<wbr/> and afMode to
   17026 ON,<wbr/> AUTO,<wbr/> and CONTINUOUS_<wbr/>VIDEO,<wbr/> respectively.<wbr/> All post-processing block mode
   17027 controls will be overridden to be FAST.<wbr/> Therefore,<wbr/> no manual control of capture
   17028 and post-processing parameters is possible.<wbr/> All other controls operate the
   17029 same as when <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == AUTO.<wbr/> This means that all other
   17030 android.<wbr/>control.<wbr/>* fields continue to work,<wbr/> such as</p>
   17031 <ul>
   17032 <li><a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a></li>
   17033 <li><a href="#controls_android.control.aeExposureCompensation">android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation</a></li>
   17034 <li><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a></li>
   17035 <li><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a></li>
   17036 <li><a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a></li>
   17037 <li><a href="#controls_android.control.aeRegions">android.<wbr/>control.<wbr/>ae<wbr/>Regions</a></li>
   17038 <li><a href="#controls_android.control.afRegions">android.<wbr/>control.<wbr/>af<wbr/>Regions</a></li>
   17039 <li><a href="#controls_android.control.awbRegions">android.<wbr/>control.<wbr/>awb<wbr/>Regions</a></li>
   17040 <li><a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a></li>
   17041 <li><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a></li>
   17042 </ul>
   17043 <p>Outside of android.<wbr/>control.<wbr/>*,<wbr/> the following controls will work:</p>
   17044 <ul>
   17045 <li><a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> (TORCH mode only,<wbr/> automatic flash for still capture will not
   17046 work since aeMode is ON)</li>
   17047 <li><a href="#controls_android.lens.opticalStabilizationMode">android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode</a> (if it is supported)</li>
   17048 <li><a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a></li>
   17049 <li><a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a> (if it is supported)</li>
   17050 </ul>
   17051 <p>For high speed recording use case,<wbr/> the actual maximum supported frame rate may
   17052 be lower than what camera can output,<wbr/> depending on the destination Surfaces for
   17053 the image data.<wbr/> For example,<wbr/> if the destination surface is from video encoder,<wbr/>
   17054 the application need check if the video encoder is capable of supporting the
   17055 high frame rate for a given video size,<wbr/> or it will end up with lower recording
   17056 frame rate.<wbr/> If the destination surface is from preview window,<wbr/> the actual preview frame
   17057 rate will be bounded by the screen refresh rate.<wbr/></p>
   17058 <p>The camera device will only support up to 2 high speed simultaneous output surfaces
   17059 (preview and recording surfaces) in this mode.<wbr/> Above controls will be effective only
   17060 if all of below conditions are true:</p>
   17061 <ul>
   17062 <li>The application creates a camera capture session with no more than 2 surfaces via
   17063 <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createConstrainedHighSpeedCaptureSession">CameraDevice#createConstrainedHighSpeedCaptureSession</a>.<wbr/> The
   17064 targeted surfaces must be preview surface (either from <a href="https://developer.android.com/reference/android/view/SurfaceView.html">SurfaceView</a> or <a href="https://developer.android.com/reference/android/graphics/SurfaceTexture.html">SurfaceTexture</a>) or recording
   17065 surface(either from <a href="https://developer.android.com/reference/android/media/MediaRecorder.html#getSurface">MediaRecorder#getSurface</a> or <a href="https://developer.android.com/reference/android/media/MediaCodec.html#createInputSurface">MediaCodec#createInputSurface</a>).<wbr/></li>
   17066 <li>The stream sizes are selected from the sizes reported by
   17067 <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getHighSpeedVideoSizes">StreamConfigurationMap#getHighSpeedVideoSizes</a>.<wbr/></li>
   17068 <li>The FPS ranges are selected from <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getHighSpeedVideoFpsRanges">StreamConfigurationMap#getHighSpeedVideoFpsRanges</a>.<wbr/></li>
   17069 </ul>
   17070 <p>When above conditions are NOT satistied,<wbr/>
   17071 <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createConstrainedHighSpeedCaptureSession">CameraDevice#createConstrainedHighSpeedCaptureSession</a>
   17072 will fail.<wbr/></p>
   17073 <p>Switching to a FPS range that has different maximum FPS may trigger some camera device
   17074 reconfigurations,<wbr/> which may introduce extra latency.<wbr/> It is recommended that
   17075 the application avoids unnecessary maximum target FPS changes as much as possible
   17076 during high speed streaming.<wbr/></p></span>
   17077                   </li>
   17078                   <li>
   17079                     <span class="entry_type_enum_name">MOTION_TRACKING (v3.3)</span>
   17080                     <span class="entry_type_enum_optional">[optional]</span>
   17081                     <span class="entry_type_enum_notes"><p>The camera device supports the MOTION_<wbr/>TRACKING value for
   17082 <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a>,<wbr/> which limits maximum exposure time to 20 ms.<wbr/></p>
   17083 <p>This limits the motion blur of capture images,<wbr/> resulting in better image tracking
   17084 results for use cases such as image stabilization or augmented reality.<wbr/></p></span>
   17085                   </li>
   17086                   <li>
   17087                     <span class="entry_type_enum_name">LOGICAL_MULTI_CAMERA (v3.3)</span>
   17088                     <span class="entry_type_enum_optional">[optional]</span>
   17089                     <span class="entry_type_enum_notes"><p>The camera device is a logical camera backed by two or more physical cameras that are
   17090 also exposed to the application.<wbr/></p>
   17091 <p>Camera application shouldn't assume that there are at most 1 rear camera and 1 front
   17092 camera in the system.<wbr/> For an application that switches between front and back cameras,<wbr/>
   17093 the recommendation is to switch between the first rear camera and the first front
   17094 camera in the list of supported camera devices.<wbr/></p>
   17095 <p>This capability requires the camera device to support the following:</p>
   17096 <ul>
   17097 <li>This camera device must list the following static metadata entries in <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html">CameraCharacteristics</a>:<ul>
   17098 <li><a href="#static_android.logicalMultiCamera.physicalIds">android.<wbr/>logical<wbr/>Multi<wbr/>Camera.<wbr/>physical<wbr/>Ids</a></li>
   17099 <li><a href="#static_android.logicalMultiCamera.sensorSyncType">android.<wbr/>logical<wbr/>Multi<wbr/>Camera.<wbr/>sensor<wbr/>Sync<wbr/>Type</a></li>
   17100 </ul>
   17101 </li>
   17102 <li>The underlying physical cameras' static metadata must list the following entries,<wbr/>
   17103   so that the application can correlate pixels from the physical streams:<ul>
   17104 <li><a href="#static_android.lens.poseReference">android.<wbr/>lens.<wbr/>pose<wbr/>Reference</a></li>
   17105 <li><a href="#static_android.lens.poseRotation">android.<wbr/>lens.<wbr/>pose<wbr/>Rotation</a></li>
   17106 <li><a href="#static_android.lens.poseTranslation">android.<wbr/>lens.<wbr/>pose<wbr/>Translation</a></li>
   17107 <li><a href="#static_android.lens.intrinsicCalibration">android.<wbr/>lens.<wbr/>intrinsic<wbr/>Calibration</a></li>
   17108 <li><a href="#static_android.lens.distortion">android.<wbr/>lens.<wbr/>distortion</a></li>
   17109 </ul>
   17110 </li>
   17111 <li>The SENSOR_<wbr/>INFO_<wbr/>TIMESTAMP_<wbr/>SOURCE of the logical device and physical devices must be
   17112   the same.<wbr/></li>
   17113 <li>The logical camera device must be LIMITED or higher device.<wbr/></li>
   17114 </ul>
   17115 <p>Both the logical camera device and its underlying physical devices support the
   17116 mandatory stream combinations required for their device levels.<wbr/></p>
   17117 <p>Additionally,<wbr/> for each guaranteed stream combination,<wbr/> the logical camera supports:</p>
   17118 <ul>
   17119 <li>For each guaranteed stream combination,<wbr/> the logical camera supports replacing one
   17120   logical <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">YUV_<wbr/>420_<wbr/>888</a>
   17121   or raw stream with two physical streams of the same size and format,<wbr/> each from a
   17122   separate physical camera,<wbr/> given that the size and format are supported by both
   17123   physical cameras.<wbr/></li>
   17124 <li>If the logical camera doesn't advertise RAW capability,<wbr/> but the underlying physical
   17125   cameras do,<wbr/> the logical camera will support guaranteed stream combinations for RAW
   17126   capability,<wbr/> except that the RAW streams will be physical streams,<wbr/> each from a separate
   17127   physical camera.<wbr/> This is usually the case when the physical cameras have different
   17128   sensor sizes.<wbr/></li>
   17129 </ul>
   17130 <p>Using physical streams in place of a logical stream of the same size and format will
   17131 not slow down the frame rate of the capture,<wbr/> as long as the minimum frame duration
   17132 of the physical and logical streams are the same.<wbr/></p></span>
   17133                   </li>
   17134                   <li>
   17135                     <span class="entry_type_enum_name">MONOCHROME (v3.3)</span>
   17136                     <span class="entry_type_enum_optional">[optional]</span>
   17137                     <span class="entry_type_enum_notes"><p>The camera device is a monochrome camera that doesn't contain a color filter array,<wbr/>
   17138 and the pixel values on U and V planes are all 128.<wbr/></p></span>
   17139                   </li>
   17140                 </ul>
   17141 
   17142             </td> <!-- entry_type -->
   17143 
   17144             <td class="entry_description">
   17145               <p>List of capabilities that this camera device
   17146 advertises as fully supporting.<wbr/></p>
   17147             </td>
   17148 
   17149             <td class="entry_units">
   17150             </td>
   17151 
   17152             <td class="entry_range">
   17153             </td>
   17154 
   17155             <td class="entry_hal_version">
   17156               <p>3.<wbr/>2</p>
   17157             </td>
   17158 
   17159             <td class="entry_tags">
   17160             </td>
   17161 
   17162           </tr>
   17163           <tr class="entries_header">
   17164             <th class="th_details" colspan="6">Details</th>
   17165           </tr>
   17166           <tr class="entry_cont">
   17167             <td class="entry_details" colspan="6">
   17168               <p>A capability is a contract that the camera device makes in order
   17169 to be able to satisfy one or more use cases.<wbr/></p>
   17170 <p>Listing a capability guarantees that the whole set of features
   17171 required to support a common use will all be available.<wbr/></p>
   17172 <p>Using a subset of the functionality provided by an unsupported
   17173 capability may be possible on a specific camera device implementation;
   17174 to do this query each of <a href="#static_android.request.availableRequestKeys">android.<wbr/>request.<wbr/>available<wbr/>Request<wbr/>Keys</a>,<wbr/>
   17175 <a href="#static_android.request.availableResultKeys">android.<wbr/>request.<wbr/>available<wbr/>Result<wbr/>Keys</a>,<wbr/>
   17176 <a href="#static_android.request.availableCharacteristicsKeys">android.<wbr/>request.<wbr/>available<wbr/>Characteristics<wbr/>Keys</a>.<wbr/></p>
   17177 <p>The following capabilities are guaranteed to be available on
   17178 <a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> <code>==</code> FULL devices:</p>
   17179 <ul>
   17180 <li>MANUAL_<wbr/>SENSOR</li>
   17181 <li>MANUAL_<wbr/>POST_<wbr/>PROCESSING</li>
   17182 </ul>
   17183 <p>Other capabilities may be available on either FULL or LIMITED
   17184 devices,<wbr/> but the application should query this key to be sure.<wbr/></p>
   17185             </td>
   17186           </tr>
   17187 
   17188           <tr class="entries_header">
   17189             <th class="th_details" colspan="6">HAL Implementation Details</th>
   17190           </tr>
   17191           <tr class="entry_cont">
   17192             <td class="entry_details" colspan="6">
   17193               <p>Additional constraint details per-capability will be available
   17194 in the Compatibility Test Suite.<wbr/></p>
   17195 <p>Minimum baseline requirements required for the
   17196 BACKWARD_<wbr/>COMPATIBLE capability are not explicitly listed.<wbr/>
   17197 Instead refer to "BC" tags and the camera CTS tests in the
   17198 android.<wbr/>hardware.<wbr/>camera2.<wbr/>cts package.<wbr/></p>
   17199 <p>Listed controls that can be either request or result (e.<wbr/>g.<wbr/>
   17200 <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>) must be available both in the
   17201 request and the result in order to be considered to be
   17202 capability-compliant.<wbr/></p>
   17203 <p>For example,<wbr/> if the HAL claims to support MANUAL control,<wbr/>
   17204 then exposure time must be configurable via the request <em>and</em>
   17205 the actual exposure applied must be available via
   17206 the result.<wbr/></p>
   17207 <p>If MANUAL_<wbr/>SENSOR is omitted,<wbr/> the HAL may choose to omit the
   17208 <a href="#static_android.scaler.availableMinFrameDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Min<wbr/>Frame<wbr/>Durations</a> static property entirely.<wbr/></p>
   17209 <p>For PRIVATE_<wbr/>REPROCESSING and YUV_<wbr/>REPROCESSING capabilities,<wbr/> see
   17210 hardware/<wbr/>libhardware/<wbr/>include/<wbr/>hardware/<wbr/>camera3.<wbr/>h Section 10 for more information.<wbr/></p>
   17211 <p>Devices that support the MANUAL_<wbr/>SENSOR capability must support the
   17212 CAMERA3_<wbr/>TEMPLATE_<wbr/>MANUAL template defined in camera3.<wbr/>h.<wbr/></p>
   17213 <p>Devices that support the PRIVATE_<wbr/>REPROCESSING capability or the
   17214 YUV_<wbr/>REPROCESSING capability must support the
   17215 CAMERA3_<wbr/>TEMPLATE_<wbr/>ZERO_<wbr/>SHUTTER_<wbr/>LAG template defined in camera3.<wbr/>h.<wbr/></p>
   17216 <p>For DEPTH_<wbr/>OUTPUT,<wbr/> the depth-format keys
   17217 <a href="#static_android.depth.availableDepthStreamConfigurations">android.<wbr/>depth.<wbr/>available<wbr/>Depth<wbr/>Stream<wbr/>Configurations</a>,<wbr/>
   17218 <a href="#static_android.depth.availableDepthMinFrameDurations">android.<wbr/>depth.<wbr/>available<wbr/>Depth<wbr/>Min<wbr/>Frame<wbr/>Durations</a>,<wbr/>
   17219 <a href="#static_android.depth.availableDepthStallDurations">android.<wbr/>depth.<wbr/>available<wbr/>Depth<wbr/>Stall<wbr/>Durations</a> must be available,<wbr/> in
   17220 addition to the other keys explicitly mentioned in the DEPTH_<wbr/>OUTPUT
   17221 enum notes.<wbr/> The entry <a href="#static_android.depth.maxDepthSamples">android.<wbr/>depth.<wbr/>max<wbr/>Depth<wbr/>Samples</a> must be available
   17222 if the DEPTH_<wbr/>POINT_<wbr/>CLOUD format is supported (HAL pixel format BLOB,<wbr/> dataspace
   17223 DEPTH).<wbr/></p>
   17224 <p>For a camera device with LOGICAL_<wbr/>MULTI_<wbr/>CAMERA capability,<wbr/> it should operate in the
   17225 same way as a physical camera device based on its hardware level and capabilities.<wbr/>
   17226 It's recommended that its feature set is superset of that of individual physical cameras.<wbr/></p>
   17227 <ul>
   17228 <li>
   17229 <p>In camera1 API,<wbr/> to maintain application compatibility,<wbr/> for each {logical_<wbr/>camera_<wbr/>id,<wbr/>
   17230 physical_<wbr/>camera_<wbr/>1_<wbr/>id,<wbr/> physical_<wbr/>camera_<wbr/>2_<wbr/>id,<wbr/> ...<wbr/>} combination,<wbr/> where logical_<wbr/>camera_<wbr/>id
   17231 is composed of physical_<wbr/>camera_<wbr/>N_<wbr/>id,<wbr/> camera framework will only advertise one camera id
   17232 (within the combination) that is frontmost in the HAL published camera id list.<wbr/></p>
   17233 </li>
   17234 <li>
   17235 <p>Camera HAL is strongly recommended to advertise camera devices with best feature,<wbr/>
   17236 power,<wbr/> performance,<wbr/> and latency tradeoffs at the front of the camera id list.<wbr/></p>
   17237 </li>
   17238 </ul>
   17239 <p>For MONOCHROME,<wbr/> the camera device must also advertise BACKWARD_<wbr/>COMPATIBLE capability,<wbr/> and
   17240 it is exclusive of both RAW and MANUAL_<wbr/>POST_<wbr/>PROCESSING capabilities:</p>
   17241 <ul>
   17242 <li>
   17243 <p>To maintain backward compatibility,<wbr/> the camera device must support all
   17244 BACKWARD_<wbr/>COMPATIBLE required keys.<wbr/> The <a href="#static_android.control.awbAvailableModes">android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes</a> key only contains
   17245 AUTO,<wbr/> and <a href="#dynamic_android.control.awbState">android.<wbr/>control.<wbr/>awb<wbr/>State</a> are either CONVERGED or LOCKED depending on
   17246 <a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a>.<wbr/></p>
   17247 </li>
   17248 <li>
   17249 <p>A monochrome device doesn't need to advertise DNG related optional metadata tags.<wbr/></p>
   17250 </li>
   17251 <li>
   17252 <p><a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>,<wbr/> <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> and
   17253 <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are not applicable.<wbr/> So the camera device cannot
   17254 be a FULL device.<wbr/> However,<wbr/> the HAL can still advertise other individual capabilites.<wbr/></p>
   17255 </li>
   17256 <li>
   17257 <p>If the device supports tonemap control,<wbr/> only <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> is used.<wbr/>
   17258 CurveGreen and curveBlue are no-ops.<wbr/></p>
   17259 </li>
   17260 </ul>
   17261             </td>
   17262           </tr>
   17263 
   17264           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   17265            <!-- end of entry -->
   17266         
   17267                 
   17268           <tr class="entry" id="static_android.request.availableRequestKeys">
   17269             <td class="entry_name
   17270              " rowspan="5">
   17271               android.<wbr/>request.<wbr/>available<wbr/>Request<wbr/>Keys
   17272             </td>
   17273             <td class="entry_type">
   17274                 <span class="entry_type_name">int32</span>
   17275                 <span class="entry_type_container">x</span>
   17276 
   17277                 <span class="entry_type_array">
   17278                   n
   17279                 </span>
   17280               <span class="entry_type_visibility"> [ndk_public]</span>
   17281 
   17282 
   17283               <span class="entry_type_hwlevel">[legacy] </span>
   17284 
   17285 
   17286 
   17287 
   17288             </td> <!-- entry_type -->
   17289 
   17290             <td class="entry_description">
   17291               <p>A list of all keys that the camera device has available
   17292 to use with <a href="https://developer.android.com/reference/android/hardware/camera2/CaptureRequest.html">CaptureRequest</a>.<wbr/></p>
   17293             </td>
   17294 
   17295             <td class="entry_units">
   17296             </td>
   17297 
   17298             <td class="entry_range">
   17299             </td>
   17300 
   17301             <td class="entry_hal_version">
   17302               <p>3.<wbr/>2</p>
   17303             </td>
   17304 
   17305             <td class="entry_tags">
   17306             </td>
   17307 
   17308           </tr>
   17309           <tr class="entries_header">
   17310             <th class="th_details" colspan="6">Details</th>
   17311           </tr>
   17312           <tr class="entry_cont">
   17313             <td class="entry_details" colspan="6">
   17314               <p>Attempting to set a key into a CaptureRequest that is not
   17315 listed here will result in an invalid request and will be rejected
   17316 by the camera device.<wbr/></p>
   17317 <p>This field can be used to query the feature set of a camera device
   17318 at a more granular level than capabilities.<wbr/> This is especially
   17319 important for optional keys that are not listed under any capability
   17320 in <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>.<wbr/></p>
   17321             </td>
   17322           </tr>
   17323 
   17324           <tr class="entries_header">
   17325             <th class="th_details" colspan="6">HAL Implementation Details</th>
   17326           </tr>
   17327           <tr class="entry_cont">
   17328             <td class="entry_details" colspan="6">
   17329               <p>Vendor tags can be listed here.<wbr/> Vendor tag metadata should also
   17330 use the extensions C api (refer to camera3.<wbr/>h for more details).<wbr/></p>
   17331 <p>Setting/<wbr/>getting vendor tags will be checked against the metadata
   17332 vendor extensions API and not against this field.<wbr/></p>
   17333 <p>The HAL must not consume any request tags that are not listed either
   17334 here or in the vendor tag list.<wbr/></p>
   17335 <p>The public camera2 API will always make the vendor tags visible
   17336 via
   17337 <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#getAvailableCaptureRequestKeys">CameraCharacteristics#getAvailableCaptureRequestKeys</a>.<wbr/></p>
   17338             </td>
   17339           </tr>
   17340 
   17341           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   17342            <!-- end of entry -->
   17343         
   17344                 
   17345           <tr class="entry" id="static_android.request.availableResultKeys">
   17346             <td class="entry_name
   17347              " rowspan="5">
   17348               android.<wbr/>request.<wbr/>available<wbr/>Result<wbr/>Keys
   17349             </td>
   17350             <td class="entry_type">
   17351                 <span class="entry_type_name">int32</span>
   17352                 <span class="entry_type_container">x</span>
   17353 
   17354                 <span class="entry_type_array">
   17355                   n
   17356                 </span>
   17357               <span class="entry_type_visibility"> [ndk_public]</span>
   17358 
   17359 
   17360               <span class="entry_type_hwlevel">[legacy] </span>
   17361 
   17362 
   17363 
   17364 
   17365             </td> <!-- entry_type -->
   17366 
   17367             <td class="entry_description">
   17368               <p>A list of all keys that the camera device has available to use with <a href="https://developer.android.com/reference/android/hardware/camera2/CaptureResult.html">CaptureResult</a>.<wbr/></p>
   17369             </td>
   17370 
   17371             <td class="entry_units">
   17372             </td>
   17373 
   17374             <td class="entry_range">
   17375             </td>
   17376 
   17377             <td class="entry_hal_version">
   17378               <p>3.<wbr/>2</p>
   17379             </td>
   17380 
   17381             <td class="entry_tags">
   17382             </td>
   17383 
   17384           </tr>
   17385           <tr class="entries_header">
   17386             <th class="th_details" colspan="6">Details</th>
   17387           </tr>
   17388           <tr class="entry_cont">
   17389             <td class="entry_details" colspan="6">
   17390               <p>Attempting to get a key from a CaptureResult that is not
   17391 listed here will always return a <code>null</code> value.<wbr/> Getting a key from
   17392 a CaptureResult that is listed here will generally never return a <code>null</code>
   17393 value.<wbr/></p>
   17394 <p>The following keys may return <code>null</code> unless they are enabled:</p>
   17395 <ul>
   17396 <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>
   17397 </ul>
   17398 <p>(Those sometimes-null keys will nevertheless be listed here
   17399 if they are available.<wbr/>)</p>
   17400 <p>This field can be used to query the feature set of a camera device
   17401 at a more granular level than capabilities.<wbr/> This is especially
   17402 important for optional keys that are not listed under any capability
   17403 in <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>.<wbr/></p>
   17404             </td>
   17405           </tr>
   17406 
   17407           <tr class="entries_header">
   17408             <th class="th_details" colspan="6">HAL Implementation Details</th>
   17409           </tr>
   17410           <tr class="entry_cont">
   17411             <td class="entry_details" colspan="6">
   17412               <p>Tags listed here must always have an entry in the result metadata,<wbr/>
   17413 even if that size is 0 elements.<wbr/> Only array-type tags (e.<wbr/>g.<wbr/> lists,<wbr/>
   17414 matrices,<wbr/> strings) are allowed to have 0 elements.<wbr/></p>
   17415 <p>Vendor tags can be listed here.<wbr/> Vendor tag metadata should also
   17416 use the extensions C api (refer to camera3.<wbr/>h for more details).<wbr/></p>
   17417 <p>Setting/<wbr/>getting vendor tags will be checked against the metadata
   17418 vendor extensions API and not against this field.<wbr/></p>
   17419 <p>The HAL must not produce any result tags that are not listed either
   17420 here or in the vendor tag list.<wbr/></p>
   17421 <p>The public camera2 API will always make the vendor tags visible via <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#getAvailableCaptureResultKeys">CameraCharacteristics#getAvailableCaptureResultKeys</a>.<wbr/></p>
   17422             </td>
   17423           </tr>
   17424 
   17425           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   17426            <!-- end of entry -->
   17427         
   17428                 
   17429           <tr class="entry" id="static_android.request.availableCharacteristicsKeys">
   17430             <td class="entry_name
   17431              " rowspan="5">
   17432               android.<wbr/>request.<wbr/>available<wbr/>Characteristics<wbr/>Keys
   17433             </td>
   17434             <td class="entry_type">
   17435                 <span class="entry_type_name">int32</span>
   17436                 <span class="entry_type_container">x</span>
   17437 
   17438                 <span class="entry_type_array">
   17439                   n
   17440                 </span>
   17441               <span class="entry_type_visibility"> [ndk_public]</span>
   17442 
   17443 
   17444               <span class="entry_type_hwlevel">[legacy] </span>
   17445 
   17446 
   17447 
   17448 
   17449             </td> <!-- entry_type -->
   17450 
   17451             <td class="entry_description">
   17452               <p>A list of all keys that the camera device has available to use with <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html">CameraCharacteristics</a>.<wbr/></p>
   17453             </td>
   17454 
   17455             <td class="entry_units">
   17456             </td>
   17457 
   17458             <td class="entry_range">
   17459             </td>
   17460 
   17461             <td class="entry_hal_version">
   17462               <p>3.<wbr/>2</p>
   17463             </td>
   17464 
   17465             <td class="entry_tags">
   17466             </td>
   17467 
   17468           </tr>
   17469           <tr class="entries_header">
   17470             <th class="th_details" colspan="6">Details</th>
   17471           </tr>
   17472           <tr class="entry_cont">
   17473             <td class="entry_details" colspan="6">
   17474               <p>This entry follows the same rules as
   17475 <a href="#static_android.request.availableResultKeys">android.<wbr/>request.<wbr/>available<wbr/>Result<wbr/>Keys</a> (except that it applies for
   17476 CameraCharacteristics instead of CaptureResult).<wbr/> See above for more
   17477 details.<wbr/></p>
   17478             </td>
   17479           </tr>
   17480 
   17481           <tr class="entries_header">
   17482             <th class="th_details" colspan="6">HAL Implementation Details</th>
   17483           </tr>
   17484           <tr class="entry_cont">
   17485             <td class="entry_details" colspan="6">
   17486               <p>Keys listed here must always have an entry in the static info metadata,<wbr/>
   17487 even if that size is 0 elements.<wbr/> Only array-type tags (e.<wbr/>g.<wbr/> lists,<wbr/>
   17488 matrices,<wbr/> strings) are allowed to have 0 elements.<wbr/></p>
   17489 <p>Vendor tags can listed here.<wbr/> Vendor tag metadata should also use
   17490 the extensions C api (refer to camera3.<wbr/>h for more details).<wbr/></p>
   17491 <p>Setting/<wbr/>getting vendor tags will be checked against the metadata
   17492 vendor extensions API and not against this field.<wbr/></p>
   17493 <p>The HAL must not have any tags in its static info that are not listed
   17494 either here or in the vendor tag list.<wbr/></p>
   17495 <p>The public camera2 API will always make the vendor tags visible
   17496 via <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#getKeys">CameraCharacteristics#getKeys</a>.<wbr/></p>
   17497             </td>
   17498           </tr>
   17499 
   17500           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   17501            <!-- end of entry -->
   17502         
   17503                 
   17504           <tr class="entry" id="static_android.request.availableSessionKeys">
   17505             <td class="entry_name
   17506              " rowspan="5">
   17507               android.<wbr/>request.<wbr/>available<wbr/>Session<wbr/>Keys
   17508             </td>
   17509             <td class="entry_type">
   17510                 <span class="entry_type_name">int32</span>
   17511                 <span class="entry_type_container">x</span>
   17512 
   17513                 <span class="entry_type_array">
   17514                   n
   17515                 </span>
   17516               <span class="entry_type_visibility"> [ndk_public]</span>
   17517 
   17518 
   17519               <span class="entry_type_hwlevel">[legacy] </span>
   17520 
   17521 
   17522 
   17523 
   17524             </td> <!-- entry_type -->
   17525 
   17526             <td class="entry_description">
   17527               <p>A subset of the available request keys that the camera device
   17528 can pass as part of the capture session initialization.<wbr/></p>
   17529             </td>
   17530 
   17531             <td class="entry_units">
   17532             </td>
   17533 
   17534             <td class="entry_range">
   17535             </td>
   17536 
   17537             <td class="entry_hal_version">
   17538               <p>3.<wbr/>3</p>
   17539             </td>
   17540 
   17541             <td class="entry_tags">
   17542             </td>
   17543 
   17544           </tr>
   17545           <tr class="entries_header">
   17546             <th class="th_details" colspan="6">Details</th>
   17547           </tr>
   17548           <tr class="entry_cont">
   17549             <td class="entry_details" colspan="6">
   17550               <p>This is a subset of <a href="#static_android.request.availableRequestKeys">android.<wbr/>request.<wbr/>available<wbr/>Request<wbr/>Keys</a> which
   17551 contains a list of keys that are difficult to apply per-frame and
   17552 can result in unexpected delays when modified during the capture session
   17553 lifetime.<wbr/> Typical examples include parameters that require a
   17554 time-consuming hardware re-configuration or internal camera pipeline
   17555 change.<wbr/> For performance reasons we advise clients to pass their initial
   17556 values as part of
   17557 <a href="https://developer.android.com/reference/SessionConfiguration.html#setSessionParameters">SessionConfiguration#setSessionParameters</a>.<wbr/>
   17558 Once the camera capture session is enabled it is also recommended to avoid
   17559 changing them from their initial values set in
   17560 <a href="https://developer.android.com/reference/SessionConfiguration.html#setSessionParameters">SessionConfiguration#setSessionParameters</a>.<wbr/>
   17561 Control over session parameters can still be exerted in capture requests
   17562 but clients should be aware and expect delays during their application.<wbr/>
   17563 An example usage scenario could look like this:</p>
   17564 <ul>
   17565 <li>The camera client starts by quering the session parameter key list via
   17566   <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#getAvailableSessionKeys">CameraCharacteristics#getAvailableSessionKeys</a>.<wbr/></li>
   17567 <li>Before triggering the capture session create sequence,<wbr/> a capture request
   17568   must be built via
   17569   <a href="https://developer.android.com/reference/CameraDevice.html#createCaptureRequest">CameraDevice#createCaptureRequest</a>
   17570   using an appropriate template matching the particular use case.<wbr/></li>
   17571 <li>The client should go over the list of session parameters and check
   17572   whether some of the keys listed matches with the parameters that
   17573   they intend to modify as part of the first capture request.<wbr/></li>
   17574 <li>If there is no such match,<wbr/> the capture request can be  passed
   17575   unmodified to
   17576   <a href="https://developer.android.com/reference/SessionConfiguration.html#setSessionParameters">SessionConfiguration#setSessionParameters</a>.<wbr/></li>
   17577 <li>If matches do exist,<wbr/> the client should update the respective values
   17578   and pass the request to
   17579   <a href="https://developer.android.com/reference/SessionConfiguration.html#setSessionParameters">SessionConfiguration#setSessionParameters</a>.<wbr/></li>
   17580 <li>After the capture session initialization completes the session parameter
   17581   key list can continue to serve as reference when posting or updating
   17582   further requests.<wbr/> As mentioned above further changes to session
   17583   parameters should ideally be avoided,<wbr/> if updates are necessary
   17584   however clients could expect a delay/<wbr/>glitch during the
   17585   parameter switch.<wbr/></li>
   17586 </ul>
   17587             </td>
   17588           </tr>
   17589 
   17590           <tr class="entries_header">
   17591             <th class="th_details" colspan="6">HAL Implementation Details</th>
   17592           </tr>
   17593           <tr class="entry_cont">
   17594             <td class="entry_details" colspan="6">
   17595               <p>If <a href="#controls_android.control.aeTargetFpsRange">android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range</a> is part of the session parameters and constrained high
   17596 speed mode is enabled,<wbr/> then only modifications of the maximum framerate value will be
   17597 monitored by the framework and can trigger camera re-configuration.<wbr/> For more information
   17598 about framerate ranges during constrained high speed sessions see
   17599 <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createConstrainedHighSpeedCaptureSession">CameraDevice#createConstrainedHighSpeedCaptureSession</a>.<wbr/>
   17600 Vendor tags can be listed here.<wbr/> Vendor tag metadata should also
   17601 use the extensions C api (refer to
   17602 android.<wbr/>hardware.<wbr/>camera.<wbr/>device.<wbr/>V3_<wbr/>4.<wbr/>Stream<wbr/>Configuration.<wbr/>session<wbr/>Params for more details).<wbr/></p>
   17603 <p>Setting/<wbr/>getting vendor tags will be checked against the metadata
   17604 vendor extensions API and not against this field.<wbr/></p>
   17605 <p>The HAL must not consume any request tags in the session parameters that
   17606 are not listed either here or in the vendor tag list.<wbr/></p>
   17607 <p>The public camera2 API will always make the vendor tags visible
   17608 via
   17609 <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#getAvailableSessionKeys">CameraCharacteristics#getAvailableSessionKeys</a>.<wbr/></p>
   17610             </td>
   17611           </tr>
   17612 
   17613           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   17614            <!-- end of entry -->
   17615         
   17616                 
   17617           <tr class="entry" id="static_android.request.availablePhysicalCameraRequestKeys">
   17618             <td class="entry_name
   17619              " rowspan="5">
   17620               android.<wbr/>request.<wbr/>available<wbr/>Physical<wbr/>Camera<wbr/>Request<wbr/>Keys
   17621             </td>
   17622             <td class="entry_type">
   17623                 <span class="entry_type_name">int32</span>
   17624                 <span class="entry_type_container">x</span>
   17625 
   17626                 <span class="entry_type_array">
   17627                   n
   17628                 </span>
   17629               <span class="entry_type_visibility"> [hidden]</span>
   17630 
   17631 
   17632               <span class="entry_type_hwlevel">[limited] </span>
   17633 
   17634 
   17635 
   17636 
   17637             </td> <!-- entry_type -->
   17638 
   17639             <td class="entry_description">
   17640               <p>A subset of the available request keys that can be overriden for
   17641 physical devices backing a logical multi-camera.<wbr/></p>
   17642             </td>
   17643 
   17644             <td class="entry_units">
   17645             </td>
   17646 
   17647             <td class="entry_range">
   17648             </td>
   17649 
   17650             <td class="entry_hal_version">
   17651               <p>3.<wbr/>3</p>
   17652             </td>
   17653 
   17654             <td class="entry_tags">
   17655             </td>
   17656 
   17657           </tr>
   17658           <tr class="entries_header">
   17659             <th class="th_details" colspan="6">Details</th>
   17660           </tr>
   17661           <tr class="entry_cont">
   17662             <td class="entry_details" colspan="6">
   17663               <p>This is a subset of <a href="#static_android.request.availableRequestKeys">android.<wbr/>request.<wbr/>available<wbr/>Request<wbr/>Keys</a> which contains a list
   17664 of keys that can be overriden using <a href="https://developer.android.com/reference/CaptureRequest/Builder.html#setPhysicalCameraKey">Builder#setPhysicalCameraKey</a>.<wbr/>
   17665 The respective value of such request key can be obtained by calling
   17666 <a href="https://developer.android.com/reference/CaptureRequest/Builder.html#getPhysicalCameraKey">Builder#getPhysicalCameraKey</a>.<wbr/> Capture requests that contain
   17667 individual physical device requests must be built via
   17668 <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureRequest(int,">Set)</a>.<wbr/></p>
   17669             </td>
   17670           </tr>
   17671 
   17672           <tr class="entries_header">
   17673             <th class="th_details" colspan="6">HAL Implementation Details</th>
   17674           </tr>
   17675           <tr class="entry_cont">
   17676             <td class="entry_details" colspan="6">
   17677               <p>Vendor tags can be listed here.<wbr/> Vendor tag metadata should also
   17678 use the extensions C api (refer to
   17679 android.<wbr/>hardware.<wbr/>camera.<wbr/>device.<wbr/>V3_<wbr/>4.<wbr/>Capture<wbr/>Request.<wbr/>physical<wbr/>Camera<wbr/>Settings for more
   17680 details).<wbr/></p>
   17681 <p>Setting/<wbr/>getting vendor tags will be checked against the metadata
   17682 vendor extensions API and not against this field.<wbr/></p>
   17683 <p>The HAL must not consume any request tags in the session parameters that
   17684 are not listed either here or in the vendor tag list.<wbr/></p>
   17685 <p>There should be no overlap between this set of keys and the available session keys
   17686 <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#getAvailableSessionKeys">CameraCharacteristics#getAvailableSessionKeys</a> along
   17687 with any other controls that can have impact on the dual-camera sync.<wbr/></p>
   17688 <p>The public camera2 API will always make the vendor tags visible
   17689 via
   17690 <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#getAvailablePhysicalCameraRequestKeys">CameraCharacteristics#getAvailablePhysicalCameraRequestKeys</a>.<wbr/></p>
   17691             </td>
   17692           </tr>
   17693 
   17694           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   17695            <!-- end of entry -->
   17696         
   17697         
   17698 
   17699       <!-- end of kind -->
   17700       </tbody>
   17701       <tr><td colspan="7" class="kind">dynamic</td></tr>
   17702 
   17703       <thead class="entries_header">
   17704         <tr>
   17705           <th class="th_name">Property Name</th>
   17706           <th class="th_type">Type</th>
   17707           <th class="th_description">Description</th>
   17708           <th class="th_units">Units</th>
   17709           <th class="th_range">Range</th>
   17710           <th class="th_hal_version">Initial HIDL HAL version</th>
   17711           <th class="th_tags">Tags</th>
   17712         </tr>
   17713       </thead>
   17714 
   17715       <tbody>
   17716 
   17717         
   17718 
   17719         
   17720 
   17721         
   17722 
   17723         
   17724 
   17725                 
   17726           <tr class="entry" id="dynamic_android.request.frameCount">
   17727             <td class="entry_name
   17728                 entry_name_deprecated
   17729              " rowspan="3">
   17730               android.<wbr/>request.<wbr/>frame<wbr/>Count
   17731             </td>
   17732             <td class="entry_type">
   17733                 <span class="entry_type_name">int32</span>
   17734 
   17735               <span class="entry_type_visibility"> [hidden]</span>
   17736 
   17737 
   17738 
   17739               <span class="entry_type_deprecated">[deprecated] </span>
   17740 
   17741 
   17742 
   17743             </td> <!-- entry_type -->
   17744 
   17745             <td class="entry_description">
   17746               <p>A frame counter set by the framework.<wbr/> This value monotonically
   17747 increases with every new result (that is,<wbr/> each new result has a unique
   17748 frameCount value).<wbr/></p>
   17749             </td>
   17750 
   17751             <td class="entry_units">
   17752               count of frames
   17753             </td>
   17754 
   17755             <td class="entry_range">
   17756               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   17757               <p>&gt; 0</p>
   17758             </td>
   17759 
   17760             <td class="entry_hal_version">
   17761               <p>3.<wbr/>2</p>
   17762             </td>
   17763 
   17764             <td class="entry_tags">
   17765             </td>
   17766 
   17767           </tr>
   17768           <tr class="entries_header">
   17769             <th class="th_details" colspan="6">Details</th>
   17770           </tr>
   17771           <tr class="entry_cont">
   17772             <td class="entry_details" colspan="6">
   17773               <p>Reset on release()</p>
   17774             </td>
   17775           </tr>
   17776 
   17777 
   17778           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   17779            <!-- end of entry -->
   17780         
   17781                 
   17782           <tr class="entry" id="dynamic_android.request.id">
   17783             <td class="entry_name
   17784              " rowspan="1">
   17785               android.<wbr/>request.<wbr/>id
   17786             </td>
   17787             <td class="entry_type">
   17788                 <span class="entry_type_name">int32</span>
   17789 
   17790               <span class="entry_type_visibility"> [hidden]</span>
   17791 
   17792 
   17793 
   17794 
   17795 
   17796 
   17797             </td> <!-- entry_type -->
   17798 
   17799             <td class="entry_description">
   17800               <p>An application-specified ID for the current
   17801 request.<wbr/> Must be maintained unchanged in output
   17802 frame</p>
   17803             </td>
   17804 
   17805             <td class="entry_units">
   17806               arbitrary integer assigned by application
   17807             </td>
   17808 
   17809             <td class="entry_range">
   17810               <p>Any int</p>
   17811             </td>
   17812 
   17813             <td class="entry_hal_version">
   17814               <p>3.<wbr/>2</p>
   17815             </td>
   17816 
   17817             <td class="entry_tags">
   17818               <ul class="entry_tags">
   17819                   <li><a href="#tag_V1">V1</a></li>
   17820               </ul>
   17821             </td>
   17822 
   17823           </tr>
   17824 
   17825 
   17826           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   17827            <!-- end of entry -->
   17828         
   17829                 
   17830           <tr class="entry" id="dynamic_android.request.metadataMode">
   17831             <td class="entry_name
   17832              " rowspan="1">
   17833               android.<wbr/>request.<wbr/>metadata<wbr/>Mode
   17834             </td>
   17835             <td class="entry_type">
   17836                 <span class="entry_type_name entry_type_name_enum">byte</span>
   17837 
   17838               <span class="entry_type_visibility"> [system]</span>
   17839 
   17840 
   17841 
   17842 
   17843 
   17844                 <ul class="entry_type_enum">
   17845                   <li>
   17846                     <span class="entry_type_enum_name">NONE (v3.2)</span>
   17847                     <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
   17848 for application-bound buffer data.<wbr/> If no
   17849 application-bound streams exist,<wbr/> no frame should be
   17850 placed in the output frame queue.<wbr/> If such streams
   17851 exist,<wbr/> a frame should be placed on the output queue
   17852 with null metadata but with the necessary output buffer
   17853 information.<wbr/> Timestamp information should still be
   17854 included with any output stream buffers</p></span>
   17855                   </li>
   17856                   <li>
   17857                     <span class="entry_type_enum_name">FULL (v3.2)</span>
   17858                     <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
   17859 only be produced if they are separately
   17860 enabled</p></span>
   17861                   </li>
   17862                 </ul>
   17863 
   17864             </td> <!-- entry_type -->
   17865 
   17866             <td class="entry_description">
   17867               <p>How much metadata to produce on
   17868 output</p>
   17869             </td>
   17870 
   17871             <td class="entry_units">
   17872             </td>
   17873 
   17874             <td class="entry_range">
   17875             </td>
   17876 
   17877             <td class="entry_hal_version">
   17878               <p>3.<wbr/>2</p>
   17879             </td>
   17880 
   17881             <td class="entry_tags">
   17882               <ul class="entry_tags">
   17883                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   17884               </ul>
   17885             </td>
   17886 
   17887           </tr>
   17888 
   17889 
   17890           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   17891            <!-- end of entry -->
   17892         
   17893                 
   17894           <tr class="entry" id="dynamic_android.request.outputStreams">
   17895             <td class="entry_name
   17896                 entry_name_deprecated
   17897              " rowspan="3">
   17898               android.<wbr/>request.<wbr/>output<wbr/>Streams
   17899             </td>
   17900             <td class="entry_type">
   17901                 <span class="entry_type_name">int32</span>
   17902                 <span class="entry_type_container">x</span>
   17903 
   17904                 <span class="entry_type_array">
   17905                   n
   17906                 </span>
   17907               <span class="entry_type_visibility"> [system]</span>
   17908 
   17909 
   17910 
   17911               <span class="entry_type_deprecated">[deprecated] </span>
   17912 
   17913 
   17914 
   17915             </td> <!-- entry_type -->
   17916 
   17917             <td class="entry_description">
   17918               <p>Lists which camera output streams image data
   17919 from this capture must be sent to</p>
   17920             </td>
   17921 
   17922             <td class="entry_units">
   17923               List of camera stream IDs
   17924             </td>
   17925 
   17926             <td class="entry_range">
   17927               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   17928               <p>List must only include streams that have been
   17929 created</p>
   17930             </td>
   17931 
   17932             <td class="entry_hal_version">
   17933               <p>3.<wbr/>2</p>
   17934             </td>
   17935 
   17936             <td class="entry_tags">
   17937               <ul class="entry_tags">
   17938                   <li><a href="#tag_HAL2">HAL2</a></li>
   17939               </ul>
   17940             </td>
   17941 
   17942           </tr>
   17943           <tr class="entries_header">
   17944             <th class="th_details" colspan="6">Details</th>
   17945           </tr>
   17946           <tr class="entry_cont">
   17947             <td class="entry_details" colspan="6">
   17948               <p>If no output streams are listed,<wbr/> then the image
   17949 data should simply be discarded.<wbr/> The image data must
   17950 still be captured for metadata and statistics production,<wbr/>
   17951 and the lens and flash must operate as requested.<wbr/></p>
   17952             </td>
   17953           </tr>
   17954 
   17955 
   17956           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   17957            <!-- end of entry -->
   17958         
   17959                 
   17960           <tr class="entry" id="dynamic_android.request.pipelineDepth">
   17961             <td class="entry_name
   17962              " rowspan="5">
   17963               android.<wbr/>request.<wbr/>pipeline<wbr/>Depth
   17964             </td>
   17965             <td class="entry_type">
   17966                 <span class="entry_type_name">byte</span>
   17967 
   17968               <span class="entry_type_visibility"> [public]</span>
   17969 
   17970 
   17971               <span class="entry_type_hwlevel">[legacy] </span>
   17972 
   17973 
   17974 
   17975 
   17976             </td> <!-- entry_type -->
   17977 
   17978             <td class="entry_description">
   17979               <p>Specifies the number of pipeline stages the frame went
   17980 through from when it was exposed to when the final completed result
   17981 was available to the framework.<wbr/></p>
   17982             </td>
   17983 
   17984             <td class="entry_units">
   17985             </td>
   17986 
   17987             <td class="entry_range">
   17988               <p>&lt;= <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a></p>
   17989             </td>
   17990 
   17991             <td class="entry_hal_version">
   17992               <p>3.<wbr/>2</p>
   17993             </td>
   17994 
   17995             <td class="entry_tags">
   17996             </td>
   17997 
   17998           </tr>
   17999           <tr class="entries_header">
   18000             <th class="th_details" colspan="6">Details</th>
   18001           </tr>
   18002           <tr class="entry_cont">
   18003             <td class="entry_details" colspan="6">
   18004               <p>Depending on what settings are used in the request,<wbr/> and
   18005 what streams are configured,<wbr/> the data may undergo less processing,<wbr/>
   18006 and some pipeline stages skipped.<wbr/></p>
   18007 <p>See <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> for more details.<wbr/></p>
   18008             </td>
   18009           </tr>
   18010 
   18011           <tr class="entries_header">
   18012             <th class="th_details" colspan="6">HAL Implementation Details</th>
   18013           </tr>
   18014           <tr class="entry_cont">
   18015             <td class="entry_details" colspan="6">
   18016               <p>This value must always represent the accurate count of how many
   18017 pipeline stages were actually used.<wbr/></p>
   18018             </td>
   18019           </tr>
   18020 
   18021           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   18022            <!-- end of entry -->
   18023         
   18024         
   18025 
   18026       <!-- end of kind -->
   18027       </tbody>
   18028 
   18029   <!-- end of section -->
   18030   <tr><td colspan="7" id="section_scaler" class="section">scaler</td></tr>
   18031 
   18032 
   18033       <tr><td colspan="7" class="kind">controls</td></tr>
   18034 
   18035       <thead class="entries_header">
   18036         <tr>
   18037           <th class="th_name">Property Name</th>
   18038           <th class="th_type">Type</th>
   18039           <th class="th_description">Description</th>
   18040           <th class="th_units">Units</th>
   18041           <th class="th_range">Range</th>
   18042           <th class="th_hal_version">Initial HIDL HAL version</th>
   18043           <th class="th_tags">Tags</th>
   18044         </tr>
   18045       </thead>
   18046 
   18047       <tbody>
   18048 
   18049         
   18050 
   18051         
   18052 
   18053         
   18054 
   18055         
   18056 
   18057                 
   18058           <tr class="entry" id="controls_android.scaler.cropRegion">
   18059             <td class="entry_name
   18060              " rowspan="5">
   18061               android.<wbr/>scaler.<wbr/>crop<wbr/>Region
   18062             </td>
   18063             <td class="entry_type">
   18064                 <span class="entry_type_name">int32</span>
   18065                 <span class="entry_type_container">x</span>
   18066 
   18067                 <span class="entry_type_array">
   18068                   4
   18069                 </span>
   18070               <span class="entry_type_visibility"> [public as rectangle]</span>
   18071 
   18072 
   18073               <span class="entry_type_hwlevel">[legacy] </span>
   18074 
   18075 
   18076 
   18077 
   18078             </td> <!-- entry_type -->
   18079 
   18080             <td class="entry_description">
   18081               <p>The desired region of the sensor to read out for this capture.<wbr/></p>
   18082             </td>
   18083 
   18084             <td class="entry_units">
   18085               Pixel coordinates relative to
   18086           android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
   18087             </td>
   18088 
   18089             <td class="entry_range">
   18090             </td>
   18091 
   18092             <td class="entry_hal_version">
   18093               <p>3.<wbr/>2</p>
   18094             </td>
   18095 
   18096             <td class="entry_tags">
   18097               <ul class="entry_tags">
   18098                   <li><a href="#tag_BC">BC</a></li>
   18099               </ul>
   18100             </td>
   18101 
   18102           </tr>
   18103           <tr class="entries_header">
   18104             <th class="th_details" colspan="6">Details</th>
   18105           </tr>
   18106           <tr class="entry_cont">
   18107             <td class="entry_details" colspan="6">
   18108               <p>This control can be used to implement digital zoom.<wbr/></p>
   18109 <p>The crop region coordinate system is based off
   18110 <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
   18111 top-left corner of the sensor active array.<wbr/></p>
   18112 <p>Output streams use this rectangle to produce their output,<wbr/>
   18113 cropping to a smaller region if necessary to maintain the
   18114 stream's aspect ratio,<wbr/> then scaling the sensor input to
   18115 match the output's configured resolution.<wbr/></p>
   18116 <p>The crop region is applied after the RAW to other color
   18117 space (e.<wbr/>g.<wbr/> YUV) conversion.<wbr/> Since raw streams
   18118 (e.<wbr/>g.<wbr/> RAW16) don't have the conversion stage,<wbr/> they are not
   18119 croppable.<wbr/> The crop region will be ignored by raw streams.<wbr/></p>
   18120 <p>For non-raw streams,<wbr/> any additional per-stream cropping will
   18121 be done to maximize the final pixel area of the stream.<wbr/></p>
   18122 <p>For example,<wbr/> if the crop region is set to a 4:3 aspect
   18123 ratio,<wbr/> then 4:3 streams will use the exact crop
   18124 region.<wbr/> 16:9 streams will further crop vertically
   18125 (letterbox).<wbr/></p>
   18126 <p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
   18127 outputs will crop horizontally (pillarbox),<wbr/> and 16:9
   18128 streams will match exactly.<wbr/> These additional crops will
   18129 be centered within the crop region.<wbr/></p>
   18130 <p>The width and height of the crop region cannot
   18131 be set to be smaller than
   18132 <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
   18133 <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>
   18134 <p>The camera device may adjust the crop region to account
   18135 for rounding and other hardware requirements; the final
   18136 crop region used will be included in the output capture
   18137 result.<wbr/></p>
   18138             </td>
   18139           </tr>
   18140 
   18141           <tr class="entries_header">
   18142             <th class="th_details" colspan="6">HAL Implementation Details</th>
   18143           </tr>
   18144           <tr class="entry_cont">
   18145             <td class="entry_details" colspan="6">
   18146               <p>The output streams must maintain square pixels at all
   18147 times,<wbr/> no matter what the relative aspect ratios of the
   18148 crop region and the stream are.<wbr/>  Negative values for
   18149 corner are allowed for raw output if full pixel array is
   18150 larger than active pixel array.<wbr/> Width and height may be
   18151 rounded to nearest larger supportable width,<wbr/> especially
   18152 for raw output,<wbr/> where only a few fixed scales may be
   18153 possible.<wbr/></p>
   18154 <p>For a set of output streams configured,<wbr/> if the sensor output is cropped to a smaller
   18155 size than active array size,<wbr/> the HAL need follow below cropping rules:</p>
   18156 <ul>
   18157 <li>
   18158 <p>The HAL need handle the cropRegion as if the sensor crop size is the effective active
   18159 array size.<wbr/>More specifically,<wbr/> the HAL must transform the request cropRegion from
   18160 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a> to the sensor cropped pixel area size in this way:</p>
   18161 <ol>
   18162 <li>Translate the requested cropRegion w.<wbr/>r.<wbr/>t.,<wbr/> the left top corner of the sensor
   18163 cropped pixel area by (tx,<wbr/> ty),<wbr/>
   18164 where <code>ty = sensorCrop.<wbr/>top * (sensorCrop.<wbr/>height /<wbr/> activeArraySize.<wbr/>height)</code>
   18165 and <code>tx = sensorCrop.<wbr/>left * (sensorCrop.<wbr/>width /<wbr/> activeArraySize.<wbr/>width)</code>.<wbr/> The
   18166 (sensorCrop.<wbr/>top,<wbr/> sensorCrop.<wbr/>left) is the coordinate based off the
   18167 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/></li>
   18168 <li>Scale the width and height of requested cropRegion with scaling factor of
   18169 sensor<wbr/>Crop.<wbr/>width/<wbr/>active<wbr/>Array<wbr/>Size.<wbr/>width and sensor<wbr/>Crop.<wbr/>height/<wbr/>active<wbr/>Array<wbr/>Size.<wbr/>height
   18170 respectively.<wbr/>
   18171 Once this new cropRegion is calculated,<wbr/> the HAL must use this region to crop the image
   18172 with regard to the sensor crop size (effective active array size).<wbr/> The HAL still need
   18173 follow the general cropping rule for this new cropRegion and effective active
   18174 array size.<wbr/></li>
   18175 </ol>
   18176 </li>
   18177 <li>
   18178 <p>The HAL must report the cropRegion with regard to <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>
   18179 The HAL need convert the new cropRegion generated above w.<wbr/>r.<wbr/>t.,<wbr/> full active array size.<wbr/>
   18180 The reported cropRegion may be slightly different with the requested cropRegion since
   18181 the HAL may adjust the crop region to account for rounding,<wbr/> conversion error,<wbr/> or other
   18182 hardware limitations.<wbr/></p>
   18183 </li>
   18184 </ul>
   18185 <p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
   18186             </td>
   18187           </tr>
   18188 
   18189           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   18190            <!-- end of entry -->
   18191         
   18192         
   18193 
   18194       <!-- end of kind -->
   18195       </tbody>
   18196       <tr><td colspan="7" class="kind">static</td></tr>
   18197 
   18198       <thead class="entries_header">
   18199         <tr>
   18200           <th class="th_name">Property Name</th>
   18201           <th class="th_type">Type</th>
   18202           <th class="th_description">Description</th>
   18203           <th class="th_units">Units</th>
   18204           <th class="th_range">Range</th>
   18205           <th class="th_hal_version">Initial HIDL HAL version</th>
   18206           <th class="th_tags">Tags</th>
   18207         </tr>
   18208       </thead>
   18209 
   18210       <tbody>
   18211 
   18212         
   18213 
   18214         
   18215 
   18216         
   18217 
   18218         
   18219 
   18220                 
   18221           <tr class="entry" id="static_android.scaler.availableFormats">
   18222             <td class="entry_name
   18223                 entry_name_deprecated
   18224              " rowspan="5">
   18225               android.<wbr/>scaler.<wbr/>available<wbr/>Formats
   18226             </td>
   18227             <td class="entry_type">
   18228                 <span class="entry_type_name entry_type_name_enum">int32</span>
   18229                 <span class="entry_type_container">x</span>
   18230 
   18231                 <span class="entry_type_array">
   18232                   n
   18233                 </span>
   18234               <span class="entry_type_visibility"> [hidden as imageFormat]</span>
   18235 
   18236 
   18237 
   18238               <span class="entry_type_deprecated">[deprecated] </span>
   18239 
   18240 
   18241                 <ul class="entry_type_enum">
   18242                   <li>
   18243                     <span class="entry_type_enum_name">RAW16 (v3.2)</span>
   18244                     <span class="entry_type_enum_optional">[optional]</span>
   18245                     <span class="entry_type_enum_value">0x20</span>
   18246                     <span class="entry_type_enum_notes"><p>RAW16 is a standard,<wbr/> cross-platform format for raw image
   18247 buffers with 16-bit pixels.<wbr/></p>
   18248 <p>Buffers of this format are typically expected to have a
   18249 Bayer Color Filter Array (CFA) layout,<wbr/> which is given in
   18250 <a href="#static_android.sensor.info.colorFilterArrangement">android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement</a>.<wbr/> Sensors with
   18251 CFAs that are not representable by a format in
   18252 <a href="#static_android.sensor.info.colorFilterArrangement">android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement</a> should not
   18253 use this format.<wbr/></p>
   18254 <p>Buffers of this format will also follow the constraints given for
   18255 RAW_<wbr/>OPAQUE buffers,<wbr/> but with relaxed performance constraints.<wbr/></p>
   18256 <p>This format is intended to give users access to the full contents
   18257 of the buffers coming directly from the image sensor prior to any
   18258 cropping or scaling operations,<wbr/> and all coordinate systems for
   18259 metadata used for this format are relative to the size of the
   18260 active region of the image sensor before any geometric distortion
   18261 correction has been applied (i.<wbr/>e.<wbr/>
   18262 <a href="#static_android.sensor.info.preCorrectionActiveArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<wbr/>Active<wbr/>Array<wbr/>Size</a>).<wbr/> Supported
   18263 dimensions for this format are limited to the full dimensions of
   18264 the sensor (e.<wbr/>g.<wbr/> either <a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a> or
   18265 <a href="#static_android.sensor.info.preCorrectionActiveArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<wbr/>Active<wbr/>Array<wbr/>Size</a> will be the
   18266 only supported output size).<wbr/></p>
   18267 <p>See <a href="#static_android.scaler.availableInputOutputFormatsMap">android.<wbr/>scaler.<wbr/>available<wbr/>Input<wbr/>Output<wbr/>Formats<wbr/>Map</a> for
   18268 the full set of performance guarantees.<wbr/></p></span>
   18269                   </li>
   18270                   <li>
   18271                     <span class="entry_type_enum_name">RAW_OPAQUE (v3.2)</span>
   18272                     <span class="entry_type_enum_optional">[optional]</span>
   18273                     <span class="entry_type_enum_value">0x24</span>
   18274                     <span class="entry_type_enum_notes"><p>RAW_<wbr/>OPAQUE (or
   18275 <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#RAW_PRIVATE">RAW_<wbr/>PRIVATE</a>
   18276 as referred in public API) is a format for raw image buffers
   18277 coming from an image sensor.<wbr/></p>
   18278 <p>The actual structure of buffers of this format is
   18279 platform-specific,<wbr/> but must follow several constraints:</p>
   18280 <ol>
   18281 <li>No image post-processing operations may have been applied to
   18282 buffers of this type.<wbr/> These buffers contain raw image data coming
   18283 directly from the image sensor.<wbr/></li>
   18284 <li>If a buffer of this format is passed to the camera device for
   18285 reprocessing,<wbr/> the resulting images will be identical to the images
   18286 produced if the buffer had come directly from the sensor and was
   18287 processed with the same settings.<wbr/></li>
   18288 </ol>
   18289 <p>The intended use for this format is to allow access to the native
   18290 raw format buffers coming directly from the camera sensor without
   18291 any additional conversions or decrease in framerate.<wbr/></p>
   18292 <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
   18293 performance guarantees.<wbr/></p></span>
   18294                   </li>
   18295                   <li>
   18296                     <span class="entry_type_enum_name">YV12 (v3.2)</span>
   18297                     <span class="entry_type_enum_optional">[optional]</span>
   18298                     <span class="entry_type_enum_value">0x32315659</span>
   18299                     <span class="entry_type_enum_notes"><p>YCrCb 4:2:0 Planar</p></span>
   18300                   </li>
   18301                   <li>
   18302                     <span class="entry_type_enum_name">YCrCb_420_SP (v3.2)</span>
   18303                     <span class="entry_type_enum_optional">[optional]</span>
   18304                     <span class="entry_type_enum_value">0x11</span>
   18305                     <span class="entry_type_enum_notes"><p>NV21</p></span>
   18306                   </li>
   18307                   <li>
   18308                     <span class="entry_type_enum_name">IMPLEMENTATION_DEFINED (v3.2)</span>
   18309                     <span class="entry_type_enum_value">0x22</span>
   18310                     <span class="entry_type_enum_notes"><p>System internal format,<wbr/> not application-accessible</p></span>
   18311                   </li>
   18312                   <li>
   18313                     <span class="entry_type_enum_name">YCbCr_420_888 (v3.2)</span>
   18314                     <span class="entry_type_enum_value">0x23</span>
   18315                     <span class="entry_type_enum_notes"><p>Flexible YUV420 Format</p></span>
   18316                   </li>
   18317                   <li>
   18318                     <span class="entry_type_enum_name">BLOB (v3.2)</span>
   18319                     <span class="entry_type_enum_value">0x21</span>
   18320                     <span class="entry_type_enum_notes"><p>JPEG format</p></span>
   18321                   </li>
   18322                 </ul>
   18323 
   18324             </td> <!-- entry_type -->
   18325 
   18326             <td class="entry_description">
   18327               <p>The list of image formats that are supported by this
   18328 camera device for output streams.<wbr/></p>
   18329             </td>
   18330 
   18331             <td class="entry_units">
   18332             </td>
   18333 
   18334             <td class="entry_range">
   18335               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   18336             </td>
   18337 
   18338             <td class="entry_hal_version">
   18339               <p>3.<wbr/>2</p>
   18340             </td>
   18341 
   18342             <td class="entry_tags">
   18343               <ul class="entry_tags">
   18344                   <li><a href="#tag_BC">BC</a></li>
   18345               </ul>
   18346             </td>
   18347 
   18348           </tr>
   18349           <tr class="entries_header">
   18350             <th class="th_details" colspan="6">Details</th>
   18351           </tr>
   18352           <tr class="entry_cont">
   18353             <td class="entry_details" colspan="6">
   18354               <p>All camera devices will support JPEG and YUV_<wbr/>420_<wbr/>888 formats.<wbr/></p>
   18355 <p>When set to YUV_<wbr/>420_<wbr/>888,<wbr/> application can access the YUV420 data directly.<wbr/></p>
   18356             </td>
   18357           </tr>
   18358 
   18359           <tr class="entries_header">
   18360             <th class="th_details" colspan="6">HAL Implementation Details</th>
   18361           </tr>
   18362           <tr class="entry_cont">
   18363             <td class="entry_details" colspan="6">
   18364               <p>These format values are from HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>* in
   18365 system/<wbr/>core/<wbr/>include/<wbr/>system/<wbr/>graphics.<wbr/>h.<wbr/></p>
   18366 <p>When IMPLEMENTATION_<wbr/>DEFINED is used,<wbr/> the platform
   18367 gralloc module will select a format based on the usage flags provided
   18368 by the camera HAL device and the other endpoint of the stream.<wbr/> It is
   18369 usually used by preview and recording streams,<wbr/> where the application doesn't
   18370 need access the image data.<wbr/></p>
   18371 <p>YCb<wbr/>Cr_<wbr/>420_<wbr/>888 format must be supported by the HAL.<wbr/> When an image stream
   18372 needs CPU/<wbr/>application direct access,<wbr/> this format will be used.<wbr/></p>
   18373 <p>The BLOB format must be supported by the HAL.<wbr/> This is used for the JPEG stream.<wbr/></p>
   18374 <p>A RAW_<wbr/>OPAQUE buffer should contain only pixel data.<wbr/> It is strongly
   18375 recommended that any information used by the camera device when
   18376 processing images is fully expressed by the result metadata
   18377 for that image buffer.<wbr/></p>
   18378             </td>
   18379           </tr>
   18380 
   18381           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   18382            <!-- end of entry -->
   18383         
   18384                 
   18385           <tr class="entry" id="static_android.scaler.availableJpegMinDurations">
   18386             <td class="entry_name
   18387                 entry_name_deprecated
   18388              " rowspan="3">
   18389               android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations
   18390             </td>
   18391             <td class="entry_type">
   18392                 <span class="entry_type_name">int64</span>
   18393                 <span class="entry_type_container">x</span>
   18394 
   18395                 <span class="entry_type_array">
   18396                   n
   18397                 </span>
   18398               <span class="entry_type_visibility"> [hidden]</span>
   18399 
   18400 
   18401 
   18402               <span class="entry_type_deprecated">[deprecated] </span>
   18403 
   18404 
   18405 
   18406             </td> <!-- entry_type -->
   18407 
   18408             <td class="entry_description">
   18409               <p>The minimum frame duration that is supported
   18410 for each resolution in <a href="#static_android.scaler.availableJpegSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes</a>.<wbr/></p>
   18411             </td>
   18412 
   18413             <td class="entry_units">
   18414               Nanoseconds
   18415             </td>
   18416 
   18417             <td class="entry_range">
   18418               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   18419               <p>TODO: Remove property.<wbr/></p>
   18420             </td>
   18421 
   18422             <td class="entry_hal_version">
   18423               <p>3.<wbr/>2</p>
   18424             </td>
   18425 
   18426             <td class="entry_tags">
   18427               <ul class="entry_tags">
   18428                   <li><a href="#tag_BC">BC</a></li>
   18429               </ul>
   18430             </td>
   18431 
   18432           </tr>
   18433           <tr class="entries_header">
   18434             <th class="th_details" colspan="6">Details</th>
   18435           </tr>
   18436           <tr class="entry_cont">
   18437             <td class="entry_details" colspan="6">
   18438               <p>This corresponds to the minimum steady-state frame duration when only
   18439 that JPEG stream is active and captured in a burst,<wbr/> with all
   18440 processing (typically in android.<wbr/>*.<wbr/>mode) set to FAST.<wbr/></p>
   18441 <p>When multiple streams are configured,<wbr/> the minimum
   18442 frame duration will be &gt;= max(individual stream min
   18443 durations)</p>
   18444             </td>
   18445           </tr>
   18446 
   18447 
   18448           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   18449            <!-- end of entry -->
   18450         
   18451                 
   18452           <tr class="entry" id="static_android.scaler.availableJpegSizes">
   18453             <td class="entry_name
   18454                 entry_name_deprecated
   18455              " rowspan="5">
   18456               android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes
   18457             </td>
   18458             <td class="entry_type">
   18459                 <span class="entry_type_name">int32</span>
   18460                 <span class="entry_type_container">x</span>
   18461 
   18462                 <span class="entry_type_array">
   18463                   n x 2
   18464                 </span>
   18465               <span class="entry_type_visibility"> [hidden as size]</span>
   18466 
   18467 
   18468 
   18469               <span class="entry_type_deprecated">[deprecated] </span>
   18470 
   18471 
   18472 
   18473             </td> <!-- entry_type -->
   18474 
   18475             <td class="entry_description">
   18476               <p>The JPEG resolutions that are supported by this camera device.<wbr/></p>
   18477             </td>
   18478 
   18479             <td class="entry_units">
   18480             </td>
   18481 
   18482             <td class="entry_range">
   18483               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   18484               <p>TODO: Remove property.<wbr/></p>
   18485             </td>
   18486 
   18487             <td class="entry_hal_version">
   18488               <p>3.<wbr/>2</p>
   18489             </td>
   18490 
   18491             <td class="entry_tags">
   18492               <ul class="entry_tags">
   18493                   <li><a href="#tag_BC">BC</a></li>
   18494               </ul>
   18495             </td>
   18496 
   18497           </tr>
   18498           <tr class="entries_header">
   18499             <th class="th_details" colspan="6">Details</th>
   18500           </tr>
   18501           <tr class="entry_cont">
   18502             <td class="entry_details" colspan="6">
   18503               <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/> All camera devices will support
   18504 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>
   18505             </td>
   18506           </tr>
   18507 
   18508           <tr class="entries_header">
   18509             <th class="th_details" colspan="6">HAL Implementation Details</th>
   18510           </tr>
   18511           <tr class="entry_cont">
   18512             <td class="entry_details" colspan="6">
   18513               <p>The HAL must include sensor maximum resolution
   18514 (defined by <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>),<wbr/>
   18515 and should include half/<wbr/>quarter of sensor maximum resolution.<wbr/></p>
   18516             </td>
   18517           </tr>
   18518 
   18519           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   18520            <!-- end of entry -->
   18521         
   18522                 
   18523           <tr class="entry" id="static_android.scaler.availableMaxDigitalZoom">
   18524             <td class="entry_name
   18525              " rowspan="3">
   18526               android.<wbr/>scaler.<wbr/>available<wbr/>Max<wbr/>Digital<wbr/>Zoom
   18527             </td>
   18528             <td class="entry_type">
   18529                 <span class="entry_type_name">float</span>
   18530 
   18531               <span class="entry_type_visibility"> [public]</span>
   18532 
   18533 
   18534               <span class="entry_type_hwlevel">[legacy] </span>
   18535 
   18536 
   18537 
   18538 
   18539             </td> <!-- entry_type -->
   18540 
   18541             <td class="entry_description">
   18542               <p>The maximum ratio between both active area width
   18543 and crop region width,<wbr/> and active area height and
   18544 crop region height,<wbr/> for <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>.<wbr/></p>
   18545             </td>
   18546 
   18547             <td class="entry_units">
   18548               Zoom scale factor
   18549             </td>
   18550 
   18551             <td class="entry_range">
   18552               <p>&gt;=1</p>
   18553             </td>
   18554 
   18555             <td class="entry_hal_version">
   18556               <p>3.<wbr/>2</p>
   18557             </td>
   18558 
   18559             <td class="entry_tags">
   18560               <ul class="entry_tags">
   18561                   <li><a href="#tag_BC">BC</a></li>
   18562               </ul>
   18563             </td>
   18564 
   18565           </tr>
   18566           <tr class="entries_header">
   18567             <th class="th_details" colspan="6">Details</th>
   18568           </tr>
   18569           <tr class="entry_cont">
   18570             <td class="entry_details" colspan="6">
   18571               <p>This represents the maximum amount of zooming possible by
   18572 the camera device,<wbr/> or equivalently,<wbr/> the minimum cropping
   18573 window size.<wbr/></p>
   18574 <p>Crop regions that have a width or height that is smaller
   18575 than this ratio allows will be rounded up to the minimum
   18576 allowed size by the camera device.<wbr/></p>
   18577             </td>
   18578           </tr>
   18579 
   18580 
   18581           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   18582            <!-- end of entry -->
   18583         
   18584                 
   18585           <tr class="entry" id="static_android.scaler.availableProcessedMinDurations">
   18586             <td class="entry_name
   18587                 entry_name_deprecated
   18588              " rowspan="3">
   18589               android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations
   18590             </td>
   18591             <td class="entry_type">
   18592                 <span class="entry_type_name">int64</span>
   18593                 <span class="entry_type_container">x</span>
   18594 
   18595                 <span class="entry_type_array">
   18596                   n
   18597                 </span>
   18598               <span class="entry_type_visibility"> [hidden]</span>
   18599 
   18600 
   18601 
   18602               <span class="entry_type_deprecated">[deprecated] </span>
   18603 
   18604 
   18605 
   18606             </td> <!-- entry_type -->
   18607 
   18608             <td class="entry_description">
   18609               <p>For each available processed output size (defined in
   18610 <a href="#static_android.scaler.availableProcessedSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes</a>),<wbr/> this property lists the
   18611 minimum supportable frame duration for that size.<wbr/></p>
   18612             </td>
   18613 
   18614             <td class="entry_units">
   18615               Nanoseconds
   18616             </td>
   18617 
   18618             <td class="entry_range">
   18619               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   18620             </td>
   18621 
   18622             <td class="entry_hal_version">
   18623               <p>3.<wbr/>2</p>
   18624             </td>
   18625 
   18626             <td class="entry_tags">
   18627               <ul class="entry_tags">
   18628                   <li><a href="#tag_BC">BC</a></li>
   18629               </ul>
   18630             </td>
   18631 
   18632           </tr>
   18633           <tr class="entries_header">
   18634             <th class="th_details" colspan="6">Details</th>
   18635           </tr>
   18636           <tr class="entry_cont">
   18637             <td class="entry_details" colspan="6">
   18638               <p>This should correspond to the frame duration when only that processed
   18639 stream is active,<wbr/> with all processing (typically in android.<wbr/>*.<wbr/>mode)
   18640 set to FAST.<wbr/></p>
   18641 <p>When multiple streams are configured,<wbr/> the minimum frame duration will
   18642 be &gt;= max(individual stream min durations).<wbr/></p>
   18643             </td>
   18644           </tr>
   18645 
   18646 
   18647           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   18648            <!-- end of entry -->
   18649         
   18650                 
   18651           <tr class="entry" id="static_android.scaler.availableProcessedSizes">
   18652             <td class="entry_name
   18653                 entry_name_deprecated
   18654              " rowspan="5">
   18655               android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes
   18656             </td>
   18657             <td class="entry_type">
   18658                 <span class="entry_type_name">int32</span>
   18659                 <span class="entry_type_container">x</span>
   18660 
   18661                 <span class="entry_type_array">
   18662                   n x 2
   18663                 </span>
   18664               <span class="entry_type_visibility"> [hidden as size]</span>
   18665 
   18666 
   18667 
   18668               <span class="entry_type_deprecated">[deprecated] </span>
   18669 
   18670 
   18671 
   18672             </td> <!-- entry_type -->
   18673 
   18674             <td class="entry_description">
   18675               <p>The resolutions available for use with
   18676 processed output streams,<wbr/> such as YV12,<wbr/> NV12,<wbr/> and
   18677 platform opaque YUV/<wbr/>RGB streams to the GPU or video
   18678 encoders.<wbr/></p>
   18679             </td>
   18680 
   18681             <td class="entry_units">
   18682             </td>
   18683 
   18684             <td class="entry_range">
   18685               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   18686             </td>
   18687 
   18688             <td class="entry_hal_version">
   18689               <p>3.<wbr/>2</p>
   18690             </td>
   18691 
   18692             <td class="entry_tags">
   18693               <ul class="entry_tags">
   18694                   <li><a href="#tag_BC">BC</a></li>
   18695               </ul>
   18696             </td>
   18697 
   18698           </tr>
   18699           <tr class="entries_header">
   18700             <th class="th_details" colspan="6">Details</th>
   18701           </tr>
   18702           <tr class="entry_cont">
   18703             <td class="entry_details" colspan="6">
   18704               <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/></p>
   18705 <p>For a given use case,<wbr/> the actual maximum supported resolution
   18706 may be lower than what is listed here,<wbr/> depending on the destination
   18707 Surface for the image data.<wbr/> For example,<wbr/> for recording video,<wbr/>
   18708 the video encoder chosen may have a maximum size limit (e.<wbr/>g.<wbr/> 1080p)
   18709 smaller than what the camera (e.<wbr/>g.<wbr/> maximum resolution is 3264x2448)
   18710 can provide.<wbr/></p>
   18711 <p>Please reference the documentation for the image data destination to
   18712 check if it limits the maximum size for image data.<wbr/></p>
   18713             </td>
   18714           </tr>
   18715 
   18716           <tr class="entries_header">
   18717             <th class="th_details" colspan="6">HAL Implementation Details</th>
   18718           </tr>
   18719           <tr class="entry_cont">
   18720             <td class="entry_details" colspan="6">
   18721               <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/>
   18722 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>
   18723 and each below resolution if it is smaller than or equal to the sensor
   18724 maximum resolution (if they are not listed in JPEG sizes already):</p>
   18725 <ul>
   18726 <li>240p (320 x 240)</li>
   18727 <li>480p (640 x 480)</li>
   18728 <li>720p (1280 x 720)</li>
   18729 <li>1080p (1920 x 1080)</li>
   18730 </ul>
   18731 <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/>
   18732 the HAL only has to list up to the maximum video size supported by the devices.<wbr/></p>
   18733             </td>
   18734           </tr>
   18735 
   18736           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   18737            <!-- end of entry -->
   18738         
   18739                 
   18740           <tr class="entry" id="static_android.scaler.availableRawMinDurations">
   18741             <td class="entry_name
   18742                 entry_name_deprecated
   18743              " rowspan="3">
   18744               android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations
   18745             </td>
   18746             <td class="entry_type">
   18747                 <span class="entry_type_name">int64</span>
   18748                 <span class="entry_type_container">x</span>
   18749 
   18750                 <span class="entry_type_array">
   18751                   n
   18752                 </span>
   18753               <span class="entry_type_visibility"> [system]</span>
   18754 
   18755 
   18756 
   18757               <span class="entry_type_deprecated">[deprecated] </span>
   18758 
   18759 
   18760 
   18761             </td> <!-- entry_type -->
   18762 
   18763             <td class="entry_description">
   18764               <p>For each available raw output size (defined in
   18765 <a href="#static_android.scaler.availableRawSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes</a>),<wbr/> this property lists the minimum
   18766 supportable frame duration for that size.<wbr/></p>
   18767             </td>
   18768 
   18769             <td class="entry_units">
   18770               Nanoseconds
   18771             </td>
   18772 
   18773             <td class="entry_range">
   18774               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   18775             </td>
   18776 
   18777             <td class="entry_hal_version">
   18778               <p>3.<wbr/>2</p>
   18779             </td>
   18780 
   18781             <td class="entry_tags">
   18782               <ul class="entry_tags">
   18783                   <li><a href="#tag_BC">BC</a></li>
   18784               </ul>
   18785             </td>
   18786 
   18787           </tr>
   18788           <tr class="entries_header">
   18789             <th class="th_details" colspan="6">Details</th>
   18790           </tr>
   18791           <tr class="entry_cont">
   18792             <td class="entry_details" colspan="6">
   18793               <p>Should correspond to the frame duration when only the raw stream is
   18794 active.<wbr/></p>
   18795 <p>When multiple streams are configured,<wbr/> the minimum
   18796 frame duration will be &gt;= max(individual stream min
   18797 durations)</p>
   18798             </td>
   18799           </tr>
   18800 
   18801 
   18802           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   18803            <!-- end of entry -->
   18804         
   18805                 
   18806           <tr class="entry" id="static_android.scaler.availableRawSizes">
   18807             <td class="entry_name
   18808                 entry_name_deprecated
   18809              " rowspan="1">
   18810               android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes
   18811             </td>
   18812             <td class="entry_type">
   18813                 <span class="entry_type_name">int32</span>
   18814                 <span class="entry_type_container">x</span>
   18815 
   18816                 <span class="entry_type_array">
   18817                   n x 2
   18818                 </span>
   18819               <span class="entry_type_visibility"> [system as size]</span>
   18820 
   18821 
   18822 
   18823               <span class="entry_type_deprecated">[deprecated] </span>
   18824 
   18825 
   18826 
   18827             </td> <!-- entry_type -->
   18828 
   18829             <td class="entry_description">
   18830               <p>The resolutions available for use with raw
   18831 sensor output streams,<wbr/> listed as width,<wbr/>
   18832 height</p>
   18833             </td>
   18834 
   18835             <td class="entry_units">
   18836             </td>
   18837 
   18838             <td class="entry_range">
   18839               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   18840             </td>
   18841 
   18842             <td class="entry_hal_version">
   18843               <p>3.<wbr/>2</p>
   18844             </td>
   18845 
   18846             <td class="entry_tags">
   18847             </td>
   18848 
   18849           </tr>
   18850 
   18851 
   18852           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   18853            <!-- end of entry -->
   18854         
   18855                 
   18856           <tr class="entry" id="static_android.scaler.availableInputOutputFormatsMap">
   18857             <td class="entry_name
   18858              " rowspan="5">
   18859               android.<wbr/>scaler.<wbr/>available<wbr/>Input<wbr/>Output<wbr/>Formats<wbr/>Map
   18860             </td>
   18861             <td class="entry_type">
   18862                 <span class="entry_type_name">int32</span>
   18863 
   18864               <span class="entry_type_visibility"> [hidden as reprocessFormatsMap]</span>
   18865 
   18866 
   18867 
   18868 
   18869 
   18870 
   18871             </td> <!-- entry_type -->
   18872 
   18873             <td class="entry_description">
   18874               <p>The mapping of image formats that are supported by this
   18875 camera device for input streams,<wbr/> to their corresponding output formats.<wbr/></p>
   18876             </td>
   18877 
   18878             <td class="entry_units">
   18879             </td>
   18880 
   18881             <td class="entry_range">
   18882             </td>
   18883 
   18884             <td class="entry_hal_version">
   18885               <p>3.<wbr/>2</p>
   18886             </td>
   18887 
   18888             <td class="entry_tags">
   18889               <ul class="entry_tags">
   18890                   <li><a href="#tag_REPROC">REPROC</a></li>
   18891               </ul>
   18892             </td>
   18893 
   18894           </tr>
   18895           <tr class="entries_header">
   18896             <th class="th_details" colspan="6">Details</th>
   18897           </tr>
   18898           <tr class="entry_cont">
   18899             <td class="entry_details" colspan="6">
   18900               <p>All camera devices with at least 1
   18901 <a href="#static_android.request.maxNumInputStreams">android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Input<wbr/>Streams</a> will have at least one
   18902 available input format.<wbr/></p>
   18903 <p>The camera device will support the following map of formats,<wbr/>
   18904 if its dependent capability (<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>) is supported:</p>
   18905 <table>
   18906 <thead>
   18907 <tr>
   18908 <th align="left">Input Format</th>
   18909 <th align="left">Output Format</th>
   18910 <th align="left">Capability</th>
   18911 </tr>
   18912 </thead>
   18913 <tbody>
   18914 <tr>
   18915 <td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#PRIVATE">ImageFormat#PRIVATE</a></td>
   18916 <td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a></td>
   18917 <td align="left">PRIVATE_<wbr/>REPROCESSING</td>
   18918 </tr>
   18919 <tr>
   18920 <td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#PRIVATE">ImageFormat#PRIVATE</a></td>
   18921 <td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
   18922 <td align="left">PRIVATE_<wbr/>REPROCESSING</td>
   18923 </tr>
   18924 <tr>
   18925 <td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
   18926 <td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a></td>
   18927 <td align="left">YUV_<wbr/>REPROCESSING</td>
   18928 </tr>
   18929 <tr>
   18930 <td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
   18931 <td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
   18932 <td align="left">YUV_<wbr/>REPROCESSING</td>
   18933 </tr>
   18934 </tbody>
   18935 </table>
   18936 <p>PRIVATE refers to a device-internal format that is not directly application-visible.<wbr/>  A
   18937 PRIVATE input surface can be acquired by <a href="https://developer.android.com/reference/android/media/ImageReader.html#newInstance">ImageReader#newInstance</a>
   18938 with <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#PRIVATE">ImageFormat#PRIVATE</a> as the format.<wbr/></p>
   18939 <p>For a PRIVATE_<wbr/>REPROCESSING-capable camera device,<wbr/> using the PRIVATE format as either input
   18940 or output will never hurt maximum frame rate (i.<wbr/>e.<wbr/>  <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputStallDuration">getOutputStallDuration(ImageFormat.<wbr/>PRIVATE,<wbr/> size)</a> is always 0),<wbr/></p>
   18941 <p>Attempting to configure an input stream with output streams not
   18942 listed as available in this map is not valid.<wbr/></p>
   18943             </td>
   18944           </tr>
   18945 
   18946           <tr class="entries_header">
   18947             <th class="th_details" colspan="6">HAL Implementation Details</th>
   18948           </tr>
   18949           <tr class="entry_cont">
   18950             <td class="entry_details" colspan="6">
   18951               <p>For the formats,<wbr/> see <code>system/<wbr/>core/<wbr/>include/<wbr/>system/<wbr/>graphics.<wbr/>h</code> for a definition
   18952 of the image format enumerations.<wbr/> The PRIVATE format refers to the
   18953 HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>IMPLEMENTATION_<wbr/>DEFINED format.<wbr/> The HAL could determine
   18954 the actual format by using the gralloc usage flags.<wbr/>
   18955 For ZSL use case in particular,<wbr/> the HAL could choose appropriate format (partially
   18956 processed YUV or RAW based format) by checking the format and GRALLOC_<wbr/>USAGE_<wbr/>HW_<wbr/>CAMERA_<wbr/>ZSL.<wbr/>
   18957 See camera3.<wbr/>h for more details.<wbr/></p>
   18958 <p>This value is encoded as a variable-size array-of-arrays.<wbr/>
   18959 The inner array always contains <code>[format,<wbr/> length,<wbr/> ...<wbr/>]</code> where
   18960 <code>...<wbr/></code> has <code>length</code> elements.<wbr/> An inner array is followed by another
   18961 inner array if the total metadata entry size hasn't yet been exceeded.<wbr/></p>
   18962 <p>A code sample to read/<wbr/>write this encoding (with a device that
   18963 supports reprocessing IMPLEMENTATION_<wbr/>DEFINED to YUV_<wbr/>420_<wbr/>888,<wbr/> and JPEG,<wbr/>
   18964 and reprocessing YUV_<wbr/>420_<wbr/>888 to YUV_<wbr/>420_<wbr/>888 and JPEG):</p>
   18965 <pre><code>//<wbr/> reading
   18966 int32_<wbr/>t* contents = &amp;entry.<wbr/>i32[0];
   18967 for (size_<wbr/>t i = 0; i &lt; entry.<wbr/>count; ) {
   18968     int32_<wbr/>t format = contents[i++];
   18969     int32_<wbr/>t length = contents[i++];
   18970     int32_<wbr/>t output_<wbr/>formats[length];
   18971     memcpy(&amp;output_<wbr/>formats[0],<wbr/> &amp;contents[i],<wbr/>
   18972            length * sizeof(int32_<wbr/>t));
   18973     i += length;
   18974 }
   18975 
   18976 //<wbr/> writing (static example,<wbr/> PRIVATE_<wbr/>REPROCESSING + YUV_<wbr/>REPROCESSING)
   18977 int32_<wbr/>t[] contents = {
   18978   IMPLEMENTATION_<wbr/>DEFINED,<wbr/> 2,<wbr/> YUV_<wbr/>420_<wbr/>888,<wbr/> BLOB,<wbr/>
   18979   YUV_<wbr/>420_<wbr/>888,<wbr/> 2,<wbr/> YUV_<wbr/>420_<wbr/>888,<wbr/> BLOB,<wbr/>
   18980 };
   18981 update_<wbr/>camera_<wbr/>metadata_<wbr/>entry(metadata,<wbr/> index,<wbr/> &amp;contents[0],<wbr/>
   18982       sizeof(contents)/<wbr/>sizeof(contents[0]),<wbr/> &amp;updated_<wbr/>entry);
   18983 </code></pre>
   18984 <p>If the HAL claims to support any of the capabilities listed in the
   18985 above details,<wbr/> then it must also support all the input-output
   18986 combinations listed for that capability.<wbr/> It can optionally support
   18987 additional formats if it so chooses.<wbr/></p>
   18988             </td>
   18989           </tr>
   18990 
   18991           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   18992            <!-- end of entry -->
   18993         
   18994                 
   18995           <tr class="entry" id="static_android.scaler.availableStreamConfigurations">
   18996             <td class="entry_name
   18997              " rowspan="5">
   18998               android.<wbr/>scaler.<wbr/>available<wbr/>Stream<wbr/>Configurations
   18999             </td>
   19000             <td class="entry_type">
   19001                 <span class="entry_type_name entry_type_name_enum">int32</span>
   19002                 <span class="entry_type_container">x</span>
   19003 
   19004                 <span class="entry_type_array">
   19005                   n x 4
   19006                 </span>
   19007               <span class="entry_type_visibility"> [ndk_public as streamConfiguration]</span>
   19008 
   19009 
   19010               <span class="entry_type_hwlevel">[legacy] </span>
   19011 
   19012 
   19013 
   19014                 <ul class="entry_type_enum">
   19015                   <li>
   19016                     <span class="entry_type_enum_name">OUTPUT (v3.2)</span>
   19017                   </li>
   19018                   <li>
   19019                     <span class="entry_type_enum_name">INPUT (v3.2)</span>
   19020                   </li>
   19021                 </ul>
   19022 
   19023             </td> <!-- entry_type -->
   19024 
   19025             <td class="entry_description">
   19026               <p>The available stream configurations that this
   19027 camera device supports
   19028 (i.<wbr/>e.<wbr/> format,<wbr/> width,<wbr/> height,<wbr/> output/<wbr/>input stream).<wbr/></p>
   19029             </td>
   19030 
   19031             <td class="entry_units">
   19032             </td>
   19033 
   19034             <td class="entry_range">
   19035             </td>
   19036 
   19037             <td class="entry_hal_version">
   19038               <p>3.<wbr/>2</p>
   19039             </td>
   19040 
   19041             <td class="entry_tags">
   19042             </td>
   19043 
   19044           </tr>
   19045           <tr class="entries_header">
   19046             <th class="th_details" colspan="6">Details</th>
   19047           </tr>
   19048           <tr class="entry_cont">
   19049             <td class="entry_details" colspan="6">
   19050               <p>The configurations are listed as <code>(format,<wbr/> width,<wbr/> height,<wbr/> input?)</code>
   19051 tuples.<wbr/></p>
   19052 <p>For a given use case,<wbr/> the actual maximum supported resolution
   19053 may be lower than what is listed here,<wbr/> depending on the destination
   19054 Surface for the image data.<wbr/> For example,<wbr/> for recording video,<wbr/>
   19055 the video encoder chosen may have a maximum size limit (e.<wbr/>g.<wbr/> 1080p)
   19056 smaller than what the camera (e.<wbr/>g.<wbr/> maximum resolution is 3264x2448)
   19057 can provide.<wbr/></p>
   19058 <p>Please reference the documentation for the image data destination to
   19059 check if it limits the maximum size for image data.<wbr/></p>
   19060 <p>Not all output formats may be supported in a configuration with
   19061 an input stream of a particular format.<wbr/> For more details,<wbr/> see
   19062 <a href="#static_android.scaler.availableInputOutputFormatsMap">android.<wbr/>scaler.<wbr/>available<wbr/>Input<wbr/>Output<wbr/>Formats<wbr/>Map</a>.<wbr/></p>
   19063 <p>The following table describes the minimum required output stream
   19064 configurations based on the hardware level
   19065 (<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a>):</p>
   19066 <table>
   19067 <thead>
   19068 <tr>
   19069 <th align="center">Format</th>
   19070 <th align="center">Size</th>
   19071 <th align="center">Hardware Level</th>
   19072 <th align="center">Notes</th>
   19073 </tr>
   19074 </thead>
   19075 <tbody>
   19076 <tr>
   19077 <td align="center">JPEG</td>
   19078 <td align="center"><a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a></td>
   19079 <td align="center">Any</td>
   19080 <td align="center"></td>
   19081 </tr>
   19082 <tr>
   19083 <td align="center">JPEG</td>
   19084 <td align="center">1920x1080 (1080p)</td>
   19085 <td align="center">Any</td>
   19086 <td align="center">if 1080p &lt;= activeArraySize</td>
   19087 </tr>
   19088 <tr>
   19089 <td align="center">JPEG</td>
   19090 <td align="center">1280x720 (720)</td>
   19091 <td align="center">Any</td>
   19092 <td align="center">if 720p &lt;= activeArraySize</td>
   19093 </tr>
   19094 <tr>
   19095 <td align="center">JPEG</td>
   19096 <td align="center">640x480 (480p)</td>
   19097 <td align="center">Any</td>
   19098 <td align="center">if 480p &lt;= activeArraySize</td>
   19099 </tr>
   19100 <tr>
   19101 <td align="center">JPEG</td>
   19102 <td align="center">320x240 (240p)</td>
   19103 <td align="center">Any</td>
   19104 <td align="center">if 240p &lt;= activeArraySize</td>
   19105 </tr>
   19106 <tr>
   19107 <td align="center">YUV_<wbr/>420_<wbr/>888</td>
   19108 <td align="center">all output sizes available for JPEG</td>
   19109 <td align="center">FULL</td>
   19110 <td align="center"></td>
   19111 </tr>
   19112 <tr>
   19113 <td align="center">YUV_<wbr/>420_<wbr/>888</td>
   19114 <td align="center">all output sizes available for JPEG,<wbr/> up to the maximum video size</td>
   19115 <td align="center">LIMITED</td>
   19116 <td align="center"></td>
   19117 </tr>
   19118 <tr>
   19119 <td align="center">IMPLEMENTATION_<wbr/>DEFINED</td>
   19120 <td align="center">same as YUV_<wbr/>420_<wbr/>888</td>
   19121 <td align="center">Any</td>
   19122 <td align="center"></td>
   19123 </tr>
   19124 </tbody>
   19125 </table>
   19126 <p>Refer to <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> for additional
   19127 mandatory stream configurations on a per-capability basis.<wbr/></p>
   19128             </td>
   19129           </tr>
   19130 
   19131           <tr class="entries_header">
   19132             <th class="th_details" colspan="6">HAL Implementation Details</th>
   19133           </tr>
   19134           <tr class="entry_cont">
   19135             <td class="entry_details" colspan="6">
   19136               <p>It is recommended (but not mandatory) to also include half/<wbr/>quarter
   19137 of sensor maximum resolution for JPEG formats (regardless of hardware
   19138 level).<wbr/></p>
   19139 <p>(The following is a rewording of the above required table):</p>
   19140 <p>For JPEG format,<wbr/> the sizes may be restricted by below conditions:</p>
   19141 <ul>
   19142 <li>The HAL may choose the aspect ratio of each Jpeg size to be one of well known ones
   19143 (e.<wbr/>g.<wbr/> 4:3,<wbr/> 16:9,<wbr/> 3:2 etc.<wbr/>).<wbr/> If the sensor maximum resolution
   19144 (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/>
   19145 it does not have to be included in the supported JPEG sizes.<wbr/></li>
   19146 <li>Some hardware JPEG encoders may have pixel boundary alignment requirements,<wbr/> such as
   19147 the dimensions being a multiple of 16.<wbr/></li>
   19148 </ul>
   19149 <p>Therefore,<wbr/> the maximum JPEG size may be smaller than sensor maximum resolution.<wbr/>
   19150 However,<wbr/> the largest JPEG size must be as close as possible to the sensor maximum
   19151 resolution given above constraints.<wbr/> It is required that after aspect ratio adjustments,<wbr/>
   19152 additional size reduction due to other issues must be less than 3% in area.<wbr/> For example,<wbr/>
   19153 if the sensor maximum resolution is 3280x2464,<wbr/> if the maximum JPEG size has aspect
   19154 ratio 4:3,<wbr/> the JPEG encoder alignment requirement is 16,<wbr/> the maximum JPEG size will be
   19155 3264x2448.<wbr/></p>
   19156 <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/>
   19157 the HAL must include all YUV_<wbr/>420_<wbr/>888 sizes that have JPEG sizes listed
   19158 here as output streams.<wbr/></p>
   19159 <p>It must also include each below resolution if it is smaller than or
   19160 equal to the sensor maximum resolution (for both YUV_<wbr/>420_<wbr/>888 and JPEG
   19161 formats),<wbr/> as output streams:</p>
   19162 <ul>
   19163 <li>240p (320 x 240)</li>
   19164 <li>480p (640 x 480)</li>
   19165 <li>720p (1280 x 720)</li>
   19166 <li>1080p (1920 x 1080)</li>
   19167 </ul>
   19168 <p>For LIMITED capability devices
   19169 (<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == LIMITED</code>),<wbr/>
   19170 the HAL only has to list up to the maximum video size
   19171 supported by the device.<wbr/></p>
   19172 <p>Regardless of hardware level,<wbr/> every output resolution available for
   19173 YUV_<wbr/>420_<wbr/>888 must also be available for IMPLEMENTATION_<wbr/>DEFINED.<wbr/></p>
   19174 <p>This supercedes the following fields,<wbr/> which are now deprecated:</p>
   19175 <ul>
   19176 <li>availableFormats</li>
   19177 <li>available[Processed,<wbr/>Raw,<wbr/>Jpeg]Sizes</li>
   19178 </ul>
   19179             </td>
   19180           </tr>
   19181 
   19182           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   19183            <!-- end of entry -->
   19184         
   19185                 
   19186           <tr class="entry" id="static_android.scaler.availableMinFrameDurations">
   19187             <td class="entry_name
   19188              " rowspan="3">
   19189               android.<wbr/>scaler.<wbr/>available<wbr/>Min<wbr/>Frame<wbr/>Durations
   19190             </td>
   19191             <td class="entry_type">
   19192                 <span class="entry_type_name">int64</span>
   19193                 <span class="entry_type_container">x</span>
   19194 
   19195                 <span class="entry_type_array">
   19196                   4 x n
   19197                 </span>
   19198               <span class="entry_type_visibility"> [ndk_public as streamConfigurationDuration]</span>
   19199 
   19200 
   19201               <span class="entry_type_hwlevel">[legacy] </span>
   19202 
   19203 
   19204 
   19205 
   19206             </td> <!-- entry_type -->
   19207 
   19208             <td class="entry_description">
   19209               <p>This lists the minimum frame duration for each
   19210 format/<wbr/>size combination.<wbr/></p>
   19211             </td>
   19212 
   19213             <td class="entry_units">
   19214               (format,<wbr/> width,<wbr/> height,<wbr/> ns) x n
   19215             </td>
   19216 
   19217             <td class="entry_range">
   19218             </td>
   19219 
   19220             <td class="entry_hal_version">
   19221               <p>3.<wbr/>2</p>
   19222             </td>
   19223 
   19224             <td class="entry_tags">
   19225               <ul class="entry_tags">
   19226                   <li><a href="#tag_V1">V1</a></li>
   19227               </ul>
   19228             </td>
   19229 
   19230           </tr>
   19231           <tr class="entries_header">
   19232             <th class="th_details" colspan="6">Details</th>
   19233           </tr>
   19234           <tr class="entry_cont">
   19235             <td class="entry_details" colspan="6">
   19236               <p>This should correspond to the frame duration when only that
   19237 stream is active,<wbr/> with all processing (typically in android.<wbr/>*.<wbr/>mode)
   19238 set to either OFF or FAST.<wbr/></p>
   19239 <p>When multiple streams are used in a request,<wbr/> the minimum frame
   19240 duration will be max(individual stream min durations).<wbr/></p>
   19241 <p>The minimum frame duration of a stream (of a particular format,<wbr/> size)
   19242 is the same regardless of whether the stream is input or output.<wbr/></p>
   19243 <p>See <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> and
   19244 <a href="#static_android.scaler.availableStallDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stall<wbr/>Durations</a> for more details about
   19245 calculating the max frame rate.<wbr/></p>
   19246             </td>
   19247           </tr>
   19248 
   19249 
   19250           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   19251            <!-- end of entry -->
   19252         
   19253                 
   19254           <tr class="entry" id="static_android.scaler.availableStallDurations">
   19255             <td class="entry_name
   19256              " rowspan="5">
   19257               android.<wbr/>scaler.<wbr/>available<wbr/>Stall<wbr/>Durations
   19258             </td>
   19259             <td class="entry_type">
   19260                 <span class="entry_type_name">int64</span>
   19261                 <span class="entry_type_container">x</span>
   19262 
   19263                 <span class="entry_type_array">
   19264                   4 x n
   19265                 </span>
   19266               <span class="entry_type_visibility"> [ndk_public as streamConfigurationDuration]</span>
   19267 
   19268 
   19269               <span class="entry_type_hwlevel">[legacy] </span>
   19270 
   19271 
   19272 
   19273 
   19274             </td> <!-- entry_type -->
   19275 
   19276             <td class="entry_description">
   19277               <p>This lists the maximum stall duration for each
   19278 output format/<wbr/>size combination.<wbr/></p>
   19279             </td>
   19280 
   19281             <td class="entry_units">
   19282               (format,<wbr/> width,<wbr/> height,<wbr/> ns) x n
   19283             </td>
   19284 
   19285             <td class="entry_range">
   19286             </td>
   19287 
   19288             <td class="entry_hal_version">
   19289               <p>3.<wbr/>2</p>
   19290             </td>
   19291 
   19292             <td class="entry_tags">
   19293               <ul class="entry_tags">
   19294                   <li><a href="#tag_V1">V1</a></li>
   19295               </ul>
   19296             </td>
   19297 
   19298           </tr>
   19299           <tr class="entries_header">
   19300             <th class="th_details" colspan="6">Details</th>
   19301           </tr>
   19302           <tr class="entry_cont">
   19303             <td class="entry_details" colspan="6">
   19304               <p>A stall duration is how much extra time would get added
   19305 to the normal minimum frame duration for a repeating request
   19306 that has streams with non-zero stall.<wbr/></p>
   19307 <p>For example,<wbr/> consider JPEG captures which have the following
   19308 characteristics:</p>
   19309 <ul>
   19310 <li>JPEG streams act like processed YUV streams in requests for which
   19311 they are not included; in requests in which they are directly
   19312 referenced,<wbr/> they act as JPEG streams.<wbr/> This is because supporting a
   19313 JPEG stream requires the underlying YUV data to always be ready for
   19314 use by a JPEG encoder,<wbr/> but the encoder will only be used (and impact
   19315 frame duration) on requests that actually reference a JPEG stream.<wbr/></li>
   19316 <li>The JPEG processor can run concurrently to the rest of the camera
   19317 pipeline,<wbr/> but cannot process more than 1 capture at a time.<wbr/></li>
   19318 </ul>
   19319 <p>In other words,<wbr/> using a repeating YUV request would result
   19320 in a steady frame rate (let's say it's 30 FPS).<wbr/> If a single
   19321 JPEG request is submitted periodically,<wbr/> the frame rate will stay
   19322 at 30 FPS (as long as we wait for the previous JPEG to return each
   19323 time).<wbr/> If we try to submit a repeating YUV + JPEG request,<wbr/> then
   19324 the frame rate will drop from 30 FPS.<wbr/></p>
   19325 <p>In general,<wbr/> submitting a new request with a non-0 stall time
   19326 stream will <em>not</em> cause a frame rate drop unless there are still
   19327 outstanding buffers for that stream from previous requests.<wbr/></p>
   19328 <p>Submitting a repeating request with streams (call this <code>S</code>)
   19329 is the same as setting the minimum frame duration from
   19330 the normal minimum frame duration corresponding to <code>S</code>,<wbr/> added with
   19331 the maximum stall duration for <code>S</code>.<wbr/></p>
   19332 <p>If interleaving requests with and without a stall duration,<wbr/>
   19333 a request will stall by the maximum of the remaining times
   19334 for each can-stall stream with outstanding buffers.<wbr/></p>
   19335 <p>This means that a stalling request will not have an exposure start
   19336 until the stall has completed.<wbr/></p>
   19337 <p>This should correspond to the stall duration when only that stream is
   19338 active,<wbr/> with all processing (typically in android.<wbr/>*.<wbr/>mode) set to FAST
   19339 or OFF.<wbr/> Setting any of the processing modes to HIGH_<wbr/>QUALITY
   19340 effectively results in an indeterminate stall duration for all
   19341 streams in a request (the regular stall calculation rules are
   19342 ignored).<wbr/></p>
   19343 <p>The following formats may always have a stall duration:</p>
   19344 <ul>
   19345 <li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a></li>
   19346 <li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#RAW_SENSOR">ImageFormat#RAW_<wbr/>SENSOR</a></li>
   19347 </ul>
   19348 <p>The following formats will never have a stall duration:</p>
   19349 <ul>
   19350 <li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></li>
   19351 <li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#RAW10">ImageFormat#RAW10</a></li>
   19352 <li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#RAW12">ImageFormat#RAW12</a></li>
   19353 </ul>
   19354 <p>All other formats may or may not have an allowed stall duration on
   19355 a per-capability basis; refer to <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>
   19356 for more details.<wbr/></p>
   19357 <p>See <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> for more information about
   19358 calculating the max frame rate (absent stalls).<wbr/></p>
   19359             </td>
   19360           </tr>
   19361 
   19362           <tr class="entries_header">
   19363             <th class="th_details" colspan="6">HAL Implementation Details</th>
   19364           </tr>
   19365           <tr class="entry_cont">
   19366             <td class="entry_details" colspan="6">
   19367               <p>If possible,<wbr/> it is recommended that all non-JPEG formats
   19368 (such as RAW16) should not have a stall duration.<wbr/> RAW10,<wbr/> RAW12,<wbr/> RAW_<wbr/>OPAQUE
   19369 and IMPLEMENTATION_<wbr/>DEFINED must not have stall durations.<wbr/></p>
   19370             </td>
   19371           </tr>
   19372 
   19373           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   19374            <!-- end of entry -->
   19375         
   19376                 
   19377           <tr class="entry" id="static_android.scaler.streamConfigurationMap">
   19378             <td class="entry_name
   19379              " rowspan="5">
   19380               android.<wbr/>scaler.<wbr/>stream<wbr/>Configuration<wbr/>Map
   19381             </td>
   19382             <td class="entry_type">
   19383                 <span class="entry_type_name">int32</span>
   19384 
   19385               <span class="entry_type_visibility"> [java_public as streamConfigurationMap]</span>
   19386 
   19387               <span class="entry_type_synthetic">[synthetic] </span>
   19388 
   19389               <span class="entry_type_hwlevel">[legacy] </span>
   19390 
   19391 
   19392 
   19393 
   19394             </td> <!-- entry_type -->
   19395 
   19396             <td class="entry_description">
   19397               <p>The available stream configurations that this
   19398 camera device supports; also includes the minimum frame durations
   19399 and the stall durations for each format/<wbr/>size combination.<wbr/></p>
   19400             </td>
   19401 
   19402             <td class="entry_units">
   19403             </td>
   19404 
   19405             <td class="entry_range">
   19406             </td>
   19407 
   19408             <td class="entry_hal_version">
   19409               <p>3.<wbr/>2</p>
   19410             </td>
   19411 
   19412             <td class="entry_tags">
   19413             </td>
   19414 
   19415           </tr>
   19416           <tr class="entries_header">
   19417             <th class="th_details" colspan="6">Details</th>
   19418           </tr>
   19419           <tr class="entry_cont">
   19420             <td class="entry_details" colspan="6">
   19421               <p>All camera devices will support sensor maximum resolution (defined by
   19422 <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>
   19423 <p>For a given use case,<wbr/> the actual maximum supported resolution
   19424 may be lower than what is listed here,<wbr/> depending on the destination
   19425 Surface for the image data.<wbr/> For example,<wbr/> for recording video,<wbr/>
   19426 the video encoder chosen may have a maximum size limit (e.<wbr/>g.<wbr/> 1080p)
   19427 smaller than what the camera (e.<wbr/>g.<wbr/> maximum resolution is 3264x2448)
   19428 can provide.<wbr/></p>
   19429 <p>Please reference the documentation for the image data destination to
   19430 check if it limits the maximum size for image data.<wbr/></p>
   19431 <p>The following table describes the minimum required output stream
   19432 configurations based on the hardware level
   19433 (<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a>):</p>
   19434 <table>
   19435 <thead>
   19436 <tr>
   19437 <th align="center">Format</th>
   19438 <th align="center">Size</th>
   19439 <th align="center">Hardware Level</th>
   19440 <th align="center">Notes</th>
   19441 </tr>
   19442 </thead>
   19443 <tbody>
   19444 <tr>
   19445 <td align="center"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a></td>
   19446 <td align="center"><a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a> (*1)</td>
   19447 <td align="center">Any</td>
   19448 <td align="center"></td>
   19449 </tr>
   19450 <tr>
   19451 <td align="center"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a></td>
   19452 <td align="center">1920x1080 (1080p)</td>
   19453 <td align="center">Any</td>
   19454 <td align="center">if 1080p &lt;= activeArraySize</td>
   19455 </tr>
   19456 <tr>
   19457 <td align="center"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a></td>
   19458 <td align="center">1280x720 (720p)</td>
   19459 <td align="center">Any</td>
   19460 <td align="center">if 720p &lt;= activeArraySize</td>
   19461 </tr>
   19462 <tr>
   19463 <td align="center"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a></td>
   19464 <td align="center">640x480 (480p)</td>
   19465 <td align="center">Any</td>
   19466 <td align="center">if 480p &lt;= activeArraySize</td>
   19467 </tr>
   19468 <tr>
   19469 <td align="center"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a></td>
   19470 <td align="center">320x240 (240p)</td>
   19471 <td align="center">Any</td>
   19472 <td align="center">if 240p &lt;= activeArraySize</td>
   19473 </tr>
   19474 <tr>
   19475 <td align="center"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
   19476 <td align="center">all output sizes available for JPEG</td>
   19477 <td align="center">FULL</td>
   19478 <td align="center"></td>
   19479 </tr>
   19480 <tr>
   19481 <td align="center"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
   19482 <td align="center">all output sizes available for JPEG,<wbr/> up to the maximum video size</td>
   19483 <td align="center">LIMITED</td>
   19484 <td align="center"></td>
   19485 </tr>
   19486 <tr>
   19487 <td align="center"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#PRIVATE">ImageFormat#PRIVATE</a></td>
   19488 <td align="center">same as YUV_<wbr/>420_<wbr/>888</td>
   19489 <td align="center">Any</td>
   19490 <td align="center"></td>
   19491 </tr>
   19492 </tbody>
   19493 </table>
   19494 <p>Refer to <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> and <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureSession">CameraDevice#createCaptureSession</a> for additional mandatory
   19495 stream configurations on a per-capability basis.<wbr/></p>
   19496 <p>*1: For JPEG format,<wbr/> the sizes may be restricted by below conditions:</p>
   19497 <ul>
   19498 <li>The HAL may choose the aspect ratio of each Jpeg size to be one of well known ones
   19499 (e.<wbr/>g.<wbr/> 4:3,<wbr/> 16:9,<wbr/> 3:2 etc.<wbr/>).<wbr/> If the sensor maximum resolution
   19500 (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/>
   19501 it does not have to be included in the supported JPEG sizes.<wbr/></li>
   19502 <li>Some hardware JPEG encoders may have pixel boundary alignment requirements,<wbr/> such as
   19503 the dimensions being a multiple of 16.<wbr/>
   19504 Therefore,<wbr/> the maximum JPEG size may be smaller than sensor maximum resolution.<wbr/>
   19505 However,<wbr/> the largest JPEG size will be as close as possible to the sensor maximum
   19506 resolution given above constraints.<wbr/> It is required that after aspect ratio adjustments,<wbr/>
   19507 additional size reduction due to other issues must be less than 3% in area.<wbr/> For example,<wbr/>
   19508 if the sensor maximum resolution is 3280x2464,<wbr/> if the maximum JPEG size has aspect
   19509 ratio 4:3,<wbr/> and the JPEG encoder alignment requirement is 16,<wbr/> the maximum JPEG size will be
   19510 3264x2448.<wbr/></li>
   19511 </ul>
   19512             </td>
   19513           </tr>
   19514 
   19515           <tr class="entries_header">
   19516             <th class="th_details" colspan="6">HAL Implementation Details</th>
   19517           </tr>
   19518           <tr class="entry_cont">
   19519             <td class="entry_details" colspan="6">
   19520               <p>Do not set this property directly
   19521 (it is synthetic and will not be available at the HAL layer);
   19522 set the <a href="#static_android.scaler.availableStreamConfigurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stream<wbr/>Configurations</a> instead.<wbr/></p>
   19523 <p>Not all output formats may be supported in a configuration with
   19524 an input stream of a particular format.<wbr/> For more details,<wbr/> see
   19525 <a href="#static_android.scaler.availableInputOutputFormatsMap">android.<wbr/>scaler.<wbr/>available<wbr/>Input<wbr/>Output<wbr/>Formats<wbr/>Map</a>.<wbr/></p>
   19526 <p>It is recommended (but not mandatory) to also include half/<wbr/>quarter
   19527 of sensor maximum resolution for JPEG formats (regardless of hardware
   19528 level).<wbr/></p>
   19529 <p>(The following is a rewording of the above required table):</p>
   19530 <p>The HAL must include sensor maximum resolution (defined by
   19531 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>).<wbr/></p>
   19532 <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/>
   19533 the HAL must include all YUV_<wbr/>420_<wbr/>888 sizes that have JPEG sizes listed
   19534 here as output streams.<wbr/></p>
   19535 <p>It must also include each below resolution if it is smaller than or
   19536 equal to the sensor maximum resolution (for both YUV_<wbr/>420_<wbr/>888 and JPEG
   19537 formats),<wbr/> as output streams:</p>
   19538 <ul>
   19539 <li>240p (320 x 240)</li>
   19540 <li>480p (640 x 480)</li>
   19541 <li>720p (1280 x 720)</li>
   19542 <li>1080p (1920 x 1080)</li>
   19543 </ul>
   19544 <p>For LIMITED capability devices
   19545 (<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == LIMITED</code>),<wbr/>
   19546 the HAL only has to list up to the maximum video size
   19547 supported by the device.<wbr/></p>
   19548 <p>Regardless of hardware level,<wbr/> every output resolution available for
   19549 YUV_<wbr/>420_<wbr/>888 must also be available for IMPLEMENTATION_<wbr/>DEFINED.<wbr/></p>
   19550 <p>This supercedes the following fields,<wbr/> which are now deprecated:</p>
   19551 <ul>
   19552 <li>availableFormats</li>
   19553 <li>available[Processed,<wbr/>Raw,<wbr/>Jpeg]Sizes</li>
   19554 </ul>
   19555             </td>
   19556           </tr>
   19557 
   19558           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   19559            <!-- end of entry -->
   19560         
   19561                 
   19562           <tr class="entry" id="static_android.scaler.croppingType">
   19563             <td class="entry_name
   19564              " rowspan="3">
   19565               android.<wbr/>scaler.<wbr/>cropping<wbr/>Type
   19566             </td>
   19567             <td class="entry_type">
   19568                 <span class="entry_type_name entry_type_name_enum">byte</span>
   19569 
   19570               <span class="entry_type_visibility"> [public]</span>
   19571 
   19572 
   19573               <span class="entry_type_hwlevel">[legacy] </span>
   19574 
   19575 
   19576 
   19577                 <ul class="entry_type_enum">
   19578                   <li>
   19579                     <span class="entry_type_enum_name">CENTER_ONLY (v3.2)</span>
   19580                     <span class="entry_type_enum_notes"><p>The camera device only supports centered crop regions.<wbr/></p></span>
   19581                   </li>
   19582                   <li>
   19583                     <span class="entry_type_enum_name">FREEFORM (v3.2)</span>
   19584                     <span class="entry_type_enum_notes"><p>The camera device supports arbitrarily chosen crop regions.<wbr/></p></span>
   19585                   </li>
   19586                 </ul>
   19587 
   19588             </td> <!-- entry_type -->
   19589 
   19590             <td class="entry_description">
   19591               <p>The crop type that this camera device supports.<wbr/></p>
   19592             </td>
   19593 
   19594             <td class="entry_units">
   19595             </td>
   19596 
   19597             <td class="entry_range">
   19598             </td>
   19599 
   19600             <td class="entry_hal_version">
   19601               <p>3.<wbr/>2</p>
   19602             </td>
   19603 
   19604             <td class="entry_tags">
   19605             </td>
   19606 
   19607           </tr>
   19608           <tr class="entries_header">
   19609             <th class="th_details" colspan="6">Details</th>
   19610           </tr>
   19611           <tr class="entry_cont">
   19612             <td class="entry_details" colspan="6">
   19613               <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
   19614 device that only supports CENTER_<wbr/>ONLY cropping,<wbr/> the camera device will move the
   19615 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>)
   19616 and keep the crop region width and height unchanged.<wbr/> The camera device will return the
   19617 final used crop region in metadata result <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>.<wbr/></p>
   19618 <p>Camera devices that support FREEFORM cropping will support any crop region that
   19619 is inside of the active array.<wbr/> The camera device will apply the same crop region and
   19620 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>
   19621 <p>LEGACY capability devices will only support CENTER_<wbr/>ONLY cropping.<wbr/></p>
   19622             </td>
   19623           </tr>
   19624 
   19625 
   19626           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   19627            <!-- end of entry -->
   19628         
   19629         
   19630 
   19631       <!-- end of kind -->
   19632       </tbody>
   19633       <tr><td colspan="7" class="kind">dynamic</td></tr>
   19634 
   19635       <thead class="entries_header">
   19636         <tr>
   19637           <th class="th_name">Property Name</th>
   19638           <th class="th_type">Type</th>
   19639           <th class="th_description">Description</th>
   19640           <th class="th_units">Units</th>
   19641           <th class="th_range">Range</th>
   19642           <th class="th_hal_version">Initial HIDL HAL version</th>
   19643           <th class="th_tags">Tags</th>
   19644         </tr>
   19645       </thead>
   19646 
   19647       <tbody>
   19648 
   19649         
   19650 
   19651         
   19652 
   19653         
   19654 
   19655         
   19656 
   19657                 
   19658           <tr class="entry" id="dynamic_android.scaler.cropRegion">
   19659             <td class="entry_name
   19660              " rowspan="5">
   19661               android.<wbr/>scaler.<wbr/>crop<wbr/>Region
   19662             </td>
   19663             <td class="entry_type">
   19664                 <span class="entry_type_name">int32</span>
   19665                 <span class="entry_type_container">x</span>
   19666 
   19667                 <span class="entry_type_array">
   19668                   4
   19669                 </span>
   19670               <span class="entry_type_visibility"> [public as rectangle]</span>
   19671 
   19672 
   19673               <span class="entry_type_hwlevel">[legacy] </span>
   19674 
   19675 
   19676 
   19677 
   19678             </td> <!-- entry_type -->
   19679 
   19680             <td class="entry_description">
   19681               <p>The desired region of the sensor to read out for this capture.<wbr/></p>
   19682             </td>
   19683 
   19684             <td class="entry_units">
   19685               Pixel coordinates relative to
   19686           android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
   19687             </td>
   19688 
   19689             <td class="entry_range">
   19690             </td>
   19691 
   19692             <td class="entry_hal_version">
   19693               <p>3.<wbr/>2</p>
   19694             </td>
   19695 
   19696             <td class="entry_tags">
   19697               <ul class="entry_tags">
   19698                   <li><a href="#tag_BC">BC</a></li>
   19699               </ul>
   19700             </td>
   19701 
   19702           </tr>
   19703           <tr class="entries_header">
   19704             <th class="th_details" colspan="6">Details</th>
   19705           </tr>
   19706           <tr class="entry_cont">
   19707             <td class="entry_details" colspan="6">
   19708               <p>This control can be used to implement digital zoom.<wbr/></p>
   19709 <p>The crop region coordinate system is based off
   19710 <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
   19711 top-left corner of the sensor active array.<wbr/></p>
   19712 <p>Output streams use this rectangle to produce their output,<wbr/>
   19713 cropping to a smaller region if necessary to maintain the
   19714 stream's aspect ratio,<wbr/> then scaling the sensor input to
   19715 match the output's configured resolution.<wbr/></p>
   19716 <p>The crop region is applied after the RAW to other color
   19717 space (e.<wbr/>g.<wbr/> YUV) conversion.<wbr/> Since raw streams
   19718 (e.<wbr/>g.<wbr/> RAW16) don't have the conversion stage,<wbr/> they are not
   19719 croppable.<wbr/> The crop region will be ignored by raw streams.<wbr/></p>
   19720 <p>For non-raw streams,<wbr/> any additional per-stream cropping will
   19721 be done to maximize the final pixel area of the stream.<wbr/></p>
   19722 <p>For example,<wbr/> if the crop region is set to a 4:3 aspect
   19723 ratio,<wbr/> then 4:3 streams will use the exact crop
   19724 region.<wbr/> 16:9 streams will further crop vertically
   19725 (letterbox).<wbr/></p>
   19726 <p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
   19727 outputs will crop horizontally (pillarbox),<wbr/> and 16:9
   19728 streams will match exactly.<wbr/> These additional crops will
   19729 be centered within the crop region.<wbr/></p>
   19730 <p>The width and height of the crop region cannot
   19731 be set to be smaller than
   19732 <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
   19733 <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>
   19734 <p>The camera device may adjust the crop region to account
   19735 for rounding and other hardware requirements; the final
   19736 crop region used will be included in the output capture
   19737 result.<wbr/></p>
   19738             </td>
   19739           </tr>
   19740 
   19741           <tr class="entries_header">
   19742             <th class="th_details" colspan="6">HAL Implementation Details</th>
   19743           </tr>
   19744           <tr class="entry_cont">
   19745             <td class="entry_details" colspan="6">
   19746               <p>The output streams must maintain square pixels at all
   19747 times,<wbr/> no matter what the relative aspect ratios of the
   19748 crop region and the stream are.<wbr/>  Negative values for
   19749 corner are allowed for raw output if full pixel array is
   19750 larger than active pixel array.<wbr/> Width and height may be
   19751 rounded to nearest larger supportable width,<wbr/> especially
   19752 for raw output,<wbr/> where only a few fixed scales may be
   19753 possible.<wbr/></p>
   19754 <p>For a set of output streams configured,<wbr/> if the sensor output is cropped to a smaller
   19755 size than active array size,<wbr/> the HAL need follow below cropping rules:</p>
   19756 <ul>
   19757 <li>
   19758 <p>The HAL need handle the cropRegion as if the sensor crop size is the effective active
   19759 array size.<wbr/>More specifically,<wbr/> the HAL must transform the request cropRegion from
   19760 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a> to the sensor cropped pixel area size in this way:</p>
   19761 <ol>
   19762 <li>Translate the requested cropRegion w.<wbr/>r.<wbr/>t.,<wbr/> the left top corner of the sensor
   19763 cropped pixel area by (tx,<wbr/> ty),<wbr/>
   19764 where <code>ty = sensorCrop.<wbr/>top * (sensorCrop.<wbr/>height /<wbr/> activeArraySize.<wbr/>height)</code>
   19765 and <code>tx = sensorCrop.<wbr/>left * (sensorCrop.<wbr/>width /<wbr/> activeArraySize.<wbr/>width)</code>.<wbr/> The
   19766 (sensorCrop.<wbr/>top,<wbr/> sensorCrop.<wbr/>left) is the coordinate based off the
   19767 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/></li>
   19768 <li>Scale the width and height of requested cropRegion with scaling factor of
   19769 sensor<wbr/>Crop.<wbr/>width/<wbr/>active<wbr/>Array<wbr/>Size.<wbr/>width and sensor<wbr/>Crop.<wbr/>height/<wbr/>active<wbr/>Array<wbr/>Size.<wbr/>height
   19770 respectively.<wbr/>
   19771 Once this new cropRegion is calculated,<wbr/> the HAL must use this region to crop the image
   19772 with regard to the sensor crop size (effective active array size).<wbr/> The HAL still need
   19773 follow the general cropping rule for this new cropRegion and effective active
   19774 array size.<wbr/></li>
   19775 </ol>
   19776 </li>
   19777 <li>
   19778 <p>The HAL must report the cropRegion with regard to <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>
   19779 The HAL need convert the new cropRegion generated above w.<wbr/>r.<wbr/>t.,<wbr/> full active array size.<wbr/>
   19780 The reported cropRegion may be slightly different with the requested cropRegion since
   19781 the HAL may adjust the crop region to account for rounding,<wbr/> conversion error,<wbr/> or other
   19782 hardware limitations.<wbr/></p>
   19783 </li>
   19784 </ul>
   19785 <p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
   19786             </td>
   19787           </tr>
   19788 
   19789           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   19790            <!-- end of entry -->
   19791         
   19792         
   19793 
   19794       <!-- end of kind -->
   19795       </tbody>
   19796 
   19797   <!-- end of section -->
   19798   <tr><td colspan="7" id="section_sensor" class="section">sensor</td></tr>
   19799 
   19800 
   19801       <tr><td colspan="7" class="kind">controls</td></tr>
   19802 
   19803       <thead class="entries_header">
   19804         <tr>
   19805           <th class="th_name">Property Name</th>
   19806           <th class="th_type">Type</th>
   19807           <th class="th_description">Description</th>
   19808           <th class="th_units">Units</th>
   19809           <th class="th_range">Range</th>
   19810           <th class="th_hal_version">Initial HIDL HAL version</th>
   19811           <th class="th_tags">Tags</th>
   19812         </tr>
   19813       </thead>
   19814 
   19815       <tbody>
   19816 
   19817         
   19818 
   19819         
   19820 
   19821         
   19822 
   19823         
   19824 
   19825                 
   19826           <tr class="entry" id="controls_android.sensor.exposureTime">
   19827             <td class="entry_name
   19828              " rowspan="3">
   19829               android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
   19830             </td>
   19831             <td class="entry_type">
   19832                 <span class="entry_type_name">int64</span>
   19833 
   19834               <span class="entry_type_visibility"> [public]</span>
   19835 
   19836 
   19837               <span class="entry_type_hwlevel">[full] </span>
   19838 
   19839 
   19840 
   19841 
   19842             </td> <!-- entry_type -->
   19843 
   19844             <td class="entry_description">
   19845               <p>Duration each pixel is exposed to
   19846 light.<wbr/></p>
   19847             </td>
   19848 
   19849             <td class="entry_units">
   19850               Nanoseconds
   19851             </td>
   19852 
   19853             <td class="entry_range">
   19854               <p><a href="#static_android.sensor.info.exposureTimeRange">android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range</a></p>
   19855             </td>
   19856 
   19857             <td class="entry_hal_version">
   19858               <p>3.<wbr/>2</p>
   19859             </td>
   19860 
   19861             <td class="entry_tags">
   19862               <ul class="entry_tags">
   19863                   <li><a href="#tag_V1">V1</a></li>
   19864               </ul>
   19865             </td>
   19866 
   19867           </tr>
   19868           <tr class="entries_header">
   19869             <th class="th_details" colspan="6">Details</th>
   19870           </tr>
   19871           <tr class="entry_cont">
   19872             <td class="entry_details" colspan="6">
   19873               <p>If the sensor can't expose this exact duration,<wbr/> it will shorten the
   19874 duration exposed to the nearest possible value (rather than expose longer).<wbr/>
   19875 The final exposure time used will be available in the output capture result.<wbr/></p>
   19876 <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
   19877 OFF; otherwise the auto-exposure algorithm will override this value.<wbr/></p>
   19878             </td>
   19879           </tr>
   19880 
   19881 
   19882           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   19883            <!-- end of entry -->
   19884         
   19885                 
   19886           <tr class="entry" id="controls_android.sensor.frameDuration">
   19887             <td class="entry_name
   19888              " rowspan="5">
   19889               android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
   19890             </td>
   19891             <td class="entry_type">
   19892                 <span class="entry_type_name">int64</span>
   19893 
   19894               <span class="entry_type_visibility"> [public]</span>
   19895 
   19896 
   19897               <span class="entry_type_hwlevel">[full] </span>
   19898 
   19899 
   19900 
   19901 
   19902             </td> <!-- entry_type -->
   19903 
   19904             <td class="entry_description">
   19905               <p>Duration from start of frame exposure to
   19906 start of next frame exposure.<wbr/></p>
   19907             </td>
   19908 
   19909             <td class="entry_units">
   19910               Nanoseconds
   19911             </td>
   19912 
   19913             <td class="entry_range">
   19914               <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/> <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html">StreamConfigurationMap</a>.<wbr/>
   19915 The duration is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
   19916             </td>
   19917 
   19918             <td class="entry_hal_version">
   19919               <p>3.<wbr/>2</p>
   19920             </td>
   19921 
   19922             <td class="entry_tags">
   19923               <ul class="entry_tags">
   19924                   <li><a href="#tag_V1">V1</a></li>
   19925               </ul>
   19926             </td>
   19927 
   19928           </tr>
   19929           <tr class="entries_header">
   19930             <th class="th_details" colspan="6">Details</th>
   19931           </tr>
   19932           <tr class="entry_cont">
   19933             <td class="entry_details" colspan="6">
   19934               <p>The maximum frame rate that can be supported by a camera subsystem is
   19935 a function of many factors:</p>
   19936 <ul>
   19937 <li>Requested resolutions of output image streams</li>
   19938 <li>Availability of binning /<wbr/> skipping modes on the imager</li>
   19939 <li>The bandwidth of the imager interface</li>
   19940 <li>The bandwidth of the various ISP processing blocks</li>
   19941 </ul>
   19942 <p>Since these factors can vary greatly between different ISPs and
   19943 sensors,<wbr/> the camera abstraction tries to represent the bandwidth
   19944 restrictions with as simple a model as possible.<wbr/></p>
   19945 <p>The model presented has the following characteristics:</p>
   19946 <ul>
   19947 <li>The image sensor is always configured to output the smallest
   19948 resolution possible given the application's requested output stream
   19949 sizes.<wbr/>  The smallest resolution is defined as being at least as large
   19950 as the largest requested output stream size; the camera pipeline must
   19951 never digitally upsample sensor data when the crop region covers the
   19952 whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
   19953 resolutions are configured,<wbr/> the sensor can provide a higher frame
   19954 rate.<wbr/></li>
   19955 <li>Since any request may use any or all the currently configured
   19956 output streams,<wbr/> the sensor and ISP must be configured to support
   19957 scaling a single capture to all the streams at the same time.<wbr/>  This
   19958 means the camera pipeline must be ready to produce the largest
   19959 requested output size without any delay.<wbr/>  Therefore,<wbr/> the overall
   19960 frame rate of a given configured stream set is governed only by the
   19961 largest requested stream resolution.<wbr/></li>
   19962 <li>Using more than one output stream in a request does not affect the
   19963 frame duration.<wbr/></li>
   19964 <li>Certain format-streams may need to do additional background processing
   19965 before data is consumed/<wbr/>produced by that stream.<wbr/> These processors
   19966 can run concurrently to the rest of the camera pipeline,<wbr/> but
   19967 cannot process more than 1 capture at a time.<wbr/></li>
   19968 </ul>
   19969 <p>The necessary information for the application,<wbr/> given the model above,<wbr/> is provided via
   19970 <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputMinFrameDuration">StreamConfigurationMap#getOutputMinFrameDuration</a>.<wbr/>
   19971 These are used to determine the maximum frame rate /<wbr/> minimum frame duration that is
   19972 possible for a given stream configuration.<wbr/></p>
   19973 <p>Specifically,<wbr/> the application can use the following rules to
   19974 determine the minimum frame duration it can request from the camera
   19975 device:</p>
   19976 <ol>
   19977 <li>Let the set of currently configured input/<wbr/>output streams be called <code>S</code>.<wbr/></li>
   19978 <li>Find the minimum frame durations for each stream in <code>S</code>,<wbr/> by looking it up in <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputMinFrameDuration">StreamConfigurationMap#getOutputMinFrameDuration</a>
   19979 (with its respective size/<wbr/>format).<wbr/> Let this set of frame durations be called <code>F</code>.<wbr/></li>
   19980 <li>For any given request <code>R</code>,<wbr/> the minimum frame duration allowed for <code>R</code> is the maximum
   19981 out of all values in <code>F</code>.<wbr/> Let the streams used in <code>R</code> be called <code>S_<wbr/>r</code>.<wbr/></li>
   19982 </ol>
   19983 <p>If none of the streams in <code>S_<wbr/>r</code> have a stall time (listed in <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputStallDuration">StreamConfigurationMap#getOutputStallDuration</a>
   19984 using its respective size/<wbr/>format),<wbr/> then the frame duration in <code>F</code> determines the steady
   19985 state frame rate that the application will get if it uses <code>R</code> as a repeating request.<wbr/> Let
   19986 this special kind of request be called <code>Rsimple</code>.<wbr/></p>
   19987 <p>A repeating request <code>Rsimple</code> can be <em>occasionally</em> interleaved by a single capture of a
   19988 new request <code>Rstall</code> (which has at least one in-use stream with a non-0 stall time) and if
   19989 <code>Rstall</code> has the same minimum frame duration this will not cause a frame rate loss if all
   19990 buffers from the previous <code>Rstall</code> have already been delivered.<wbr/></p>
   19991 <p>For more details about stalling,<wbr/> see <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputStallDuration">StreamConfigurationMap#getOutputStallDuration</a>.<wbr/></p>
   19992 <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
   19993 OFF; otherwise the auto-exposure algorithm will override this value.<wbr/></p>
   19994             </td>
   19995           </tr>
   19996 
   19997           <tr class="entries_header">
   19998             <th class="th_details" colspan="6">HAL Implementation Details</th>
   19999           </tr>
   20000           <tr class="entry_cont">
   20001             <td class="entry_details" colspan="6">
   20002               <p>For more details about stalling,<wbr/> see
   20003 <a href="#static_android.scaler.availableStallDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stall<wbr/>Durations</a>.<wbr/></p>
   20004             </td>
   20005           </tr>
   20006 
   20007           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   20008            <!-- end of entry -->
   20009         
   20010                 
   20011           <tr class="entry" id="controls_android.sensor.sensitivity">
   20012             <td class="entry_name
   20013              " rowspan="5">
   20014               android.<wbr/>sensor.<wbr/>sensitivity
   20015             </td>
   20016             <td class="entry_type">
   20017                 <span class="entry_type_name">int32</span>
   20018 
   20019               <span class="entry_type_visibility"> [public]</span>
   20020 
   20021 
   20022               <span class="entry_type_hwlevel">[full] </span>
   20023 
   20024 
   20025 
   20026 
   20027             </td> <!-- entry_type -->
   20028 
   20029             <td class="entry_description">
   20030               <p>The amount of gain applied to sensor data
   20031 before processing.<wbr/></p>
   20032             </td>
   20033 
   20034             <td class="entry_units">
   20035               ISO arithmetic units
   20036             </td>
   20037 
   20038             <td class="entry_range">
   20039               <p><a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a></p>
   20040             </td>
   20041 
   20042             <td class="entry_hal_version">
   20043               <p>3.<wbr/>2</p>
   20044             </td>
   20045 
   20046             <td class="entry_tags">
   20047               <ul class="entry_tags">
   20048                   <li><a href="#tag_V1">V1</a></li>
   20049               </ul>
   20050             </td>
   20051 
   20052           </tr>
   20053           <tr class="entries_header">
   20054             <th class="th_details" colspan="6">Details</th>
   20055           </tr>
   20056           <tr class="entry_cont">
   20057             <td class="entry_details" colspan="6">
   20058               <p>The sensitivity is the standard ISO sensitivity value,<wbr/>
   20059 as defined in ISO 12232:2006.<wbr/></p>
   20060 <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
   20061 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
   20062 is guaranteed to use only analog amplification for applying the gain.<wbr/></p>
   20063 <p>If the camera device cannot apply the exact sensitivity
   20064 requested,<wbr/> it will reduce the gain to the nearest supported
   20065 value.<wbr/> The final sensitivity used will be available in the
   20066 output capture result.<wbr/></p>
   20067 <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
   20068 OFF; otherwise the auto-exposure algorithm will override this value.<wbr/></p>
   20069             </td>
   20070           </tr>
   20071 
   20072           <tr class="entries_header">
   20073             <th class="th_details" colspan="6">HAL Implementation Details</th>
   20074           </tr>
   20075           <tr class="entry_cont">
   20076             <td class="entry_details" colspan="6">
   20077               <p>ISO 12232:2006 REI method is acceptable.<wbr/></p>
   20078             </td>
   20079           </tr>
   20080 
   20081           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   20082            <!-- end of entry -->
   20083         
   20084                 
   20085           <tr class="entry" id="controls_android.sensor.testPatternData">
   20086             <td class="entry_name
   20087              " rowspan="5">
   20088               android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data
   20089             </td>
   20090             <td class="entry_type">
   20091                 <span class="entry_type_name">int32</span>
   20092                 <span class="entry_type_container">x</span>
   20093 
   20094                 <span class="entry_type_array">
   20095                   4
   20096                 </span>
   20097               <span class="entry_type_visibility"> [public]</span>
   20098 
   20099 
   20100 
   20101 
   20102 
   20103 
   20104             </td> <!-- entry_type -->
   20105 
   20106             <td class="entry_description">
   20107               <p>A pixel <code>[R,<wbr/> G_<wbr/>even,<wbr/> G_<wbr/>odd,<wbr/> B]</code> that supplies the test pattern
   20108 when <a href="#controls_android.sensor.testPatternMode">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode</a> is SOLID_<wbr/>COLOR.<wbr/></p>
   20109             </td>
   20110 
   20111             <td class="entry_units">
   20112             </td>
   20113 
   20114             <td class="entry_range">
   20115             </td>
   20116 
   20117             <td class="entry_hal_version">
   20118               <p>3.<wbr/>2</p>
   20119             </td>
   20120 
   20121             <td class="entry_tags">
   20122             </td>
   20123 
   20124           </tr>
   20125           <tr class="entries_header">
   20126             <th class="th_details" colspan="6">Details</th>
   20127           </tr>
   20128           <tr class="entry_cont">
   20129             <td class="entry_details" colspan="6">
   20130               <p>Each color channel is treated as an unsigned 32-bit integer.<wbr/>
   20131 The camera device then uses the most significant X bits
   20132 that correspond to how many bits are in its Bayer raw sensor
   20133 output.<wbr/></p>
   20134 <p>For example,<wbr/> a sensor with RAW10 Bayer output would use the
   20135 10 most significant bits from each color channel.<wbr/></p>
   20136             </td>
   20137           </tr>
   20138 
   20139           <tr class="entries_header">
   20140             <th class="th_details" colspan="6">HAL Implementation Details</th>
   20141           </tr>
   20142           <tr class="entry_cont">
   20143             <td class="entry_details" colspan="6">
   20144               
   20145             </td>
   20146           </tr>
   20147 
   20148           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   20149            <!-- end of entry -->
   20150         
   20151                 
   20152           <tr class="entry" id="controls_android.sensor.testPatternMode">
   20153             <td class="entry_name
   20154              " rowspan="5">
   20155               android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
   20156             </td>
   20157             <td class="entry_type">
   20158                 <span class="entry_type_name entry_type_name_enum">int32</span>
   20159 
   20160               <span class="entry_type_visibility"> [public]</span>
   20161 
   20162 
   20163 
   20164 
   20165 
   20166                 <ul class="entry_type_enum">
   20167                   <li>
   20168                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   20169                     <span class="entry_type_enum_notes"><p>No test pattern mode is used,<wbr/> and the camera
   20170 device returns captures from the image sensor.<wbr/></p>
   20171 <p>This is the default if the key is not set.<wbr/></p></span>
   20172                   </li>
   20173                   <li>
   20174                     <span class="entry_type_enum_name">SOLID_COLOR (v3.2)</span>
   20175                     <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
   20176 respective color channel provided in
   20177 <a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
   20178 <p>For example:</p>
   20179 <pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
   20180 </code></pre>
   20181 <p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
   20182 <pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
   20183 </code></pre>
   20184 <p>All red pixels are 100% red.<wbr/> Only the odd green pixels
   20185 are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
   20186                   </li>
   20187                   <li>
   20188                     <span class="entry_type_enum_name">COLOR_BARS (v3.2)</span>
   20189                     <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
   20190 <p>The vertical bars (left-to-right) are as follows:</p>
   20191 <ul>
   20192 <li>100% white</li>
   20193 <li>yellow</li>
   20194 <li>cyan</li>
   20195 <li>green</li>
   20196 <li>magenta</li>
   20197 <li>red</li>
   20198 <li>blue</li>
   20199 <li>black</li>
   20200 </ul>
   20201 <p>In general the image would look like the following:</p>
   20202 <pre><code>W Y C G M R B K
   20203 W Y C G M R B K
   20204 W Y C G M R B K
   20205 W Y C G M R B K
   20206 W Y C G M R B K
   20207 .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
   20208 .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
   20209 .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
   20210 
   20211 (B = Blue,<wbr/> K = Black)
   20212 </code></pre>
   20213 <p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
   20214 When this is not possible,<wbr/> the bar size should be rounded
   20215 down to the nearest integer and the pattern can repeat
   20216 on the right side.<wbr/></p>
   20217 <p>Each bar's height must always take up the full sensor
   20218 pixel array height.<wbr/></p>
   20219 <p>Each pixel in this test pattern must be set to either
   20220 0% intensity or 100% intensity.<wbr/></p></span>
   20221                   </li>
   20222                   <li>
   20223                     <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY (v3.2)</span>
   20224                     <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
   20225 each bar should start at its specified color at the top,<wbr/>
   20226 and fade to gray at the bottom.<wbr/></p>
   20227 <p>Furthermore each bar is further subdivided into a left and
   20228 right half.<wbr/> The left half should have a smooth gradient,<wbr/>
   20229 and the right half should have a quantized gradient.<wbr/></p>
   20230 <p>In particular,<wbr/> the right half's should consist of blocks of the
   20231 same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
   20232 <p>The least significant bits in the quantized gradient should
   20233 be copied from the most significant bits of the smooth gradient.<wbr/></p>
   20234 <p>The height of each bar should always be a multiple of 128.<wbr/>
   20235 When this is not the case,<wbr/> the pattern should repeat at the bottom
   20236 of the image.<wbr/></p></span>
   20237                   </li>
   20238                   <li>
   20239                     <span class="entry_type_enum_name">PN9 (v3.2)</span>
   20240                     <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
   20241 generated from a PN9 512-bit sequence (typically implemented
   20242 in hardware with a linear feedback shift register).<wbr/></p>
   20243 <p>The generator should be reset at the beginning of each frame,<wbr/>
   20244 and thus each subsequent raw frame with this test pattern should
   20245 be exactly the same as the last.<wbr/></p></span>
   20246                   </li>
   20247                   <li>
   20248                     <span class="entry_type_enum_name">CUSTOM1 (v3.2)</span>
   20249                     <span class="entry_type_enum_value">256</span>
   20250                     <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
   20251 available only on this camera device are at least this numeric
   20252 value.<wbr/></p>
   20253 <p>All of the custom test patterns will be static
   20254 (that is the raw image must not vary from frame to frame).<wbr/></p></span>
   20255                   </li>
   20256                 </ul>
   20257 
   20258             </td> <!-- entry_type -->
   20259 
   20260             <td class="entry_description">
   20261               <p>When enabled,<wbr/> the sensor sends a test pattern instead of
   20262 doing a real exposure from the camera.<wbr/></p>
   20263             </td>
   20264 
   20265             <td class="entry_units">
   20266             </td>
   20267 
   20268             <td class="entry_range">
   20269               <p><a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
   20270             </td>
   20271 
   20272             <td class="entry_hal_version">
   20273               <p>3.<wbr/>2</p>
   20274             </td>
   20275 
   20276             <td class="entry_tags">
   20277             </td>
   20278 
   20279           </tr>
   20280           <tr class="entries_header">
   20281             <th class="th_details" colspan="6">Details</th>
   20282           </tr>
   20283           <tr class="entry_cont">
   20284             <td class="entry_details" colspan="6">
   20285               <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
   20286 by android.<wbr/>sensor.<wbr/>* will be ignored.<wbr/> All other controls should
   20287 work as normal.<wbr/></p>
   20288 <p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
   20289 occur (and that the test pattern remain unmodified,<wbr/> since the flash
   20290 would not actually affect it).<wbr/></p>
   20291 <p>Defaults to OFF.<wbr/></p>
   20292             </td>
   20293           </tr>
   20294 
   20295           <tr class="entries_header">
   20296             <th class="th_details" colspan="6">HAL Implementation Details</th>
   20297           </tr>
   20298           <tr class="entry_cont">
   20299             <td class="entry_details" colspan="6">
   20300               <p>All test patterns are specified in the Bayer domain.<wbr/></p>
   20301 <p>The HAL may choose to substitute test patterns from the sensor
   20302 with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
   20303 indistinguishable to the ISP whether the data came from the
   20304 sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
   20305             </td>
   20306           </tr>
   20307 
   20308           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   20309            <!-- end of entry -->
   20310         
   20311         
   20312 
   20313       <!-- end of kind -->
   20314       </tbody>
   20315       <tr><td colspan="7" class="kind">static</td></tr>
   20316 
   20317       <thead class="entries_header">
   20318         <tr>
   20319           <th class="th_name">Property Name</th>
   20320           <th class="th_type">Type</th>
   20321           <th class="th_description">Description</th>
   20322           <th class="th_units">Units</th>
   20323           <th class="th_range">Range</th>
   20324           <th class="th_hal_version">Initial HIDL HAL version</th>
   20325           <th class="th_tags">Tags</th>
   20326         </tr>
   20327       </thead>
   20328 
   20329       <tbody>
   20330 
   20331         
   20332 
   20333         
   20334 
   20335         
   20336 
   20337         
   20338                 
   20339             
   20340 
   20341                 
   20342           <tr class="entry" id="static_android.sensor.info.activeArraySize">
   20343             <td class="entry_name
   20344              " rowspan="5">
   20345               android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
   20346             </td>
   20347             <td class="entry_type">
   20348                 <span class="entry_type_name">int32</span>
   20349                 <span class="entry_type_container">x</span>
   20350 
   20351                 <span class="entry_type_array">
   20352                   4
   20353                 </span>
   20354               <span class="entry_type_visibility"> [public as rectangle]</span>
   20355 
   20356 
   20357               <span class="entry_type_hwlevel">[legacy] </span>
   20358 
   20359 
   20360                 <div class="entry_type_notes">Four ints defining the active pixel rectangle</div>
   20361 
   20362 
   20363             </td> <!-- entry_type -->
   20364 
   20365             <td class="entry_description">
   20366               <p>The area of the image sensor which corresponds to active pixels after any geometric
   20367 distortion correction has been applied.<wbr/></p>
   20368             </td>
   20369 
   20370             <td class="entry_units">
   20371               Pixel coordinates on the image sensor
   20372             </td>
   20373 
   20374             <td class="entry_range">
   20375             </td>
   20376 
   20377             <td class="entry_hal_version">
   20378               <p>3.<wbr/>2</p>
   20379             </td>
   20380 
   20381             <td class="entry_tags">
   20382               <ul class="entry_tags">
   20383                   <li><a href="#tag_RAW">RAW</a></li>
   20384               </ul>
   20385             </td>
   20386 
   20387           </tr>
   20388           <tr class="entries_header">
   20389             <th class="th_details" colspan="6">Details</th>
   20390           </tr>
   20391           <tr class="entry_cont">
   20392             <td class="entry_details" colspan="6">
   20393               <p>This is the rectangle representing the size of the active region of the sensor (i.<wbr/>e.<wbr/>
   20394 the region that actually receives light from the scene) after any geometric correction
   20395 has been applied,<wbr/> and should be treated as the maximum size in pixels of any of the
   20396 image output formats aside from the raw formats.<wbr/></p>
   20397 <p>This rectangle is defined relative to the full pixel array; (0,<wbr/>0) is the top-left of
   20398 the full pixel array,<wbr/> and the size of the full pixel array is given by
   20399 <a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a>.<wbr/></p>
   20400 <p>The coordinate system for most other keys that list pixel coordinates,<wbr/> including
   20401 <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> is defined relative to the active array rectangle given in
   20402 this field,<wbr/> with <code>(0,<wbr/> 0)</code> being the top-left of this rectangle.<wbr/></p>
   20403 <p>The active array may be smaller than the full pixel array,<wbr/> since the full array may
   20404 include black calibration pixels or other inactive regions,<wbr/> and geometric correction
   20405 resulting in scaling or cropping may have been applied.<wbr/></p>
   20406             </td>
   20407           </tr>
   20408 
   20409           <tr class="entries_header">
   20410             <th class="th_details" colspan="6">HAL Implementation Details</th>
   20411           </tr>
   20412           <tr class="entry_cont">
   20413             <td class="entry_details" colspan="6">
   20414               <p>This array contains <code>(xmin,<wbr/> ymin,<wbr/> width,<wbr/> height)</code>.<wbr/> The <code>(xmin,<wbr/> ymin)</code> must be
   20415 &gt;= <code>(0,<wbr/>0)</code>.<wbr/>
   20416 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>
   20417             </td>
   20418           </tr>
   20419 
   20420           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   20421            <!-- end of entry -->
   20422         
   20423                 
   20424           <tr class="entry" id="static_android.sensor.info.sensitivityRange">
   20425             <td class="entry_name
   20426              " rowspan="3">
   20427               android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range
   20428             </td>
   20429             <td class="entry_type">
   20430                 <span class="entry_type_name">int32</span>
   20431                 <span class="entry_type_container">x</span>
   20432 
   20433                 <span class="entry_type_array">
   20434                   2
   20435                 </span>
   20436               <span class="entry_type_visibility"> [public as rangeInt]</span>
   20437 
   20438 
   20439               <span class="entry_type_hwlevel">[full] </span>
   20440 
   20441 
   20442                 <div class="entry_type_notes">Range of supported sensitivities</div>
   20443 
   20444 
   20445             </td> <!-- entry_type -->
   20446 
   20447             <td class="entry_description">
   20448               <p>Range of sensitivities for <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> supported by this
   20449 camera device.<wbr/></p>
   20450             </td>
   20451 
   20452             <td class="entry_units">
   20453             </td>
   20454 
   20455             <td class="entry_range">
   20456               <p>Min &lt;= 100,<wbr/> Max &gt;= 800</p>
   20457             </td>
   20458 
   20459             <td class="entry_hal_version">
   20460               <p>3.<wbr/>2</p>
   20461             </td>
   20462 
   20463             <td class="entry_tags">
   20464               <ul class="entry_tags">
   20465                   <li><a href="#tag_BC">BC</a></li>
   20466                   <li><a href="#tag_V1">V1</a></li>
   20467               </ul>
   20468             </td>
   20469 
   20470           </tr>
   20471           <tr class="entries_header">
   20472             <th class="th_details" colspan="6">Details</th>
   20473           </tr>
   20474           <tr class="entry_cont">
   20475             <td class="entry_details" colspan="6">
   20476               <p>The values are the standard ISO sensitivity values,<wbr/>
   20477 as defined in ISO 12232:2006.<wbr/></p>
   20478             </td>
   20479           </tr>
   20480 
   20481 
   20482           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   20483            <!-- end of entry -->
   20484         
   20485                 
   20486           <tr class="entry" id="static_android.sensor.info.colorFilterArrangement">
   20487             <td class="entry_name
   20488              " rowspan="1">
   20489               android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement
   20490             </td>
   20491             <td class="entry_type">
   20492                 <span class="entry_type_name entry_type_name_enum">byte</span>
   20493 
   20494               <span class="entry_type_visibility"> [public]</span>
   20495 
   20496 
   20497               <span class="entry_type_hwlevel">[full] </span>
   20498 
   20499 
   20500 
   20501                 <ul class="entry_type_enum">
   20502                   <li>
   20503                     <span class="entry_type_enum_name">RGGB (v3.2)</span>
   20504                   </li>
   20505                   <li>
   20506                     <span class="entry_type_enum_name">GRBG (v3.2)</span>
   20507                   </li>
   20508                   <li>
   20509                     <span class="entry_type_enum_name">GBRG (v3.2)</span>
   20510                   </li>
   20511                   <li>
   20512                     <span class="entry_type_enum_name">BGGR (v3.2)</span>
   20513                   </li>
   20514                   <li>
   20515                     <span class="entry_type_enum_name">RGB (v3.2)</span>
   20516                     <span class="entry_type_enum_notes"><p>Sensor is not Bayer; output has 3 16-bit
   20517 values for each pixel,<wbr/> instead of just 1 16-bit value
   20518 per pixel.<wbr/></p></span>
   20519                   </li>
   20520                 </ul>
   20521 
   20522             </td> <!-- entry_type -->
   20523 
   20524             <td class="entry_description">
   20525               <p>The arrangement of color filters on sensor;
   20526 represents the colors in the top-left 2x2 section of
   20527 the sensor,<wbr/> in reading order.<wbr/></p>
   20528             </td>
   20529 
   20530             <td class="entry_units">
   20531             </td>
   20532 
   20533             <td class="entry_range">
   20534             </td>
   20535 
   20536             <td class="entry_hal_version">
   20537               <p>3.<wbr/>2</p>
   20538             </td>
   20539 
   20540             <td class="entry_tags">
   20541               <ul class="entry_tags">
   20542                   <li><a href="#tag_RAW">RAW</a></li>
   20543               </ul>
   20544             </td>
   20545 
   20546           </tr>
   20547 
   20548 
   20549           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   20550            <!-- end of entry -->
   20551         
   20552                 
   20553           <tr class="entry" id="static_android.sensor.info.exposureTimeRange">
   20554             <td class="entry_name
   20555              " rowspan="3">
   20556               android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range
   20557             </td>
   20558             <td class="entry_type">
   20559                 <span class="entry_type_name">int64</span>
   20560                 <span class="entry_type_container">x</span>
   20561 
   20562                 <span class="entry_type_array">
   20563                   2
   20564                 </span>
   20565               <span class="entry_type_visibility"> [public as rangeLong]</span>
   20566 
   20567 
   20568               <span class="entry_type_hwlevel">[full] </span>
   20569 
   20570 
   20571                 <div class="entry_type_notes">nanoseconds</div>
   20572 
   20573 
   20574             </td> <!-- entry_type -->
   20575 
   20576             <td class="entry_description">
   20577               <p>The range of image exposure times for <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a> supported
   20578 by this camera device.<wbr/></p>
   20579             </td>
   20580 
   20581             <td class="entry_units">
   20582               Nanoseconds
   20583             </td>
   20584 
   20585             <td class="entry_range">
   20586               <p>The minimum exposure time will be less than 100 us.<wbr/> For FULL
   20587 capability devices (<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL),<wbr/>
   20588 the maximum exposure time will be greater than 100ms.<wbr/></p>
   20589             </td>
   20590 
   20591             <td class="entry_hal_version">
   20592               <p>3.<wbr/>2</p>
   20593             </td>
   20594 
   20595             <td class="entry_tags">
   20596               <ul class="entry_tags">
   20597                   <li><a href="#tag_V1">V1</a></li>
   20598               </ul>
   20599             </td>
   20600 
   20601           </tr>
   20602 
   20603           <tr class="entries_header">
   20604             <th class="th_details" colspan="6">HAL Implementation Details</th>
   20605           </tr>
   20606           <tr class="entry_cont">
   20607             <td class="entry_details" colspan="6">
   20608               <p>For FULL capability devices (<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL),<wbr/>
   20609 The maximum of the range SHOULD be at least 1 second (1e9),<wbr/> MUST be at least
   20610 100ms.<wbr/></p>
   20611             </td>
   20612           </tr>
   20613 
   20614           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   20615            <!-- end of entry -->
   20616         
   20617                 
   20618           <tr class="entry" id="static_android.sensor.info.maxFrameDuration">
   20619             <td class="entry_name
   20620              " rowspan="5">
   20621               android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration
   20622             </td>
   20623             <td class="entry_type">
   20624                 <span class="entry_type_name">int64</span>
   20625 
   20626               <span class="entry_type_visibility"> [public]</span>
   20627 
   20628 
   20629               <span class="entry_type_hwlevel">[full] </span>
   20630 
   20631 
   20632 
   20633 
   20634             </td> <!-- entry_type -->
   20635 
   20636             <td class="entry_description">
   20637               <p>The maximum possible frame duration (minimum frame rate) for
   20638 <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> that is supported this camera device.<wbr/></p>
   20639             </td>
   20640 
   20641             <td class="entry_units">
   20642               Nanoseconds
   20643             </td>
   20644 
   20645             <td class="entry_range">
   20646               <p>For FULL capability devices
   20647 (<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL),<wbr/> at least 100ms.<wbr/></p>
   20648             </td>
   20649 
   20650             <td class="entry_hal_version">
   20651               <p>3.<wbr/>2</p>
   20652             </td>
   20653 
   20654             <td class="entry_tags">
   20655               <ul class="entry_tags">
   20656                   <li><a href="#tag_V1">V1</a></li>
   20657               </ul>
   20658             </td>
   20659 
   20660           </tr>
   20661           <tr class="entries_header">
   20662             <th class="th_details" colspan="6">Details</th>
   20663           </tr>
   20664           <tr class="entry_cont">
   20665             <td class="entry_details" colspan="6">
   20666               <p>Attempting to use frame durations beyond the maximum will result in the frame
   20667 duration being clipped to the maximum.<wbr/> See that control for a full definition of frame
   20668 durations.<wbr/></p>
   20669 <p>Refer to <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputMinFrameDuration">StreamConfigurationMap#getOutputMinFrameDuration</a>
   20670 for the minimum frame duration values.<wbr/></p>
   20671             </td>
   20672           </tr>
   20673 
   20674           <tr class="entries_header">
   20675             <th class="th_details" colspan="6">HAL Implementation Details</th>
   20676           </tr>
   20677           <tr class="entry_cont">
   20678             <td class="entry_details" colspan="6">
   20679               <p>For FULL capability devices (<a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL),<wbr/>
   20680 The maximum of the range SHOULD be at least
   20681 1 second (1e9),<wbr/> MUST be at least 100ms (100e6).<wbr/></p>
   20682 <p><a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a> must be greater or
   20683 equal to the <a href="#static_android.sensor.info.exposureTimeRange">android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range</a> max
   20684 value (since exposure time overrides frame duration).<wbr/></p>
   20685 <p>Available minimum frame durations for JPEG must be no greater
   20686 than that of the YUV_<wbr/>420_<wbr/>888/<wbr/>IMPLEMENTATION_<wbr/>DEFINED
   20687 minimum frame durations (for that respective size).<wbr/></p>
   20688 <p>Since JPEG processing is considered offline and can take longer than
   20689 a single uncompressed capture,<wbr/> refer to
   20690 <a href="#static_android.scaler.availableStallDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stall<wbr/>Durations</a>
   20691 for details about encoding this scenario.<wbr/></p>
   20692             </td>
   20693           </tr>
   20694 
   20695           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   20696            <!-- end of entry -->
   20697         
   20698                 
   20699           <tr class="entry" id="static_android.sensor.info.physicalSize">
   20700             <td class="entry_name
   20701              " rowspan="5">
   20702               android.<wbr/>sensor.<wbr/>info.<wbr/>physical<wbr/>Size
   20703             </td>
   20704             <td class="entry_type">
   20705                 <span class="entry_type_name">float</span>
   20706                 <span class="entry_type_container">x</span>
   20707 
   20708                 <span class="entry_type_array">
   20709                   2
   20710                 </span>
   20711               <span class="entry_type_visibility"> [public as sizeF]</span>
   20712 
   20713 
   20714               <span class="entry_type_hwlevel">[legacy] </span>
   20715 
   20716 
   20717                 <div class="entry_type_notes">width x height</div>
   20718 
   20719 
   20720             </td> <!-- entry_type -->
   20721 
   20722             <td class="entry_description">
   20723               <p>The physical dimensions of the full pixel
   20724 array.<wbr/></p>
   20725             </td>
   20726 
   20727             <td class="entry_units">
   20728               Millimeters
   20729             </td>
   20730 
   20731             <td class="entry_range">
   20732             </td>
   20733 
   20734             <td class="entry_hal_version">
   20735               <p>3.<wbr/>2</p>
   20736             </td>
   20737 
   20738             <td class="entry_tags">
   20739               <ul class="entry_tags">
   20740                   <li><a href="#tag_V1">V1</a></li>
   20741                   <li><a href="#tag_BC">BC</a></li>
   20742               </ul>
   20743             </td>
   20744 
   20745           </tr>
   20746           <tr class="entries_header">
   20747             <th class="th_details" colspan="6">Details</th>
   20748           </tr>
   20749           <tr class="entry_cont">
   20750             <td class="entry_details" colspan="6">
   20751               <p>This is the physical size of the sensor pixel
   20752 array defined by <a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a>.<wbr/></p>
   20753             </td>
   20754           </tr>
   20755 
   20756           <tr class="entries_header">
   20757             <th class="th_details" colspan="6">HAL Implementation Details</th>
   20758           </tr>
   20759           <tr class="entry_cont">
   20760             <td class="entry_details" colspan="6">
   20761               <p>Needed for FOV calculation for old API</p>
   20762             </td>
   20763           </tr>
   20764 
   20765           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   20766            <!-- end of entry -->
   20767         
   20768                 
   20769           <tr class="entry" id="static_android.sensor.info.pixelArraySize">
   20770             <td class="entry_name
   20771              " rowspan="3">
   20772               android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size
   20773             </td>
   20774             <td class="entry_type">
   20775                 <span class="entry_type_name">int32</span>
   20776                 <span class="entry_type_container">x</span>
   20777 
   20778                 <span class="entry_type_array">
   20779                   2
   20780                 </span>
   20781               <span class="entry_type_visibility"> [public as size]</span>
   20782 
   20783 
   20784               <span class="entry_type_hwlevel">[legacy] </span>
   20785 
   20786 
   20787 
   20788 
   20789             </td> <!-- entry_type -->
   20790 
   20791             <td class="entry_description">
   20792               <p>Dimensions of the full pixel array,<wbr/> possibly
   20793 including black calibration pixels.<wbr/></p>
   20794             </td>
   20795 
   20796             <td class="entry_units">
   20797               Pixels
   20798             </td>
   20799 
   20800             <td class="entry_range">
   20801             </td>
   20802 
   20803             <td class="entry_hal_version">
   20804               <p>3.<wbr/>2</p>
   20805             </td>
   20806 
   20807             <td class="entry_tags">
   20808               <ul class="entry_tags">
   20809                   <li><a href="#tag_RAW">RAW</a></li>
   20810                   <li><a href="#tag_BC">BC</a></li>
   20811               </ul>
   20812             </td>
   20813 
   20814           </tr>
   20815           <tr class="entries_header">
   20816             <th class="th_details" colspan="6">Details</th>
   20817           </tr>
   20818           <tr class="entry_cont">
   20819             <td class="entry_details" colspan="6">
   20820               <p>The pixel count of the full pixel array of the image sensor,<wbr/> which covers
   20821 <a href="#static_android.sensor.info.physicalSize">android.<wbr/>sensor.<wbr/>info.<wbr/>physical<wbr/>Size</a> area.<wbr/>  This represents the full pixel dimensions of
   20822 the raw buffers produced by this sensor.<wbr/></p>
   20823 <p>If a camera device supports raw sensor formats,<wbr/> either this or
   20824 <a href="#static_android.sensor.info.preCorrectionActiveArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<wbr/>Active<wbr/>Array<wbr/>Size</a> is the maximum dimensions for the raw
   20825 output formats listed in <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html">StreamConfigurationMap</a>
   20826 (this depends on whether or not the image sensor returns buffers containing pixels that
   20827 are not part of the active array region for blacklevel calibration or other purposes).<wbr/></p>
   20828 <p>Some parts of the full pixel array may not receive light from the scene,<wbr/>
   20829 or be otherwise inactive.<wbr/>  The <a href="#static_android.sensor.info.preCorrectionActiveArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<wbr/>Active<wbr/>Array<wbr/>Size</a> key
   20830 defines the rectangle of active pixels that will be included in processed image
   20831 formats.<wbr/></p>
   20832             </td>
   20833           </tr>
   20834 
   20835 
   20836           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   20837            <!-- end of entry -->
   20838         
   20839                 
   20840           <tr class="entry" id="static_android.sensor.info.whiteLevel">
   20841             <td class="entry_name
   20842              " rowspan="5">
   20843               android.<wbr/>sensor.<wbr/>info.<wbr/>white<wbr/>Level
   20844             </td>
   20845             <td class="entry_type">
   20846                 <span class="entry_type_name">int32</span>
   20847 
   20848               <span class="entry_type_visibility"> [public]</span>
   20849 
   20850 
   20851 
   20852 
   20853 
   20854 
   20855             </td> <!-- entry_type -->
   20856 
   20857             <td class="entry_description">
   20858               <p>Maximum raw value output by sensor.<wbr/></p>
   20859             </td>
   20860 
   20861             <td class="entry_units">
   20862             </td>
   20863 
   20864             <td class="entry_range">
   20865               <p>&gt; 255 (8-bit output)</p>
   20866             </td>
   20867 
   20868             <td class="entry_hal_version">
   20869               <p>3.<wbr/>2</p>
   20870             </td>
   20871 
   20872             <td class="entry_tags">
   20873               <ul class="entry_tags">
   20874                   <li><a href="#tag_RAW">RAW</a></li>
   20875               </ul>
   20876             </td>
   20877 
   20878           </tr>
   20879           <tr class="entries_header">
   20880             <th class="th_details" colspan="6">Details</th>
   20881           </tr>
   20882           <tr class="entry_cont">
   20883             <td class="entry_details" colspan="6">
   20884               <p>This specifies the fully-saturated encoding level for the raw
   20885 sample values from the sensor.<wbr/>  This is typically caused by the
   20886 sensor becoming highly non-linear or clipping.<wbr/> The minimum for
   20887 each channel is specified by the offset in the
   20888 <a href="#static_android.sensor.blackLevelPattern">android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern</a> key.<wbr/></p>
   20889 <p>The white level is typically determined either by sensor bit depth
   20890 (8-14 bits is expected),<wbr/> or by the point where the sensor response
   20891 becomes too non-linear to be useful.<wbr/>  The default value for this is
   20892 maximum representable value for a 16-bit raw sample (2^16 - 1).<wbr/></p>
   20893 <p>The white level values of captured images may vary for different
   20894 capture settings (e.<wbr/>g.,<wbr/> <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>).<wbr/> This key
   20895 represents a coarse approximation for such case.<wbr/> It is recommended
   20896 to use <a href="#dynamic_android.sensor.dynamicWhiteLevel">android.<wbr/>sensor.<wbr/>dynamic<wbr/>White<wbr/>Level</a> for captures when supported
   20897 by the camera device,<wbr/> which provides more accurate white level values.<wbr/></p>
   20898             </td>
   20899           </tr>
   20900 
   20901           <tr class="entries_header">
   20902             <th class="th_details" colspan="6">HAL Implementation Details</th>
   20903           </tr>
   20904           <tr class="entry_cont">
   20905             <td class="entry_details" colspan="6">
   20906               <p>The full bit depth of the sensor must be available in the raw data,<wbr/>
   20907 so the value for linear sensors should not be significantly lower
   20908 than maximum raw value supported,<wbr/> i.<wbr/>e.<wbr/> 2^(sensor bits per pixel).<wbr/></p>
   20909             </td>
   20910           </tr>
   20911 
   20912           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   20913            <!-- end of entry -->
   20914         
   20915                 
   20916           <tr class="entry" id="static_android.sensor.info.timestampSource">
   20917             <td class="entry_name
   20918              " rowspan="5">
   20919               android.<wbr/>sensor.<wbr/>info.<wbr/>timestamp<wbr/>Source
   20920             </td>
   20921             <td class="entry_type">
   20922                 <span class="entry_type_name entry_type_name_enum">byte</span>
   20923 
   20924               <span class="entry_type_visibility"> [public]</span>
   20925 
   20926 
   20927               <span class="entry_type_hwlevel">[legacy] </span>
   20928 
   20929 
   20930 
   20931                 <ul class="entry_type_enum">
   20932                   <li>
   20933                     <span class="entry_type_enum_name">UNKNOWN (v3.2)</span>
   20934                     <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/>
   20935 but can not be compared to timestamps from other subsystems
   20936 (e.<wbr/>g.<wbr/> accelerometer,<wbr/> gyro etc.<wbr/>),<wbr/> or other instances of the same or different
   20937 camera devices in the same system.<wbr/> Timestamps between streams and results for
   20938 a single camera instance are comparable,<wbr/> and the timestamps for all buffers
   20939 and the result metadata generated by a single capture are identical.<wbr/></p></span>
   20940                   </li>
   20941                   <li>
   20942                     <span class="entry_type_enum_name">REALTIME (v3.2)</span>
   20943                     <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
   20944 <a href="https://developer.android.com/reference/android/os/SystemClock.html#elapsedRealtimeNanos">SystemClock#elapsedRealtimeNanos</a>,<wbr/>
   20945 and they can be compared to other timestamps using that base.<wbr/></p></span>
   20946                   </li>
   20947                 </ul>
   20948 
   20949             </td> <!-- entry_type -->
   20950 
   20951             <td class="entry_description">
   20952               <p>The time base source for sensor capture start timestamps.<wbr/></p>
   20953             </td>
   20954 
   20955             <td class="entry_units">
   20956             </td>
   20957 
   20958             <td class="entry_range">
   20959             </td>
   20960 
   20961             <td class="entry_hal_version">
   20962               <p>3.<wbr/>2</p>
   20963             </td>
   20964 
   20965             <td class="entry_tags">
   20966               <ul class="entry_tags">
   20967                   <li><a href="#tag_V1">V1</a></li>
   20968               </ul>
   20969             </td>
   20970 
   20971           </tr>
   20972           <tr class="entries_header">
   20973             <th class="th_details" colspan="6">Details</th>
   20974           </tr>
   20975           <tr class="entry_cont">
   20976             <td class="entry_details" colspan="6">
   20977               <p>The timestamps provided for captures are always in nanoseconds and monotonic,<wbr/> but
   20978 may not based on a time source that can be compared to other system time sources.<wbr/></p>
   20979 <p>This characteristic defines the source for the timestamps,<wbr/> and therefore whether they
   20980 can be compared against other system time sources/<wbr/>timestamps.<wbr/></p>
   20981             </td>
   20982           </tr>
   20983 
   20984           <tr class="entries_header">
   20985             <th class="th_details" colspan="6">HAL Implementation Details</th>
   20986           </tr>
   20987           <tr class="entry_cont">
   20988             <td class="entry_details" colspan="6">
   20989               <p>For camera devices implement UNKNOWN,<wbr/> the camera framework expects that the timestamp
   20990 source to be SYSTEM_<wbr/>TIME_<wbr/>MONOTONIC.<wbr/> For camera devices implement REALTIME,<wbr/> the camera
   20991 framework expects that the timestamp source to be SYSTEM_<wbr/>TIME_<wbr/>BOOTTIME.<wbr/> See
   20992 system/<wbr/>core/<wbr/>include/<wbr/>utils/<wbr/>Timers.<wbr/>h for the definition of SYSTEM_<wbr/>TIME_<wbr/>MONOTONIC and
   20993 SYSTEM_<wbr/>TIME_<wbr/>BOOTTIME.<wbr/> Note that HAL must follow above expectation; otherwise video
   20994 recording might suffer unexpected behavior.<wbr/></p>
   20995 <p>Also,<wbr/> camera devices which implement REALTIME must pass the ITS sensor fusion test which
   20996 tests the alignment between camera timestamps and gyro sensor timestamps.<wbr/></p>
   20997             </td>
   20998           </tr>
   20999 
   21000           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   21001            <!-- end of entry -->
   21002         
   21003                 
   21004           <tr class="entry" id="static_android.sensor.info.lensShadingApplied">
   21005             <td class="entry_name
   21006              " rowspan="3">
   21007               android.<wbr/>sensor.<wbr/>info.<wbr/>lens<wbr/>Shading<wbr/>Applied
   21008             </td>
   21009             <td class="entry_type">
   21010                 <span class="entry_type_name entry_type_name_enum">byte</span>
   21011 
   21012               <span class="entry_type_visibility"> [public as boolean]</span>
   21013 
   21014 
   21015 
   21016 
   21017 
   21018                 <ul class="entry_type_enum">
   21019                   <li>
   21020                     <span class="entry_type_enum_name">FALSE (v3.2)</span>
   21021                   </li>
   21022                   <li>
   21023                     <span class="entry_type_enum_name">TRUE (v3.2)</span>
   21024                   </li>
   21025                 </ul>
   21026 
   21027             </td> <!-- entry_type -->
   21028 
   21029             <td class="entry_description">
   21030               <p>Whether the RAW images output from this camera device are subject to
   21031 lens shading correction.<wbr/></p>
   21032             </td>
   21033 
   21034             <td class="entry_units">
   21035             </td>
   21036 
   21037             <td class="entry_range">
   21038             </td>
   21039 
   21040             <td class="entry_hal_version">
   21041               <p>3.<wbr/>2</p>
   21042             </td>
   21043 
   21044             <td class="entry_tags">
   21045             </td>
   21046 
   21047           </tr>
   21048           <tr class="entries_header">
   21049             <th class="th_details" colspan="6">Details</th>
   21050           </tr>
   21051           <tr class="entry_cont">
   21052             <td class="entry_details" colspan="6">
   21053               <p>If TRUE,<wbr/> all images produced by the camera device in the RAW image formats will
   21054 have lens shading correction already applied to it.<wbr/> If FALSE,<wbr/> the images will
   21055 not be adjusted for lens shading correction.<wbr/>
   21056 See <a href="#static_android.request.maxNumOutputRaw">android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Raw</a> for a list of RAW image formats.<wbr/></p>
   21057 <p>This key will be <code>null</code> for all devices do not report this information.<wbr/>
   21058 Devices with RAW capability will always report this information in this key.<wbr/></p>
   21059             </td>
   21060           </tr>
   21061 
   21062 
   21063           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   21064            <!-- end of entry -->
   21065         
   21066                 
   21067           <tr class="entry" id="static_android.sensor.info.preCorrectionActiveArraySize">
   21068             <td class="entry_name
   21069              " rowspan="5">
   21070               android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<wbr/>Active<wbr/>Array<wbr/>Size
   21071             </td>
   21072             <td class="entry_type">
   21073                 <span class="entry_type_name">int32</span>
   21074                 <span class="entry_type_container">x</span>
   21075 
   21076                 <span class="entry_type_array">
   21077                   4
   21078                 </span>
   21079               <span class="entry_type_visibility"> [public as rectangle]</span>
   21080 
   21081 
   21082               <span class="entry_type_hwlevel">[legacy] </span>
   21083 
   21084 
   21085                 <div class="entry_type_notes">Four ints defining the active pixel rectangle</div>
   21086 
   21087 
   21088             </td> <!-- entry_type -->
   21089 
   21090             <td class="entry_description">
   21091               <p>The area of the image sensor which corresponds to active pixels prior to the
   21092 application of any geometric distortion correction.<wbr/></p>
   21093             </td>
   21094 
   21095             <td class="entry_units">
   21096               Pixel coordinates on the image sensor
   21097             </td>
   21098 
   21099             <td class="entry_range">
   21100             </td>
   21101 
   21102             <td class="entry_hal_version">
   21103               <p>3.<wbr/>2</p>
   21104             </td>
   21105 
   21106             <td class="entry_tags">
   21107               <ul class="entry_tags">
   21108                   <li><a href="#tag_RAW">RAW</a></li>
   21109               </ul>
   21110             </td>
   21111 
   21112           </tr>
   21113           <tr class="entries_header">
   21114             <th class="th_details" colspan="6">Details</th>
   21115           </tr>
   21116           <tr class="entry_cont">
   21117             <td class="entry_details" colspan="6">
   21118               <p>This is the rectangle representing the size of the active region of the sensor (i.<wbr/>e.<wbr/>
   21119 the region that actually receives light from the scene) before any geometric correction
   21120 has been applied,<wbr/> and should be treated as the active region rectangle for any of the
   21121 raw formats.<wbr/>  All metadata associated with raw processing (e.<wbr/>g.<wbr/> the lens shading
   21122 correction map,<wbr/> and radial distortion fields) treats the top,<wbr/> left of this rectangle as
   21123 the origin,<wbr/> (0,<wbr/>0).<wbr/></p>
   21124 <p>The size of this region determines the maximum field of view and the maximum number of
   21125 pixels that an image from this sensor can contain,<wbr/> prior to the application of
   21126 geometric distortion correction.<wbr/> The effective maximum pixel dimensions of a
   21127 post-distortion-corrected image is given by the <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>
   21128 field,<wbr/> and the effective maximum field of view for a post-distortion-corrected image
   21129 can be calculated by applying the geometric distortion correction fields to this
   21130 rectangle,<wbr/> and cropping to the rectangle given in <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/></p>
   21131 <p>E.<wbr/>g.<wbr/> to calculate position of a pixel,<wbr/> (x,<wbr/>y),<wbr/> in a processed YUV output image with the
   21132 dimensions in <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a> given the position of a pixel,<wbr/>
   21133 (x',<wbr/> y'),<wbr/> in the raw pixel array with dimensions give in
   21134 <a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a>:</p>
   21135 <ol>
   21136 <li>Choose a pixel (x',<wbr/> y') within the active array region of the raw buffer given in
   21137 <a href="#static_android.sensor.info.preCorrectionActiveArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<wbr/>Active<wbr/>Array<wbr/>Size</a>,<wbr/> otherwise this pixel is considered
   21138 to be outside of the FOV,<wbr/> and will not be shown in the processed output image.<wbr/></li>
   21139 <li>Apply geometric distortion correction to get the post-distortion pixel coordinate,<wbr/>
   21140 (x_<wbr/>i,<wbr/> y_<wbr/>i).<wbr/> When applying geometric correction metadata,<wbr/> note that metadata for raw
   21141 buffers is defined relative to the top,<wbr/> left of the
   21142 <a href="#static_android.sensor.info.preCorrectionActiveArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<wbr/>Active<wbr/>Array<wbr/>Size</a> rectangle.<wbr/></li>
   21143 <li>If the resulting corrected pixel coordinate is within the region given in
   21144 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>,<wbr/> then the position of this pixel in the
   21145 processed output image buffer is <code>(x_<wbr/>i - activeArray.<wbr/>left,<wbr/> y_<wbr/>i - activeArray.<wbr/>top)</code>,<wbr/>
   21146 when the top,<wbr/> left coordinate of that buffer is treated as (0,<wbr/> 0).<wbr/></li>
   21147 </ol>
   21148 <p>Thus,<wbr/> for pixel x',<wbr/>y' = (25,<wbr/> 25) on a sensor where <a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a>
   21149 is (100,<wbr/>100),<wbr/> <a href="#static_android.sensor.info.preCorrectionActiveArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<wbr/>Active<wbr/>Array<wbr/>Size</a> is (10,<wbr/> 10,<wbr/> 100,<wbr/> 100),<wbr/>
   21150 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a> is (20,<wbr/> 20,<wbr/> 80,<wbr/> 80),<wbr/> and the geometric distortion
   21151 correction doesn't change the pixel coordinate,<wbr/> the resulting pixel selected in
   21152 pixel coordinates would be x,<wbr/>y = (25,<wbr/> 25) relative to the top,<wbr/>left of the raw buffer
   21153 with dimensions given in <a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a>,<wbr/> and would be (5,<wbr/> 5)
   21154 relative to the top,<wbr/>left of post-processed YUV output buffer with dimensions given in
   21155 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/></p>
   21156 <p>The currently supported fields that correct for geometric distortion are:</p>
   21157 <ol>
   21158 <li><a href="#static_android.lens.distortion">android.<wbr/>lens.<wbr/>distortion</a>.<wbr/></li>
   21159 </ol>
   21160 <p>If all of the geometric distortion fields are no-ops,<wbr/> this rectangle will be the same
   21161 as the post-distortion-corrected rectangle given in
   21162 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/></p>
   21163 <p>This rectangle is defined relative to the full pixel array; (0,<wbr/>0) is the top-left of
   21164 the full pixel array,<wbr/> and the size of the full pixel array is given by
   21165 <a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a>.<wbr/></p>
   21166 <p>The pre-correction active array may be smaller than the full pixel array,<wbr/> since the
   21167 full array may include black calibration pixels or other inactive regions.<wbr/></p>
   21168             </td>
   21169           </tr>
   21170 
   21171           <tr class="entries_header">
   21172             <th class="th_details" colspan="6">HAL Implementation Details</th>
   21173           </tr>
   21174           <tr class="entry_cont">
   21175             <td class="entry_details" colspan="6">
   21176               <p>This array contains <code>(xmin,<wbr/> ymin,<wbr/> width,<wbr/> height)</code>.<wbr/> The <code>(xmin,<wbr/> ymin)</code> must be
   21177 &gt;= <code>(0,<wbr/>0)</code>.<wbr/>
   21178 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>
   21179 <p>If omitted by the HAL implementation,<wbr/> the camera framework will assume that this is
   21180 the same as the post-correction active array region given in
   21181 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/></p>
   21182             </td>
   21183           </tr>
   21184 
   21185           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   21186            <!-- end of entry -->
   21187         
   21188         
   21189         
   21190 
   21191                 
   21192           <tr class="entry" id="static_android.sensor.referenceIlluminant1">
   21193             <td class="entry_name
   21194              " rowspan="5">
   21195               android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1
   21196             </td>
   21197             <td class="entry_type">
   21198                 <span class="entry_type_name entry_type_name_enum">byte</span>
   21199 
   21200               <span class="entry_type_visibility"> [public]</span>
   21201 
   21202 
   21203 
   21204 
   21205 
   21206                 <ul class="entry_type_enum">
   21207                   <li>
   21208                     <span class="entry_type_enum_name">DAYLIGHT (v3.2)</span>
   21209                     <span class="entry_type_enum_value">1</span>
   21210                   </li>
   21211                   <li>
   21212                     <span class="entry_type_enum_name">FLUORESCENT (v3.2)</span>
   21213                     <span class="entry_type_enum_value">2</span>
   21214                   </li>
   21215                   <li>
   21216                     <span class="entry_type_enum_name">TUNGSTEN (v3.2)</span>
   21217                     <span class="entry_type_enum_value">3</span>
   21218                     <span class="entry_type_enum_notes"><p>Incandescent light</p></span>
   21219                   </li>
   21220                   <li>
   21221                     <span class="entry_type_enum_name">FLASH (v3.2)</span>
   21222                     <span class="entry_type_enum_value">4</span>
   21223                   </li>
   21224                   <li>
   21225                     <span class="entry_type_enum_name">FINE_WEATHER (v3.2)</span>
   21226                     <span class="entry_type_enum_value">9</span>
   21227                   </li>
   21228                   <li>
   21229                     <span class="entry_type_enum_name">CLOUDY_WEATHER (v3.2)</span>
   21230                     <span class="entry_type_enum_value">10</span>
   21231                   </li>
   21232                   <li>
   21233                     <span class="entry_type_enum_name">SHADE (v3.2)</span>
   21234                     <span class="entry_type_enum_value">11</span>
   21235                   </li>
   21236                   <li>
   21237                     <span class="entry_type_enum_name">DAYLIGHT_FLUORESCENT (v3.2)</span>
   21238                     <span class="entry_type_enum_value">12</span>
   21239                     <span class="entry_type_enum_notes"><p>D 5700 - 7100K</p></span>
   21240                   </li>
   21241                   <li>
   21242                     <span class="entry_type_enum_name">DAY_WHITE_FLUORESCENT (v3.2)</span>
   21243                     <span class="entry_type_enum_value">13</span>
   21244                     <span class="entry_type_enum_notes"><p>N 4600 - 5400K</p></span>
   21245                   </li>
   21246                   <li>
   21247                     <span class="entry_type_enum_name">COOL_WHITE_FLUORESCENT (v3.2)</span>
   21248                     <span class="entry_type_enum_value">14</span>
   21249                     <span class="entry_type_enum_notes"><p>W 3900 - 4500K</p></span>
   21250                   </li>
   21251                   <li>
   21252                     <span class="entry_type_enum_name">WHITE_FLUORESCENT (v3.2)</span>
   21253                     <span class="entry_type_enum_value">15</span>
   21254                     <span class="entry_type_enum_notes"><p>WW 3200 - 3700K</p></span>
   21255                   </li>
   21256                   <li>
   21257                     <span class="entry_type_enum_name">STANDARD_A (v3.2)</span>
   21258                     <span class="entry_type_enum_value">17</span>
   21259                   </li>
   21260                   <li>
   21261                     <span class="entry_type_enum_name">STANDARD_B (v3.2)</span>
   21262                     <span class="entry_type_enum_value">18</span>
   21263                   </li>
   21264                   <li>
   21265                     <span class="entry_type_enum_name">STANDARD_C (v3.2)</span>
   21266                     <span class="entry_type_enum_value">19</span>
   21267                   </li>
   21268                   <li>
   21269                     <span class="entry_type_enum_name">D55 (v3.2)</span>
   21270                     <span class="entry_type_enum_value">20</span>
   21271                   </li>
   21272                   <li>
   21273                     <span class="entry_type_enum_name">D65 (v3.2)</span>
   21274                     <span class="entry_type_enum_value">21</span>
   21275                   </li>
   21276                   <li>
   21277                     <span class="entry_type_enum_name">D75 (v3.2)</span>
   21278                     <span class="entry_type_enum_value">22</span>
   21279                   </li>
   21280                   <li>
   21281                     <span class="entry_type_enum_name">D50 (v3.2)</span>
   21282                     <span class="entry_type_enum_value">23</span>
   21283                   </li>
   21284                   <li>
   21285                     <span class="entry_type_enum_name">ISO_STUDIO_TUNGSTEN (v3.2)</span>
   21286                     <span class="entry_type_enum_value">24</span>
   21287                   </li>
   21288                 </ul>
   21289 
   21290             </td> <!-- entry_type -->
   21291 
   21292             <td class="entry_description">
   21293               <p>The standard reference illuminant used as the scene light source when
   21294 calculating the <a href="#static_android.sensor.colorTransform1">android.<wbr/>sensor.<wbr/>color<wbr/>Transform1</a>,<wbr/>
   21295 <a href="#static_android.sensor.calibrationTransform1">android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform1</a>,<wbr/> and
   21296 <a href="#static_android.sensor.forwardMatrix1">android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix1</a> matrices.<wbr/></p>
   21297             </td>
   21298 
   21299             <td class="entry_units">
   21300             </td>
   21301 
   21302             <td class="entry_range">
   21303             </td>
   21304 
   21305             <td class="entry_hal_version">
   21306               <p>3.<wbr/>2</p>
   21307             </td>
   21308 
   21309             <td class="entry_tags">
   21310               <ul class="entry_tags">
   21311                   <li><a href="#tag_RAW">RAW</a></li>
   21312               </ul>
   21313             </td>
   21314 
   21315           </tr>
   21316           <tr class="entries_header">
   21317             <th class="th_details" colspan="6">Details</th>
   21318           </tr>
   21319           <tr class="entry_cont">
   21320             <td class="entry_details" colspan="6">
   21321               <p>The values in this key correspond to the values defined for the
   21322 EXIF LightSource tag.<wbr/> These illuminants are standard light sources
   21323 that are often used calibrating camera devices.<wbr/></p>
   21324 <p>If this key is present,<wbr/> then <a href="#static_android.sensor.colorTransform1">android.<wbr/>sensor.<wbr/>color<wbr/>Transform1</a>,<wbr/>
   21325 <a href="#static_android.sensor.calibrationTransform1">android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform1</a>,<wbr/> and
   21326 <a href="#static_android.sensor.forwardMatrix1">android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix1</a> will also be present.<wbr/></p>
   21327 <p>Some devices may choose to provide a second set of calibration
   21328 information for improved quality,<wbr/> including
   21329 <a href="#static_android.sensor.referenceIlluminant2">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2</a> and its corresponding matrices.<wbr/></p>
   21330             </td>
   21331           </tr>
   21332 
   21333           <tr class="entries_header">
   21334             <th class="th_details" colspan="6">HAL Implementation Details</th>
   21335           </tr>
   21336           <tr class="entry_cont">
   21337             <td class="entry_details" colspan="6">
   21338               <p>The first reference illuminant (<a href="#static_android.sensor.referenceIlluminant1">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1</a>)
   21339 and corresponding matrices must be present to support the RAW capability
   21340 and DNG output.<wbr/></p>
   21341 <p>When producing raw images with a color profile that has only been
   21342 calibrated against a single light source,<wbr/> it is valid to omit
   21343 <a href="#static_android.sensor.referenceIlluminant2">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2</a> along with the
   21344 <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/>
   21345 and <a href="#static_android.sensor.forwardMatrix2">android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix2</a> matrices.<wbr/></p>
   21346 <p>If only <a href="#static_android.sensor.referenceIlluminant1">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1</a> is included,<wbr/> it should be
   21347 chosen so that it is representative of typical scene lighting.<wbr/>  In
   21348 general,<wbr/> D50 or DAYLIGHT will be chosen for this case.<wbr/></p>
   21349 <p>If both <a href="#static_android.sensor.referenceIlluminant1">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1</a> and
   21350 <a href="#static_android.sensor.referenceIlluminant2">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2</a> are included,<wbr/> they should be
   21351 chosen to represent the typical range of scene lighting conditions.<wbr/>
   21352 In general,<wbr/> low color temperature illuminant such as Standard-A will
   21353 be chosen for the first reference illuminant and a higher color
   21354 temperature illuminant such as D65 will be chosen for the second
   21355 reference illuminant.<wbr/></p>
   21356             </td>
   21357           </tr>
   21358 
   21359           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   21360            <!-- end of entry -->
   21361         
   21362                 
   21363           <tr class="entry" id="static_android.sensor.referenceIlluminant2">
   21364             <td class="entry_name
   21365              " rowspan="3">
   21366               android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2
   21367             </td>
   21368             <td class="entry_type">
   21369                 <span class="entry_type_name">byte</span>
   21370 
   21371               <span class="entry_type_visibility"> [public]</span>
   21372 
   21373 
   21374 
   21375 
   21376 
   21377 
   21378             </td> <!-- entry_type -->
   21379 
   21380             <td class="entry_description">
   21381               <p>The standard reference illuminant used as the scene light source when
   21382 calculating the <a href="#static_android.sensor.colorTransform2">android.<wbr/>sensor.<wbr/>color<wbr/>Transform2</a>,<wbr/>
   21383 <a href="#static_android.sensor.calibrationTransform2">android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform2</a>,<wbr/> and
   21384 <a href="#static_android.sensor.forwardMatrix2">android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix2</a> matrices.<wbr/></p>
   21385             </td>
   21386 
   21387             <td class="entry_units">
   21388             </td>
   21389 
   21390             <td class="entry_range">
   21391               <p>Any value listed in <a href="#static_android.sensor.referenceIlluminant1">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1</a></p>
   21392             </td>
   21393 
   21394             <td class="entry_hal_version">
   21395               <p>3.<wbr/>2</p>
   21396             </td>
   21397 
   21398             <td class="entry_tags">
   21399               <ul class="entry_tags">
   21400                   <li><a href="#tag_RAW">RAW</a></li>
   21401               </ul>
   21402             </td>
   21403 
   21404           </tr>
   21405           <tr class="entries_header">
   21406             <th class="th_details" colspan="6">Details</th>
   21407           </tr>
   21408           <tr class="entry_cont">
   21409             <td class="entry_details" colspan="6">
   21410               <p>See <a href="#static_android.sensor.referenceIlluminant1">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1</a> for more details.<wbr/></p>
   21411 <p>If this key is present,<wbr/> then <a href="#static_android.sensor.colorTransform2">android.<wbr/>sensor.<wbr/>color<wbr/>Transform2</a>,<wbr/>
   21412 <a href="#static_android.sensor.calibrationTransform2">android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform2</a>,<wbr/> and
   21413 <a href="#static_android.sensor.forwardMatrix2">android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix2</a> will also be present.<wbr/></p>
   21414             </td>
   21415           </tr>
   21416 
   21417 
   21418           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   21419            <!-- end of entry -->
   21420         
   21421                 
   21422           <tr class="entry" id="static_android.sensor.calibrationTransform1">
   21423             <td class="entry_name
   21424              " rowspan="3">
   21425               android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform1
   21426             </td>
   21427             <td class="entry_type">
   21428                 <span class="entry_type_name">rational</span>
   21429                 <span class="entry_type_container">x</span>
   21430 
   21431                 <span class="entry_type_array">
   21432                   3 x 3
   21433                 </span>
   21434               <span class="entry_type_visibility"> [public as colorSpaceTransform]</span>
   21435 
   21436 
   21437 
   21438 
   21439                 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
   21440 
   21441 
   21442             </td> <!-- entry_type -->
   21443 
   21444             <td class="entry_description">
   21445               <p>A per-device calibration transform matrix that maps from the
   21446 reference sensor colorspace to the actual device sensor colorspace.<wbr/></p>
   21447             </td>
   21448 
   21449             <td class="entry_units">
   21450             </td>
   21451 
   21452             <td class="entry_range">
   21453             </td>
   21454 
   21455             <td class="entry_hal_version">
   21456               <p>3.<wbr/>2</p>
   21457             </td>
   21458 
   21459             <td class="entry_tags">
   21460               <ul class="entry_tags">
   21461                   <li><a href="#tag_RAW">RAW</a></li>
   21462               </ul>
   21463             </td>
   21464 
   21465           </tr>
   21466           <tr class="entries_header">
   21467             <th class="th_details" colspan="6">Details</th>
   21468           </tr>
   21469           <tr class="entry_cont">
   21470             <td class="entry_details" colspan="6">
   21471               <p>This matrix is used to correct for per-device variations in the
   21472 sensor colorspace,<wbr/> and is used for processing raw buffer data.<wbr/></p>
   21473 <p>The matrix is expressed as a 3x3 matrix in row-major-order,<wbr/> and
   21474 contains a per-device calibration transform that maps colors
   21475 from reference sensor color space (i.<wbr/>e.<wbr/> the "golden module"
   21476 colorspace) into this camera device's native sensor color
   21477 space under the first reference illuminant
   21478 (<a href="#static_android.sensor.referenceIlluminant1">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1</a>).<wbr/></p>
   21479             </td>
   21480           </tr>
   21481 
   21482 
   21483           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   21484            <!-- end of entry -->
   21485         
   21486                 
   21487           <tr class="entry" id="static_android.sensor.calibrationTransform2">
   21488             <td class="entry_name
   21489              " rowspan="3">
   21490               android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform2
   21491             </td>
   21492             <td class="entry_type">
   21493                 <span class="entry_type_name">rational</span>
   21494                 <span class="entry_type_container">x</span>
   21495 
   21496                 <span class="entry_type_array">
   21497                   3 x 3
   21498                 </span>
   21499               <span class="entry_type_visibility"> [public as colorSpaceTransform]</span>
   21500 
   21501 
   21502 
   21503 
   21504                 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
   21505 
   21506 
   21507             </td> <!-- entry_type -->
   21508 
   21509             <td class="entry_description">
   21510               <p>A per-device calibration transform matrix that maps from the
   21511 reference sensor colorspace to the actual device sensor colorspace
   21512 (this is the colorspace of the raw buffer data).<wbr/></p>
   21513             </td>
   21514 
   21515             <td class="entry_units">
   21516             </td>
   21517 
   21518             <td class="entry_range">
   21519             </td>
   21520 
   21521             <td class="entry_hal_version">
   21522               <p>3.<wbr/>2</p>
   21523             </td>
   21524 
   21525             <td class="entry_tags">
   21526               <ul class="entry_tags">
   21527                   <li><a href="#tag_RAW">RAW</a></li>
   21528               </ul>
   21529             </td>
   21530 
   21531           </tr>
   21532           <tr class="entries_header">
   21533             <th class="th_details" colspan="6">Details</th>
   21534           </tr>
   21535           <tr class="entry_cont">
   21536             <td class="entry_details" colspan="6">
   21537               <p>This matrix is used to correct for per-device variations in the
   21538 sensor colorspace,<wbr/> and is used for processing raw buffer data.<wbr/></p>
   21539 <p>The matrix is expressed as a 3x3 matrix in row-major-order,<wbr/> and
   21540 contains a per-device calibration transform that maps colors
   21541 from reference sensor color space (i.<wbr/>e.<wbr/> the "golden module"
   21542 colorspace) into this camera device's native sensor color
   21543 space under the second reference illuminant
   21544 (<a href="#static_android.sensor.referenceIlluminant2">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2</a>).<wbr/></p>
   21545 <p>This matrix will only be present if the second reference
   21546 illuminant is present.<wbr/></p>
   21547             </td>
   21548           </tr>
   21549 
   21550 
   21551           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   21552            <!-- end of entry -->
   21553         
   21554                 
   21555           <tr class="entry" id="static_android.sensor.colorTransform1">
   21556             <td class="entry_name
   21557              " rowspan="3">
   21558               android.<wbr/>sensor.<wbr/>color<wbr/>Transform1
   21559             </td>
   21560             <td class="entry_type">
   21561                 <span class="entry_type_name">rational</span>
   21562                 <span class="entry_type_container">x</span>
   21563 
   21564                 <span class="entry_type_array">
   21565                   3 x 3
   21566                 </span>
   21567               <span class="entry_type_visibility"> [public as colorSpaceTransform]</span>
   21568 
   21569 
   21570 
   21571 
   21572                 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
   21573 
   21574 
   21575             </td> <!-- entry_type -->
   21576 
   21577             <td class="entry_description">
   21578               <p>A matrix that transforms color values from CIE XYZ color space to
   21579 reference sensor color space.<wbr/></p>
   21580             </td>
   21581 
   21582             <td class="entry_units">
   21583             </td>
   21584 
   21585             <td class="entry_range">
   21586             </td>
   21587 
   21588             <td class="entry_hal_version">
   21589               <p>3.<wbr/>2</p>
   21590             </td>
   21591 
   21592             <td class="entry_tags">
   21593               <ul class="entry_tags">
   21594                   <li><a href="#tag_RAW">RAW</a></li>
   21595               </ul>
   21596             </td>
   21597 
   21598           </tr>
   21599           <tr class="entries_header">
   21600             <th class="th_details" colspan="6">Details</th>
   21601           </tr>
   21602           <tr class="entry_cont">
   21603             <td class="entry_details" colspan="6">
   21604               <p>This matrix is used to convert from the standard CIE XYZ color
   21605 space to the reference sensor colorspace,<wbr/> and is used when processing
   21606 raw buffer data.<wbr/></p>
   21607 <p>The matrix is expressed as a 3x3 matrix in row-major-order,<wbr/> and
   21608 contains a color transform matrix that maps colors from the CIE
   21609 XYZ color space to the reference sensor color space (i.<wbr/>e.<wbr/> the
   21610 "golden module" colorspace) under the first reference illuminant
   21611 (<a href="#static_android.sensor.referenceIlluminant1">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1</a>).<wbr/></p>
   21612 <p>The white points chosen in both the reference sensor color space
   21613 and the CIE XYZ colorspace when calculating this transform will
   21614 match the standard white point for the first reference illuminant
   21615 (i.<wbr/>e.<wbr/> no chromatic adaptation will be applied by this transform).<wbr/></p>
   21616             </td>
   21617           </tr>
   21618 
   21619 
   21620           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   21621            <!-- end of entry -->
   21622         
   21623                 
   21624           <tr class="entry" id="static_android.sensor.colorTransform2">
   21625             <td class="entry_name
   21626              " rowspan="3">
   21627               android.<wbr/>sensor.<wbr/>color<wbr/>Transform2
   21628             </td>
   21629             <td class="entry_type">
   21630                 <span class="entry_type_name">rational</span>
   21631                 <span class="entry_type_container">x</span>
   21632 
   21633                 <span class="entry_type_array">
   21634                   3 x 3
   21635                 </span>
   21636               <span class="entry_type_visibility"> [public as colorSpaceTransform]</span>
   21637 
   21638 
   21639 
   21640 
   21641                 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
   21642 
   21643 
   21644             </td> <!-- entry_type -->
   21645 
   21646             <td class="entry_description">
   21647               <p>A matrix that transforms color values from CIE XYZ color space to
   21648 reference sensor color space.<wbr/></p>
   21649             </td>
   21650 
   21651             <td class="entry_units">
   21652             </td>
   21653 
   21654             <td class="entry_range">
   21655             </td>
   21656 
   21657             <td class="entry_hal_version">
   21658               <p>3.<wbr/>2</p>
   21659             </td>
   21660 
   21661             <td class="entry_tags">
   21662               <ul class="entry_tags">
   21663                   <li><a href="#tag_RAW">RAW</a></li>
   21664               </ul>
   21665             </td>
   21666 
   21667           </tr>
   21668           <tr class="entries_header">
   21669             <th class="th_details" colspan="6">Details</th>
   21670           </tr>
   21671           <tr class="entry_cont">
   21672             <td class="entry_details" colspan="6">
   21673               <p>This matrix is used to convert from the standard CIE XYZ color
   21674 space to the reference sensor colorspace,<wbr/> and is used when processing
   21675 raw buffer data.<wbr/></p>
   21676 <p>The matrix is expressed as a 3x3 matrix in row-major-order,<wbr/> and
   21677 contains a color transform matrix that maps colors from the CIE
   21678 XYZ color space to the reference sensor color space (i.<wbr/>e.<wbr/> the
   21679 "golden module" colorspace) under the second reference illuminant
   21680 (<a href="#static_android.sensor.referenceIlluminant2">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2</a>).<wbr/></p>
   21681 <p>The white points chosen in both the reference sensor color space
   21682 and the CIE XYZ colorspace when calculating this transform will
   21683 match the standard white point for the second reference illuminant
   21684 (i.<wbr/>e.<wbr/> no chromatic adaptation will be applied by this transform).<wbr/></p>
   21685 <p>This matrix will only be present if the second reference
   21686 illuminant is present.<wbr/></p>
   21687             </td>
   21688           </tr>
   21689 
   21690 
   21691           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   21692            <!-- end of entry -->
   21693         
   21694                 
   21695           <tr class="entry" id="static_android.sensor.forwardMatrix1">
   21696             <td class="entry_name
   21697              " rowspan="3">
   21698               android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix1
   21699             </td>
   21700             <td class="entry_type">
   21701                 <span class="entry_type_name">rational</span>
   21702                 <span class="entry_type_container">x</span>
   21703 
   21704                 <span class="entry_type_array">
   21705                   3 x 3
   21706                 </span>
   21707               <span class="entry_type_visibility"> [public as colorSpaceTransform]</span>
   21708 
   21709 
   21710 
   21711 
   21712                 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
   21713 
   21714 
   21715             </td> <!-- entry_type -->
   21716 
   21717             <td class="entry_description">
   21718               <p>A matrix that transforms white balanced camera colors from the reference
   21719 sensor colorspace to the CIE XYZ colorspace with a D50 whitepoint.<wbr/></p>
   21720             </td>
   21721 
   21722             <td class="entry_units">
   21723             </td>
   21724 
   21725             <td class="entry_range">
   21726             </td>
   21727 
   21728             <td class="entry_hal_version">
   21729               <p>3.<wbr/>2</p>
   21730             </td>
   21731 
   21732             <td class="entry_tags">
   21733               <ul class="entry_tags">
   21734                   <li><a href="#tag_RAW">RAW</a></li>
   21735               </ul>
   21736             </td>
   21737 
   21738           </tr>
   21739           <tr class="entries_header">
   21740             <th class="th_details" colspan="6">Details</th>
   21741           </tr>
   21742           <tr class="entry_cont">
   21743             <td class="entry_details" colspan="6">
   21744               <p>This matrix is used to convert to the standard CIE XYZ colorspace,<wbr/> and
   21745 is used when processing raw buffer data.<wbr/></p>
   21746 <p>This matrix is expressed as a 3x3 matrix in row-major-order,<wbr/> and contains
   21747 a color transform matrix that maps white balanced colors from the
   21748 reference sensor color space to the CIE XYZ color space with a D50 white
   21749 point.<wbr/></p>
   21750 <p>Under the first reference illuminant (<a href="#static_android.sensor.referenceIlluminant1">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1</a>)
   21751 this matrix is chosen so that the standard white point for this reference
   21752 illuminant in the reference sensor colorspace is mapped to D50 in the
   21753 CIE XYZ colorspace.<wbr/></p>
   21754             </td>
   21755           </tr>
   21756 
   21757 
   21758           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   21759            <!-- end of entry -->
   21760         
   21761                 
   21762           <tr class="entry" id="static_android.sensor.forwardMatrix2">
   21763             <td class="entry_name
   21764              " rowspan="3">
   21765               android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix2
   21766             </td>
   21767             <td class="entry_type">
   21768                 <span class="entry_type_name">rational</span>
   21769                 <span class="entry_type_container">x</span>
   21770 
   21771                 <span class="entry_type_array">
   21772                   3 x 3
   21773                 </span>
   21774               <span class="entry_type_visibility"> [public as colorSpaceTransform]</span>
   21775 
   21776 
   21777 
   21778 
   21779                 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
   21780 
   21781 
   21782             </td> <!-- entry_type -->
   21783 
   21784             <td class="entry_description">
   21785               <p>A matrix that transforms white balanced camera colors from the reference
   21786 sensor colorspace to the CIE XYZ colorspace with a D50 whitepoint.<wbr/></p>
   21787             </td>
   21788 
   21789             <td class="entry_units">
   21790             </td>
   21791 
   21792             <td class="entry_range">
   21793             </td>
   21794 
   21795             <td class="entry_hal_version">
   21796               <p>3.<wbr/>2</p>
   21797             </td>
   21798 
   21799             <td class="entry_tags">
   21800               <ul class="entry_tags">
   21801                   <li><a href="#tag_RAW">RAW</a></li>
   21802               </ul>
   21803             </td>
   21804 
   21805           </tr>
   21806           <tr class="entries_header">
   21807             <th class="th_details" colspan="6">Details</th>
   21808           </tr>
   21809           <tr class="entry_cont">
   21810             <td class="entry_details" colspan="6">
   21811               <p>This matrix is used to convert to the standard CIE XYZ colorspace,<wbr/> and
   21812 is used when processing raw buffer data.<wbr/></p>
   21813 <p>This matrix is expressed as a 3x3 matrix in row-major-order,<wbr/> and contains
   21814 a color transform matrix that maps white balanced colors from the
   21815 reference sensor color space to the CIE XYZ color space with a D50 white
   21816 point.<wbr/></p>
   21817 <p>Under the second reference illuminant (<a href="#static_android.sensor.referenceIlluminant2">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2</a>)
   21818 this matrix is chosen so that the standard white point for this reference
   21819 illuminant in the reference sensor colorspace is mapped to D50 in the
   21820 CIE XYZ colorspace.<wbr/></p>
   21821 <p>This matrix will only be present if the second reference
   21822 illuminant is present.<wbr/></p>
   21823             </td>
   21824           </tr>
   21825 
   21826 
   21827           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   21828            <!-- end of entry -->
   21829         
   21830                 
   21831           <tr class="entry" id="static_android.sensor.baseGainFactor">
   21832             <td class="entry_name
   21833              " rowspan="1">
   21834               android.<wbr/>sensor.<wbr/>base<wbr/>Gain<wbr/>Factor
   21835             </td>
   21836             <td class="entry_type">
   21837                 <span class="entry_type_name">rational</span>
   21838 
   21839               <span class="entry_type_visibility"> [system]</span>
   21840 
   21841 
   21842 
   21843 
   21844 
   21845 
   21846             </td> <!-- entry_type -->
   21847 
   21848             <td class="entry_description">
   21849               <p>Gain factor from electrons to raw units when
   21850 ISO=100</p>
   21851             </td>
   21852 
   21853             <td class="entry_units">
   21854             </td>
   21855 
   21856             <td class="entry_range">
   21857             </td>
   21858 
   21859             <td class="entry_hal_version">
   21860               <p>3.<wbr/>2</p>
   21861             </td>
   21862 
   21863             <td class="entry_tags">
   21864               <ul class="entry_tags">
   21865                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   21866               </ul>
   21867             </td>
   21868 
   21869           </tr>
   21870 
   21871 
   21872           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   21873            <!-- end of entry -->
   21874         
   21875                 
   21876           <tr class="entry" id="static_android.sensor.blackLevelPattern">
   21877             <td class="entry_name
   21878              " rowspan="5">
   21879               android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern
   21880             </td>
   21881             <td class="entry_type">
   21882                 <span class="entry_type_name">int32</span>
   21883                 <span class="entry_type_container">x</span>
   21884 
   21885                 <span class="entry_type_array">
   21886                   4
   21887                 </span>
   21888               <span class="entry_type_visibility"> [public as blackLevelPattern]</span>
   21889 
   21890 
   21891 
   21892 
   21893                 <div class="entry_type_notes">2x2 raw count block</div>
   21894 
   21895 
   21896             </td> <!-- entry_type -->
   21897 
   21898             <td class="entry_description">
   21899               <p>A fixed black level offset for each of the color filter arrangement
   21900 (CFA) mosaic channels.<wbr/></p>
   21901             </td>
   21902 
   21903             <td class="entry_units">
   21904             </td>
   21905 
   21906             <td class="entry_range">
   21907               <p>&gt;= 0 for each.<wbr/></p>
   21908             </td>
   21909 
   21910             <td class="entry_hal_version">
   21911               <p>3.<wbr/>2</p>
   21912             </td>
   21913 
   21914             <td class="entry_tags">
   21915               <ul class="entry_tags">
   21916                   <li><a href="#tag_RAW">RAW</a></li>
   21917               </ul>
   21918             </td>
   21919 
   21920           </tr>
   21921           <tr class="entries_header">
   21922             <th class="th_details" colspan="6">Details</th>
   21923           </tr>
   21924           <tr class="entry_cont">
   21925             <td class="entry_details" colspan="6">
   21926               <p>This key specifies the zero light value for each of the CFA mosaic
   21927 channels in the camera sensor.<wbr/>  The maximal value output by the
   21928 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>
   21929 <p>The values are given in the same order as channels listed for the CFA
   21930 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
   21931 nth value given corresponds to the black level offset for the nth
   21932 color channel listed in the CFA.<wbr/></p>
   21933 <p>The black level values of captured images may vary for different
   21934 capture settings (e.<wbr/>g.,<wbr/> <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>).<wbr/> This key
   21935 represents a coarse approximation for such case.<wbr/> It is recommended to
   21936 use <a href="#dynamic_android.sensor.dynamicBlackLevel">android.<wbr/>sensor.<wbr/>dynamic<wbr/>Black<wbr/>Level</a> or use pixels from
   21937 <a href="#static_android.sensor.opticalBlackRegions">android.<wbr/>sensor.<wbr/>optical<wbr/>Black<wbr/>Regions</a> directly for captures when
   21938 supported by the camera device,<wbr/> which provides more accurate black
   21939 level values.<wbr/> For raw capture in particular,<wbr/> it is recommended to use
   21940 pixels from <a href="#static_android.sensor.opticalBlackRegions">android.<wbr/>sensor.<wbr/>optical<wbr/>Black<wbr/>Regions</a> to calculate black
   21941 level values for each frame.<wbr/></p>
   21942             </td>
   21943           </tr>
   21944 
   21945           <tr class="entries_header">
   21946             <th class="th_details" colspan="6">HAL Implementation Details</th>
   21947           </tr>
   21948           <tr class="entry_cont">
   21949             <td class="entry_details" colspan="6">
   21950               <p>The values are given in row-column scan order,<wbr/> with the first value
   21951 corresponding to the element of the CFA in row=0,<wbr/> column=0.<wbr/></p>
   21952             </td>
   21953           </tr>
   21954 
   21955           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   21956            <!-- end of entry -->
   21957         
   21958                 
   21959           <tr class="entry" id="static_android.sensor.maxAnalogSensitivity">
   21960             <td class="entry_name
   21961              " rowspan="3">
   21962               android.<wbr/>sensor.<wbr/>max<wbr/>Analog<wbr/>Sensitivity
   21963             </td>
   21964             <td class="entry_type">
   21965                 <span class="entry_type_name">int32</span>
   21966 
   21967               <span class="entry_type_visibility"> [public]</span>
   21968 
   21969 
   21970               <span class="entry_type_hwlevel">[full] </span>
   21971 
   21972 
   21973 
   21974 
   21975             </td> <!-- entry_type -->
   21976 
   21977             <td class="entry_description">
   21978               <p>Maximum sensitivity that is implemented
   21979 purely through analog gain.<wbr/></p>
   21980             </td>
   21981 
   21982             <td class="entry_units">
   21983             </td>
   21984 
   21985             <td class="entry_range">
   21986             </td>
   21987 
   21988             <td class="entry_hal_version">
   21989               <p>3.<wbr/>2</p>
   21990             </td>
   21991 
   21992             <td class="entry_tags">
   21993               <ul class="entry_tags">
   21994                   <li><a href="#tag_V1">V1</a></li>
   21995                   <li><a href="#tag_FULL">FULL</a></li>
   21996               </ul>
   21997             </td>
   21998 
   21999           </tr>
   22000           <tr class="entries_header">
   22001             <th class="th_details" colspan="6">Details</th>
   22002           </tr>
   22003           <tr class="entry_cont">
   22004             <td class="entry_details" colspan="6">
   22005               <p>For <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> values less than or
   22006 equal to this,<wbr/> all applied gain must be analog.<wbr/> For
   22007 values above this,<wbr/> the gain applied can be a mix of analog and
   22008 digital.<wbr/></p>
   22009             </td>
   22010           </tr>
   22011 
   22012 
   22013           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   22014            <!-- end of entry -->
   22015         
   22016                 
   22017           <tr class="entry" id="static_android.sensor.orientation">
   22018             <td class="entry_name
   22019              " rowspan="3">
   22020               android.<wbr/>sensor.<wbr/>orientation
   22021             </td>
   22022             <td class="entry_type">
   22023                 <span class="entry_type_name">int32</span>
   22024 
   22025               <span class="entry_type_visibility"> [public]</span>
   22026 
   22027 
   22028               <span class="entry_type_hwlevel">[legacy] </span>
   22029 
   22030 
   22031 
   22032 
   22033             </td> <!-- entry_type -->
   22034 
   22035             <td class="entry_description">
   22036               <p>Clockwise angle through which the output image needs to be rotated to be
   22037 upright on the device screen in its native orientation.<wbr/></p>
   22038             </td>
   22039 
   22040             <td class="entry_units">
   22041               Degrees of clockwise rotation; always a multiple of
   22042           90
   22043             </td>
   22044 
   22045             <td class="entry_range">
   22046               <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
   22047             </td>
   22048 
   22049             <td class="entry_hal_version">
   22050               <p>3.<wbr/>2</p>
   22051             </td>
   22052 
   22053             <td class="entry_tags">
   22054               <ul class="entry_tags">
   22055                   <li><a href="#tag_BC">BC</a></li>
   22056               </ul>
   22057             </td>
   22058 
   22059           </tr>
   22060           <tr class="entries_header">
   22061             <th class="th_details" colspan="6">Details</th>
   22062           </tr>
   22063           <tr class="entry_cont">
   22064             <td class="entry_details" colspan="6">
   22065               <p>Also defines the direction of rolling shutter readout,<wbr/> which is from top to bottom in
   22066 the sensor's coordinate system.<wbr/></p>
   22067             </td>
   22068           </tr>
   22069 
   22070 
   22071           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   22072            <!-- end of entry -->
   22073         
   22074                 
   22075           <tr class="entry" id="static_android.sensor.profileHueSatMapDimensions">
   22076             <td class="entry_name
   22077              " rowspan="3">
   22078               android.<wbr/>sensor.<wbr/>profile<wbr/>Hue<wbr/>Sat<wbr/>Map<wbr/>Dimensions
   22079             </td>
   22080             <td class="entry_type">
   22081                 <span class="entry_type_name">int32</span>
   22082                 <span class="entry_type_container">x</span>
   22083 
   22084                 <span class="entry_type_array">
   22085                   3
   22086                 </span>
   22087               <span class="entry_type_visibility"> [system]</span>
   22088 
   22089 
   22090 
   22091 
   22092                 <div class="entry_type_notes">Number of samples for hue,<wbr/> saturation,<wbr/> and value</div>
   22093 
   22094 
   22095             </td> <!-- entry_type -->
   22096 
   22097             <td class="entry_description">
   22098               <p>The number of input samples for each dimension of
   22099 <a href="#dynamic_android.sensor.profileHueSatMap">android.<wbr/>sensor.<wbr/>profile<wbr/>Hue<wbr/>Sat<wbr/>Map</a>.<wbr/></p>
   22100             </td>
   22101 
   22102             <td class="entry_units">
   22103             </td>
   22104 
   22105             <td class="entry_range">
   22106               <p>Hue &gt;= 1,<wbr/>
   22107 Saturation &gt;= 2,<wbr/>
   22108 Value &gt;= 1</p>
   22109             </td>
   22110 
   22111             <td class="entry_hal_version">
   22112               <p>3.<wbr/>2</p>
   22113             </td>
   22114 
   22115             <td class="entry_tags">
   22116               <ul class="entry_tags">
   22117                   <li><a href="#tag_RAW">RAW</a></li>
   22118               </ul>
   22119             </td>
   22120 
   22121           </tr>
   22122           <tr class="entries_header">
   22123             <th class="th_details" colspan="6">Details</th>
   22124           </tr>
   22125           <tr class="entry_cont">
   22126             <td class="entry_details" colspan="6">
   22127               <p>The number of input samples for the hue,<wbr/> saturation,<wbr/> and value
   22128 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
   22129 dimensions given is hue,<wbr/> saturation,<wbr/> value; where hue is the 0th
   22130 element.<wbr/></p>
   22131             </td>
   22132           </tr>
   22133 
   22134 
   22135           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   22136            <!-- end of entry -->
   22137         
   22138                 
   22139           <tr class="entry" id="static_android.sensor.availableTestPatternModes">
   22140             <td class="entry_name
   22141              " rowspan="5">
   22142               android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes
   22143             </td>
   22144             <td class="entry_type">
   22145                 <span class="entry_type_name">int32</span>
   22146                 <span class="entry_type_container">x</span>
   22147 
   22148                 <span class="entry_type_array">
   22149                   n
   22150                 </span>
   22151               <span class="entry_type_visibility"> [public]</span>
   22152 
   22153 
   22154 
   22155 
   22156                 <div class="entry_type_notes">list of enums</div>
   22157 
   22158 
   22159             </td> <!-- entry_type -->
   22160 
   22161             <td class="entry_description">
   22162               <p>List of sensor test pattern modes for <a href="#controls_android.sensor.testPatternMode">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode</a>
   22163 supported by this camera device.<wbr/></p>
   22164             </td>
   22165 
   22166             <td class="entry_units">
   22167             </td>
   22168 
   22169             <td class="entry_range">
   22170               <p>Any value listed in <a href="#controls_android.sensor.testPatternMode">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode</a></p>
   22171             </td>
   22172 
   22173             <td class="entry_hal_version">
   22174               <p>3.<wbr/>2</p>
   22175             </td>
   22176 
   22177             <td class="entry_tags">
   22178             </td>
   22179 
   22180           </tr>
   22181           <tr class="entries_header">
   22182             <th class="th_details" colspan="6">Details</th>
   22183           </tr>
   22184           <tr class="entry_cont">
   22185             <td class="entry_details" colspan="6">
   22186               <p>Defaults to OFF,<wbr/> and always includes OFF if defined.<wbr/></p>
   22187             </td>
   22188           </tr>
   22189 
   22190           <tr class="entries_header">
   22191             <th class="th_details" colspan="6">HAL Implementation Details</th>
   22192           </tr>
   22193           <tr class="entry_cont">
   22194             <td class="entry_details" colspan="6">
   22195               <p>All custom modes must be &gt;= CUSTOM1.<wbr/></p>
   22196             </td>
   22197           </tr>
   22198 
   22199           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   22200            <!-- end of entry -->
   22201         
   22202                 
   22203           <tr class="entry" id="static_android.sensor.opticalBlackRegions">
   22204             <td class="entry_name
   22205              " rowspan="5">
   22206               android.<wbr/>sensor.<wbr/>optical<wbr/>Black<wbr/>Regions
   22207             </td>
   22208             <td class="entry_type">
   22209                 <span class="entry_type_name">int32</span>
   22210                 <span class="entry_type_container">x</span>
   22211 
   22212                 <span class="entry_type_array">
   22213                   4 x num_regions
   22214                 </span>
   22215               <span class="entry_type_visibility"> [public as rectangle]</span>
   22216 
   22217 
   22218 
   22219 
   22220 
   22221 
   22222             </td> <!-- entry_type -->
   22223 
   22224             <td class="entry_description">
   22225               <p>List of disjoint rectangles indicating the sensor
   22226 optically shielded black pixel regions.<wbr/></p>
   22227             </td>
   22228 
   22229             <td class="entry_units">
   22230             </td>
   22231 
   22232             <td class="entry_range">
   22233             </td>
   22234 
   22235             <td class="entry_hal_version">
   22236               <p>3.<wbr/>2</p>
   22237             </td>
   22238 
   22239             <td class="entry_tags">
   22240             </td>
   22241 
   22242           </tr>
   22243           <tr class="entries_header">
   22244             <th class="th_details" colspan="6">Details</th>
   22245           </tr>
   22246           <tr class="entry_cont">
   22247             <td class="entry_details" colspan="6">
   22248               <p>In most camera sensors,<wbr/> the active array is surrounded by some
   22249 optically shielded pixel areas.<wbr/> By blocking light,<wbr/> these pixels
   22250 provides a reliable black reference for black level compensation
   22251 in active array region.<wbr/></p>
   22252 <p>This key provides a list of disjoint rectangles specifying the
   22253 regions of optically shielded (with metal shield) black pixel
   22254 regions if the camera device is capable of reading out these black
   22255 pixels in the output raw images.<wbr/> In comparison to the fixed black
   22256 level values reported by <a href="#static_android.sensor.blackLevelPattern">android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern</a>,<wbr/> this key
   22257 may provide a more accurate way for the application to calculate
   22258 black level of each captured raw images.<wbr/></p>
   22259 <p>When this key is reported,<wbr/> the <a href="#dynamic_android.sensor.dynamicBlackLevel">android.<wbr/>sensor.<wbr/>dynamic<wbr/>Black<wbr/>Level</a> and
   22260 <a href="#dynamic_android.sensor.dynamicWhiteLevel">android.<wbr/>sensor.<wbr/>dynamic<wbr/>White<wbr/>Level</a> will also be reported.<wbr/></p>
   22261             </td>
   22262           </tr>
   22263 
   22264           <tr class="entries_header">
   22265             <th class="th_details" colspan="6">HAL Implementation Details</th>
   22266           </tr>
   22267           <tr class="entry_cont">
   22268             <td class="entry_details" colspan="6">
   22269               <p>This array contains (xmin,<wbr/> ymin,<wbr/> width,<wbr/> height).<wbr/> The (xmin,<wbr/> ymin)
   22270 must be &gt;= (0,<wbr/>0) and &lt;=
   22271 <a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a>.<wbr/> The (width,<wbr/> height) must be
   22272 &lt;= <a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a>.<wbr/> Each region must be
   22273 outside the region reported by
   22274 <a href="#static_android.sensor.info.preCorrectionActiveArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pre<wbr/>Correction<wbr/>Active<wbr/>Array<wbr/>Size</a>.<wbr/></p>
   22275 <p>The HAL must report minimal number of disjoint regions for the
   22276 optically shielded back pixel regions.<wbr/> For example,<wbr/> if a region can
   22277 be covered by one rectangle,<wbr/> the HAL must not split this region into
   22278 multiple rectangles.<wbr/></p>
   22279             </td>
   22280           </tr>
   22281 
   22282           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   22283            <!-- end of entry -->
   22284         
   22285                 
   22286           <tr class="entry" id="static_android.sensor.opaqueRawSize">
   22287             <td class="entry_name
   22288              " rowspan="5">
   22289               android.<wbr/>sensor.<wbr/>opaque<wbr/>Raw<wbr/>Size
   22290             </td>
   22291             <td class="entry_type">
   22292                 <span class="entry_type_name">int32</span>
   22293                 <span class="entry_type_container">x</span>
   22294 
   22295                 <span class="entry_type_array">
   22296                   n x 3
   22297                 </span>
   22298               <span class="entry_type_visibility"> [system]</span>
   22299 
   22300 
   22301 
   22302 
   22303 
   22304 
   22305             </td> <!-- entry_type -->
   22306 
   22307             <td class="entry_description">
   22308               <p>Size in bytes for all the listed opaque RAW buffer sizes</p>
   22309             </td>
   22310 
   22311             <td class="entry_units">
   22312             </td>
   22313 
   22314             <td class="entry_range">
   22315               <p>Must be large enough to fit the opaque RAW of corresponding size produced by
   22316 the camera</p>
   22317             </td>
   22318 
   22319             <td class="entry_hal_version">
   22320               <p>3.<wbr/>2</p>
   22321             </td>
   22322 
   22323             <td class="entry_tags">
   22324             </td>
   22325 
   22326           </tr>
   22327           <tr class="entries_header">
   22328             <th class="th_details" colspan="6">Details</th>
   22329           </tr>
   22330           <tr class="entry_cont">
   22331             <td class="entry_details" colspan="6">
   22332               <p>This configurations are listed as <code>(width,<wbr/> height,<wbr/> size_<wbr/>in_<wbr/>bytes)</code> tuples.<wbr/>
   22333 This is used for sizing the gralloc buffers for opaque RAW buffers.<wbr/>
   22334 All RAW_<wbr/>OPAQUE output stream configuration listed in
   22335 <a href="#static_android.scaler.availableStreamConfigurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stream<wbr/>Configurations</a> will have a corresponding tuple in
   22336 this key.<wbr/></p>
   22337             </td>
   22338           </tr>
   22339 
   22340           <tr class="entries_header">
   22341             <th class="th_details" colspan="6">HAL Implementation Details</th>
   22342           </tr>
   22343           <tr class="entry_cont">
   22344             <td class="entry_details" colspan="6">
   22345               <p>This key is added in legacy HAL3.<wbr/>4.<wbr/></p>
   22346 <p>For legacy HAL3.<wbr/>4 or above: devices advertising RAW_<wbr/>OPAQUE format output must list this
   22347 key.<wbr/>  For legacy HAL3.<wbr/>3 or earlier devices: if RAW_<wbr/>OPAQUE ouput is advertised,<wbr/> camera
   22348 framework will derive this key by assuming each pixel takes two bytes and no padding bytes
   22349 between rows.<wbr/></p>
   22350             </td>
   22351           </tr>
   22352 
   22353           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   22354            <!-- end of entry -->
   22355         
   22356         
   22357 
   22358       <!-- end of kind -->
   22359       </tbody>
   22360       <tr><td colspan="7" class="kind">dynamic</td></tr>
   22361 
   22362       <thead class="entries_header">
   22363         <tr>
   22364           <th class="th_name">Property Name</th>
   22365           <th class="th_type">Type</th>
   22366           <th class="th_description">Description</th>
   22367           <th class="th_units">Units</th>
   22368           <th class="th_range">Range</th>
   22369           <th class="th_hal_version">Initial HIDL HAL version</th>
   22370           <th class="th_tags">Tags</th>
   22371         </tr>
   22372       </thead>
   22373 
   22374       <tbody>
   22375 
   22376         
   22377 
   22378         
   22379 
   22380         
   22381 
   22382         
   22383 
   22384                 
   22385           <tr class="entry" id="dynamic_android.sensor.exposureTime">
   22386             <td class="entry_name
   22387              " rowspan="3">
   22388               android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
   22389             </td>
   22390             <td class="entry_type">
   22391                 <span class="entry_type_name">int64</span>
   22392 
   22393               <span class="entry_type_visibility"> [public]</span>
   22394 
   22395 
   22396               <span class="entry_type_hwlevel">[full] </span>
   22397 
   22398 
   22399 
   22400 
   22401             </td> <!-- entry_type -->
   22402 
   22403             <td class="entry_description">
   22404               <p>Duration each pixel is exposed to
   22405 light.<wbr/></p>
   22406             </td>
   22407 
   22408             <td class="entry_units">
   22409               Nanoseconds
   22410             </td>
   22411 
   22412             <td class="entry_range">
   22413               <p><a href="#static_android.sensor.info.exposureTimeRange">android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range</a></p>
   22414             </td>
   22415 
   22416             <td class="entry_hal_version">
   22417               <p>3.<wbr/>2</p>
   22418             </td>
   22419 
   22420             <td class="entry_tags">
   22421               <ul class="entry_tags">
   22422                   <li><a href="#tag_V1">V1</a></li>
   22423               </ul>
   22424             </td>
   22425 
   22426           </tr>
   22427           <tr class="entries_header">
   22428             <th class="th_details" colspan="6">Details</th>
   22429           </tr>
   22430           <tr class="entry_cont">
   22431             <td class="entry_details" colspan="6">
   22432               <p>If the sensor can't expose this exact duration,<wbr/> it will shorten the
   22433 duration exposed to the nearest possible value (rather than expose longer).<wbr/>
   22434 The final exposure time used will be available in the output capture result.<wbr/></p>
   22435 <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
   22436 OFF; otherwise the auto-exposure algorithm will override this value.<wbr/></p>
   22437             </td>
   22438           </tr>
   22439 
   22440 
   22441           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   22442            <!-- end of entry -->
   22443         
   22444                 
   22445           <tr class="entry" id="dynamic_android.sensor.frameDuration">
   22446             <td class="entry_name
   22447              " rowspan="5">
   22448               android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
   22449             </td>
   22450             <td class="entry_type">
   22451                 <span class="entry_type_name">int64</span>
   22452 
   22453               <span class="entry_type_visibility"> [public]</span>
   22454 
   22455 
   22456               <span class="entry_type_hwlevel">[full] </span>
   22457 
   22458 
   22459 
   22460 
   22461             </td> <!-- entry_type -->
   22462 
   22463             <td class="entry_description">
   22464               <p>Duration from start of frame exposure to
   22465 start of next frame exposure.<wbr/></p>
   22466             </td>
   22467 
   22468             <td class="entry_units">
   22469               Nanoseconds
   22470             </td>
   22471 
   22472             <td class="entry_range">
   22473               <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/> <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html">StreamConfigurationMap</a>.<wbr/>
   22474 The duration is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
   22475             </td>
   22476 
   22477             <td class="entry_hal_version">
   22478               <p>3.<wbr/>2</p>
   22479             </td>
   22480 
   22481             <td class="entry_tags">
   22482               <ul class="entry_tags">
   22483                   <li><a href="#tag_V1">V1</a></li>
   22484               </ul>
   22485             </td>
   22486 
   22487           </tr>
   22488           <tr class="entries_header">
   22489             <th class="th_details" colspan="6">Details</th>
   22490           </tr>
   22491           <tr class="entry_cont">
   22492             <td class="entry_details" colspan="6">
   22493               <p>The maximum frame rate that can be supported by a camera subsystem is
   22494 a function of many factors:</p>
   22495 <ul>
   22496 <li>Requested resolutions of output image streams</li>
   22497 <li>Availability of binning /<wbr/> skipping modes on the imager</li>
   22498 <li>The bandwidth of the imager interface</li>
   22499 <li>The bandwidth of the various ISP processing blocks</li>
   22500 </ul>
   22501 <p>Since these factors can vary greatly between different ISPs and
   22502 sensors,<wbr/> the camera abstraction tries to represent the bandwidth
   22503 restrictions with as simple a model as possible.<wbr/></p>
   22504 <p>The model presented has the following characteristics:</p>
   22505 <ul>
   22506 <li>The image sensor is always configured to output the smallest
   22507 resolution possible given the application's requested output stream
   22508 sizes.<wbr/>  The smallest resolution is defined as being at least as large
   22509 as the largest requested output stream size; the camera pipeline must
   22510 never digitally upsample sensor data when the crop region covers the
   22511 whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
   22512 resolutions are configured,<wbr/> the sensor can provide a higher frame
   22513 rate.<wbr/></li>
   22514 <li>Since any request may use any or all the currently configured
   22515 output streams,<wbr/> the sensor and ISP must be configured to support
   22516 scaling a single capture to all the streams at the same time.<wbr/>  This
   22517 means the camera pipeline must be ready to produce the largest
   22518 requested output size without any delay.<wbr/>  Therefore,<wbr/> the overall
   22519 frame rate of a given configured stream set is governed only by the
   22520 largest requested stream resolution.<wbr/></li>
   22521 <li>Using more than one output stream in a request does not affect the
   22522 frame duration.<wbr/></li>
   22523 <li>Certain format-streams may need to do additional background processing
   22524 before data is consumed/<wbr/>produced by that stream.<wbr/> These processors
   22525 can run concurrently to the rest of the camera pipeline,<wbr/> but
   22526 cannot process more than 1 capture at a time.<wbr/></li>
   22527 </ul>
   22528 <p>The necessary information for the application,<wbr/> given the model above,<wbr/> is provided via
   22529 <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputMinFrameDuration">StreamConfigurationMap#getOutputMinFrameDuration</a>.<wbr/>
   22530 These are used to determine the maximum frame rate /<wbr/> minimum frame duration that is
   22531 possible for a given stream configuration.<wbr/></p>
   22532 <p>Specifically,<wbr/> the application can use the following rules to
   22533 determine the minimum frame duration it can request from the camera
   22534 device:</p>
   22535 <ol>
   22536 <li>Let the set of currently configured input/<wbr/>output streams be called <code>S</code>.<wbr/></li>
   22537 <li>Find the minimum frame durations for each stream in <code>S</code>,<wbr/> by looking it up in <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputMinFrameDuration">StreamConfigurationMap#getOutputMinFrameDuration</a>
   22538 (with its respective size/<wbr/>format).<wbr/> Let this set of frame durations be called <code>F</code>.<wbr/></li>
   22539 <li>For any given request <code>R</code>,<wbr/> the minimum frame duration allowed for <code>R</code> is the maximum
   22540 out of all values in <code>F</code>.<wbr/> Let the streams used in <code>R</code> be called <code>S_<wbr/>r</code>.<wbr/></li>
   22541 </ol>
   22542 <p>If none of the streams in <code>S_<wbr/>r</code> have a stall time (listed in <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputStallDuration">StreamConfigurationMap#getOutputStallDuration</a>
   22543 using its respective size/<wbr/>format),<wbr/> then the frame duration in <code>F</code> determines the steady
   22544 state frame rate that the application will get if it uses <code>R</code> as a repeating request.<wbr/> Let
   22545 this special kind of request be called <code>Rsimple</code>.<wbr/></p>
   22546 <p>A repeating request <code>Rsimple</code> can be <em>occasionally</em> interleaved by a single capture of a
   22547 new request <code>Rstall</code> (which has at least one in-use stream with a non-0 stall time) and if
   22548 <code>Rstall</code> has the same minimum frame duration this will not cause a frame rate loss if all
   22549 buffers from the previous <code>Rstall</code> have already been delivered.<wbr/></p>
   22550 <p>For more details about stalling,<wbr/> see <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputStallDuration">StreamConfigurationMap#getOutputStallDuration</a>.<wbr/></p>
   22551 <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
   22552 OFF; otherwise the auto-exposure algorithm will override this value.<wbr/></p>
   22553             </td>
   22554           </tr>
   22555 
   22556           <tr class="entries_header">
   22557             <th class="th_details" colspan="6">HAL Implementation Details</th>
   22558           </tr>
   22559           <tr class="entry_cont">
   22560             <td class="entry_details" colspan="6">
   22561               <p>For more details about stalling,<wbr/> see
   22562 <a href="#static_android.scaler.availableStallDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stall<wbr/>Durations</a>.<wbr/></p>
   22563             </td>
   22564           </tr>
   22565 
   22566           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   22567            <!-- end of entry -->
   22568         
   22569                 
   22570           <tr class="entry" id="dynamic_android.sensor.sensitivity">
   22571             <td class="entry_name
   22572              " rowspan="5">
   22573               android.<wbr/>sensor.<wbr/>sensitivity
   22574             </td>
   22575             <td class="entry_type">
   22576                 <span class="entry_type_name">int32</span>
   22577 
   22578               <span class="entry_type_visibility"> [public]</span>
   22579 
   22580 
   22581               <span class="entry_type_hwlevel">[full] </span>
   22582 
   22583 
   22584 
   22585 
   22586             </td> <!-- entry_type -->
   22587 
   22588             <td class="entry_description">
   22589               <p>The amount of gain applied to sensor data
   22590 before processing.<wbr/></p>
   22591             </td>
   22592 
   22593             <td class="entry_units">
   22594               ISO arithmetic units
   22595             </td>
   22596 
   22597             <td class="entry_range">
   22598               <p><a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a></p>
   22599             </td>
   22600 
   22601             <td class="entry_hal_version">
   22602               <p>3.<wbr/>2</p>
   22603             </td>
   22604 
   22605             <td class="entry_tags">
   22606               <ul class="entry_tags">
   22607                   <li><a href="#tag_V1">V1</a></li>
   22608               </ul>
   22609             </td>
   22610 
   22611           </tr>
   22612           <tr class="entries_header">
   22613             <th class="th_details" colspan="6">Details</th>
   22614           </tr>
   22615           <tr class="entry_cont">
   22616             <td class="entry_details" colspan="6">
   22617               <p>The sensitivity is the standard ISO sensitivity value,<wbr/>
   22618 as defined in ISO 12232:2006.<wbr/></p>
   22619 <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
   22620 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
   22621 is guaranteed to use only analog amplification for applying the gain.<wbr/></p>
   22622 <p>If the camera device cannot apply the exact sensitivity
   22623 requested,<wbr/> it will reduce the gain to the nearest supported
   22624 value.<wbr/> The final sensitivity used will be available in the
   22625 output capture result.<wbr/></p>
   22626 <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
   22627 OFF; otherwise the auto-exposure algorithm will override this value.<wbr/></p>
   22628             </td>
   22629           </tr>
   22630 
   22631           <tr class="entries_header">
   22632             <th class="th_details" colspan="6">HAL Implementation Details</th>
   22633           </tr>
   22634           <tr class="entry_cont">
   22635             <td class="entry_details" colspan="6">
   22636               <p>ISO 12232:2006 REI method is acceptable.<wbr/></p>
   22637             </td>
   22638           </tr>
   22639 
   22640           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   22641            <!-- end of entry -->
   22642         
   22643                 
   22644           <tr class="entry" id="dynamic_android.sensor.timestamp">
   22645             <td class="entry_name
   22646              " rowspan="5">
   22647               android.<wbr/>sensor.<wbr/>timestamp
   22648             </td>
   22649             <td class="entry_type">
   22650                 <span class="entry_type_name">int64</span>
   22651 
   22652               <span class="entry_type_visibility"> [public]</span>
   22653 
   22654 
   22655               <span class="entry_type_hwlevel">[legacy] </span>
   22656 
   22657 
   22658 
   22659 
   22660             </td> <!-- entry_type -->
   22661 
   22662             <td class="entry_description">
   22663               <p>Time at start of exposure of first
   22664 row of the image sensor active array,<wbr/> in nanoseconds.<wbr/></p>
   22665             </td>
   22666 
   22667             <td class="entry_units">
   22668               Nanoseconds
   22669             </td>
   22670 
   22671             <td class="entry_range">
   22672               <p>&gt; 0</p>
   22673             </td>
   22674 
   22675             <td class="entry_hal_version">
   22676               <p>3.<wbr/>2</p>
   22677             </td>
   22678 
   22679             <td class="entry_tags">
   22680               <ul class="entry_tags">
   22681                   <li><a href="#tag_BC">BC</a></li>
   22682               </ul>
   22683             </td>
   22684 
   22685           </tr>
   22686           <tr class="entries_header">
   22687             <th class="th_details" colspan="6">Details</th>
   22688           </tr>
   22689           <tr class="entry_cont">
   22690             <td class="entry_details" colspan="6">
   22691               <p>The timestamps are also included in all image
   22692 buffers produced for the same capture,<wbr/> and will be identical
   22693 on all the outputs.<wbr/></p>
   22694 <p>When <a href="#static_android.sensor.info.timestampSource">android.<wbr/>sensor.<wbr/>info.<wbr/>timestamp<wbr/>Source</a> <code>==</code> UNKNOWN,<wbr/>
   22695 the timestamps measure time since an unspecified starting point,<wbr/>
   22696 and are monotonically increasing.<wbr/> They can be compared with the
   22697 timestamps for other captures from the same camera device,<wbr/> but are
   22698 not guaranteed to be comparable to any other time source.<wbr/></p>
   22699 <p>When <a href="#static_android.sensor.info.timestampSource">android.<wbr/>sensor.<wbr/>info.<wbr/>timestamp<wbr/>Source</a> <code>==</code> REALTIME,<wbr/> the
   22700 timestamps measure time in the same timebase as <a href="https://developer.android.com/reference/android/os/SystemClock.html#elapsedRealtimeNanos">SystemClock#elapsedRealtimeNanos</a>,<wbr/> and they can
   22701 be compared to other timestamps from other subsystems that
   22702 are using that base.<wbr/></p>
   22703 <p>For reprocessing,<wbr/> the timestamp will match the start of exposure of
   22704 the input image,<wbr/> i.<wbr/>e.<wbr/> <a href="https://developer.android.com/reference/CaptureResult.html#SENSOR_TIMESTAMP">the
   22705 timestamp</a> in the TotalCaptureResult that was used to create the
   22706 reprocess capture request.<wbr/></p>
   22707             </td>
   22708           </tr>
   22709 
   22710           <tr class="entries_header">
   22711             <th class="th_details" colspan="6">HAL Implementation Details</th>
   22712           </tr>
   22713           <tr class="entry_cont">
   22714             <td class="entry_details" colspan="6">
   22715               <p>All timestamps must be in reference to the kernel's
   22716 CLOCK_<wbr/>BOOTTIME monotonic clock,<wbr/> which properly accounts for
   22717 time spent asleep.<wbr/> This allows for synchronization with
   22718 sensors that continue to operate while the system is
   22719 otherwise asleep.<wbr/></p>
   22720 <p>If <a href="#static_android.sensor.info.timestampSource">android.<wbr/>sensor.<wbr/>info.<wbr/>timestamp<wbr/>Source</a> <code>==</code> REALTIME,<wbr/>
   22721 The timestamp must be synchronized with the timestamps from other
   22722 sensor subsystems that are using the same timebase.<wbr/></p>
   22723 <p>For reprocessing,<wbr/> the input image's start of exposure can be looked up
   22724 with <a href="#dynamic_android.sensor.timestamp">android.<wbr/>sensor.<wbr/>timestamp</a> from the metadata included in the
   22725 capture request.<wbr/></p>
   22726             </td>
   22727           </tr>
   22728 
   22729           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   22730            <!-- end of entry -->
   22731         
   22732                 
   22733           <tr class="entry" id="dynamic_android.sensor.temperature">
   22734             <td class="entry_name
   22735              " rowspan="1">
   22736               android.<wbr/>sensor.<wbr/>temperature
   22737             </td>
   22738             <td class="entry_type">
   22739                 <span class="entry_type_name">float</span>
   22740 
   22741               <span class="entry_type_visibility"> [system]</span>
   22742 
   22743 
   22744 
   22745 
   22746 
   22747 
   22748             </td> <!-- entry_type -->
   22749 
   22750             <td class="entry_description">
   22751               <p>The temperature of the sensor,<wbr/> sampled at the time
   22752 exposure began for this frame.<wbr/></p>
   22753 <p>The thermal diode being queried should be inside the sensor PCB,<wbr/> or
   22754 somewhere close to it.<wbr/></p>
   22755             </td>
   22756 
   22757             <td class="entry_units">
   22758               Celsius
   22759             </td>
   22760 
   22761             <td class="entry_range">
   22762               <p>Optional.<wbr/> This value is missing if no temperature is available.<wbr/></p>
   22763             </td>
   22764 
   22765             <td class="entry_hal_version">
   22766               <p>3.<wbr/>2</p>
   22767             </td>
   22768 
   22769             <td class="entry_tags">
   22770               <ul class="entry_tags">
   22771                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   22772               </ul>
   22773             </td>
   22774 
   22775           </tr>
   22776 
   22777 
   22778           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   22779            <!-- end of entry -->
   22780         
   22781                 
   22782           <tr class="entry" id="dynamic_android.sensor.neutralColorPoint">
   22783             <td class="entry_name
   22784              " rowspan="3">
   22785               android.<wbr/>sensor.<wbr/>neutral<wbr/>Color<wbr/>Point
   22786             </td>
   22787             <td class="entry_type">
   22788                 <span class="entry_type_name">rational</span>
   22789                 <span class="entry_type_container">x</span>
   22790 
   22791                 <span class="entry_type_array">
   22792                   3
   22793                 </span>
   22794               <span class="entry_type_visibility"> [public]</span>
   22795 
   22796 
   22797 
   22798 
   22799 
   22800 
   22801             </td> <!-- entry_type -->
   22802 
   22803             <td class="entry_description">
   22804               <p>The estimated camera neutral color in the native sensor colorspace at
   22805 the time of capture.<wbr/></p>
   22806             </td>
   22807 
   22808             <td class="entry_units">
   22809             </td>
   22810 
   22811             <td class="entry_range">
   22812             </td>
   22813 
   22814             <td class="entry_hal_version">
   22815               <p>3.<wbr/>2</p>
   22816             </td>
   22817 
   22818             <td class="entry_tags">
   22819               <ul class="entry_tags">
   22820                   <li><a href="#tag_RAW">RAW</a></li>
   22821               </ul>
   22822             </td>
   22823 
   22824           </tr>
   22825           <tr class="entries_header">
   22826             <th class="th_details" colspan="6">Details</th>
   22827           </tr>
   22828           <tr class="entry_cont">
   22829             <td class="entry_details" colspan="6">
   22830               <p>This value gives the neutral color point encoded as an RGB value in the
   22831 native sensor color space.<wbr/>  The neutral color point indicates the
   22832 currently estimated white point of the scene illumination.<wbr/>  It can be
   22833 used to interpolate between the provided color transforms when
   22834 processing raw sensor data.<wbr/></p>
   22835 <p>The order of the values is R,<wbr/> G,<wbr/> B; where R is in the lowest index.<wbr/></p>
   22836             </td>
   22837           </tr>
   22838 
   22839 
   22840           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   22841            <!-- end of entry -->
   22842         
   22843                 
   22844           <tr class="entry" id="dynamic_android.sensor.noiseProfile">
   22845             <td class="entry_name
   22846              " rowspan="5">
   22847               android.<wbr/>sensor.<wbr/>noise<wbr/>Profile
   22848             </td>
   22849             <td class="entry_type">
   22850                 <span class="entry_type_name">double</span>
   22851                 <span class="entry_type_container">x</span>
   22852 
   22853                 <span class="entry_type_array">
   22854                   2 x CFA Channels
   22855                 </span>
   22856               <span class="entry_type_visibility"> [public as pairDoubleDouble]</span>
   22857 
   22858 
   22859 
   22860 
   22861                 <div class="entry_type_notes">Pairs of noise model coefficients</div>
   22862 
   22863 
   22864             </td> <!-- entry_type -->
   22865 
   22866             <td class="entry_description">
   22867               <p>Noise model coefficients for each CFA mosaic channel.<wbr/></p>
   22868             </td>
   22869 
   22870             <td class="entry_units">
   22871             </td>
   22872 
   22873             <td class="entry_range">
   22874             </td>
   22875 
   22876             <td class="entry_hal_version">
   22877               <p>3.<wbr/>2</p>
   22878             </td>
   22879 
   22880             <td class="entry_tags">
   22881               <ul class="entry_tags">
   22882                   <li><a href="#tag_RAW">RAW</a></li>
   22883               </ul>
   22884             </td>
   22885 
   22886           </tr>
   22887           <tr class="entries_header">
   22888             <th class="th_details" colspan="6">Details</th>
   22889           </tr>
   22890           <tr class="entry_cont">
   22891             <td class="entry_details" colspan="6">
   22892               <p>This key contains two noise model coefficients for each CFA channel
   22893 corresponding to the sensor amplification (S) and sensor readout
   22894 noise (O).<wbr/>  These are given as pairs of coefficients for each channel
   22895 in the same order as channels listed for the CFA layout key
   22896 (see <a href="#static_android.sensor.info.colorFilterArrangement">android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement</a>).<wbr/>  This is
   22897 represented as an array of Pair&lt;Double,<wbr/> Double&gt;,<wbr/> where
   22898 the first member of the Pair at index n is the S coefficient and the
   22899 second member is the O coefficient for the nth color channel in the CFA.<wbr/></p>
   22900 <p>These coefficients are used in a two parameter noise model to describe
   22901 the amount of noise present in the image for each CFA channel.<wbr/>  The
   22902 noise model used here is:</p>
   22903 <p>N(x) = sqrt(Sx + O)</p>
   22904 <p>Where x represents the recorded signal of a CFA channel normalized to
   22905 the range [0,<wbr/> 1],<wbr/> and S and O are the noise model coeffiecients for
   22906 that channel.<wbr/></p>
   22907 <p>A more detailed description of the noise model can be found in the
   22908 Adobe DNG specification for the NoiseProfile tag.<wbr/></p>
   22909             </td>
   22910           </tr>
   22911 
   22912           <tr class="entries_header">
   22913             <th class="th_details" colspan="6">HAL Implementation Details</th>
   22914           </tr>
   22915           <tr class="entry_cont">
   22916             <td class="entry_details" colspan="6">
   22917               <p>For a CFA layout of RGGB,<wbr/> the list of coefficients would be given as
   22918 an array of doubles S0,<wbr/>O0,<wbr/>S1,<wbr/>O1,...,<wbr/> where S0 and O0 are the coefficients
   22919 for the red channel,<wbr/> S1 and O1 are the coefficients for the first green
   22920 channel,<wbr/> etc.<wbr/></p>
   22921             </td>
   22922           </tr>
   22923 
   22924           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   22925            <!-- end of entry -->
   22926         
   22927                 
   22928           <tr class="entry" id="dynamic_android.sensor.profileHueSatMap">
   22929             <td class="entry_name
   22930              " rowspan="3">
   22931               android.<wbr/>sensor.<wbr/>profile<wbr/>Hue<wbr/>Sat<wbr/>Map
   22932             </td>
   22933             <td class="entry_type">
   22934                 <span class="entry_type_name">float</span>
   22935                 <span class="entry_type_container">x</span>
   22936 
   22937                 <span class="entry_type_array">
   22938                   hue_samples x saturation_samples x value_samples x 3
   22939                 </span>
   22940               <span class="entry_type_visibility"> [system]</span>
   22941 
   22942 
   22943 
   22944 
   22945                 <div class="entry_type_notes">Mapping for hue,<wbr/> saturation,<wbr/> and value</div>
   22946 
   22947 
   22948             </td> <!-- entry_type -->
   22949 
   22950             <td class="entry_description">
   22951               <p>A mapping containing a hue shift,<wbr/> saturation scale,<wbr/> and value scale
   22952 for each pixel.<wbr/></p>
   22953             </td>
   22954 
   22955             <td class="entry_units">
   22956               
   22957           The hue shift is given in degrees; saturation and value scale factors are
   22958           unitless and are between 0 and 1 inclusive
   22959           
   22960             </td>
   22961 
   22962             <td class="entry_range">
   22963             </td>
   22964 
   22965             <td class="entry_hal_version">
   22966               <p>3.<wbr/>2</p>
   22967             </td>
   22968 
   22969             <td class="entry_tags">
   22970               <ul class="entry_tags">
   22971                   <li><a href="#tag_RAW">RAW</a></li>
   22972               </ul>
   22973             </td>
   22974 
   22975           </tr>
   22976           <tr class="entries_header">
   22977             <th class="th_details" colspan="6">Details</th>
   22978           </tr>
   22979           <tr class="entry_cont">
   22980             <td class="entry_details" colspan="6">
   22981               <p>hue_<wbr/>samples,<wbr/> saturation_<wbr/>samples,<wbr/> and value_<wbr/>samples are given in
   22982 <a href="#static_android.sensor.profileHueSatMapDimensions">android.<wbr/>sensor.<wbr/>profile<wbr/>Hue<wbr/>Sat<wbr/>Map<wbr/>Dimensions</a>.<wbr/></p>
   22983 <p>Each entry of this map contains three floats corresponding to the
   22984 hue shift,<wbr/> saturation scale,<wbr/> and value scale,<wbr/> respectively; where the
   22985 hue shift has the lowest index.<wbr/> The map entries are stored in the key
   22986 in nested loop order,<wbr/> with the value divisions in the outer loop,<wbr/> the
   22987 hue divisions in the middle loop,<wbr/> and the saturation divisions in the
   22988 inner loop.<wbr/> All zero input saturation entries are required to have a
   22989 value scale factor of 1.<wbr/>0.<wbr/></p>
   22990             </td>
   22991           </tr>
   22992 
   22993 
   22994           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   22995            <!-- end of entry -->
   22996         
   22997                 
   22998           <tr class="entry" id="dynamic_android.sensor.profileToneCurve">
   22999             <td class="entry_name
   23000              " rowspan="3">
   23001               android.<wbr/>sensor.<wbr/>profile<wbr/>Tone<wbr/>Curve
   23002             </td>
   23003             <td class="entry_type">
   23004                 <span class="entry_type_name">float</span>
   23005                 <span class="entry_type_container">x</span>
   23006 
   23007                 <span class="entry_type_array">
   23008                   samples x 2
   23009                 </span>
   23010               <span class="entry_type_visibility"> [system]</span>
   23011 
   23012 
   23013 
   23014 
   23015                 <div class="entry_type_notes">Samples defining a spline for a tone-mapping curve</div>
   23016 
   23017 
   23018             </td> <!-- entry_type -->
   23019 
   23020             <td class="entry_description">
   23021               <p>A list of x,<wbr/>y samples defining a tone-mapping curve for gamma adjustment.<wbr/></p>
   23022             </td>
   23023 
   23024             <td class="entry_units">
   23025             </td>
   23026 
   23027             <td class="entry_range">
   23028               <p>Each sample has an input range of <code>[0,<wbr/> 1]</code> and an output range of
   23029 <code>[0,<wbr/> 1]</code>.<wbr/>  The first sample is required to be <code>(0,<wbr/> 0)</code>,<wbr/> and the last
   23030 sample is required to be <code>(1,<wbr/> 1)</code>.<wbr/></p>
   23031             </td>
   23032 
   23033             <td class="entry_hal_version">
   23034               <p>3.<wbr/>2</p>
   23035             </td>
   23036 
   23037             <td class="entry_tags">
   23038               <ul class="entry_tags">
   23039                   <li><a href="#tag_RAW">RAW</a></li>
   23040               </ul>
   23041             </td>
   23042 
   23043           </tr>
   23044           <tr class="entries_header">
   23045             <th class="th_details" colspan="6">Details</th>
   23046           </tr>
   23047           <tr class="entry_cont">
   23048             <td class="entry_details" colspan="6">
   23049               <p>This key contains a default tone curve that can be applied while
   23050 processing the image as a starting point for user adjustments.<wbr/>
   23051 The curve is specified as a list of value pairs in linear gamma.<wbr/>
   23052 The curve is interpolated using a cubic spline.<wbr/></p>
   23053             </td>
   23054           </tr>
   23055 
   23056 
   23057           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   23058            <!-- end of entry -->
   23059         
   23060                 
   23061           <tr class="entry" id="dynamic_android.sensor.greenSplit">
   23062             <td class="entry_name
   23063              " rowspan="5">
   23064               android.<wbr/>sensor.<wbr/>green<wbr/>Split
   23065             </td>
   23066             <td class="entry_type">
   23067                 <span class="entry_type_name">float</span>
   23068 
   23069               <span class="entry_type_visibility"> [public]</span>
   23070 
   23071 
   23072 
   23073 
   23074 
   23075 
   23076             </td> <!-- entry_type -->
   23077 
   23078             <td class="entry_description">
   23079               <p>The worst-case divergence between Bayer green channels.<wbr/></p>
   23080             </td>
   23081 
   23082             <td class="entry_units">
   23083             </td>
   23084 
   23085             <td class="entry_range">
   23086               <p>&gt;= 0</p>
   23087             </td>
   23088 
   23089             <td class="entry_hal_version">
   23090               <p>3.<wbr/>2</p>
   23091             </td>
   23092 
   23093             <td class="entry_tags">
   23094               <ul class="entry_tags">
   23095                   <li><a href="#tag_RAW">RAW</a></li>
   23096               </ul>
   23097             </td>
   23098 
   23099           </tr>
   23100           <tr class="entries_header">
   23101             <th class="th_details" colspan="6">Details</th>
   23102           </tr>
   23103           <tr class="entry_cont">
   23104             <td class="entry_details" colspan="6">
   23105               <p>This value is an estimate of the worst case split between the
   23106 Bayer green channels in the red and blue rows in the sensor color
   23107 filter array.<wbr/></p>
   23108 <p>The green split is calculated as follows:</p>
   23109 <ol>
   23110 <li>A 5x5 pixel (or larger) window W within the active sensor array is
   23111 chosen.<wbr/> The term 'pixel' here is taken to mean a group of 4 Bayer
   23112 mosaic channels (R,<wbr/> Gr,<wbr/> Gb,<wbr/> B).<wbr/>  The location and size of the window
   23113 chosen is implementation defined,<wbr/> and should be chosen to provide a
   23114 green split estimate that is both representative of the entire image
   23115 for this camera sensor,<wbr/> and can be calculated quickly.<wbr/></li>
   23116 <li>The arithmetic mean of the green channels from the red
   23117 rows (mean_<wbr/>Gr) within W is computed.<wbr/></li>
   23118 <li>The arithmetic mean of the green channels from the blue
   23119 rows (mean_<wbr/>Gb) within W is computed.<wbr/></li>
   23120 <li>The maximum ratio R of the two means is computed as follows:
   23121 <code>R = max((mean_<wbr/>Gr + 1)/<wbr/>(mean_<wbr/>Gb + 1),<wbr/> (mean_<wbr/>Gb + 1)/<wbr/>(mean_<wbr/>Gr + 1))</code></li>
   23122 </ol>
   23123 <p>The ratio R is the green split divergence reported for this property,<wbr/>
   23124 which represents how much the green channels differ in the mosaic
   23125 pattern.<wbr/>  This value is typically used to determine the treatment of
   23126 the green mosaic channels when demosaicing.<wbr/></p>
   23127 <p>The green split value can be roughly interpreted as follows:</p>
   23128 <ul>
   23129 <li>R &lt; 1.<wbr/>03 is a negligible split (&lt;3% divergence).<wbr/></li>
   23130 <li>1.<wbr/>20 &lt;= R &gt;= 1.<wbr/>03 will require some software
   23131 correction to avoid demosaic errors (3-20% divergence).<wbr/></li>
   23132 <li>R &gt; 1.<wbr/>20 will require strong software correction to produce
   23133 a usuable image (&gt;20% divergence).<wbr/></li>
   23134 </ul>
   23135             </td>
   23136           </tr>
   23137 
   23138           <tr class="entries_header">
   23139             <th class="th_details" colspan="6">HAL Implementation Details</th>
   23140           </tr>
   23141           <tr class="entry_cont">
   23142             <td class="entry_details" colspan="6">
   23143               <p>The green split given may be a static value based on prior
   23144 characterization of the camera sensor using the green split
   23145 calculation method given here over a large,<wbr/> representative,<wbr/> sample
   23146 set of images.<wbr/>  Other methods of calculation that produce equivalent
   23147 results,<wbr/> and can be interpreted in the same manner,<wbr/> may be used.<wbr/></p>
   23148             </td>
   23149           </tr>
   23150 
   23151           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   23152            <!-- end of entry -->
   23153         
   23154                 
   23155           <tr class="entry" id="dynamic_android.sensor.testPatternData">
   23156             <td class="entry_name
   23157              " rowspan="5">
   23158               android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data
   23159             </td>
   23160             <td class="entry_type">
   23161                 <span class="entry_type_name">int32</span>
   23162                 <span class="entry_type_container">x</span>
   23163 
   23164                 <span class="entry_type_array">
   23165                   4
   23166                 </span>
   23167               <span class="entry_type_visibility"> [public]</span>
   23168 
   23169 
   23170 
   23171 
   23172 
   23173 
   23174             </td> <!-- entry_type -->
   23175 
   23176             <td class="entry_description">
   23177               <p>A pixel <code>[R,<wbr/> G_<wbr/>even,<wbr/> G_<wbr/>odd,<wbr/> B]</code> that supplies the test pattern
   23178 when <a href="#controls_android.sensor.testPatternMode">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode</a> is SOLID_<wbr/>COLOR.<wbr/></p>
   23179             </td>
   23180 
   23181             <td class="entry_units">
   23182             </td>
   23183 
   23184             <td class="entry_range">
   23185             </td>
   23186 
   23187             <td class="entry_hal_version">
   23188               <p>3.<wbr/>2</p>
   23189             </td>
   23190 
   23191             <td class="entry_tags">
   23192             </td>
   23193 
   23194           </tr>
   23195           <tr class="entries_header">
   23196             <th class="th_details" colspan="6">Details</th>
   23197           </tr>
   23198           <tr class="entry_cont">
   23199             <td class="entry_details" colspan="6">
   23200               <p>Each color channel is treated as an unsigned 32-bit integer.<wbr/>
   23201 The camera device then uses the most significant X bits
   23202 that correspond to how many bits are in its Bayer raw sensor
   23203 output.<wbr/></p>
   23204 <p>For example,<wbr/> a sensor with RAW10 Bayer output would use the
   23205 10 most significant bits from each color channel.<wbr/></p>
   23206             </td>
   23207           </tr>
   23208 
   23209           <tr class="entries_header">
   23210             <th class="th_details" colspan="6">HAL Implementation Details</th>
   23211           </tr>
   23212           <tr class="entry_cont">
   23213             <td class="entry_details" colspan="6">
   23214               
   23215             </td>
   23216           </tr>
   23217 
   23218           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   23219            <!-- end of entry -->
   23220         
   23221                 
   23222           <tr class="entry" id="dynamic_android.sensor.testPatternMode">
   23223             <td class="entry_name
   23224              " rowspan="5">
   23225               android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
   23226             </td>
   23227             <td class="entry_type">
   23228                 <span class="entry_type_name entry_type_name_enum">int32</span>
   23229 
   23230               <span class="entry_type_visibility"> [public]</span>
   23231 
   23232 
   23233 
   23234 
   23235 
   23236                 <ul class="entry_type_enum">
   23237                   <li>
   23238                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   23239                     <span class="entry_type_enum_notes"><p>No test pattern mode is used,<wbr/> and the camera
   23240 device returns captures from the image sensor.<wbr/></p>
   23241 <p>This is the default if the key is not set.<wbr/></p></span>
   23242                   </li>
   23243                   <li>
   23244                     <span class="entry_type_enum_name">SOLID_COLOR (v3.2)</span>
   23245                     <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
   23246 respective color channel provided in
   23247 <a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
   23248 <p>For example:</p>
   23249 <pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
   23250 </code></pre>
   23251 <p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
   23252 <pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
   23253 </code></pre>
   23254 <p>All red pixels are 100% red.<wbr/> Only the odd green pixels
   23255 are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
   23256                   </li>
   23257                   <li>
   23258                     <span class="entry_type_enum_name">COLOR_BARS (v3.2)</span>
   23259                     <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
   23260 <p>The vertical bars (left-to-right) are as follows:</p>
   23261 <ul>
   23262 <li>100% white</li>
   23263 <li>yellow</li>
   23264 <li>cyan</li>
   23265 <li>green</li>
   23266 <li>magenta</li>
   23267 <li>red</li>
   23268 <li>blue</li>
   23269 <li>black</li>
   23270 </ul>
   23271 <p>In general the image would look like the following:</p>
   23272 <pre><code>W Y C G M R B K
   23273 W Y C G M R B K
   23274 W Y C G M R B K
   23275 W Y C G M R B K
   23276 W Y C G M R B K
   23277 .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
   23278 .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
   23279 .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
   23280 
   23281 (B = Blue,<wbr/> K = Black)
   23282 </code></pre>
   23283 <p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
   23284 When this is not possible,<wbr/> the bar size should be rounded
   23285 down to the nearest integer and the pattern can repeat
   23286 on the right side.<wbr/></p>
   23287 <p>Each bar's height must always take up the full sensor
   23288 pixel array height.<wbr/></p>
   23289 <p>Each pixel in this test pattern must be set to either
   23290 0% intensity or 100% intensity.<wbr/></p></span>
   23291                   </li>
   23292                   <li>
   23293                     <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY (v3.2)</span>
   23294                     <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
   23295 each bar should start at its specified color at the top,<wbr/>
   23296 and fade to gray at the bottom.<wbr/></p>
   23297 <p>Furthermore each bar is further subdivided into a left and
   23298 right half.<wbr/> The left half should have a smooth gradient,<wbr/>
   23299 and the right half should have a quantized gradient.<wbr/></p>
   23300 <p>In particular,<wbr/> the right half's should consist of blocks of the
   23301 same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
   23302 <p>The least significant bits in the quantized gradient should
   23303 be copied from the most significant bits of the smooth gradient.<wbr/></p>
   23304 <p>The height of each bar should always be a multiple of 128.<wbr/>
   23305 When this is not the case,<wbr/> the pattern should repeat at the bottom
   23306 of the image.<wbr/></p></span>
   23307                   </li>
   23308                   <li>
   23309                     <span class="entry_type_enum_name">PN9 (v3.2)</span>
   23310                     <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
   23311 generated from a PN9 512-bit sequence (typically implemented
   23312 in hardware with a linear feedback shift register).<wbr/></p>
   23313 <p>The generator should be reset at the beginning of each frame,<wbr/>
   23314 and thus each subsequent raw frame with this test pattern should
   23315 be exactly the same as the last.<wbr/></p></span>
   23316                   </li>
   23317                   <li>
   23318                     <span class="entry_type_enum_name">CUSTOM1 (v3.2)</span>
   23319                     <span class="entry_type_enum_value">256</span>
   23320                     <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
   23321 available only on this camera device are at least this numeric
   23322 value.<wbr/></p>
   23323 <p>All of the custom test patterns will be static
   23324 (that is the raw image must not vary from frame to frame).<wbr/></p></span>
   23325                   </li>
   23326                 </ul>
   23327 
   23328             </td> <!-- entry_type -->
   23329 
   23330             <td class="entry_description">
   23331               <p>When enabled,<wbr/> the sensor sends a test pattern instead of
   23332 doing a real exposure from the camera.<wbr/></p>
   23333             </td>
   23334 
   23335             <td class="entry_units">
   23336             </td>
   23337 
   23338             <td class="entry_range">
   23339               <p><a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
   23340             </td>
   23341 
   23342             <td class="entry_hal_version">
   23343               <p>3.<wbr/>2</p>
   23344             </td>
   23345 
   23346             <td class="entry_tags">
   23347             </td>
   23348 
   23349           </tr>
   23350           <tr class="entries_header">
   23351             <th class="th_details" colspan="6">Details</th>
   23352           </tr>
   23353           <tr class="entry_cont">
   23354             <td class="entry_details" colspan="6">
   23355               <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
   23356 by android.<wbr/>sensor.<wbr/>* will be ignored.<wbr/> All other controls should
   23357 work as normal.<wbr/></p>
   23358 <p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
   23359 occur (and that the test pattern remain unmodified,<wbr/> since the flash
   23360 would not actually affect it).<wbr/></p>
   23361 <p>Defaults to OFF.<wbr/></p>
   23362             </td>
   23363           </tr>
   23364 
   23365           <tr class="entries_header">
   23366             <th class="th_details" colspan="6">HAL Implementation Details</th>
   23367           </tr>
   23368           <tr class="entry_cont">
   23369             <td class="entry_details" colspan="6">
   23370               <p>All test patterns are specified in the Bayer domain.<wbr/></p>
   23371 <p>The HAL may choose to substitute test patterns from the sensor
   23372 with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
   23373 indistinguishable to the ISP whether the data came from the
   23374 sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
   23375             </td>
   23376           </tr>
   23377 
   23378           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   23379            <!-- end of entry -->
   23380         
   23381                 
   23382           <tr class="entry" id="dynamic_android.sensor.rollingShutterSkew">
   23383             <td class="entry_name
   23384              " rowspan="5">
   23385               android.<wbr/>sensor.<wbr/>rolling<wbr/>Shutter<wbr/>Skew
   23386             </td>
   23387             <td class="entry_type">
   23388                 <span class="entry_type_name">int64</span>
   23389 
   23390               <span class="entry_type_visibility"> [public]</span>
   23391 
   23392 
   23393               <span class="entry_type_hwlevel">[limited] </span>
   23394 
   23395 
   23396 
   23397 
   23398             </td> <!-- entry_type -->
   23399 
   23400             <td class="entry_description">
   23401               <p>Duration between the start of first row exposure
   23402 and the start of last row exposure.<wbr/></p>
   23403             </td>
   23404 
   23405             <td class="entry_units">
   23406               Nanoseconds
   23407             </td>
   23408 
   23409             <td class="entry_range">
   23410               <p>&gt;= 0 and &lt;
   23411 <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputMinFrameDuration">StreamConfigurationMap#getOutputMinFrameDuration</a>.<wbr/></p>
   23412             </td>
   23413 
   23414             <td class="entry_hal_version">
   23415               <p>3.<wbr/>2</p>
   23416             </td>
   23417 
   23418             <td class="entry_tags">
   23419               <ul class="entry_tags">
   23420                   <li><a href="#tag_V1">V1</a></li>
   23421               </ul>
   23422             </td>
   23423 
   23424           </tr>
   23425           <tr class="entries_header">
   23426             <th class="th_details" colspan="6">Details</th>
   23427           </tr>
   23428           <tr class="entry_cont">
   23429             <td class="entry_details" colspan="6">
   23430               <p>This is the exposure time skew between the first and last
   23431 row exposure start times.<wbr/> The first row and the last row are
   23432 the first and last rows inside of the
   23433 <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/></p>
   23434 <p>For typical camera sensors that use rolling shutters,<wbr/> this is also equivalent
   23435 to the frame readout time.<wbr/></p>
   23436             </td>
   23437           </tr>
   23438 
   23439           <tr class="entries_header">
   23440             <th class="th_details" colspan="6">HAL Implementation Details</th>
   23441           </tr>
   23442           <tr class="entry_cont">
   23443             <td class="entry_details" colspan="6">
   23444               <p>The HAL must report <code>0</code> if the sensor is using global shutter,<wbr/> where all pixels begin
   23445 exposure at the same time.<wbr/></p>
   23446             </td>
   23447           </tr>
   23448 
   23449           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   23450            <!-- end of entry -->
   23451         
   23452                 
   23453           <tr class="entry" id="dynamic_android.sensor.dynamicBlackLevel">
   23454             <td class="entry_name
   23455              " rowspan="5">
   23456               android.<wbr/>sensor.<wbr/>dynamic<wbr/>Black<wbr/>Level
   23457             </td>
   23458             <td class="entry_type">
   23459                 <span class="entry_type_name">float</span>
   23460                 <span class="entry_type_container">x</span>
   23461 
   23462                 <span class="entry_type_array">
   23463                   4
   23464                 </span>
   23465               <span class="entry_type_visibility"> [public]</span>
   23466 
   23467 
   23468 
   23469 
   23470                 <div class="entry_type_notes">2x2 raw count block</div>
   23471 
   23472 
   23473             </td> <!-- entry_type -->
   23474 
   23475             <td class="entry_description">
   23476               <p>A per-frame dynamic black level offset for each of the color filter
   23477 arrangement (CFA) mosaic channels.<wbr/></p>
   23478             </td>
   23479 
   23480             <td class="entry_units">
   23481             </td>
   23482 
   23483             <td class="entry_range">
   23484               <p>&gt;= 0 for each.<wbr/></p>
   23485             </td>
   23486 
   23487             <td class="entry_hal_version">
   23488               <p>3.<wbr/>2</p>
   23489             </td>
   23490 
   23491             <td class="entry_tags">
   23492               <ul class="entry_tags">
   23493                   <li><a href="#tag_RAW">RAW</a></li>
   23494               </ul>
   23495             </td>
   23496 
   23497           </tr>
   23498           <tr class="entries_header">
   23499             <th class="th_details" colspan="6">Details</th>
   23500           </tr>
   23501           <tr class="entry_cont">
   23502             <td class="entry_details" colspan="6">
   23503               <p>Camera sensor black levels may vary dramatically for different
   23504 capture settings (e.<wbr/>g.<wbr/> <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>).<wbr/> The fixed black
   23505 level reported by <a href="#static_android.sensor.blackLevelPattern">android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern</a> may be too
   23506 inaccurate to represent the actual value on a per-frame basis.<wbr/> The
   23507 camera device internal pipeline relies on reliable black level values
   23508 to process the raw images appropriately.<wbr/> To get the best image
   23509 quality,<wbr/> the camera device may choose to estimate the per frame black
   23510 level values either based on optically shielded black regions
   23511 (<a href="#static_android.sensor.opticalBlackRegions">android.<wbr/>sensor.<wbr/>optical<wbr/>Black<wbr/>Regions</a>) or its internal model.<wbr/></p>
   23512 <p>This key reports the camera device estimated per-frame zero light
   23513 value for each of the CFA mosaic channels in the camera sensor.<wbr/> The
   23514 <a href="#static_android.sensor.blackLevelPattern">android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern</a> may only represent a coarse
   23515 approximation of the actual black level values.<wbr/> This value is the
   23516 black level used in camera device internal image processing pipeline
   23517 and generally more accurate than the fixed black level values.<wbr/>
   23518 However,<wbr/> since they are estimated values by the camera device,<wbr/> they
   23519 may not be as accurate as the black level values calculated from the
   23520 optical black pixels reported by <a href="#static_android.sensor.opticalBlackRegions">android.<wbr/>sensor.<wbr/>optical<wbr/>Black<wbr/>Regions</a>.<wbr/></p>
   23521 <p>The values are given in the same order as channels listed for the CFA
   23522 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
   23523 nth value given corresponds to the black level offset for the nth
   23524 color channel listed in the CFA.<wbr/></p>
   23525 <p>This key will be available if <a href="#static_android.sensor.opticalBlackRegions">android.<wbr/>sensor.<wbr/>optical<wbr/>Black<wbr/>Regions</a> is available or the
   23526 camera device advertises this key via <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#getAvailableCaptureResultKeys">CameraCharacteristics#getAvailableCaptureResultKeys</a>.<wbr/></p>
   23527             </td>
   23528           </tr>
   23529 
   23530           <tr class="entries_header">
   23531             <th class="th_details" colspan="6">HAL Implementation Details</th>
   23532           </tr>
   23533           <tr class="entry_cont">
   23534             <td class="entry_details" colspan="6">
   23535               <p>The values are given in row-column scan order,<wbr/> with the first value
   23536 corresponding to the element of the CFA in row=0,<wbr/> column=0.<wbr/></p>
   23537             </td>
   23538           </tr>
   23539 
   23540           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   23541            <!-- end of entry -->
   23542         
   23543                 
   23544           <tr class="entry" id="dynamic_android.sensor.dynamicWhiteLevel">
   23545             <td class="entry_name
   23546              " rowspan="5">
   23547               android.<wbr/>sensor.<wbr/>dynamic<wbr/>White<wbr/>Level
   23548             </td>
   23549             <td class="entry_type">
   23550                 <span class="entry_type_name">int32</span>
   23551 
   23552               <span class="entry_type_visibility"> [public]</span>
   23553 
   23554 
   23555 
   23556 
   23557 
   23558 
   23559             </td> <!-- entry_type -->
   23560 
   23561             <td class="entry_description">
   23562               <p>Maximum raw value output by sensor for this frame.<wbr/></p>
   23563             </td>
   23564 
   23565             <td class="entry_units">
   23566             </td>
   23567 
   23568             <td class="entry_range">
   23569               <p>&gt;= 0</p>
   23570             </td>
   23571 
   23572             <td class="entry_hal_version">
   23573               <p>3.<wbr/>2</p>
   23574             </td>
   23575 
   23576             <td class="entry_tags">
   23577               <ul class="entry_tags">
   23578                   <li><a href="#tag_RAW">RAW</a></li>
   23579               </ul>
   23580             </td>
   23581 
   23582           </tr>
   23583           <tr class="entries_header">
   23584             <th class="th_details" colspan="6">Details</th>
   23585           </tr>
   23586           <tr class="entry_cont">
   23587             <td class="entry_details" colspan="6">
   23588               <p>Since the <a href="#static_android.sensor.blackLevelPattern">android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern</a> may change for different
   23589 capture settings (e.<wbr/>g.,<wbr/> <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>),<wbr/> the white
   23590 level will change accordingly.<wbr/> This key is similar to
   23591 <a href="#static_android.sensor.info.whiteLevel">android.<wbr/>sensor.<wbr/>info.<wbr/>white<wbr/>Level</a>,<wbr/> but specifies the camera device
   23592 estimated white level for each frame.<wbr/></p>
   23593 <p>This key will be available if <a href="#static_android.sensor.opticalBlackRegions">android.<wbr/>sensor.<wbr/>optical<wbr/>Black<wbr/>Regions</a> is
   23594 available or the camera device advertises this key via
   23595 <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#getAvailableCaptureRequestKeys">CameraCharacteristics#getAvailableCaptureRequestKeys</a>.<wbr/></p>
   23596             </td>
   23597           </tr>
   23598 
   23599           <tr class="entries_header">
   23600             <th class="th_details" colspan="6">HAL Implementation Details</th>
   23601           </tr>
   23602           <tr class="entry_cont">
   23603             <td class="entry_details" colspan="6">
   23604               <p>The full bit depth of the sensor must be available in the raw data,<wbr/>
   23605 so the value for linear sensors should not be significantly lower
   23606 than maximum raw value supported,<wbr/> i.<wbr/>e.<wbr/> 2^(sensor bits per pixel).<wbr/></p>
   23607             </td>
   23608           </tr>
   23609 
   23610           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   23611            <!-- end of entry -->
   23612         
   23613         
   23614 
   23615       <!-- end of kind -->
   23616       </tbody>
   23617 
   23618   <!-- end of section -->
   23619   <tr><td colspan="7" id="section_shading" class="section">shading</td></tr>
   23620 
   23621 
   23622       <tr><td colspan="7" class="kind">controls</td></tr>
   23623 
   23624       <thead class="entries_header">
   23625         <tr>
   23626           <th class="th_name">Property Name</th>
   23627           <th class="th_type">Type</th>
   23628           <th class="th_description">Description</th>
   23629           <th class="th_units">Units</th>
   23630           <th class="th_range">Range</th>
   23631           <th class="th_hal_version">Initial HIDL HAL version</th>
   23632           <th class="th_tags">Tags</th>
   23633         </tr>
   23634       </thead>
   23635 
   23636       <tbody>
   23637 
   23638         
   23639 
   23640         
   23641 
   23642         
   23643 
   23644         
   23645 
   23646                 
   23647           <tr class="entry" id="controls_android.shading.mode">
   23648             <td class="entry_name
   23649              " rowspan="3">
   23650               android.<wbr/>shading.<wbr/>mode
   23651             </td>
   23652             <td class="entry_type">
   23653                 <span class="entry_type_name entry_type_name_enum">byte</span>
   23654 
   23655               <span class="entry_type_visibility"> [public]</span>
   23656 
   23657 
   23658               <span class="entry_type_hwlevel">[full] </span>
   23659 
   23660 
   23661 
   23662                 <ul class="entry_type_enum">
   23663                   <li>
   23664                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   23665                     <span class="entry_type_enum_notes"><p>No lens shading correction is applied.<wbr/></p></span>
   23666                   </li>
   23667                   <li>
   23668                     <span class="entry_type_enum_name">FAST (v3.2)</span>
   23669                     <span class="entry_type_enum_notes"><p>Apply lens shading corrections,<wbr/> without slowing
   23670 frame rate relative to sensor raw output</p></span>
   23671                   </li>
   23672                   <li>
   23673                     <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
   23674                     <span class="entry_type_enum_notes"><p>Apply high-quality lens shading correction,<wbr/> at the
   23675 cost of possibly reduced frame rate.<wbr/></p></span>
   23676                   </li>
   23677                 </ul>
   23678 
   23679             </td> <!-- entry_type -->
   23680 
   23681             <td class="entry_description">
   23682               <p>Quality of lens shading correction applied
   23683 to the image data.<wbr/></p>
   23684             </td>
   23685 
   23686             <td class="entry_units">
   23687             </td>
   23688 
   23689             <td class="entry_range">
   23690               <p><a href="#static_android.shading.availableModes">android.<wbr/>shading.<wbr/>available<wbr/>Modes</a></p>
   23691             </td>
   23692 
   23693             <td class="entry_hal_version">
   23694               <p>3.<wbr/>2</p>
   23695             </td>
   23696 
   23697             <td class="entry_tags">
   23698             </td>
   23699 
   23700           </tr>
   23701           <tr class="entries_header">
   23702             <th class="th_details" colspan="6">Details</th>
   23703           </tr>
   23704           <tr class="entry_cont">
   23705             <td class="entry_details" colspan="6">
   23706               <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
   23707 camera device,<wbr/> and an identity lens shading map data will be provided
   23708 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
   23709 shading map with size of <code>[ 4,<wbr/> 3 ]</code>,<wbr/>
   23710 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
   23711 map shown below:</p>
   23712 <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/>
   23713  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/>
   23714  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/>
   23715  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/>
   23716  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/>
   23717  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 ]
   23718 </code></pre>
   23719 <p>When set to other modes,<wbr/> lens shading correction will be applied by the camera
   23720 device.<wbr/> Applications can request lens shading map data by setting
   23721 <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
   23722 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
   23723 data will be the one applied by the camera device for this capture request.<wbr/></p>
   23724 <p>The shading map data may depend on the auto-exposure (AE) and AWB statistics,<wbr/> therefore
   23725 the reliability of the map data may be affected by the AE and AWB algorithms.<wbr/> When AE and
   23726 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>
   23727 OFF),<wbr/> to get best results,<wbr/> it is recommended that the applications wait for the AE and AWB
   23728 to be converged before using the returned shading map data.<wbr/></p>
   23729             </td>
   23730           </tr>
   23731 
   23732 
   23733           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   23734            <!-- end of entry -->
   23735         
   23736                 
   23737           <tr class="entry" id="controls_android.shading.strength">
   23738             <td class="entry_name
   23739              " rowspan="1">
   23740               android.<wbr/>shading.<wbr/>strength
   23741             </td>
   23742             <td class="entry_type">
   23743                 <span class="entry_type_name">byte</span>
   23744 
   23745               <span class="entry_type_visibility"> [system]</span>
   23746 
   23747 
   23748 
   23749 
   23750 
   23751 
   23752             </td> <!-- entry_type -->
   23753 
   23754             <td class="entry_description">
   23755               <p>Control the amount of shading correction
   23756 applied to the images</p>
   23757             </td>
   23758 
   23759             <td class="entry_units">
   23760               unitless: 1-10; 10 is full shading
   23761           compensation
   23762             </td>
   23763 
   23764             <td class="entry_range">
   23765             </td>
   23766 
   23767             <td class="entry_hal_version">
   23768               <p>3.<wbr/>2</p>
   23769             </td>
   23770 
   23771             <td class="entry_tags">
   23772               <ul class="entry_tags">
   23773                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   23774               </ul>
   23775             </td>
   23776 
   23777           </tr>
   23778 
   23779 
   23780           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   23781            <!-- end of entry -->
   23782         
   23783         
   23784 
   23785       <!-- end of kind -->
   23786       </tbody>
   23787       <tr><td colspan="7" class="kind">dynamic</td></tr>
   23788 
   23789       <thead class="entries_header">
   23790         <tr>
   23791           <th class="th_name">Property Name</th>
   23792           <th class="th_type">Type</th>
   23793           <th class="th_description">Description</th>
   23794           <th class="th_units">Units</th>
   23795           <th class="th_range">Range</th>
   23796           <th class="th_hal_version">Initial HIDL HAL version</th>
   23797           <th class="th_tags">Tags</th>
   23798         </tr>
   23799       </thead>
   23800 
   23801       <tbody>
   23802 
   23803         
   23804 
   23805         
   23806 
   23807         
   23808 
   23809         
   23810 
   23811                 
   23812           <tr class="entry" id="dynamic_android.shading.mode">
   23813             <td class="entry_name
   23814              " rowspan="3">
   23815               android.<wbr/>shading.<wbr/>mode
   23816             </td>
   23817             <td class="entry_type">
   23818                 <span class="entry_type_name entry_type_name_enum">byte</span>
   23819 
   23820               <span class="entry_type_visibility"> [public]</span>
   23821 
   23822 
   23823               <span class="entry_type_hwlevel">[full] </span>
   23824 
   23825 
   23826 
   23827                 <ul class="entry_type_enum">
   23828                   <li>
   23829                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   23830                     <span class="entry_type_enum_notes"><p>No lens shading correction is applied.<wbr/></p></span>
   23831                   </li>
   23832                   <li>
   23833                     <span class="entry_type_enum_name">FAST (v3.2)</span>
   23834                     <span class="entry_type_enum_notes"><p>Apply lens shading corrections,<wbr/> without slowing
   23835 frame rate relative to sensor raw output</p></span>
   23836                   </li>
   23837                   <li>
   23838                     <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
   23839                     <span class="entry_type_enum_notes"><p>Apply high-quality lens shading correction,<wbr/> at the
   23840 cost of possibly reduced frame rate.<wbr/></p></span>
   23841                   </li>
   23842                 </ul>
   23843 
   23844             </td> <!-- entry_type -->
   23845 
   23846             <td class="entry_description">
   23847               <p>Quality of lens shading correction applied
   23848 to the image data.<wbr/></p>
   23849             </td>
   23850 
   23851             <td class="entry_units">
   23852             </td>
   23853 
   23854             <td class="entry_range">
   23855               <p><a href="#static_android.shading.availableModes">android.<wbr/>shading.<wbr/>available<wbr/>Modes</a></p>
   23856             </td>
   23857 
   23858             <td class="entry_hal_version">
   23859               <p>3.<wbr/>2</p>
   23860             </td>
   23861 
   23862             <td class="entry_tags">
   23863             </td>
   23864 
   23865           </tr>
   23866           <tr class="entries_header">
   23867             <th class="th_details" colspan="6">Details</th>
   23868           </tr>
   23869           <tr class="entry_cont">
   23870             <td class="entry_details" colspan="6">
   23871               <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
   23872 camera device,<wbr/> and an identity lens shading map data will be provided
   23873 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
   23874 shading map with size of <code>[ 4,<wbr/> 3 ]</code>,<wbr/>
   23875 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
   23876 map shown below:</p>
   23877 <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/>
   23878  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/>
   23879  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/>
   23880  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/>
   23881  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/>
   23882  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 ]
   23883 </code></pre>
   23884 <p>When set to other modes,<wbr/> lens shading correction will be applied by the camera
   23885 device.<wbr/> Applications can request lens shading map data by setting
   23886 <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
   23887 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
   23888 data will be the one applied by the camera device for this capture request.<wbr/></p>
   23889 <p>The shading map data may depend on the auto-exposure (AE) and AWB statistics,<wbr/> therefore
   23890 the reliability of the map data may be affected by the AE and AWB algorithms.<wbr/> When AE and
   23891 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>
   23892 OFF),<wbr/> to get best results,<wbr/> it is recommended that the applications wait for the AE and AWB
   23893 to be converged before using the returned shading map data.<wbr/></p>
   23894             </td>
   23895           </tr>
   23896 
   23897 
   23898           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   23899            <!-- end of entry -->
   23900         
   23901         
   23902 
   23903       <!-- end of kind -->
   23904       </tbody>
   23905       <tr><td colspan="7" class="kind">static</td></tr>
   23906 
   23907       <thead class="entries_header">
   23908         <tr>
   23909           <th class="th_name">Property Name</th>
   23910           <th class="th_type">Type</th>
   23911           <th class="th_description">Description</th>
   23912           <th class="th_units">Units</th>
   23913           <th class="th_range">Range</th>
   23914           <th class="th_hal_version">Initial HIDL HAL version</th>
   23915           <th class="th_tags">Tags</th>
   23916         </tr>
   23917       </thead>
   23918 
   23919       <tbody>
   23920 
   23921         
   23922 
   23923         
   23924 
   23925         
   23926 
   23927         
   23928 
   23929                 
   23930           <tr class="entry" id="static_android.shading.availableModes">
   23931             <td class="entry_name
   23932              " rowspan="5">
   23933               android.<wbr/>shading.<wbr/>available<wbr/>Modes
   23934             </td>
   23935             <td class="entry_type">
   23936                 <span class="entry_type_name">byte</span>
   23937                 <span class="entry_type_container">x</span>
   23938 
   23939                 <span class="entry_type_array">
   23940                   n
   23941                 </span>
   23942               <span class="entry_type_visibility"> [public as enumList]</span>
   23943 
   23944 
   23945               <span class="entry_type_hwlevel">[legacy] </span>
   23946 
   23947 
   23948                 <div class="entry_type_notes">List of enums (android.<wbr/>shading.<wbr/>mode).<wbr/></div>
   23949 
   23950 
   23951             </td> <!-- entry_type -->
   23952 
   23953             <td class="entry_description">
   23954               <p>List of lens shading modes for <a href="#controls_android.shading.mode">android.<wbr/>shading.<wbr/>mode</a> that are supported by this camera device.<wbr/></p>
   23955             </td>
   23956 
   23957             <td class="entry_units">
   23958             </td>
   23959 
   23960             <td class="entry_range">
   23961               <p>Any value listed in <a href="#controls_android.shading.mode">android.<wbr/>shading.<wbr/>mode</a></p>
   23962             </td>
   23963 
   23964             <td class="entry_hal_version">
   23965               <p>3.<wbr/>2</p>
   23966             </td>
   23967 
   23968             <td class="entry_tags">
   23969             </td>
   23970 
   23971           </tr>
   23972           <tr class="entries_header">
   23973             <th class="th_details" colspan="6">Details</th>
   23974           </tr>
   23975           <tr class="entry_cont">
   23976             <td class="entry_details" colspan="6">
   23977               <p>This list contains lens shading modes that can be set for the camera device.<wbr/>
   23978 Camera devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability will always
   23979 list OFF and FAST mode.<wbr/> This includes all FULL level devices.<wbr/>
   23980 LEGACY devices will always only support FAST mode.<wbr/></p>
   23981             </td>
   23982           </tr>
   23983 
   23984           <tr class="entries_header">
   23985             <th class="th_details" colspan="6">HAL Implementation Details</th>
   23986           </tr>
   23987           <tr class="entry_cont">
   23988             <td class="entry_details" colspan="6">
   23989               <p>HAL must support both FAST and HIGH_<wbr/>QUALITY if lens shading correction control is
   23990 available on the camera device,<wbr/> but the underlying implementation can be the same for
   23991 both modes.<wbr/> That is,<wbr/> if the highest quality implementation on the camera device does not
   23992 slow down capture rate,<wbr/> then FAST and HIGH_<wbr/>QUALITY will generate the same output.<wbr/></p>
   23993             </td>
   23994           </tr>
   23995 
   23996           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   23997            <!-- end of entry -->
   23998         
   23999         
   24000 
   24001       <!-- end of kind -->
   24002       </tbody>
   24003 
   24004   <!-- end of section -->
   24005   <tr><td colspan="7" id="section_statistics" class="section">statistics</td></tr>
   24006 
   24007 
   24008       <tr><td colspan="7" class="kind">controls</td></tr>
   24009 
   24010       <thead class="entries_header">
   24011         <tr>
   24012           <th class="th_name">Property Name</th>
   24013           <th class="th_type">Type</th>
   24014           <th class="th_description">Description</th>
   24015           <th class="th_units">Units</th>
   24016           <th class="th_range">Range</th>
   24017           <th class="th_hal_version">Initial HIDL HAL version</th>
   24018           <th class="th_tags">Tags</th>
   24019         </tr>
   24020       </thead>
   24021 
   24022       <tbody>
   24023 
   24024         
   24025 
   24026         
   24027 
   24028         
   24029 
   24030         
   24031 
   24032                 
   24033           <tr class="entry" id="controls_android.statistics.faceDetectMode">
   24034             <td class="entry_name
   24035              " rowspan="5">
   24036               android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
   24037             </td>
   24038             <td class="entry_type">
   24039                 <span class="entry_type_name entry_type_name_enum">byte</span>
   24040 
   24041               <span class="entry_type_visibility"> [public]</span>
   24042 
   24043 
   24044               <span class="entry_type_hwlevel">[legacy] </span>
   24045 
   24046 
   24047 
   24048                 <ul class="entry_type_enum">
   24049                   <li>
   24050                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   24051                     <span class="entry_type_enum_notes"><p>Do not include face detection statistics in capture
   24052 results.<wbr/></p></span>
   24053                   </li>
   24054                   <li>
   24055                     <span class="entry_type_enum_name">SIMPLE (v3.2)</span>
   24056                     <span class="entry_type_enum_optional">[optional]</span>
   24057                     <span class="entry_type_enum_notes"><p>Return face rectangle and confidence values only.<wbr/></p></span>
   24058                   </li>
   24059                   <li>
   24060                     <span class="entry_type_enum_name">FULL (v3.2)</span>
   24061                     <span class="entry_type_enum_optional">[optional]</span>
   24062                     <span class="entry_type_enum_notes"><p>Return all face
   24063 metadata.<wbr/></p>
   24064 <p>In this mode,<wbr/> face rectangles,<wbr/> scores,<wbr/> landmarks,<wbr/> and face IDs are all valid.<wbr/></p></span>
   24065                   </li>
   24066                 </ul>
   24067 
   24068             </td> <!-- entry_type -->
   24069 
   24070             <td class="entry_description">
   24071               <p>Operating mode for the face detector
   24072 unit.<wbr/></p>
   24073             </td>
   24074 
   24075             <td class="entry_units">
   24076             </td>
   24077 
   24078             <td class="entry_range">
   24079               <p><a href="#static_android.statistics.info.availableFaceDetectModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes</a></p>
   24080             </td>
   24081 
   24082             <td class="entry_hal_version">
   24083               <p>3.<wbr/>2</p>
   24084             </td>
   24085 
   24086             <td class="entry_tags">
   24087               <ul class="entry_tags">
   24088                   <li><a href="#tag_BC">BC</a></li>
   24089               </ul>
   24090             </td>
   24091 
   24092           </tr>
   24093           <tr class="entries_header">
   24094             <th class="th_details" colspan="6">Details</th>
   24095           </tr>
   24096           <tr class="entry_cont">
   24097             <td class="entry_details" colspan="6">
   24098               <p>Whether face detection is enabled,<wbr/> and whether it
   24099 should output just the basic fields or the full set of
   24100 fields.<wbr/></p>
   24101             </td>
   24102           </tr>
   24103 
   24104           <tr class="entries_header">
   24105             <th class="th_details" colspan="6">HAL Implementation Details</th>
   24106           </tr>
   24107           <tr class="entry_cont">
   24108             <td class="entry_details" colspan="6">
   24109               <p>SIMPLE mode must fill in <a href="#dynamic_android.statistics.faceRectangles">android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles</a> and
   24110 <a href="#dynamic_android.statistics.faceScores">android.<wbr/>statistics.<wbr/>face<wbr/>Scores</a>.<wbr/>
   24111 FULL mode must also fill in <a href="#dynamic_android.statistics.faceIds">android.<wbr/>statistics.<wbr/>face<wbr/>Ids</a>,<wbr/> and
   24112 <a href="#dynamic_android.statistics.faceLandmarks">android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks</a>.<wbr/></p>
   24113             </td>
   24114           </tr>
   24115 
   24116           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   24117            <!-- end of entry -->
   24118         
   24119                 
   24120           <tr class="entry" id="controls_android.statistics.histogramMode">
   24121             <td class="entry_name
   24122              " rowspan="1">
   24123               android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
   24124             </td>
   24125             <td class="entry_type">
   24126                 <span class="entry_type_name entry_type_name_enum">byte</span>
   24127 
   24128               <span class="entry_type_visibility"> [system as boolean]</span>
   24129 
   24130 
   24131 
   24132 
   24133 
   24134                 <ul class="entry_type_enum">
   24135                   <li>
   24136                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   24137                   </li>
   24138                   <li>
   24139                     <span class="entry_type_enum_name">ON (v3.2)</span>
   24140                   </li>
   24141                 </ul>
   24142 
   24143             </td> <!-- entry_type -->
   24144 
   24145             <td class="entry_description">
   24146               <p>Operating mode for histogram
   24147 generation</p>
   24148             </td>
   24149 
   24150             <td class="entry_units">
   24151             </td>
   24152 
   24153             <td class="entry_range">
   24154             </td>
   24155 
   24156             <td class="entry_hal_version">
   24157               <p>3.<wbr/>2</p>
   24158             </td>
   24159 
   24160             <td class="entry_tags">
   24161               <ul class="entry_tags">
   24162                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   24163               </ul>
   24164             </td>
   24165 
   24166           </tr>
   24167 
   24168 
   24169           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   24170            <!-- end of entry -->
   24171         
   24172                 
   24173           <tr class="entry" id="controls_android.statistics.sharpnessMapMode">
   24174             <td class="entry_name
   24175              " rowspan="1">
   24176               android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
   24177             </td>
   24178             <td class="entry_type">
   24179                 <span class="entry_type_name entry_type_name_enum">byte</span>
   24180 
   24181               <span class="entry_type_visibility"> [system as boolean]</span>
   24182 
   24183 
   24184 
   24185 
   24186 
   24187                 <ul class="entry_type_enum">
   24188                   <li>
   24189                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   24190                   </li>
   24191                   <li>
   24192                     <span class="entry_type_enum_name">ON (v3.2)</span>
   24193                   </li>
   24194                 </ul>
   24195 
   24196             </td> <!-- entry_type -->
   24197 
   24198             <td class="entry_description">
   24199               <p>Operating mode for sharpness map
   24200 generation</p>
   24201             </td>
   24202 
   24203             <td class="entry_units">
   24204             </td>
   24205 
   24206             <td class="entry_range">
   24207             </td>
   24208 
   24209             <td class="entry_hal_version">
   24210               <p>3.<wbr/>2</p>
   24211             </td>
   24212 
   24213             <td class="entry_tags">
   24214               <ul class="entry_tags">
   24215                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   24216               </ul>
   24217             </td>
   24218 
   24219           </tr>
   24220 
   24221 
   24222           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   24223            <!-- end of entry -->
   24224         
   24225                 
   24226           <tr class="entry" id="controls_android.statistics.hotPixelMapMode">
   24227             <td class="entry_name
   24228              " rowspan="3">
   24229               android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map<wbr/>Mode
   24230             </td>
   24231             <td class="entry_type">
   24232                 <span class="entry_type_name entry_type_name_enum">byte</span>
   24233 
   24234               <span class="entry_type_visibility"> [public as boolean]</span>
   24235 
   24236 
   24237 
   24238 
   24239 
   24240                 <ul class="entry_type_enum">
   24241                   <li>
   24242                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   24243                     <span class="entry_type_enum_notes"><p>Hot pixel map production is disabled.<wbr/></p></span>
   24244                   </li>
   24245                   <li>
   24246                     <span class="entry_type_enum_name">ON (v3.2)</span>
   24247                     <span class="entry_type_enum_notes"><p>Hot pixel map production is enabled.<wbr/></p></span>
   24248                   </li>
   24249                 </ul>
   24250 
   24251             </td> <!-- entry_type -->
   24252 
   24253             <td class="entry_description">
   24254               <p>Operating mode for hot pixel map generation.<wbr/></p>
   24255             </td>
   24256 
   24257             <td class="entry_units">
   24258             </td>
   24259 
   24260             <td class="entry_range">
   24261               <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>
   24262             </td>
   24263 
   24264             <td class="entry_hal_version">
   24265               <p>3.<wbr/>2</p>
   24266             </td>
   24267 
   24268             <td class="entry_tags">
   24269               <ul class="entry_tags">
   24270                   <li><a href="#tag_V1">V1</a></li>
   24271                   <li><a href="#tag_RAW">RAW</a></li>
   24272               </ul>
   24273             </td>
   24274 
   24275           </tr>
   24276           <tr class="entries_header">
   24277             <th class="th_details" colspan="6">Details</th>
   24278           </tr>
   24279           <tr class="entry_cont">
   24280             <td class="entry_details" colspan="6">
   24281               <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/>
   24282 If set to <code>false</code>,<wbr/> no hot pixel map will be returned.<wbr/></p>
   24283             </td>
   24284           </tr>
   24285 
   24286 
   24287           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   24288            <!-- end of entry -->
   24289         
   24290                 
   24291           <tr class="entry" id="controls_android.statistics.lensShadingMapMode">
   24292             <td class="entry_name
   24293              " rowspan="3">
   24294               android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode
   24295             </td>
   24296             <td class="entry_type">
   24297                 <span class="entry_type_name entry_type_name_enum">byte</span>
   24298 
   24299               <span class="entry_type_visibility"> [public]</span>
   24300 
   24301 
   24302               <span class="entry_type_hwlevel">[full] </span>
   24303 
   24304 
   24305 
   24306                 <ul class="entry_type_enum">
   24307                   <li>
   24308                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   24309                     <span class="entry_type_enum_notes"><p>Do not include a lens shading map in the capture result.<wbr/></p></span>
   24310                   </li>
   24311                   <li>
   24312                     <span class="entry_type_enum_name">ON (v3.2)</span>
   24313                     <span class="entry_type_enum_notes"><p>Include a lens shading map in the capture result.<wbr/></p></span>
   24314                   </li>
   24315                 </ul>
   24316 
   24317             </td> <!-- entry_type -->
   24318 
   24319             <td class="entry_description">
   24320               <p>Whether the camera device will output the lens
   24321 shading map in output result metadata.<wbr/></p>
   24322             </td>
   24323 
   24324             <td class="entry_units">
   24325             </td>
   24326 
   24327             <td class="entry_range">
   24328               <p><a href="#static_android.statistics.info.availableLensShadingMapModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Lens<wbr/>Shading<wbr/>Map<wbr/>Modes</a></p>
   24329             </td>
   24330 
   24331             <td class="entry_hal_version">
   24332               <p>3.<wbr/>2</p>
   24333             </td>
   24334 
   24335             <td class="entry_tags">
   24336               <ul class="entry_tags">
   24337                   <li><a href="#tag_RAW">RAW</a></li>
   24338               </ul>
   24339             </td>
   24340 
   24341           </tr>
   24342           <tr class="entries_header">
   24343             <th class="th_details" colspan="6">Details</th>
   24344           </tr>
   24345           <tr class="entry_cont">
   24346             <td class="entry_details" colspan="6">
   24347               <p>When set to ON,<wbr/>
   24348 <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> will be provided in
   24349 the output result metadata.<wbr/></p>
   24350 <p>ON is always supported on devices with the RAW capability.<wbr/></p>
   24351             </td>
   24352           </tr>
   24353 
   24354 
   24355           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   24356            <!-- end of entry -->
   24357         
   24358                 
   24359           <tr class="entry" id="controls_android.statistics.oisDataMode">
   24360             <td class="entry_name
   24361              " rowspan="1">
   24362               android.<wbr/>statistics.<wbr/>ois<wbr/>Data<wbr/>Mode
   24363             </td>
   24364             <td class="entry_type">
   24365                 <span class="entry_type_name entry_type_name_enum">byte</span>
   24366 
   24367               <span class="entry_type_visibility"> [public]</span>
   24368 
   24369 
   24370 
   24371 
   24372 
   24373                 <ul class="entry_type_enum">
   24374                   <li>
   24375                     <span class="entry_type_enum_name">OFF (v3.3)</span>
   24376                     <span class="entry_type_enum_notes"><p>Do not include OIS data in the capture result.<wbr/></p></span>
   24377                   </li>
   24378                   <li>
   24379                     <span class="entry_type_enum_name">ON (v3.3)</span>
   24380                     <span class="entry_type_enum_notes"><p>Include OIS data in the capture result.<wbr/></p></span>
   24381                   </li>
   24382                 </ul>
   24383 
   24384             </td> <!-- entry_type -->
   24385 
   24386             <td class="entry_description">
   24387               <p>A control for selecting whether OIS position information is included in output
   24388 result metadata.<wbr/></p>
   24389             </td>
   24390 
   24391             <td class="entry_units">
   24392             </td>
   24393 
   24394             <td class="entry_range">
   24395               <p><a href="#static_android.statistics.info.availableOisDataModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Ois<wbr/>Data<wbr/>Modes</a></p>
   24396             </td>
   24397 
   24398             <td class="entry_hal_version">
   24399               <p>3.<wbr/>3</p>
   24400             </td>
   24401 
   24402             <td class="entry_tags">
   24403             </td>
   24404 
   24405           </tr>
   24406 
   24407 
   24408           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   24409            <!-- end of entry -->
   24410         
   24411         
   24412 
   24413       <!-- end of kind -->
   24414       </tbody>
   24415       <tr><td colspan="7" class="kind">static</td></tr>
   24416 
   24417       <thead class="entries_header">
   24418         <tr>
   24419           <th class="th_name">Property Name</th>
   24420           <th class="th_type">Type</th>
   24421           <th class="th_description">Description</th>
   24422           <th class="th_units">Units</th>
   24423           <th class="th_range">Range</th>
   24424           <th class="th_hal_version">Initial HIDL HAL version</th>
   24425           <th class="th_tags">Tags</th>
   24426         </tr>
   24427       </thead>
   24428 
   24429       <tbody>
   24430 
   24431         
   24432 
   24433         
   24434 
   24435         
   24436 
   24437         
   24438                 
   24439             
   24440 
   24441                 
   24442           <tr class="entry" id="static_android.statistics.info.availableFaceDetectModes">
   24443             <td class="entry_name
   24444              " rowspan="3">
   24445               android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes
   24446             </td>
   24447             <td class="entry_type">
   24448                 <span class="entry_type_name">byte</span>
   24449                 <span class="entry_type_container">x</span>
   24450 
   24451                 <span class="entry_type_array">
   24452                   n
   24453                 </span>
   24454               <span class="entry_type_visibility"> [public as enumList]</span>
   24455 
   24456 
   24457               <span class="entry_type_hwlevel">[legacy] </span>
   24458 
   24459 
   24460                 <div class="entry_type_notes">List of enums from android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</div>
   24461 
   24462 
   24463             </td> <!-- entry_type -->
   24464 
   24465             <td class="entry_description">
   24466               <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
   24467 supported by this camera device.<wbr/></p>
   24468             </td>
   24469 
   24470             <td class="entry_units">
   24471             </td>
   24472 
   24473             <td class="entry_range">
   24474               <p>Any value listed in <a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a></p>
   24475             </td>
   24476 
   24477             <td class="entry_hal_version">
   24478               <p>3.<wbr/>2</p>
   24479             </td>
   24480 
   24481             <td class="entry_tags">
   24482             </td>
   24483 
   24484           </tr>
   24485           <tr class="entries_header">
   24486             <th class="th_details" colspan="6">Details</th>
   24487           </tr>
   24488           <tr class="entry_cont">
   24489             <td class="entry_details" colspan="6">
   24490               <p>OFF is always supported.<wbr/></p>
   24491             </td>
   24492           </tr>
   24493 
   24494 
   24495           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   24496            <!-- end of entry -->
   24497         
   24498                 
   24499           <tr class="entry" id="static_android.statistics.info.histogramBucketCount">
   24500             <td class="entry_name
   24501              " rowspan="1">
   24502               android.<wbr/>statistics.<wbr/>info.<wbr/>histogram<wbr/>Bucket<wbr/>Count
   24503             </td>
   24504             <td class="entry_type">
   24505                 <span class="entry_type_name">int32</span>
   24506 
   24507               <span class="entry_type_visibility"> [system]</span>
   24508 
   24509 
   24510 
   24511 
   24512 
   24513 
   24514             </td> <!-- entry_type -->
   24515 
   24516             <td class="entry_description">
   24517               <p>Number of histogram buckets
   24518 supported</p>
   24519             </td>
   24520 
   24521             <td class="entry_units">
   24522             </td>
   24523 
   24524             <td class="entry_range">
   24525               <p>&gt;= 64</p>
   24526             </td>
   24527 
   24528             <td class="entry_hal_version">
   24529               <p>3.<wbr/>2</p>
   24530             </td>
   24531 
   24532             <td class="entry_tags">
   24533               <ul class="entry_tags">
   24534                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   24535               </ul>
   24536             </td>
   24537 
   24538           </tr>
   24539 
   24540 
   24541           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   24542            <!-- end of entry -->
   24543         
   24544                 
   24545           <tr class="entry" id="static_android.statistics.info.maxFaceCount">
   24546             <td class="entry_name
   24547              " rowspan="1">
   24548               android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Face<wbr/>Count
   24549             </td>
   24550             <td class="entry_type">
   24551                 <span class="entry_type_name">int32</span>
   24552 
   24553               <span class="entry_type_visibility"> [public]</span>
   24554 
   24555 
   24556               <span class="entry_type_hwlevel">[legacy] </span>
   24557 
   24558 
   24559 
   24560 
   24561             </td> <!-- entry_type -->
   24562 
   24563             <td class="entry_description">
   24564               <p>The maximum number of simultaneously detectable
   24565 faces.<wbr/></p>
   24566             </td>
   24567 
   24568             <td class="entry_units">
   24569             </td>
   24570 
   24571             <td class="entry_range">
   24572               <p>0 for cameras without available face detection; otherwise:
   24573 <code>&gt;=4</code> for LIMITED or FULL hwlevel devices or
   24574 <code>&gt;0</code> for LEGACY devices.<wbr/></p>
   24575             </td>
   24576 
   24577             <td class="entry_hal_version">
   24578               <p>3.<wbr/>2</p>
   24579             </td>
   24580 
   24581             <td class="entry_tags">
   24582               <ul class="entry_tags">
   24583                   <li><a href="#tag_BC">BC</a></li>
   24584               </ul>
   24585             </td>
   24586 
   24587           </tr>
   24588 
   24589 
   24590           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   24591            <!-- end of entry -->
   24592         
   24593                 
   24594           <tr class="entry" id="static_android.statistics.info.maxHistogramCount">
   24595             <td class="entry_name
   24596              " rowspan="1">
   24597               android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Histogram<wbr/>Count
   24598             </td>
   24599             <td class="entry_type">
   24600                 <span class="entry_type_name">int32</span>
   24601 
   24602               <span class="entry_type_visibility"> [system]</span>
   24603 
   24604 
   24605 
   24606 
   24607 
   24608 
   24609             </td> <!-- entry_type -->
   24610 
   24611             <td class="entry_description">
   24612               <p>Maximum value possible for a histogram
   24613 bucket</p>
   24614             </td>
   24615 
   24616             <td class="entry_units">
   24617             </td>
   24618 
   24619             <td class="entry_range">
   24620             </td>
   24621 
   24622             <td class="entry_hal_version">
   24623               <p>3.<wbr/>2</p>
   24624             </td>
   24625 
   24626             <td class="entry_tags">
   24627               <ul class="entry_tags">
   24628                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   24629               </ul>
   24630             </td>
   24631 
   24632           </tr>
   24633 
   24634 
   24635           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   24636            <!-- end of entry -->
   24637         
   24638                 
   24639           <tr class="entry" id="static_android.statistics.info.maxSharpnessMapValue">
   24640             <td class="entry_name
   24641              " rowspan="1">
   24642               android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Sharpness<wbr/>Map<wbr/>Value
   24643             </td>
   24644             <td class="entry_type">
   24645                 <span class="entry_type_name">int32</span>
   24646 
   24647               <span class="entry_type_visibility"> [system]</span>
   24648 
   24649 
   24650 
   24651 
   24652 
   24653 
   24654             </td> <!-- entry_type -->
   24655 
   24656             <td class="entry_description">
   24657               <p>Maximum value possible for a sharpness map
   24658 region.<wbr/></p>
   24659             </td>
   24660 
   24661             <td class="entry_units">
   24662             </td>
   24663 
   24664             <td class="entry_range">
   24665             </td>
   24666 
   24667             <td class="entry_hal_version">
   24668               <p>3.<wbr/>2</p>
   24669             </td>
   24670 
   24671             <td class="entry_tags">
   24672               <ul class="entry_tags">
   24673                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   24674               </ul>
   24675             </td>
   24676 
   24677           </tr>
   24678 
   24679 
   24680           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   24681            <!-- end of entry -->
   24682         
   24683                 
   24684           <tr class="entry" id="static_android.statistics.info.sharpnessMapSize">
   24685             <td class="entry_name
   24686              " rowspan="1">
   24687               android.<wbr/>statistics.<wbr/>info.<wbr/>sharpness<wbr/>Map<wbr/>Size
   24688             </td>
   24689             <td class="entry_type">
   24690                 <span class="entry_type_name">int32</span>
   24691                 <span class="entry_type_container">x</span>
   24692 
   24693                 <span class="entry_type_array">
   24694                   2
   24695                 </span>
   24696               <span class="entry_type_visibility"> [system as size]</span>
   24697 
   24698 
   24699 
   24700 
   24701                 <div class="entry_type_notes">width x height</div>
   24702 
   24703 
   24704             </td> <!-- entry_type -->
   24705 
   24706             <td class="entry_description">
   24707               <p>Dimensions of the sharpness
   24708 map</p>
   24709             </td>
   24710 
   24711             <td class="entry_units">
   24712             </td>
   24713 
   24714             <td class="entry_range">
   24715               <p>Must be at least 32 x 32</p>
   24716             </td>
   24717 
   24718             <td class="entry_hal_version">
   24719               <p>3.<wbr/>2</p>
   24720             </td>
   24721 
   24722             <td class="entry_tags">
   24723               <ul class="entry_tags">
   24724                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   24725               </ul>
   24726             </td>
   24727 
   24728           </tr>
   24729 
   24730 
   24731           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   24732            <!-- end of entry -->
   24733         
   24734                 
   24735           <tr class="entry" id="static_android.statistics.info.availableHotPixelMapModes">
   24736             <td class="entry_name
   24737              " rowspan="3">
   24738               android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Hot<wbr/>Pixel<wbr/>Map<wbr/>Modes
   24739             </td>
   24740             <td class="entry_type">
   24741                 <span class="entry_type_name">byte</span>
   24742                 <span class="entry_type_container">x</span>
   24743 
   24744                 <span class="entry_type_array">
   24745                   n
   24746                 </span>
   24747               <span class="entry_type_visibility"> [public as boolean]</span>
   24748 
   24749 
   24750 
   24751 
   24752                 <div class="entry_type_notes">list of enums</div>
   24753 
   24754 
   24755             </td> <!-- entry_type -->
   24756 
   24757             <td class="entry_description">
   24758               <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
   24759 supported by this camera device.<wbr/></p>
   24760             </td>
   24761 
   24762             <td class="entry_units">
   24763             </td>
   24764 
   24765             <td class="entry_range">
   24766               <p>Any value listed in <a href="#controls_android.statistics.hotPixelMapMode">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map<wbr/>Mode</a></p>
   24767             </td>
   24768 
   24769             <td class="entry_hal_version">
   24770               <p>3.<wbr/>2</p>
   24771             </td>
   24772 
   24773             <td class="entry_tags">
   24774               <ul class="entry_tags">
   24775                   <li><a href="#tag_V1">V1</a></li>
   24776                   <li><a href="#tag_RAW">RAW</a></li>
   24777               </ul>
   24778             </td>
   24779 
   24780           </tr>
   24781           <tr class="entries_header">
   24782             <th class="th_details" colspan="6">Details</th>
   24783           </tr>
   24784           <tr class="entry_cont">
   24785             <td class="entry_details" colspan="6">
   24786               <p>If no hotpixel map output is available for this camera device,<wbr/> this will contain only
   24787 <code>false</code>.<wbr/></p>
   24788 <p>ON is always supported on devices with the RAW capability.<wbr/></p>
   24789             </td>
   24790           </tr>
   24791 
   24792 
   24793           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   24794            <!-- end of entry -->
   24795         
   24796                 
   24797           <tr class="entry" id="static_android.statistics.info.availableLensShadingMapModes">
   24798             <td class="entry_name
   24799              " rowspan="3">
   24800               android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Lens<wbr/>Shading<wbr/>Map<wbr/>Modes
   24801             </td>
   24802             <td class="entry_type">
   24803                 <span class="entry_type_name">byte</span>
   24804                 <span class="entry_type_container">x</span>
   24805 
   24806                 <span class="entry_type_array">
   24807                   n
   24808                 </span>
   24809               <span class="entry_type_visibility"> [public as enumList]</span>
   24810 
   24811 
   24812 
   24813 
   24814                 <div class="entry_type_notes">list of enums</div>
   24815 
   24816 
   24817             </td> <!-- entry_type -->
   24818 
   24819             <td class="entry_description">
   24820               <p>List of lens shading map output modes for <a href="#controls_android.statistics.lensShadingMapMode">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode</a> that
   24821 are supported by this camera device.<wbr/></p>
   24822             </td>
   24823 
   24824             <td class="entry_units">
   24825             </td>
   24826 
   24827             <td class="entry_range">
   24828               <p>Any value listed in <a href="#controls_android.statistics.lensShadingMapMode">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode</a></p>
   24829             </td>
   24830 
   24831             <td class="entry_hal_version">
   24832               <p>3.<wbr/>2</p>
   24833             </td>
   24834 
   24835             <td class="entry_tags">
   24836             </td>
   24837 
   24838           </tr>
   24839           <tr class="entries_header">
   24840             <th class="th_details" colspan="6">Details</th>
   24841           </tr>
   24842           <tr class="entry_cont">
   24843             <td class="entry_details" colspan="6">
   24844               <p>If no lens shading map output is available for this camera device,<wbr/> this key will
   24845 contain only OFF.<wbr/></p>
   24846 <p>ON is always supported on devices with the RAW capability.<wbr/>
   24847 LEGACY mode devices will always only support OFF.<wbr/></p>
   24848             </td>
   24849           </tr>
   24850 
   24851 
   24852           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   24853            <!-- end of entry -->
   24854         
   24855                 
   24856           <tr class="entry" id="static_android.statistics.info.availableOisDataModes">
   24857             <td class="entry_name
   24858              " rowspan="3">
   24859               android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Ois<wbr/>Data<wbr/>Modes
   24860             </td>
   24861             <td class="entry_type">
   24862                 <span class="entry_type_name">byte</span>
   24863                 <span class="entry_type_container">x</span>
   24864 
   24865                 <span class="entry_type_array">
   24866                   n
   24867                 </span>
   24868               <span class="entry_type_visibility"> [public as enumList]</span>
   24869 
   24870 
   24871 
   24872 
   24873                 <div class="entry_type_notes">list of enums</div>
   24874 
   24875 
   24876             </td> <!-- entry_type -->
   24877 
   24878             <td class="entry_description">
   24879               <p>List of OIS data output modes for <a href="#controls_android.statistics.oisDataMode">android.<wbr/>statistics.<wbr/>ois<wbr/>Data<wbr/>Mode</a> that
   24880 are supported by this camera device.<wbr/></p>
   24881             </td>
   24882 
   24883             <td class="entry_units">
   24884             </td>
   24885 
   24886             <td class="entry_range">
   24887               <p>Any value listed in <a href="#controls_android.statistics.oisDataMode">android.<wbr/>statistics.<wbr/>ois<wbr/>Data<wbr/>Mode</a></p>
   24888             </td>
   24889 
   24890             <td class="entry_hal_version">
   24891               <p>3.<wbr/>3</p>
   24892             </td>
   24893 
   24894             <td class="entry_tags">
   24895             </td>
   24896 
   24897           </tr>
   24898           <tr class="entries_header">
   24899             <th class="th_details" colspan="6">Details</th>
   24900           </tr>
   24901           <tr class="entry_cont">
   24902             <td class="entry_details" colspan="6">
   24903               <p>If no OIS data output is available for this camera device,<wbr/> this key will
   24904 contain only OFF.<wbr/></p>
   24905             </td>
   24906           </tr>
   24907 
   24908 
   24909           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   24910            <!-- end of entry -->
   24911         
   24912         
   24913         
   24914 
   24915         
   24916 
   24917       <!-- end of kind -->
   24918       </tbody>
   24919       <tr><td colspan="7" class="kind">dynamic</td></tr>
   24920 
   24921       <thead class="entries_header">
   24922         <tr>
   24923           <th class="th_name">Property Name</th>
   24924           <th class="th_type">Type</th>
   24925           <th class="th_description">Description</th>
   24926           <th class="th_units">Units</th>
   24927           <th class="th_range">Range</th>
   24928           <th class="th_hal_version">Initial HIDL HAL version</th>
   24929           <th class="th_tags">Tags</th>
   24930         </tr>
   24931       </thead>
   24932 
   24933       <tbody>
   24934 
   24935         
   24936 
   24937         
   24938 
   24939         
   24940 
   24941         
   24942 
   24943                 
   24944           <tr class="entry" id="dynamic_android.statistics.faceDetectMode">
   24945             <td class="entry_name
   24946              " rowspan="5">
   24947               android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
   24948             </td>
   24949             <td class="entry_type">
   24950                 <span class="entry_type_name entry_type_name_enum">byte</span>
   24951 
   24952               <span class="entry_type_visibility"> [public]</span>
   24953 
   24954 
   24955               <span class="entry_type_hwlevel">[legacy] </span>
   24956 
   24957 
   24958 
   24959                 <ul class="entry_type_enum">
   24960                   <li>
   24961                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   24962                     <span class="entry_type_enum_notes"><p>Do not include face detection statistics in capture
   24963 results.<wbr/></p></span>
   24964                   </li>
   24965                   <li>
   24966                     <span class="entry_type_enum_name">SIMPLE (v3.2)</span>
   24967                     <span class="entry_type_enum_optional">[optional]</span>
   24968                     <span class="entry_type_enum_notes"><p>Return face rectangle and confidence values only.<wbr/></p></span>
   24969                   </li>
   24970                   <li>
   24971                     <span class="entry_type_enum_name">FULL (v3.2)</span>
   24972                     <span class="entry_type_enum_optional">[optional]</span>
   24973                     <span class="entry_type_enum_notes"><p>Return all face
   24974 metadata.<wbr/></p>
   24975 <p>In this mode,<wbr/> face rectangles,<wbr/> scores,<wbr/> landmarks,<wbr/> and face IDs are all valid.<wbr/></p></span>
   24976                   </li>
   24977                 </ul>
   24978 
   24979             </td> <!-- entry_type -->
   24980 
   24981             <td class="entry_description">
   24982               <p>Operating mode for the face detector
   24983 unit.<wbr/></p>
   24984             </td>
   24985 
   24986             <td class="entry_units">
   24987             </td>
   24988 
   24989             <td class="entry_range">
   24990               <p><a href="#static_android.statistics.info.availableFaceDetectModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes</a></p>
   24991             </td>
   24992 
   24993             <td class="entry_hal_version">
   24994               <p>3.<wbr/>2</p>
   24995             </td>
   24996 
   24997             <td class="entry_tags">
   24998               <ul class="entry_tags">
   24999                   <li><a href="#tag_BC">BC</a></li>
   25000               </ul>
   25001             </td>
   25002 
   25003           </tr>
   25004           <tr class="entries_header">
   25005             <th class="th_details" colspan="6">Details</th>
   25006           </tr>
   25007           <tr class="entry_cont">
   25008             <td class="entry_details" colspan="6">
   25009               <p>Whether face detection is enabled,<wbr/> and whether it
   25010 should output just the basic fields or the full set of
   25011 fields.<wbr/></p>
   25012             </td>
   25013           </tr>
   25014 
   25015           <tr class="entries_header">
   25016             <th class="th_details" colspan="6">HAL Implementation Details</th>
   25017           </tr>
   25018           <tr class="entry_cont">
   25019             <td class="entry_details" colspan="6">
   25020               <p>SIMPLE mode must fill in <a href="#dynamic_android.statistics.faceRectangles">android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles</a> and
   25021 <a href="#dynamic_android.statistics.faceScores">android.<wbr/>statistics.<wbr/>face<wbr/>Scores</a>.<wbr/>
   25022 FULL mode must also fill in <a href="#dynamic_android.statistics.faceIds">android.<wbr/>statistics.<wbr/>face<wbr/>Ids</a>,<wbr/> and
   25023 <a href="#dynamic_android.statistics.faceLandmarks">android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks</a>.<wbr/></p>
   25024             </td>
   25025           </tr>
   25026 
   25027           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   25028            <!-- end of entry -->
   25029         
   25030                 
   25031           <tr class="entry" id="dynamic_android.statistics.faceIds">
   25032             <td class="entry_name
   25033              " rowspan="3">
   25034               android.<wbr/>statistics.<wbr/>face<wbr/>Ids
   25035             </td>
   25036             <td class="entry_type">
   25037                 <span class="entry_type_name">int32</span>
   25038                 <span class="entry_type_container">x</span>
   25039 
   25040                 <span class="entry_type_array">
   25041                   n
   25042                 </span>
   25043               <span class="entry_type_visibility"> [ndk_public]</span>
   25044 
   25045 
   25046               <span class="entry_type_hwlevel">[legacy] </span>
   25047 
   25048 
   25049 
   25050 
   25051             </td> <!-- entry_type -->
   25052 
   25053             <td class="entry_description">
   25054               <p>List of unique IDs for detected faces.<wbr/></p>
   25055             </td>
   25056 
   25057             <td class="entry_units">
   25058             </td>
   25059 
   25060             <td class="entry_range">
   25061             </td>
   25062 
   25063             <td class="entry_hal_version">
   25064               <p>3.<wbr/>2</p>
   25065             </td>
   25066 
   25067             <td class="entry_tags">
   25068               <ul class="entry_tags">
   25069                   <li><a href="#tag_BC">BC</a></li>
   25070               </ul>
   25071             </td>
   25072 
   25073           </tr>
   25074           <tr class="entries_header">
   25075             <th class="th_details" colspan="6">Details</th>
   25076           </tr>
   25077           <tr class="entry_cont">
   25078             <td class="entry_details" colspan="6">
   25079               <p>Each detected face is given a unique ID that is valid for as long as the face is visible
   25080 to the camera device.<wbr/>  A face that leaves the field of view and later returns may be
   25081 assigned a new ID.<wbr/></p>
   25082 <p>Only available if <a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a> == FULL</p>
   25083             </td>
   25084           </tr>
   25085 
   25086 
   25087           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   25088            <!-- end of entry -->
   25089         
   25090                 
   25091           <tr class="entry" id="dynamic_android.statistics.faceLandmarks">
   25092             <td class="entry_name
   25093              " rowspan="3">
   25094               android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks
   25095             </td>
   25096             <td class="entry_type">
   25097                 <span class="entry_type_name">int32</span>
   25098                 <span class="entry_type_container">x</span>
   25099 
   25100                 <span class="entry_type_array">
   25101                   n x 6
   25102                 </span>
   25103               <span class="entry_type_visibility"> [ndk_public]</span>
   25104 
   25105 
   25106               <span class="entry_type_hwlevel">[legacy] </span>
   25107 
   25108 
   25109                 <div class="entry_type_notes">(leftEyeX,<wbr/> leftEyeY,<wbr/> rightEyeX,<wbr/> rightEyeY,<wbr/> mouthX,<wbr/> mouthY)</div>
   25110 
   25111 
   25112             </td> <!-- entry_type -->
   25113 
   25114             <td class="entry_description">
   25115               <p>List of landmarks for detected
   25116 faces.<wbr/></p>
   25117             </td>
   25118 
   25119             <td class="entry_units">
   25120             </td>
   25121 
   25122             <td class="entry_range">
   25123             </td>
   25124 
   25125             <td class="entry_hal_version">
   25126               <p>3.<wbr/>2</p>
   25127             </td>
   25128 
   25129             <td class="entry_tags">
   25130               <ul class="entry_tags">
   25131                   <li><a href="#tag_BC">BC</a></li>
   25132               </ul>
   25133             </td>
   25134 
   25135           </tr>
   25136           <tr class="entries_header">
   25137             <th class="th_details" colspan="6">Details</th>
   25138           </tr>
   25139           <tr class="entry_cont">
   25140             <td class="entry_details" colspan="6">
   25141               <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
   25142 <code>(0,<wbr/> 0)</code> being the top-left pixel of the active array.<wbr/></p>
   25143 <p>Only available if <a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a> == FULL</p>
   25144             </td>
   25145           </tr>
   25146 
   25147 
   25148           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   25149            <!-- end of entry -->
   25150         
   25151                 
   25152           <tr class="entry" id="dynamic_android.statistics.faceRectangles">
   25153             <td class="entry_name
   25154              " rowspan="3">
   25155               android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles
   25156             </td>
   25157             <td class="entry_type">
   25158                 <span class="entry_type_name">int32</span>
   25159                 <span class="entry_type_container">x</span>
   25160 
   25161                 <span class="entry_type_array">
   25162                   n x 4
   25163                 </span>
   25164               <span class="entry_type_visibility"> [ndk_public as rectangle]</span>
   25165 
   25166 
   25167               <span class="entry_type_hwlevel">[legacy] </span>
   25168 
   25169 
   25170                 <div class="entry_type_notes">(xmin,<wbr/> ymin,<wbr/> xmax,<wbr/> ymax).<wbr/> (0,<wbr/>0) is top-left of active pixel area</div>
   25171 
   25172 
   25173             </td> <!-- entry_type -->
   25174 
   25175             <td class="entry_description">
   25176               <p>List of the bounding rectangles for detected
   25177 faces.<wbr/></p>
   25178             </td>
   25179 
   25180             <td class="entry_units">
   25181             </td>
   25182 
   25183             <td class="entry_range">
   25184             </td>
   25185 
   25186             <td class="entry_hal_version">
   25187               <p>3.<wbr/>2</p>
   25188             </td>
   25189 
   25190             <td class="entry_tags">
   25191               <ul class="entry_tags">
   25192                   <li><a href="#tag_BC">BC</a></li>
   25193               </ul>
   25194             </td>
   25195 
   25196           </tr>
   25197           <tr class="entries_header">
   25198             <th class="th_details" colspan="6">Details</th>
   25199           </tr>
   25200           <tr class="entry_cont">
   25201             <td class="entry_details" colspan="6">
   25202               <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
   25203 <code>(0,<wbr/> 0)</code> being the top-left pixel of the active array.<wbr/></p>
   25204 <p>Only available if <a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a> != OFF</p>
   25205             </td>
   25206           </tr>
   25207 
   25208 
   25209           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   25210            <!-- end of entry -->
   25211         
   25212                 
   25213           <tr class="entry" id="dynamic_android.statistics.faceScores">
   25214             <td class="entry_name
   25215              " rowspan="5">
   25216               android.<wbr/>statistics.<wbr/>face<wbr/>Scores
   25217             </td>
   25218             <td class="entry_type">
   25219                 <span class="entry_type_name">byte</span>
   25220                 <span class="entry_type_container">x</span>
   25221 
   25222                 <span class="entry_type_array">
   25223                   n
   25224                 </span>
   25225               <span class="entry_type_visibility"> [ndk_public]</span>
   25226 
   25227 
   25228               <span class="entry_type_hwlevel">[legacy] </span>
   25229 
   25230 
   25231 
   25232 
   25233             </td> <!-- entry_type -->
   25234 
   25235             <td class="entry_description">
   25236               <p>List of the face confidence scores for
   25237 detected faces</p>
   25238             </td>
   25239 
   25240             <td class="entry_units">
   25241             </td>
   25242 
   25243             <td class="entry_range">
   25244               <p>1-100</p>
   25245             </td>
   25246 
   25247             <td class="entry_hal_version">
   25248               <p>3.<wbr/>2</p>
   25249             </td>
   25250 
   25251             <td class="entry_tags">
   25252               <ul class="entry_tags">
   25253                   <li><a href="#tag_BC">BC</a></li>
   25254               </ul>
   25255             </td>
   25256 
   25257           </tr>
   25258           <tr class="entries_header">
   25259             <th class="th_details" colspan="6">Details</th>
   25260           </tr>
   25261           <tr class="entry_cont">
   25262             <td class="entry_details" colspan="6">
   25263               <p>Only available if <a href="#controls_android.statistics.faceDetectMode">android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</a> != OFF.<wbr/></p>
   25264             </td>
   25265           </tr>
   25266 
   25267           <tr class="entries_header">
   25268             <th class="th_details" colspan="6">HAL Implementation Details</th>
   25269           </tr>
   25270           <tr class="entry_cont">
   25271             <td class="entry_details" colspan="6">
   25272               <p>The value should be meaningful (for example,<wbr/> setting 100 at
   25273 all times is illegal).<wbr/></p>
   25274             </td>
   25275           </tr>
   25276 
   25277           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   25278            <!-- end of entry -->
   25279         
   25280                 
   25281           <tr class="entry" id="dynamic_android.statistics.faces">
   25282             <td class="entry_name
   25283              " rowspan="3">
   25284               android.<wbr/>statistics.<wbr/>faces
   25285             </td>
   25286             <td class="entry_type">
   25287                 <span class="entry_type_name">int32</span>
   25288                 <span class="entry_type_container">x</span>
   25289 
   25290                 <span class="entry_type_array">
   25291                   n
   25292                 </span>
   25293               <span class="entry_type_visibility"> [java_public as face]</span>
   25294 
   25295               <span class="entry_type_synthetic">[synthetic] </span>
   25296 
   25297               <span class="entry_type_hwlevel">[legacy] </span>
   25298 
   25299 
   25300 
   25301 
   25302             </td> <!-- entry_type -->
   25303 
   25304             <td class="entry_description">
   25305               <p>List of the faces detected through camera face detection
   25306 in this capture.<wbr/></p>
   25307             </td>
   25308 
   25309             <td class="entry_units">
   25310             </td>
   25311 
   25312             <td class="entry_range">
   25313             </td>
   25314 
   25315             <td class="entry_hal_version">
   25316               <p>3.<wbr/>2</p>
   25317             </td>
   25318 
   25319             <td class="entry_tags">
   25320             </td>
   25321 
   25322           </tr>
   25323           <tr class="entries_header">
   25324             <th class="th_details" colspan="6">Details</th>
   25325           </tr>
   25326           <tr class="entry_cont">
   25327             <td class="entry_details" colspan="6">
   25328               <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>
   25329             </td>
   25330           </tr>
   25331 
   25332 
   25333           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   25334            <!-- end of entry -->
   25335         
   25336                 
   25337           <tr class="entry" id="dynamic_android.statistics.histogram">
   25338             <td class="entry_name
   25339              " rowspan="3">
   25340               android.<wbr/>statistics.<wbr/>histogram
   25341             </td>
   25342             <td class="entry_type">
   25343                 <span class="entry_type_name">int32</span>
   25344                 <span class="entry_type_container">x</span>
   25345 
   25346                 <span class="entry_type_array">
   25347                   n x 3
   25348                 </span>
   25349               <span class="entry_type_visibility"> [system]</span>
   25350 
   25351 
   25352 
   25353 
   25354                 <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>
   25355 
   25356 
   25357             </td> <!-- entry_type -->
   25358 
   25359             <td class="entry_description">
   25360               <p>A 3-channel histogram based on the raw
   25361 sensor data</p>
   25362             </td>
   25363 
   25364             <td class="entry_units">
   25365             </td>
   25366 
   25367             <td class="entry_range">
   25368             </td>
   25369 
   25370             <td class="entry_hal_version">
   25371               <p>3.<wbr/>2</p>
   25372             </td>
   25373 
   25374             <td class="entry_tags">
   25375               <ul class="entry_tags">
   25376                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   25377               </ul>
   25378             </td>
   25379 
   25380           </tr>
   25381           <tr class="entries_header">
   25382             <th class="th_details" colspan="6">Details</th>
   25383           </tr>
   25384           <tr class="entry_cont">
   25385             <td class="entry_details" colspan="6">
   25386               <p>The k'th bucket (0-based) covers the input range
   25387 (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/>
   25388 (k + 1) * w /<wbr/> N ).<wbr/> If only a monochrome sharpness map is
   25389 supported,<wbr/> all channels should have the same data</p>
   25390             </td>
   25391           </tr>
   25392 
   25393 
   25394           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   25395            <!-- end of entry -->
   25396         
   25397                 
   25398           <tr class="entry" id="dynamic_android.statistics.histogramMode">
   25399             <td class="entry_name
   25400              " rowspan="1">
   25401               android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
   25402             </td>
   25403             <td class="entry_type">
   25404                 <span class="entry_type_name entry_type_name_enum">byte</span>
   25405 
   25406               <span class="entry_type_visibility"> [system as boolean]</span>
   25407 
   25408 
   25409 
   25410 
   25411 
   25412                 <ul class="entry_type_enum">
   25413                   <li>
   25414                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   25415                   </li>
   25416                   <li>
   25417                     <span class="entry_type_enum_name">ON (v3.2)</span>
   25418                   </li>
   25419                 </ul>
   25420 
   25421             </td> <!-- entry_type -->
   25422 
   25423             <td class="entry_description">
   25424               <p>Operating mode for histogram
   25425 generation</p>
   25426             </td>
   25427 
   25428             <td class="entry_units">
   25429             </td>
   25430 
   25431             <td class="entry_range">
   25432             </td>
   25433 
   25434             <td class="entry_hal_version">
   25435               <p>3.<wbr/>2</p>
   25436             </td>
   25437 
   25438             <td class="entry_tags">
   25439               <ul class="entry_tags">
   25440                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   25441               </ul>
   25442             </td>
   25443 
   25444           </tr>
   25445 
   25446 
   25447           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   25448            <!-- end of entry -->
   25449         
   25450                 
   25451           <tr class="entry" id="dynamic_android.statistics.sharpnessMap">
   25452             <td class="entry_name
   25453              " rowspan="3">
   25454               android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map
   25455             </td>
   25456             <td class="entry_type">
   25457                 <span class="entry_type_name">int32</span>
   25458                 <span class="entry_type_container">x</span>
   25459 
   25460                 <span class="entry_type_array">
   25461                   n x m x 3
   25462                 </span>
   25463               <span class="entry_type_visibility"> [system]</span>
   25464 
   25465 
   25466 
   25467 
   25468                 <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>
   25469 
   25470 
   25471             </td> <!-- entry_type -->
   25472 
   25473             <td class="entry_description">
   25474               <p>A 3-channel sharpness map,<wbr/> based on the raw
   25475 sensor data</p>
   25476             </td>
   25477 
   25478             <td class="entry_units">
   25479             </td>
   25480 
   25481             <td class="entry_range">
   25482             </td>
   25483 
   25484             <td class="entry_hal_version">
   25485               <p>3.<wbr/>2</p>
   25486             </td>
   25487 
   25488             <td class="entry_tags">
   25489               <ul class="entry_tags">
   25490                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   25491               </ul>
   25492             </td>
   25493 
   25494           </tr>
   25495           <tr class="entries_header">
   25496             <th class="th_details" colspan="6">Details</th>
   25497           </tr>
   25498           <tr class="entry_cont">
   25499             <td class="entry_details" colspan="6">
   25500               <p>If only a monochrome sharpness map is supported,<wbr/>
   25501 all channels should have the same data</p>
   25502             </td>
   25503           </tr>
   25504 
   25505 
   25506           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   25507            <!-- end of entry -->
   25508         
   25509                 
   25510           <tr class="entry" id="dynamic_android.statistics.sharpnessMapMode">
   25511             <td class="entry_name
   25512              " rowspan="1">
   25513               android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
   25514             </td>
   25515             <td class="entry_type">
   25516                 <span class="entry_type_name entry_type_name_enum">byte</span>
   25517 
   25518               <span class="entry_type_visibility"> [system as boolean]</span>
   25519 
   25520 
   25521 
   25522 
   25523 
   25524                 <ul class="entry_type_enum">
   25525                   <li>
   25526                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   25527                   </li>
   25528                   <li>
   25529                     <span class="entry_type_enum_name">ON (v3.2)</span>
   25530                   </li>
   25531                 </ul>
   25532 
   25533             </td> <!-- entry_type -->
   25534 
   25535             <td class="entry_description">
   25536               <p>Operating mode for sharpness map
   25537 generation</p>
   25538             </td>
   25539 
   25540             <td class="entry_units">
   25541             </td>
   25542 
   25543             <td class="entry_range">
   25544             </td>
   25545 
   25546             <td class="entry_hal_version">
   25547               <p>3.<wbr/>2</p>
   25548             </td>
   25549 
   25550             <td class="entry_tags">
   25551               <ul class="entry_tags">
   25552                   <li><a href="#tag_FUTURE">FUTURE</a></li>
   25553               </ul>
   25554             </td>
   25555 
   25556           </tr>
   25557 
   25558 
   25559           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   25560            <!-- end of entry -->
   25561         
   25562                 
   25563           <tr class="entry" id="dynamic_android.statistics.lensShadingCorrectionMap">
   25564             <td class="entry_name
   25565              " rowspan="3">
   25566               android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Correction<wbr/>Map
   25567             </td>
   25568             <td class="entry_type">
   25569                 <span class="entry_type_name">byte</span>
   25570 
   25571               <span class="entry_type_visibility"> [java_public as lensShadingMap]</span>
   25572 
   25573 
   25574               <span class="entry_type_hwlevel">[full] </span>
   25575 
   25576 
   25577 
   25578 
   25579             </td> <!-- entry_type -->
   25580 
   25581             <td class="entry_description">
   25582               <p>The shading map is a low-resolution floating-point map
   25583 that lists the coefficients used to correct for vignetting,<wbr/> for each
   25584 Bayer color channel.<wbr/></p>
   25585             </td>
   25586 
   25587             <td class="entry_units">
   25588             </td>
   25589 
   25590             <td class="entry_range">
   25591               <p>Each gain factor is &gt;= 1</p>
   25592             </td>
   25593 
   25594             <td class="entry_hal_version">
   25595               <p>3.<wbr/>2</p>
   25596             </td>
   25597 
   25598             <td class="entry_tags">
   25599             </td>
   25600 
   25601           </tr>
   25602           <tr class="entries_header">
   25603             <th class="th_details" colspan="6">Details</th>
   25604           </tr>
   25605           <tr class="entry_cont">
   25606             <td class="entry_details" colspan="6">
   25607               <p>The map provided here is the same map that is used by the camera device to
   25608 correct both color shading and vignetting for output non-RAW images.<wbr/></p>
   25609 <p>When there is no lens shading correction applied to RAW
   25610 output images (<a href="#static_android.sensor.info.lensShadingApplied">android.<wbr/>sensor.<wbr/>info.<wbr/>lens<wbr/>Shading<wbr/>Applied</a> <code>==</code>
   25611 false),<wbr/> this map is the complete lens shading correction
   25612 map; when there is some lens shading correction applied to
   25613 the RAW output image (<a href="#static_android.sensor.info.lensShadingApplied">android.<wbr/>sensor.<wbr/>info.<wbr/>lens<wbr/>Shading<wbr/>Applied</a><code>==</code> true),<wbr/> this map reports the remaining lens shading
   25614 correction map that needs to be applied to get shading
   25615 corrected images that match the camera device's output for
   25616 non-RAW formats.<wbr/></p>
   25617 <p>For a complete shading correction map,<wbr/> the least shaded
   25618 section of the image will have a gain factor of 1; all
   25619 other sections will have gains above 1.<wbr/></p>
   25620 <p>When <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> = TRANSFORM_<wbr/>MATRIX,<wbr/> the map
   25621 will take into account the colorCorrection settings.<wbr/></p>
   25622 <p>The shading map is for the entire active pixel array,<wbr/> and is not
   25623 affected by the crop region specified in the request.<wbr/> Each shading map
   25624 entry is the value of the shading compensation map over a specific
   25625 pixel on the sensor.<wbr/>  Specifically,<wbr/> with a (N x M) resolution shading
   25626 map,<wbr/> and an active pixel array size (W x H),<wbr/> shading map entry
   25627 (x,<wbr/>y)  (0 ...<wbr/> N-1,<wbr/> 0 ...<wbr/> M-1) is the value of the shading map at
   25628 pixel ( ((W-1)/<wbr/>(N-1)) * x,<wbr/> ((H-1)/<wbr/>(M-1)) * y) for the four color channels.<wbr/>
   25629 The map is assumed to be bilinearly interpolated between the sample points.<wbr/></p>
   25630 <p>The channel order is [R,<wbr/> Geven,<wbr/> Godd,<wbr/> B],<wbr/> where Geven is the green
   25631 channel for the even rows of a Bayer pattern,<wbr/> and Godd is the odd rows.<wbr/>
   25632 The shading map is stored in a fully interleaved format.<wbr/></p>
   25633 <p>The shading map will generally have on the order of 30-40 rows and columns,<wbr/>
   25634 and will be smaller than 64x64.<wbr/></p>
   25635 <p>As an example,<wbr/> given a very small map defined as:</p>
   25636 <pre><code>width,<wbr/>height = [ 4,<wbr/> 3 ]
   25637 values =
   25638 [ 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/>
   25639     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/>
   25640   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/>
   25641     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/>
   25642   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/>
   25643     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 ]
   25644 </code></pre>
   25645 <p>The low-resolution scaling map images for each channel are
   25646 (displayed using nearest-neighbor interpolation):</p>
   25647 <p><img alt="Red lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/red_shading.png"/>
   25648 <img alt="Green (even rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_e_shading.png"/>
   25649 <img alt="Green (odd rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_o_shading.png"/>
   25650 <img alt="Blue lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/blue_shading.png"/></p>
   25651 <p>As a visualization only,<wbr/> inverting the full-color map to recover an
   25652 image of a gray wall (using bicubic interpolation for visual quality) as captured by the sensor gives:</p>
   25653 <p><img alt="Image of a uniform white wall (inverse shading map)" src="images/camera2/metadata/android.statistics.lensShadingMap/inv_shading.png"/></p>
   25654             </td>
   25655           </tr>
   25656 
   25657 
   25658           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   25659            <!-- end of entry -->
   25660         
   25661                 
   25662           <tr class="entry" id="dynamic_android.statistics.lensShadingMap">
   25663             <td class="entry_name
   25664              " rowspan="5">
   25665               android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map
   25666             </td>
   25667             <td class="entry_type">
   25668                 <span class="entry_type_name">float</span>
   25669                 <span class="entry_type_container">x</span>
   25670 
   25671                 <span class="entry_type_array">
   25672                   4 x n x m
   25673                 </span>
   25674               <span class="entry_type_visibility"> [ndk_public]</span>
   25675 
   25676 
   25677               <span class="entry_type_hwlevel">[full] </span>
   25678 
   25679 
   25680                 <div class="entry_type_notes">2D array of float gain factors per channel to correct lens shading</div>
   25681 
   25682 
   25683             </td> <!-- entry_type -->
   25684 
   25685             <td class="entry_description">
   25686               <p>The shading map is a low-resolution floating-point map
   25687 that lists the coefficients used to correct for vignetting and color shading,<wbr/>
   25688 for each Bayer color channel of RAW image data.<wbr/></p>
   25689             </td>
   25690 
   25691             <td class="entry_units">
   25692             </td>
   25693 
   25694             <td class="entry_range">
   25695               <p>Each gain factor is &gt;= 1</p>
   25696             </td>
   25697 
   25698             <td class="entry_hal_version">
   25699               <p>3.<wbr/>2</p>
   25700             </td>
   25701 
   25702             <td class="entry_tags">
   25703             </td>
   25704 
   25705           </tr>
   25706           <tr class="entries_header">
   25707             <th class="th_details" colspan="6">Details</th>
   25708           </tr>
   25709           <tr class="entry_cont">
   25710             <td class="entry_details" colspan="6">
   25711               <p>The map provided here is the same map that is used by the camera device to
   25712 correct both color shading and vignetting for output non-RAW images.<wbr/></p>
   25713 <p>When there is no lens shading correction applied to RAW
   25714 output images (<a href="#static_android.sensor.info.lensShadingApplied">android.<wbr/>sensor.<wbr/>info.<wbr/>lens<wbr/>Shading<wbr/>Applied</a> <code>==</code>
   25715 false),<wbr/> this map is the complete lens shading correction
   25716 map; when there is some lens shading correction applied to
   25717 the RAW output image (<a href="#static_android.sensor.info.lensShadingApplied">android.<wbr/>sensor.<wbr/>info.<wbr/>lens<wbr/>Shading<wbr/>Applied</a><code>==</code> true),<wbr/> this map reports the remaining lens shading
   25718 correction map that needs to be applied to get shading
   25719 corrected images that match the camera device's output for
   25720 non-RAW formats.<wbr/></p>
   25721 <p>For a complete shading correction map,<wbr/> the least shaded
   25722 section of the image will have a gain factor of 1; all
   25723 other sections will have gains above 1.<wbr/></p>
   25724 <p>When <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> = TRANSFORM_<wbr/>MATRIX,<wbr/> the map
   25725 will take into account the colorCorrection settings.<wbr/></p>
   25726 <p>The shading map is for the entire active pixel array,<wbr/> and is not
   25727 affected by the crop region specified in the request.<wbr/> Each shading map
   25728 entry is the value of the shading compensation map over a specific
   25729 pixel on the sensor.<wbr/>  Specifically,<wbr/> with a (N x M) resolution shading
   25730 map,<wbr/> and an active pixel array size (W x H),<wbr/> shading map entry
   25731 (x,<wbr/>y)  (0 ...<wbr/> N-1,<wbr/> 0 ...<wbr/> M-1) is the value of the shading map at
   25732 pixel ( ((W-1)/<wbr/>(N-1)) * x,<wbr/> ((H-1)/<wbr/>(M-1)) * y) for the four color channels.<wbr/>
   25733 The map is assumed to be bilinearly interpolated between the sample points.<wbr/></p>
   25734 <p>The channel order is [R,<wbr/> Geven,<wbr/> Godd,<wbr/> B],<wbr/> where Geven is the green
   25735 channel for the even rows of a Bayer pattern,<wbr/> and Godd is the odd rows.<wbr/>
   25736 The shading map is stored in a fully interleaved format,<wbr/> and its size
   25737 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>
   25738 <p>The shading map will generally have on the order of 30-40 rows and columns,<wbr/>
   25739 and will be smaller than 64x64.<wbr/></p>
   25740 <p>As an example,<wbr/> given a very small map defined as:</p>
   25741 <pre><code><a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a> = [ 4,<wbr/> 3 ]
   25742 <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> =
   25743 [ 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/>
   25744     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/>
   25745   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/>
   25746     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/>
   25747   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/>
   25748     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 ]
   25749 </code></pre>
   25750 <p>The low-resolution scaling map images for each channel are
   25751 (displayed using nearest-neighbor interpolation):</p>
   25752 <p><img alt="Red lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/red_shading.png"/>
   25753 <img alt="Green (even rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_e_shading.png"/>
   25754 <img alt="Green (odd rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_o_shading.png"/>
   25755 <img alt="Blue lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/blue_shading.png"/></p>
   25756 <p>As a visualization only,<wbr/> inverting the full-color map to recover an
   25757 image of a gray wall (using bicubic interpolation for visual quality)
   25758 as captured by the sensor gives:</p>
   25759 <p><img alt="Image of a uniform white wall (inverse shading map)" src="images/camera2/metadata/android.statistics.lensShadingMap/inv_shading.png"/></p>
   25760 <p>Note that the RAW image data might be subject to lens shading
   25761 correction not reported on this map.<wbr/> Query
   25762 <a href="#static_android.sensor.info.lensShadingApplied">android.<wbr/>sensor.<wbr/>info.<wbr/>lens<wbr/>Shading<wbr/>Applied</a> to see if RAW image data has subject
   25763 to lens shading correction.<wbr/> If <a href="#static_android.sensor.info.lensShadingApplied">android.<wbr/>sensor.<wbr/>info.<wbr/>lens<wbr/>Shading<wbr/>Applied</a>
   25764 is TRUE,<wbr/> the RAW image data is subject to partial or full lens shading
   25765 correction.<wbr/> In the case full lens shading correction is applied to RAW
   25766 images,<wbr/> the gain factor map reported in this key will contain all 1.<wbr/>0 gains.<wbr/>
   25767 In other words,<wbr/> the map reported in this key is the remaining lens shading
   25768 that needs to be applied on the RAW image to get images without lens shading
   25769 artifacts.<wbr/> See <a href="#static_android.request.maxNumOutputRaw">android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Raw</a> for a list of RAW image
   25770 formats.<wbr/></p>
   25771             </td>
   25772           </tr>
   25773 
   25774           <tr class="entries_header">
   25775             <th class="th_details" colspan="6">HAL Implementation Details</th>
   25776           </tr>
   25777           <tr class="entry_cont">
   25778             <td class="entry_details" colspan="6">
   25779               <p>The lens shading map calculation may depend on exposure and white balance statistics.<wbr/>
   25780 When AE and AWB are in AUTO modes
   25781 (<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
   25782 may have all the information it need to generate most accurate lens shading map.<wbr/> When
   25783 AE or AWB are in manual mode
   25784 (<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
   25785 may be adversely impacted by manual exposure or white balance parameters.<wbr/> To avoid
   25786 generating unreliable shading map data,<wbr/> the HAL may choose to lock the shading map with
   25787 the latest known good map generated when the AE and AWB are in AUTO modes.<wbr/></p>
   25788             </td>
   25789           </tr>
   25790 
   25791           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   25792            <!-- end of entry -->
   25793         
   25794                 
   25795           <tr class="entry" id="dynamic_android.statistics.predictedColorGains">
   25796             <td class="entry_name
   25797                 entry_name_deprecated
   25798              " rowspan="3">
   25799               android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Gains
   25800             </td>
   25801             <td class="entry_type">
   25802                 <span class="entry_type_name">float</span>
   25803                 <span class="entry_type_container">x</span>
   25804 
   25805                 <span class="entry_type_array">
   25806                   4
   25807                 </span>
   25808               <span class="entry_type_visibility"> [hidden]</span>
   25809 
   25810 
   25811 
   25812               <span class="entry_type_deprecated">[deprecated] </span>
   25813 
   25814                 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
   25815 
   25816 
   25817             </td> <!-- entry_type -->
   25818 
   25819             <td class="entry_description">
   25820               <p>The best-fit color channel gains calculated
   25821 by the camera device's statistics units for the current output frame.<wbr/></p>
   25822             </td>
   25823 
   25824             <td class="entry_units">
   25825             </td>
   25826 
   25827             <td class="entry_range">
   25828               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   25829             </td>
   25830 
   25831             <td class="entry_hal_version">
   25832               <p>3.<wbr/>2</p>
   25833             </td>
   25834 
   25835             <td class="entry_tags">
   25836             </td>
   25837 
   25838           </tr>
   25839           <tr class="entries_header">
   25840             <th class="th_details" colspan="6">Details</th>
   25841           </tr>
   25842           <tr class="entry_cont">
   25843             <td class="entry_details" colspan="6">
   25844               <p>This may be different than the gains used for this frame,<wbr/>
   25845 since statistics processing on data from a new frame
   25846 typically completes after the transform has already been
   25847 applied to that frame.<wbr/></p>
   25848 <p>The 4 channel gains are defined in Bayer domain,<wbr/>
   25849 see <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> for details.<wbr/></p>
   25850 <p>This value should always be calculated by the auto-white balance (AWB) block,<wbr/>
   25851 regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
   25852             </td>
   25853           </tr>
   25854 
   25855 
   25856           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   25857            <!-- end of entry -->
   25858         
   25859                 
   25860           <tr class="entry" id="dynamic_android.statistics.predictedColorTransform">
   25861             <td class="entry_name
   25862                 entry_name_deprecated
   25863              " rowspan="3">
   25864               android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Transform
   25865             </td>
   25866             <td class="entry_type">
   25867                 <span class="entry_type_name">rational</span>
   25868                 <span class="entry_type_container">x</span>
   25869 
   25870                 <span class="entry_type_array">
   25871                   3 x 3
   25872                 </span>
   25873               <span class="entry_type_visibility"> [hidden]</span>
   25874 
   25875 
   25876 
   25877               <span class="entry_type_deprecated">[deprecated] </span>
   25878 
   25879                 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
   25880 
   25881 
   25882             </td> <!-- entry_type -->
   25883 
   25884             <td class="entry_description">
   25885               <p>The best-fit color transform matrix estimate
   25886 calculated by the camera device's statistics units for the current
   25887 output frame.<wbr/></p>
   25888             </td>
   25889 
   25890             <td class="entry_units">
   25891             </td>
   25892 
   25893             <td class="entry_range">
   25894               <p><span class="entry_range_deprecated">Deprecated</span>. Do not use.</p>
   25895             </td>
   25896 
   25897             <td class="entry_hal_version">
   25898               <p>3.<wbr/>2</p>
   25899             </td>
   25900 
   25901             <td class="entry_tags">
   25902             </td>
   25903 
   25904           </tr>
   25905           <tr class="entries_header">
   25906             <th class="th_details" colspan="6">Details</th>
   25907           </tr>
   25908           <tr class="entry_cont">
   25909             <td class="entry_details" colspan="6">
   25910               <p>The camera device will provide the estimate from its
   25911 statistics unit on the white balance transforms to use
   25912 for the next frame.<wbr/> These are the values the camera device believes
   25913 are the best fit for the current output frame.<wbr/> This may
   25914 be different than the transform used for this frame,<wbr/> since
   25915 statistics processing on data from a new frame typically
   25916 completes after the transform has already been applied to
   25917 that frame.<wbr/></p>
   25918 <p>These estimates must be provided for all frames,<wbr/> even if
   25919 capture settings and color transforms are set by the application.<wbr/></p>
   25920 <p>This value should always be calculated by the auto-white balance (AWB) block,<wbr/>
   25921 regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
   25922             </td>
   25923           </tr>
   25924 
   25925 
   25926           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   25927            <!-- end of entry -->
   25928         
   25929                 
   25930           <tr class="entry" id="dynamic_android.statistics.sceneFlicker">
   25931             <td class="entry_name
   25932              " rowspan="3">
   25933               android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker
   25934             </td>
   25935             <td class="entry_type">
   25936                 <span class="entry_type_name entry_type_name_enum">byte</span>
   25937 
   25938               <span class="entry_type_visibility"> [public]</span>
   25939 
   25940 
   25941               <span class="entry_type_hwlevel">[full] </span>
   25942 
   25943 
   25944 
   25945                 <ul class="entry_type_enum">
   25946                   <li>
   25947                     <span class="entry_type_enum_name">NONE (v3.2)</span>
   25948                     <span class="entry_type_enum_notes"><p>The camera device does not detect any flickering illumination
   25949 in the current scene.<wbr/></p></span>
   25950                   </li>
   25951                   <li>
   25952                     <span class="entry_type_enum_name">50HZ (v3.2)</span>
   25953                     <span class="entry_type_enum_notes"><p>The camera device detects illumination flickering at 50Hz
   25954 in the current scene.<wbr/></p></span>
   25955                   </li>
   25956                   <li>
   25957                     <span class="entry_type_enum_name">60HZ (v3.2)</span>
   25958                     <span class="entry_type_enum_notes"><p>The camera device detects illumination flickering at 60Hz
   25959 in the current scene.<wbr/></p></span>
   25960                   </li>
   25961                 </ul>
   25962 
   25963             </td> <!-- entry_type -->
   25964 
   25965             <td class="entry_description">
   25966               <p>The camera device estimated scene illumination lighting
   25967 frequency.<wbr/></p>
   25968             </td>
   25969 
   25970             <td class="entry_units">
   25971             </td>
   25972 
   25973             <td class="entry_range">
   25974             </td>
   25975 
   25976             <td class="entry_hal_version">
   25977               <p>3.<wbr/>2</p>
   25978             </td>
   25979 
   25980             <td class="entry_tags">
   25981             </td>
   25982 
   25983           </tr>
   25984           <tr class="entries_header">
   25985             <th class="th_details" colspan="6">Details</th>
   25986           </tr>
   25987           <tr class="entry_cont">
   25988             <td class="entry_details" colspan="6">
   25989               <p>Many light sources,<wbr/> such as most fluorescent lights,<wbr/> flicker at a rate
   25990 that depends on the local utility power standards.<wbr/> This flicker must be
   25991 accounted for by auto-exposure routines to avoid artifacts in captured images.<wbr/>
   25992 The camera device uses this entry to tell the application what the scene
   25993 illuminant frequency is.<wbr/></p>
   25994 <p>When manual exposure control is enabled
   25995 (<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> ==
   25996 OFF</code>),<wbr/> the <a href="#controls_android.control.aeAntibandingMode">android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode</a> doesn't perform
   25997 antibanding,<wbr/> and the application can ensure it selects
   25998 exposure times that do not cause banding issues by looking
   25999 into this metadata field.<wbr/> See
   26000 <a href="#controls_android.control.aeAntibandingMode">android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode</a> for more details.<wbr/></p>
   26001 <p>Reports NONE if there doesn't appear to be flickering illumination.<wbr/></p>
   26002             </td>
   26003           </tr>
   26004 
   26005 
   26006           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   26007            <!-- end of entry -->
   26008         
   26009                 
   26010           <tr class="entry" id="dynamic_android.statistics.hotPixelMapMode">
   26011             <td class="entry_name
   26012              " rowspan="3">
   26013               android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map<wbr/>Mode
   26014             </td>
   26015             <td class="entry_type">
   26016                 <span class="entry_type_name entry_type_name_enum">byte</span>
   26017 
   26018               <span class="entry_type_visibility"> [public as boolean]</span>
   26019 
   26020 
   26021 
   26022 
   26023 
   26024                 <ul class="entry_type_enum">
   26025                   <li>
   26026                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   26027                     <span class="entry_type_enum_notes"><p>Hot pixel map production is disabled.<wbr/></p></span>
   26028                   </li>
   26029                   <li>
   26030                     <span class="entry_type_enum_name">ON (v3.2)</span>
   26031                     <span class="entry_type_enum_notes"><p>Hot pixel map production is enabled.<wbr/></p></span>
   26032                   </li>
   26033                 </ul>
   26034 
   26035             </td> <!-- entry_type -->
   26036 
   26037             <td class="entry_description">
   26038               <p>Operating mode for hot pixel map generation.<wbr/></p>
   26039             </td>
   26040 
   26041             <td class="entry_units">
   26042             </td>
   26043 
   26044             <td class="entry_range">
   26045               <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>
   26046             </td>
   26047 
   26048             <td class="entry_hal_version">
   26049               <p>3.<wbr/>2</p>
   26050             </td>
   26051 
   26052             <td class="entry_tags">
   26053               <ul class="entry_tags">
   26054                   <li><a href="#tag_V1">V1</a></li>
   26055                   <li><a href="#tag_RAW">RAW</a></li>
   26056               </ul>
   26057             </td>
   26058 
   26059           </tr>
   26060           <tr class="entries_header">
   26061             <th class="th_details" colspan="6">Details</th>
   26062           </tr>
   26063           <tr class="entry_cont">
   26064             <td class="entry_details" colspan="6">
   26065               <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/>
   26066 If set to <code>false</code>,<wbr/> no hot pixel map will be returned.<wbr/></p>
   26067             </td>
   26068           </tr>
   26069 
   26070 
   26071           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   26072            <!-- end of entry -->
   26073         
   26074                 
   26075           <tr class="entry" id="dynamic_android.statistics.hotPixelMap">
   26076             <td class="entry_name
   26077              " rowspan="5">
   26078               android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map
   26079             </td>
   26080             <td class="entry_type">
   26081                 <span class="entry_type_name">int32</span>
   26082                 <span class="entry_type_container">x</span>
   26083 
   26084                 <span class="entry_type_array">
   26085                   2 x n
   26086                 </span>
   26087               <span class="entry_type_visibility"> [public as point]</span>
   26088 
   26089 
   26090 
   26091 
   26092                 <div class="entry_type_notes">list of coordinates based on android.<wbr/>sensor.<wbr/>pixel<wbr/>Array<wbr/>Size</div>
   26093 
   26094 
   26095             </td> <!-- entry_type -->
   26096 
   26097             <td class="entry_description">
   26098               <p>List of <code>(x,<wbr/> y)</code> coordinates of hot/<wbr/>defective pixels on the sensor.<wbr/></p>
   26099             </td>
   26100 
   26101             <td class="entry_units">
   26102             </td>
   26103 
   26104             <td class="entry_range">
   26105               <p>n &lt;= number of pixels on the sensor.<wbr/>
   26106 The <code>(x,<wbr/> y)</code> coordinates must be bounded by
   26107 <a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a>.<wbr/></p>
   26108             </td>
   26109 
   26110             <td class="entry_hal_version">
   26111               <p>3.<wbr/>2</p>
   26112             </td>
   26113 
   26114             <td class="entry_tags">
   26115               <ul class="entry_tags">
   26116                   <li><a href="#tag_V1">V1</a></li>
   26117                   <li><a href="#tag_RAW">RAW</a></li>
   26118               </ul>
   26119             </td>
   26120 
   26121           </tr>
   26122           <tr class="entries_header">
   26123             <th class="th_details" colspan="6">Details</th>
   26124           </tr>
   26125           <tr class="entry_cont">
   26126             <td class="entry_details" colspan="6">
   26127               <p>A coordinate <code>(x,<wbr/> y)</code> must lie between <code>(0,<wbr/> 0)</code>,<wbr/> and
   26128 <code>(width - 1,<wbr/> height - 1)</code> (inclusive),<wbr/> which are the top-left and
   26129 bottom-right of the pixel array,<wbr/> respectively.<wbr/> The width and
   26130 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/>
   26131 This may include hot pixels that lie outside of the active array
   26132 bounds given by <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/></p>
   26133             </td>
   26134           </tr>
   26135 
   26136           <tr class="entries_header">
   26137             <th class="th_details" colspan="6">HAL Implementation Details</th>
   26138           </tr>
   26139           <tr class="entry_cont">
   26140             <td class="entry_details" colspan="6">
   26141               <p>A hotpixel map contains the coordinates of pixels on the camera
   26142 sensor that do report valid values (usually due to defects in
   26143 the camera sensor).<wbr/> This includes pixels that are stuck at certain
   26144 values,<wbr/> or have a response that does not accuractly encode the
   26145 incoming light from the scene.<wbr/></p>
   26146 <p>To avoid performance issues,<wbr/> there should be significantly fewer hot
   26147 pixels than actual pixels on the camera sensor.<wbr/></p>
   26148             </td>
   26149           </tr>
   26150 
   26151           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   26152            <!-- end of entry -->
   26153         
   26154                 
   26155           <tr class="entry" id="dynamic_android.statistics.lensShadingMapMode">
   26156             <td class="entry_name
   26157              " rowspan="3">
   26158               android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode
   26159             </td>
   26160             <td class="entry_type">
   26161                 <span class="entry_type_name entry_type_name_enum">byte</span>
   26162 
   26163               <span class="entry_type_visibility"> [public]</span>
   26164 
   26165 
   26166               <span class="entry_type_hwlevel">[full] </span>
   26167 
   26168 
   26169 
   26170                 <ul class="entry_type_enum">
   26171                   <li>
   26172                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   26173                     <span class="entry_type_enum_notes"><p>Do not include a lens shading map in the capture result.<wbr/></p></span>
   26174                   </li>
   26175                   <li>
   26176                     <span class="entry_type_enum_name">ON (v3.2)</span>
   26177                     <span class="entry_type_enum_notes"><p>Include a lens shading map in the capture result.<wbr/></p></span>
   26178                   </li>
   26179                 </ul>
   26180 
   26181             </td> <!-- entry_type -->
   26182 
   26183             <td class="entry_description">
   26184               <p>Whether the camera device will output the lens
   26185 shading map in output result metadata.<wbr/></p>
   26186             </td>
   26187 
   26188             <td class="entry_units">
   26189             </td>
   26190 
   26191             <td class="entry_range">
   26192               <p><a href="#static_android.statistics.info.availableLensShadingMapModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Lens<wbr/>Shading<wbr/>Map<wbr/>Modes</a></p>
   26193             </td>
   26194 
   26195             <td class="entry_hal_version">
   26196               <p>3.<wbr/>2</p>
   26197             </td>
   26198 
   26199             <td class="entry_tags">
   26200               <ul class="entry_tags">
   26201                   <li><a href="#tag_RAW">RAW</a></li>
   26202               </ul>
   26203             </td>
   26204 
   26205           </tr>
   26206           <tr class="entries_header">
   26207             <th class="th_details" colspan="6">Details</th>
   26208           </tr>
   26209           <tr class="entry_cont">
   26210             <td class="entry_details" colspan="6">
   26211               <p>When set to ON,<wbr/>
   26212 <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> will be provided in
   26213 the output result metadata.<wbr/></p>
   26214 <p>ON is always supported on devices with the RAW capability.<wbr/></p>
   26215             </td>
   26216           </tr>
   26217 
   26218 
   26219           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   26220            <!-- end of entry -->
   26221         
   26222                 
   26223           <tr class="entry" id="dynamic_android.statistics.oisDataMode">
   26224             <td class="entry_name
   26225              " rowspan="1">
   26226               android.<wbr/>statistics.<wbr/>ois<wbr/>Data<wbr/>Mode
   26227             </td>
   26228             <td class="entry_type">
   26229                 <span class="entry_type_name entry_type_name_enum">byte</span>
   26230 
   26231               <span class="entry_type_visibility"> [public]</span>
   26232 
   26233 
   26234 
   26235 
   26236 
   26237                 <ul class="entry_type_enum">
   26238                   <li>
   26239                     <span class="entry_type_enum_name">OFF (v3.3)</span>
   26240                     <span class="entry_type_enum_notes"><p>Do not include OIS data in the capture result.<wbr/></p></span>
   26241                   </li>
   26242                   <li>
   26243                     <span class="entry_type_enum_name">ON (v3.3)</span>
   26244                     <span class="entry_type_enum_notes"><p>Include OIS data in the capture result.<wbr/></p></span>
   26245                   </li>
   26246                 </ul>
   26247 
   26248             </td> <!-- entry_type -->
   26249 
   26250             <td class="entry_description">
   26251               <p>A control for selecting whether OIS position information is included in output
   26252 result metadata.<wbr/></p>
   26253             </td>
   26254 
   26255             <td class="entry_units">
   26256             </td>
   26257 
   26258             <td class="entry_range">
   26259               <p><a href="#static_android.statistics.info.availableOisDataModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Ois<wbr/>Data<wbr/>Modes</a></p>
   26260             </td>
   26261 
   26262             <td class="entry_hal_version">
   26263               <p>3.<wbr/>3</p>
   26264             </td>
   26265 
   26266             <td class="entry_tags">
   26267             </td>
   26268 
   26269           </tr>
   26270 
   26271 
   26272           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   26273            <!-- end of entry -->
   26274         
   26275                 
   26276           <tr class="entry" id="dynamic_android.statistics.oisTimestamps">
   26277             <td class="entry_name
   26278              " rowspan="3">
   26279               android.<wbr/>statistics.<wbr/>ois<wbr/>Timestamps
   26280             </td>
   26281             <td class="entry_type">
   26282                 <span class="entry_type_name">int64</span>
   26283                 <span class="entry_type_container">x</span>
   26284 
   26285                 <span class="entry_type_array">
   26286                   n
   26287                 </span>
   26288               <span class="entry_type_visibility"> [ndk_public]</span>
   26289 
   26290 
   26291 
   26292 
   26293 
   26294 
   26295             </td> <!-- entry_type -->
   26296 
   26297             <td class="entry_description">
   26298               <p>An array of timestamps of OIS samples,<wbr/> in nanoseconds.<wbr/></p>
   26299             </td>
   26300 
   26301             <td class="entry_units">
   26302               nanoseconds
   26303             </td>
   26304 
   26305             <td class="entry_range">
   26306             </td>
   26307 
   26308             <td class="entry_hal_version">
   26309               <p>3.<wbr/>3</p>
   26310             </td>
   26311 
   26312             <td class="entry_tags">
   26313             </td>
   26314 
   26315           </tr>
   26316           <tr class="entries_header">
   26317             <th class="th_details" colspan="6">Details</th>
   26318           </tr>
   26319           <tr class="entry_cont">
   26320             <td class="entry_details" colspan="6">
   26321               <p>The array contains the timestamps of OIS samples.<wbr/> The timestamps are in the same
   26322 timebase as and comparable to <a href="#dynamic_android.sensor.timestamp">android.<wbr/>sensor.<wbr/>timestamp</a>.<wbr/></p>
   26323             </td>
   26324           </tr>
   26325 
   26326 
   26327           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   26328            <!-- end of entry -->
   26329         
   26330                 
   26331           <tr class="entry" id="dynamic_android.statistics.oisXShifts">
   26332             <td class="entry_name
   26333              " rowspan="3">
   26334               android.<wbr/>statistics.<wbr/>ois<wbr/>XShifts
   26335             </td>
   26336             <td class="entry_type">
   26337                 <span class="entry_type_name">float</span>
   26338                 <span class="entry_type_container">x</span>
   26339 
   26340                 <span class="entry_type_array">
   26341                   n
   26342                 </span>
   26343               <span class="entry_type_visibility"> [ndk_public]</span>
   26344 
   26345 
   26346 
   26347 
   26348 
   26349 
   26350             </td> <!-- entry_type -->
   26351 
   26352             <td class="entry_description">
   26353               <p>An array of shifts of OIS samples,<wbr/> in x direction.<wbr/></p>
   26354             </td>
   26355 
   26356             <td class="entry_units">
   26357               Pixels in active array.<wbr/>
   26358             </td>
   26359 
   26360             <td class="entry_range">
   26361             </td>
   26362 
   26363             <td class="entry_hal_version">
   26364               <p>3.<wbr/>3</p>
   26365             </td>
   26366 
   26367             <td class="entry_tags">
   26368             </td>
   26369 
   26370           </tr>
   26371           <tr class="entries_header">
   26372             <th class="th_details" colspan="6">Details</th>
   26373           </tr>
   26374           <tr class="entry_cont">
   26375             <td class="entry_details" colspan="6">
   26376               <p>The array contains the amount of shifts in x direction,<wbr/> in pixels,<wbr/> based on OIS samples.<wbr/>
   26377 A positive value is a shift from left to right in active array coordinate system.<wbr/> For
   26378 example,<wbr/> if the optical center is (1000,<wbr/> 500) in active array coordinates,<wbr/> a shift of
   26379 (3,<wbr/> 0) puts the new optical center at (1003,<wbr/> 500).<wbr/></p>
   26380 <p>The number of shifts must match the number of timestamps in
   26381 <a href="#dynamic_android.statistics.oisTimestamps">android.<wbr/>statistics.<wbr/>ois<wbr/>Timestamps</a>.<wbr/></p>
   26382             </td>
   26383           </tr>
   26384 
   26385 
   26386           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   26387            <!-- end of entry -->
   26388         
   26389                 
   26390           <tr class="entry" id="dynamic_android.statistics.oisYShifts">
   26391             <td class="entry_name
   26392              " rowspan="3">
   26393               android.<wbr/>statistics.<wbr/>ois<wbr/>YShifts
   26394             </td>
   26395             <td class="entry_type">
   26396                 <span class="entry_type_name">float</span>
   26397                 <span class="entry_type_container">x</span>
   26398 
   26399                 <span class="entry_type_array">
   26400                   n
   26401                 </span>
   26402               <span class="entry_type_visibility"> [ndk_public]</span>
   26403 
   26404 
   26405 
   26406 
   26407 
   26408 
   26409             </td> <!-- entry_type -->
   26410 
   26411             <td class="entry_description">
   26412               <p>An array of shifts of OIS samples,<wbr/> in y direction.<wbr/></p>
   26413             </td>
   26414 
   26415             <td class="entry_units">
   26416               Pixels in active array.<wbr/>
   26417             </td>
   26418 
   26419             <td class="entry_range">
   26420             </td>
   26421 
   26422             <td class="entry_hal_version">
   26423               <p>3.<wbr/>3</p>
   26424             </td>
   26425 
   26426             <td class="entry_tags">
   26427             </td>
   26428 
   26429           </tr>
   26430           <tr class="entries_header">
   26431             <th class="th_details" colspan="6">Details</th>
   26432           </tr>
   26433           <tr class="entry_cont">
   26434             <td class="entry_details" colspan="6">
   26435               <p>The array contains the amount of shifts in y direction,<wbr/> in pixels,<wbr/> based on OIS samples.<wbr/>
   26436 A positive value is a shift from top to bottom in active array coordinate system.<wbr/> For
   26437 example,<wbr/> if the optical center is (1000,<wbr/> 500) in active array coordinates,<wbr/> a shift of
   26438 (0,<wbr/> 5) puts the new optical center at (1000,<wbr/> 505).<wbr/></p>
   26439 <p>The number of shifts must match the number of timestamps in
   26440 <a href="#dynamic_android.statistics.oisTimestamps">android.<wbr/>statistics.<wbr/>ois<wbr/>Timestamps</a>.<wbr/></p>
   26441             </td>
   26442           </tr>
   26443 
   26444 
   26445           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   26446            <!-- end of entry -->
   26447         
   26448                 
   26449           <tr class="entry" id="dynamic_android.statistics.oisSamples">
   26450             <td class="entry_name
   26451              " rowspan="3">
   26452               android.<wbr/>statistics.<wbr/>ois<wbr/>Samples
   26453             </td>
   26454             <td class="entry_type">
   26455                 <span class="entry_type_name">float</span>
   26456                 <span class="entry_type_container">x</span>
   26457 
   26458                 <span class="entry_type_array">
   26459                   n
   26460                 </span>
   26461               <span class="entry_type_visibility"> [java_public as oisSample]</span>
   26462 
   26463               <span class="entry_type_synthetic">[synthetic] </span>
   26464 
   26465 
   26466 
   26467 
   26468 
   26469             </td> <!-- entry_type -->
   26470 
   26471             <td class="entry_description">
   26472               <p>An array of OIS samples.<wbr/></p>
   26473             </td>
   26474 
   26475             <td class="entry_units">
   26476             </td>
   26477 
   26478             <td class="entry_range">
   26479             </td>
   26480 
   26481             <td class="entry_hal_version">
   26482               <p>3.<wbr/>3</p>
   26483             </td>
   26484 
   26485             <td class="entry_tags">
   26486             </td>
   26487 
   26488           </tr>
   26489           <tr class="entries_header">
   26490             <th class="th_details" colspan="6">Details</th>
   26491           </tr>
   26492           <tr class="entry_cont">
   26493             <td class="entry_details" colspan="6">
   26494               <p>Each OIS sample contains the timestamp and the amount of shifts in x and y direction,<wbr/>
   26495 in pixels,<wbr/> of the OIS sample.<wbr/></p>
   26496 <p>A positive value for a shift in x direction is a shift from left to right in active array
   26497 coordinate system.<wbr/> For example,<wbr/> if the optical center is (1000,<wbr/> 500) in active array
   26498 coordinates,<wbr/> a shift of (3,<wbr/> 0) puts the new optical center at (1003,<wbr/> 500).<wbr/></p>
   26499 <p>A positive value for a shift in y direction is a shift from top to bottom in active array
   26500 coordinate system.<wbr/> For example,<wbr/> if the optical center is (1000,<wbr/> 500) in active array
   26501 coordinates,<wbr/> a shift of (0,<wbr/> 5) puts the new optical center at (1000,<wbr/> 505).<wbr/></p>
   26502             </td>
   26503           </tr>
   26504 
   26505 
   26506           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   26507            <!-- end of entry -->
   26508         
   26509         
   26510 
   26511       <!-- end of kind -->
   26512       </tbody>
   26513 
   26514   <!-- end of section -->
   26515   <tr><td colspan="7" id="section_tonemap" class="section">tonemap</td></tr>
   26516 
   26517 
   26518       <tr><td colspan="7" class="kind">controls</td></tr>
   26519 
   26520       <thead class="entries_header">
   26521         <tr>
   26522           <th class="th_name">Property Name</th>
   26523           <th class="th_type">Type</th>
   26524           <th class="th_description">Description</th>
   26525           <th class="th_units">Units</th>
   26526           <th class="th_range">Range</th>
   26527           <th class="th_hal_version">Initial HIDL HAL version</th>
   26528           <th class="th_tags">Tags</th>
   26529         </tr>
   26530       </thead>
   26531 
   26532       <tbody>
   26533 
   26534         
   26535 
   26536         
   26537 
   26538         
   26539 
   26540         
   26541 
   26542                 
   26543           <tr class="entry" id="controls_android.tonemap.curveBlue">
   26544             <td class="entry_name
   26545              " rowspan="3">
   26546               android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
   26547             </td>
   26548             <td class="entry_type">
   26549                 <span class="entry_type_name">float</span>
   26550                 <span class="entry_type_container">x</span>
   26551 
   26552                 <span class="entry_type_array">
   26553                   n x 2
   26554                 </span>
   26555               <span class="entry_type_visibility"> [ndk_public]</span>
   26556 
   26557 
   26558               <span class="entry_type_hwlevel">[full] </span>
   26559 
   26560 
   26561                 <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>
   26562 
   26563 
   26564             </td> <!-- entry_type -->
   26565 
   26566             <td class="entry_description">
   26567               <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
   26568 channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
   26569 CONTRAST_<wbr/>CURVE.<wbr/></p>
   26570             </td>
   26571 
   26572             <td class="entry_units">
   26573             </td>
   26574 
   26575             <td class="entry_range">
   26576             </td>
   26577 
   26578             <td class="entry_hal_version">
   26579               <p>3.<wbr/>2</p>
   26580             </td>
   26581 
   26582             <td class="entry_tags">
   26583             </td>
   26584 
   26585           </tr>
   26586           <tr class="entries_header">
   26587             <th class="th_details" colspan="6">Details</th>
   26588           </tr>
   26589           <tr class="entry_cont">
   26590             <td class="entry_details" colspan="6">
   26591               <p>See <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> for more details.<wbr/></p>
   26592             </td>
   26593           </tr>
   26594 
   26595 
   26596           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   26597            <!-- end of entry -->
   26598         
   26599                 
   26600           <tr class="entry" id="controls_android.tonemap.curveGreen">
   26601             <td class="entry_name
   26602              " rowspan="3">
   26603               android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
   26604             </td>
   26605             <td class="entry_type">
   26606                 <span class="entry_type_name">float</span>
   26607                 <span class="entry_type_container">x</span>
   26608 
   26609                 <span class="entry_type_array">
   26610                   n x 2
   26611                 </span>
   26612               <span class="entry_type_visibility"> [ndk_public]</span>
   26613 
   26614 
   26615               <span class="entry_type_hwlevel">[full] </span>
   26616 
   26617 
   26618                 <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>
   26619 
   26620 
   26621             </td> <!-- entry_type -->
   26622 
   26623             <td class="entry_description">
   26624               <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
   26625 channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
   26626 CONTRAST_<wbr/>CURVE.<wbr/></p>
   26627             </td>
   26628 
   26629             <td class="entry_units">
   26630             </td>
   26631 
   26632             <td class="entry_range">
   26633             </td>
   26634 
   26635             <td class="entry_hal_version">
   26636               <p>3.<wbr/>2</p>
   26637             </td>
   26638 
   26639             <td class="entry_tags">
   26640             </td>
   26641 
   26642           </tr>
   26643           <tr class="entries_header">
   26644             <th class="th_details" colspan="6">Details</th>
   26645           </tr>
   26646           <tr class="entry_cont">
   26647             <td class="entry_details" colspan="6">
   26648               <p>See <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> for more details.<wbr/></p>
   26649             </td>
   26650           </tr>
   26651 
   26652 
   26653           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   26654            <!-- end of entry -->
   26655         
   26656                 
   26657           <tr class="entry" id="controls_android.tonemap.curveRed">
   26658             <td class="entry_name
   26659              " rowspan="5">
   26660               android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
   26661             </td>
   26662             <td class="entry_type">
   26663                 <span class="entry_type_name">float</span>
   26664                 <span class="entry_type_container">x</span>
   26665 
   26666                 <span class="entry_type_array">
   26667                   n x 2
   26668                 </span>
   26669               <span class="entry_type_visibility"> [ndk_public]</span>
   26670 
   26671 
   26672               <span class="entry_type_hwlevel">[full] </span>
   26673 
   26674 
   26675                 <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>
   26676 
   26677 
   26678             </td> <!-- entry_type -->
   26679 
   26680             <td class="entry_description">
   26681               <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
   26682 channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
   26683 CONTRAST_<wbr/>CURVE.<wbr/></p>
   26684             </td>
   26685 
   26686             <td class="entry_units">
   26687             </td>
   26688 
   26689             <td class="entry_range">
   26690               <p>0-1 on both input and output coordinates,<wbr/> normalized
   26691 as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
   26692             </td>
   26693 
   26694             <td class="entry_hal_version">
   26695               <p>3.<wbr/>2</p>
   26696             </td>
   26697 
   26698             <td class="entry_tags">
   26699             </td>
   26700 
   26701           </tr>
   26702           <tr class="entries_header">
   26703             <th class="th_details" colspan="6">Details</th>
   26704           </tr>
   26705           <tr class="entry_cont">
   26706             <td class="entry_details" colspan="6">
   26707               <p>Each channel's curve is defined by an array of control points:</p>
   26708 <pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
   26709   [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
   26710 2 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
   26711 <p>These are sorted in order of increasing <code>Pin</code>; it is
   26712 required that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
   26713 define a complete mapping.<wbr/> For input values between control points,<wbr/>
   26714 the camera device must linearly interpolate between the control
   26715 points.<wbr/></p>
   26716 <p>Each curve can have an independent number of points,<wbr/> and the number
   26717 of points can be less than max (that is,<wbr/> the request doesn't have to
   26718 always provide a curve with number of points equivalent to
   26719 <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
   26720 <p>For devices with MONOCHROME capability,<wbr/> only red channel is used.<wbr/> Green and blue channels
   26721 are ignored.<wbr/></p>
   26722 <p>A few examples,<wbr/> and their corresponding graphical mappings; these
   26723 only specify the red channel and the precision is limited to 4
   26724 digits,<wbr/> for conciseness.<wbr/></p>
   26725 <p>Linear mapping:</p>
   26726 <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 ]
   26727 </code></pre>
   26728 <p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
   26729 <p>Invert mapping:</p>
   26730 <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 ]
   26731 </code></pre>
   26732 <p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
   26733 <p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
   26734 <pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
   26735   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/>
   26736   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/>
   26737   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/>
   26738   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 ]
   26739 </code></pre>
   26740 <p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
   26741 <p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
   26742 <pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
   26743   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/>
   26744   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/>
   26745   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/>
   26746   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 ]
   26747 </code></pre>
   26748 <p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
   26749             </td>
   26750           </tr>
   26751 
   26752           <tr class="entries_header">
   26753             <th class="th_details" colspan="6">HAL Implementation Details</th>
   26754           </tr>
   26755           <tr class="entry_cont">
   26756             <td class="entry_details" colspan="6">
   26757               <p>For good quality of mapping,<wbr/> at least 128 control points are
   26758 preferred.<wbr/></p>
   26759 <p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
   26760 control points used as are available.<wbr/></p>
   26761             </td>
   26762           </tr>
   26763 
   26764           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   26765            <!-- end of entry -->
   26766         
   26767                 
   26768           <tr class="entry" id="controls_android.tonemap.curve">
   26769             <td class="entry_name
   26770              " rowspan="5">
   26771               android.<wbr/>tonemap.<wbr/>curve
   26772             </td>
   26773             <td class="entry_type">
   26774                 <span class="entry_type_name">float</span>
   26775 
   26776               <span class="entry_type_visibility"> [java_public as tonemapCurve]</span>
   26777 
   26778               <span class="entry_type_synthetic">[synthetic] </span>
   26779 
   26780               <span class="entry_type_hwlevel">[full] </span>
   26781 
   26782 
   26783 
   26784 
   26785             </td> <!-- entry_type -->
   26786 
   26787             <td class="entry_description">
   26788               <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a>
   26789 is CONTRAST_<wbr/>CURVE.<wbr/></p>
   26790             </td>
   26791 
   26792             <td class="entry_units">
   26793             </td>
   26794 
   26795             <td class="entry_range">
   26796             </td>
   26797 
   26798             <td class="entry_hal_version">
   26799               <p>3.<wbr/>2</p>
   26800             </td>
   26801 
   26802             <td class="entry_tags">
   26803             </td>
   26804 
   26805           </tr>
   26806           <tr class="entries_header">
   26807             <th class="th_details" colspan="6">Details</th>
   26808           </tr>
   26809           <tr class="entry_cont">
   26810             <td class="entry_details" colspan="6">
   26811               <p>The tonemapCurve consist of three curves for each of red,<wbr/> green,<wbr/> and blue
   26812 channels respectively.<wbr/> The following example uses the red channel as an
   26813 example.<wbr/> The same logic applies to green and blue channel.<wbr/>
   26814 Each channel's curve is defined by an array of control points:</p>
   26815 <pre><code>curveRed =
   26816   [ 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) ]
   26817 2 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
   26818 <p>These are sorted in order of increasing <code>Pin</code>; it is always
   26819 guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
   26820 define a complete mapping.<wbr/> For input values between control points,<wbr/>
   26821 the camera device must linearly interpolate between the control
   26822 points.<wbr/></p>
   26823 <p>Each curve can have an independent number of points,<wbr/> and the number
   26824 of points can be less than max (that is,<wbr/> the request doesn't have to
   26825 always provide a curve with number of points equivalent to
   26826 <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
   26827 <p>For devices with MONOCHROME capability,<wbr/> only red channel is used.<wbr/> Green and blue channels
   26828 are ignored.<wbr/></p>
   26829 <p>A few examples,<wbr/> and their corresponding graphical mappings; these
   26830 only specify the red channel and the precision is limited to 4
   26831 digits,<wbr/> for conciseness.<wbr/></p>
   26832 <p>Linear mapping:</p>
   26833 <pre><code>curveRed = [ (0,<wbr/> 0),<wbr/> (1.<wbr/>0,<wbr/> 1.<wbr/>0) ]
   26834 </code></pre>
   26835 <p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
   26836 <p>Invert mapping:</p>
   26837 <pre><code>curveRed = [ (0,<wbr/> 1.<wbr/>0),<wbr/> (1.<wbr/>0,<wbr/> 0) ]
   26838 </code></pre>
   26839 <p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
   26840 <p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
   26841 <pre><code>curveRed = [
   26842   (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/>
   26843   (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/>
   26844   (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/>
   26845   (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) ]
   26846 </code></pre>
   26847 <p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
   26848 <p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
   26849 <pre><code>curveRed = [
   26850   (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/>
   26851   (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/>
   26852   (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/>
   26853   (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) ]
   26854 </code></pre>
   26855 <p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
   26856             </td>
   26857           </tr>
   26858 
   26859           <tr class="entries_header">
   26860             <th class="th_details" colspan="6">HAL Implementation Details</th>
   26861           </tr>
   26862           <tr class="entry_cont">
   26863             <td class="entry_details" colspan="6">
   26864               <p>This entry is created by the framework from the curveRed,<wbr/> curveGreen and
   26865 curveBlue entries.<wbr/></p>
   26866             </td>
   26867           </tr>
   26868 
   26869           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   26870            <!-- end of entry -->
   26871         
   26872                 
   26873           <tr class="entry" id="controls_android.tonemap.mode">
   26874             <td class="entry_name
   26875              " rowspan="3">
   26876               android.<wbr/>tonemap.<wbr/>mode
   26877             </td>
   26878             <td class="entry_type">
   26879                 <span class="entry_type_name entry_type_name_enum">byte</span>
   26880 
   26881               <span class="entry_type_visibility"> [public]</span>
   26882 
   26883 
   26884               <span class="entry_type_hwlevel">[full] </span>
   26885 
   26886 
   26887 
   26888                 <ul class="entry_type_enum">
   26889                   <li>
   26890                     <span class="entry_type_enum_name">CONTRAST_CURVE (v3.2)</span>
   26891                     <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
   26892 the <a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>* entries.<wbr/></p>
   26893 <p>All color enhancement and tonemapping must be disabled,<wbr/> except
   26894 for applying the tonemapping curve specified by
   26895 <a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>.<wbr/></p>
   26896 <p>Must not slow down frame rate relative to raw
   26897 sensor output.<wbr/></p></span>
   26898                   </li>
   26899                   <li>
   26900                     <span class="entry_type_enum_name">FAST (v3.2)</span>
   26901                     <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied,<wbr/> without
   26902 reducing frame rate compared to raw sensor output.<wbr/></p></span>
   26903                   </li>
   26904                   <li>
   26905                     <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
   26906                     <span class="entry_type_enum_notes"><p>High-quality gamma mapping and color enhancement will be applied,<wbr/> at
   26907 the cost of possibly reduced frame rate compared to raw sensor output.<wbr/></p></span>
   26908                   </li>
   26909                   <li>
   26910                     <span class="entry_type_enum_name">GAMMA_VALUE (v3.2)</span>
   26911                     <span class="entry_type_enum_notes"><p>Use the gamma value specified in <a href="#controls_android.tonemap.gamma">android.<wbr/>tonemap.<wbr/>gamma</a> to peform
   26912 tonemapping.<wbr/></p>
   26913 <p>All color enhancement and tonemapping must be disabled,<wbr/> except
   26914 for applying the tonemapping curve specified by <a href="#controls_android.tonemap.gamma">android.<wbr/>tonemap.<wbr/>gamma</a>.<wbr/></p>
   26915 <p>Must not slow down frame rate relative to raw sensor output.<wbr/></p></span>
   26916                   </li>
   26917                   <li>
   26918                     <span class="entry_type_enum_name">PRESET_CURVE (v3.2)</span>
   26919                     <span class="entry_type_enum_notes"><p>Use the preset tonemapping curve specified in
   26920 <a href="#controls_android.tonemap.presetCurve">android.<wbr/>tonemap.<wbr/>preset<wbr/>Curve</a> to peform tonemapping.<wbr/></p>
   26921 <p>All color enhancement and tonemapping must be disabled,<wbr/> except
   26922 for applying the tonemapping curve specified by
   26923 <a href="#controls_android.tonemap.presetCurve">android.<wbr/>tonemap.<wbr/>preset<wbr/>Curve</a>.<wbr/></p>
   26924 <p>Must not slow down frame rate relative to raw sensor output.<wbr/></p></span>
   26925                   </li>
   26926                 </ul>
   26927 
   26928             </td> <!-- entry_type -->
   26929 
   26930             <td class="entry_description">
   26931               <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
   26932             </td>
   26933 
   26934             <td class="entry_units">
   26935             </td>
   26936 
   26937             <td class="entry_range">
   26938               <p><a href="#static_android.tonemap.availableToneMapModes">android.<wbr/>tonemap.<wbr/>available<wbr/>Tone<wbr/>Map<wbr/>Modes</a></p>
   26939             </td>
   26940 
   26941             <td class="entry_hal_version">
   26942               <p>3.<wbr/>2</p>
   26943             </td>
   26944 
   26945             <td class="entry_tags">
   26946             </td>
   26947 
   26948           </tr>
   26949           <tr class="entries_header">
   26950             <th class="th_details" colspan="6">Details</th>
   26951           </tr>
   26952           <tr class="entry_cont">
   26953             <td class="entry_details" colspan="6">
   26954               <p>When switching to an application-defined contrast curve by setting
   26955 <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
   26956 per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
   26957 mapping from input high-bit-depth pixel value to the output
   26958 low-bit-depth value.<wbr/>  Since the actual pixel ranges of both input
   26959 and output may change depending on the camera pipeline,<wbr/> the values
   26960 are specified by normalized floating-point numbers.<wbr/></p>
   26961 <p>More-complex color mapping operations such as 3D color look-up
   26962 tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
   26963 transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
   26964 CONTRAST_<wbr/>CURVE.<wbr/></p>
   26965 <p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
   26966 emit its own tonemap curve in <a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>.<wbr/>
   26967 These values are always available,<wbr/> and as close as possible to the
   26968 actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
   26969 <p>If a request is sent with CONTRAST_<wbr/>CURVE with the camera device's
   26970 provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
   26971 roughly the same.<wbr/></p>
   26972             </td>
   26973           </tr>
   26974 
   26975 
   26976           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   26977            <!-- end of entry -->
   26978         
   26979                 
   26980           <tr class="entry" id="controls_android.tonemap.gamma">
   26981             <td class="entry_name
   26982              " rowspan="3">
   26983               android.<wbr/>tonemap.<wbr/>gamma
   26984             </td>
   26985             <td class="entry_type">
   26986                 <span class="entry_type_name">float</span>
   26987 
   26988               <span class="entry_type_visibility"> [public]</span>
   26989 
   26990 
   26991 
   26992 
   26993 
   26994 
   26995             </td> <!-- entry_type -->
   26996 
   26997             <td class="entry_description">
   26998               <p>Tonemapping curve to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
   26999 GAMMA_<wbr/>VALUE</p>
   27000             </td>
   27001 
   27002             <td class="entry_units">
   27003             </td>
   27004 
   27005             <td class="entry_range">
   27006             </td>
   27007 
   27008             <td class="entry_hal_version">
   27009               <p>3.<wbr/>2</p>
   27010             </td>
   27011 
   27012             <td class="entry_tags">
   27013             </td>
   27014 
   27015           </tr>
   27016           <tr class="entries_header">
   27017             <th class="th_details" colspan="6">Details</th>
   27018           </tr>
   27019           <tr class="entry_cont">
   27020             <td class="entry_details" colspan="6">
   27021               <p>The tonemap curve will be defined the following formula:
   27022 * OUT = pow(IN,<wbr/> 1.<wbr/>0 /<wbr/> gamma)
   27023 where IN and OUT is the input pixel value scaled to range [0.<wbr/>0,<wbr/> 1.<wbr/>0],<wbr/>
   27024 pow is the power function and gamma is the gamma value specified by this
   27025 key.<wbr/></p>
   27026 <p>The same curve will be applied to all color channels.<wbr/> The camera device
   27027 may clip the input gamma value to its supported range.<wbr/> The actual applied
   27028 value will be returned in capture result.<wbr/></p>
   27029 <p>The valid range of gamma value varies on different devices,<wbr/> but values
   27030 within [1.<wbr/>0,<wbr/> 5.<wbr/>0] are guaranteed not to be clipped.<wbr/></p>
   27031             </td>
   27032           </tr>
   27033 
   27034 
   27035           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   27036            <!-- end of entry -->
   27037         
   27038                 
   27039           <tr class="entry" id="controls_android.tonemap.presetCurve">
   27040             <td class="entry_name
   27041              " rowspan="3">
   27042               android.<wbr/>tonemap.<wbr/>preset<wbr/>Curve
   27043             </td>
   27044             <td class="entry_type">
   27045                 <span class="entry_type_name entry_type_name_enum">byte</span>
   27046 
   27047               <span class="entry_type_visibility"> [public]</span>
   27048 
   27049 
   27050 
   27051 
   27052 
   27053                 <ul class="entry_type_enum">
   27054                   <li>
   27055                     <span class="entry_type_enum_name">SRGB (v3.2)</span>
   27056                     <span class="entry_type_enum_notes"><p>Tonemapping curve is defined by sRGB</p></span>
   27057                   </li>
   27058                   <li>
   27059                     <span class="entry_type_enum_name">REC709 (v3.2)</span>
   27060                     <span class="entry_type_enum_notes"><p>Tonemapping curve is defined by ITU-R BT.<wbr/>709</p></span>
   27061                   </li>
   27062                 </ul>
   27063 
   27064             </td> <!-- entry_type -->
   27065 
   27066             <td class="entry_description">
   27067               <p>Tonemapping curve to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
   27068 PRESET_<wbr/>CURVE</p>
   27069             </td>
   27070 
   27071             <td class="entry_units">
   27072             </td>
   27073 
   27074             <td class="entry_range">
   27075             </td>
   27076 
   27077             <td class="entry_hal_version">
   27078               <p>3.<wbr/>2</p>
   27079             </td>
   27080 
   27081             <td class="entry_tags">
   27082             </td>
   27083 
   27084           </tr>
   27085           <tr class="entries_header">
   27086             <th class="th_details" colspan="6">Details</th>
   27087           </tr>
   27088           <tr class="entry_cont">
   27089             <td class="entry_details" colspan="6">
   27090               <p>The tonemap curve will be defined by specified standard.<wbr/></p>
   27091 <p>sRGB (approximated by 16 control points):</p>
   27092 <p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
   27093 <p>Rec.<wbr/> 709 (approximated by 16 control points):</p>
   27094 <p><img alt="Rec. 709 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/rec709_tonemap.png"/></p>
   27095 <p>Note that above figures show a 16 control points approximation of preset
   27096 curves.<wbr/> Camera devices may apply a different approximation to the curve.<wbr/></p>
   27097             </td>
   27098           </tr>
   27099 
   27100 
   27101           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   27102            <!-- end of entry -->
   27103         
   27104         
   27105 
   27106       <!-- end of kind -->
   27107       </tbody>
   27108       <tr><td colspan="7" class="kind">static</td></tr>
   27109 
   27110       <thead class="entries_header">
   27111         <tr>
   27112           <th class="th_name">Property Name</th>
   27113           <th class="th_type">Type</th>
   27114           <th class="th_description">Description</th>
   27115           <th class="th_units">Units</th>
   27116           <th class="th_range">Range</th>
   27117           <th class="th_hal_version">Initial HIDL HAL version</th>
   27118           <th class="th_tags">Tags</th>
   27119         </tr>
   27120       </thead>
   27121 
   27122       <tbody>
   27123 
   27124         
   27125 
   27126         
   27127 
   27128         
   27129 
   27130         
   27131 
   27132                 
   27133           <tr class="entry" id="static_android.tonemap.maxCurvePoints">
   27134             <td class="entry_name
   27135              " rowspan="5">
   27136               android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points
   27137             </td>
   27138             <td class="entry_type">
   27139                 <span class="entry_type_name">int32</span>
   27140 
   27141               <span class="entry_type_visibility"> [public]</span>
   27142 
   27143 
   27144               <span class="entry_type_hwlevel">[full] </span>
   27145 
   27146 
   27147 
   27148 
   27149             </td> <!-- entry_type -->
   27150 
   27151             <td class="entry_description">
   27152               <p>Maximum number of supported points in the
   27153 tonemap curve that can be used for <a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>.<wbr/></p>
   27154             </td>
   27155 
   27156             <td class="entry_units">
   27157             </td>
   27158 
   27159             <td class="entry_range">
   27160             </td>
   27161 
   27162             <td class="entry_hal_version">
   27163               <p>3.<wbr/>2</p>
   27164             </td>
   27165 
   27166             <td class="entry_tags">
   27167             </td>
   27168 
   27169           </tr>
   27170           <tr class="entries_header">
   27171             <th class="th_details" colspan="6">Details</th>
   27172           </tr>
   27173           <tr class="entry_cont">
   27174             <td class="entry_details" colspan="6">
   27175               <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
   27176 less than this maximum,<wbr/> the camera device will resample the curve to its internal
   27177 representation,<wbr/> using linear interpolation.<wbr/></p>
   27178 <p>The output curves in the result metadata may have a different number
   27179 of points than the input curves,<wbr/> and will represent the actual
   27180 hardware curves used as closely as possible when linearly interpolated.<wbr/></p>
   27181             </td>
   27182           </tr>
   27183 
   27184           <tr class="entries_header">
   27185             <th class="th_details" colspan="6">HAL Implementation Details</th>
   27186           </tr>
   27187           <tr class="entry_cont">
   27188             <td class="entry_details" colspan="6">
   27189               <p>This value must be at least 64.<wbr/> This should be at least 128.<wbr/></p>
   27190             </td>
   27191           </tr>
   27192 
   27193           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   27194            <!-- end of entry -->
   27195         
   27196                 
   27197           <tr class="entry" id="static_android.tonemap.availableToneMapModes">
   27198             <td class="entry_name
   27199              " rowspan="5">
   27200               android.<wbr/>tonemap.<wbr/>available<wbr/>Tone<wbr/>Map<wbr/>Modes
   27201             </td>
   27202             <td class="entry_type">
   27203                 <span class="entry_type_name">byte</span>
   27204                 <span class="entry_type_container">x</span>
   27205 
   27206                 <span class="entry_type_array">
   27207                   n
   27208                 </span>
   27209               <span class="entry_type_visibility"> [public as enumList]</span>
   27210 
   27211 
   27212               <span class="entry_type_hwlevel">[full] </span>
   27213 
   27214 
   27215                 <div class="entry_type_notes">list of enums</div>
   27216 
   27217 
   27218             </td> <!-- entry_type -->
   27219 
   27220             <td class="entry_description">
   27221               <p>List of tonemapping modes for <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> that are supported by this camera
   27222 device.<wbr/></p>
   27223             </td>
   27224 
   27225             <td class="entry_units">
   27226             </td>
   27227 
   27228             <td class="entry_range">
   27229               <p>Any value listed in <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a></p>
   27230             </td>
   27231 
   27232             <td class="entry_hal_version">
   27233               <p>3.<wbr/>2</p>
   27234             </td>
   27235 
   27236             <td class="entry_tags">
   27237             </td>
   27238 
   27239           </tr>
   27240           <tr class="entries_header">
   27241             <th class="th_details" colspan="6">Details</th>
   27242           </tr>
   27243           <tr class="entry_cont">
   27244             <td class="entry_details" colspan="6">
   27245               <p>Camera devices that support the MANUAL_<wbr/>POST_<wbr/>PROCESSING capability will always contain
   27246 at least one of below mode combinations:</p>
   27247 <ul>
   27248 <li>CONTRAST_<wbr/>CURVE,<wbr/> FAST and HIGH_<wbr/>QUALITY</li>
   27249 <li>GAMMA_<wbr/>VALUE,<wbr/> PRESET_<wbr/>CURVE,<wbr/> FAST and HIGH_<wbr/>QUALITY</li>
   27250 </ul>
   27251 <p>This includes all FULL level devices.<wbr/></p>
   27252             </td>
   27253           </tr>
   27254 
   27255           <tr class="entries_header">
   27256             <th class="th_details" colspan="6">HAL Implementation Details</th>
   27257           </tr>
   27258           <tr class="entry_cont">
   27259             <td class="entry_details" colspan="6">
   27260               <p>HAL must support both FAST and HIGH_<wbr/>QUALITY if automatic tonemap control is available
   27261 on the camera device,<wbr/> but the underlying implementation can be the same for both modes.<wbr/>
   27262 That is,<wbr/> if the highest quality implementation on the camera device does not slow down
   27263 capture rate,<wbr/> then FAST and HIGH_<wbr/>QUALITY will generate the same output.<wbr/></p>
   27264             </td>
   27265           </tr>
   27266 
   27267           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   27268            <!-- end of entry -->
   27269         
   27270         
   27271 
   27272       <!-- end of kind -->
   27273       </tbody>
   27274       <tr><td colspan="7" class="kind">dynamic</td></tr>
   27275 
   27276       <thead class="entries_header">
   27277         <tr>
   27278           <th class="th_name">Property Name</th>
   27279           <th class="th_type">Type</th>
   27280           <th class="th_description">Description</th>
   27281           <th class="th_units">Units</th>
   27282           <th class="th_range">Range</th>
   27283           <th class="th_hal_version">Initial HIDL HAL version</th>
   27284           <th class="th_tags">Tags</th>
   27285         </tr>
   27286       </thead>
   27287 
   27288       <tbody>
   27289 
   27290         
   27291 
   27292         
   27293 
   27294         
   27295 
   27296         
   27297 
   27298                 
   27299           <tr class="entry" id="dynamic_android.tonemap.curveBlue">
   27300             <td class="entry_name
   27301              " rowspan="3">
   27302               android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
   27303             </td>
   27304             <td class="entry_type">
   27305                 <span class="entry_type_name">float</span>
   27306                 <span class="entry_type_container">x</span>
   27307 
   27308                 <span class="entry_type_array">
   27309                   n x 2
   27310                 </span>
   27311               <span class="entry_type_visibility"> [ndk_public]</span>
   27312 
   27313 
   27314               <span class="entry_type_hwlevel">[full] </span>
   27315 
   27316 
   27317                 <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>
   27318 
   27319 
   27320             </td> <!-- entry_type -->
   27321 
   27322             <td class="entry_description">
   27323               <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
   27324 channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
   27325 CONTRAST_<wbr/>CURVE.<wbr/></p>
   27326             </td>
   27327 
   27328             <td class="entry_units">
   27329             </td>
   27330 
   27331             <td class="entry_range">
   27332             </td>
   27333 
   27334             <td class="entry_hal_version">
   27335               <p>3.<wbr/>2</p>
   27336             </td>
   27337 
   27338             <td class="entry_tags">
   27339             </td>
   27340 
   27341           </tr>
   27342           <tr class="entries_header">
   27343             <th class="th_details" colspan="6">Details</th>
   27344           </tr>
   27345           <tr class="entry_cont">
   27346             <td class="entry_details" colspan="6">
   27347               <p>See <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> for more details.<wbr/></p>
   27348             </td>
   27349           </tr>
   27350 
   27351 
   27352           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   27353            <!-- end of entry -->
   27354         
   27355                 
   27356           <tr class="entry" id="dynamic_android.tonemap.curveGreen">
   27357             <td class="entry_name
   27358              " rowspan="3">
   27359               android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
   27360             </td>
   27361             <td class="entry_type">
   27362                 <span class="entry_type_name">float</span>
   27363                 <span class="entry_type_container">x</span>
   27364 
   27365                 <span class="entry_type_array">
   27366                   n x 2
   27367                 </span>
   27368               <span class="entry_type_visibility"> [ndk_public]</span>
   27369 
   27370 
   27371               <span class="entry_type_hwlevel">[full] </span>
   27372 
   27373 
   27374                 <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>
   27375 
   27376 
   27377             </td> <!-- entry_type -->
   27378 
   27379             <td class="entry_description">
   27380               <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
   27381 channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
   27382 CONTRAST_<wbr/>CURVE.<wbr/></p>
   27383             </td>
   27384 
   27385             <td class="entry_units">
   27386             </td>
   27387 
   27388             <td class="entry_range">
   27389             </td>
   27390 
   27391             <td class="entry_hal_version">
   27392               <p>3.<wbr/>2</p>
   27393             </td>
   27394 
   27395             <td class="entry_tags">
   27396             </td>
   27397 
   27398           </tr>
   27399           <tr class="entries_header">
   27400             <th class="th_details" colspan="6">Details</th>
   27401           </tr>
   27402           <tr class="entry_cont">
   27403             <td class="entry_details" colspan="6">
   27404               <p>See <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> for more details.<wbr/></p>
   27405             </td>
   27406           </tr>
   27407 
   27408 
   27409           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   27410            <!-- end of entry -->
   27411         
   27412                 
   27413           <tr class="entry" id="dynamic_android.tonemap.curveRed">
   27414             <td class="entry_name
   27415              " rowspan="5">
   27416               android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
   27417             </td>
   27418             <td class="entry_type">
   27419                 <span class="entry_type_name">float</span>
   27420                 <span class="entry_type_container">x</span>
   27421 
   27422                 <span class="entry_type_array">
   27423                   n x 2
   27424                 </span>
   27425               <span class="entry_type_visibility"> [ndk_public]</span>
   27426 
   27427 
   27428               <span class="entry_type_hwlevel">[full] </span>
   27429 
   27430 
   27431                 <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>
   27432 
   27433 
   27434             </td> <!-- entry_type -->
   27435 
   27436             <td class="entry_description">
   27437               <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
   27438 channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
   27439 CONTRAST_<wbr/>CURVE.<wbr/></p>
   27440             </td>
   27441 
   27442             <td class="entry_units">
   27443             </td>
   27444 
   27445             <td class="entry_range">
   27446               <p>0-1 on both input and output coordinates,<wbr/> normalized
   27447 as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
   27448             </td>
   27449 
   27450             <td class="entry_hal_version">
   27451               <p>3.<wbr/>2</p>
   27452             </td>
   27453 
   27454             <td class="entry_tags">
   27455             </td>
   27456 
   27457           </tr>
   27458           <tr class="entries_header">
   27459             <th class="th_details" colspan="6">Details</th>
   27460           </tr>
   27461           <tr class="entry_cont">
   27462             <td class="entry_details" colspan="6">
   27463               <p>Each channel's curve is defined by an array of control points:</p>
   27464 <pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
   27465   [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
   27466 2 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
   27467 <p>These are sorted in order of increasing <code>Pin</code>; it is
   27468 required that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
   27469 define a complete mapping.<wbr/> For input values between control points,<wbr/>
   27470 the camera device must linearly interpolate between the control
   27471 points.<wbr/></p>
   27472 <p>Each curve can have an independent number of points,<wbr/> and the number
   27473 of points can be less than max (that is,<wbr/> the request doesn't have to
   27474 always provide a curve with number of points equivalent to
   27475 <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
   27476 <p>For devices with MONOCHROME capability,<wbr/> only red channel is used.<wbr/> Green and blue channels
   27477 are ignored.<wbr/></p>
   27478 <p>A few examples,<wbr/> and their corresponding graphical mappings; these
   27479 only specify the red channel and the precision is limited to 4
   27480 digits,<wbr/> for conciseness.<wbr/></p>
   27481 <p>Linear mapping:</p>
   27482 <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 ]
   27483 </code></pre>
   27484 <p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
   27485 <p>Invert mapping:</p>
   27486 <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 ]
   27487 </code></pre>
   27488 <p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
   27489 <p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
   27490 <pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
   27491   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/>
   27492   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/>
   27493   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/>
   27494   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 ]
   27495 </code></pre>
   27496 <p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
   27497 <p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
   27498 <pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
   27499   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/>
   27500   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/>
   27501   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/>
   27502   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 ]
   27503 </code></pre>
   27504 <p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
   27505             </td>
   27506           </tr>
   27507 
   27508           <tr class="entries_header">
   27509             <th class="th_details" colspan="6">HAL Implementation Details</th>
   27510           </tr>
   27511           <tr class="entry_cont">
   27512             <td class="entry_details" colspan="6">
   27513               <p>For good quality of mapping,<wbr/> at least 128 control points are
   27514 preferred.<wbr/></p>
   27515 <p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
   27516 control points used as are available.<wbr/></p>
   27517             </td>
   27518           </tr>
   27519 
   27520           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   27521            <!-- end of entry -->
   27522         
   27523                 
   27524           <tr class="entry" id="dynamic_android.tonemap.curve">
   27525             <td class="entry_name
   27526              " rowspan="5">
   27527               android.<wbr/>tonemap.<wbr/>curve
   27528             </td>
   27529             <td class="entry_type">
   27530                 <span class="entry_type_name">float</span>
   27531 
   27532               <span class="entry_type_visibility"> [java_public as tonemapCurve]</span>
   27533 
   27534               <span class="entry_type_synthetic">[synthetic] </span>
   27535 
   27536               <span class="entry_type_hwlevel">[full] </span>
   27537 
   27538 
   27539 
   27540 
   27541             </td> <!-- entry_type -->
   27542 
   27543             <td class="entry_description">
   27544               <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a>
   27545 is CONTRAST_<wbr/>CURVE.<wbr/></p>
   27546             </td>
   27547 
   27548             <td class="entry_units">
   27549             </td>
   27550 
   27551             <td class="entry_range">
   27552             </td>
   27553 
   27554             <td class="entry_hal_version">
   27555               <p>3.<wbr/>2</p>
   27556             </td>
   27557 
   27558             <td class="entry_tags">
   27559             </td>
   27560 
   27561           </tr>
   27562           <tr class="entries_header">
   27563             <th class="th_details" colspan="6">Details</th>
   27564           </tr>
   27565           <tr class="entry_cont">
   27566             <td class="entry_details" colspan="6">
   27567               <p>The tonemapCurve consist of three curves for each of red,<wbr/> green,<wbr/> and blue
   27568 channels respectively.<wbr/> The following example uses the red channel as an
   27569 example.<wbr/> The same logic applies to green and blue channel.<wbr/>
   27570 Each channel's curve is defined by an array of control points:</p>
   27571 <pre><code>curveRed =
   27572   [ 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) ]
   27573 2 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
   27574 <p>These are sorted in order of increasing <code>Pin</code>; it is always
   27575 guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
   27576 define a complete mapping.<wbr/> For input values between control points,<wbr/>
   27577 the camera device must linearly interpolate between the control
   27578 points.<wbr/></p>
   27579 <p>Each curve can have an independent number of points,<wbr/> and the number
   27580 of points can be less than max (that is,<wbr/> the request doesn't have to
   27581 always provide a curve with number of points equivalent to
   27582 <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
   27583 <p>For devices with MONOCHROME capability,<wbr/> only red channel is used.<wbr/> Green and blue channels
   27584 are ignored.<wbr/></p>
   27585 <p>A few examples,<wbr/> and their corresponding graphical mappings; these
   27586 only specify the red channel and the precision is limited to 4
   27587 digits,<wbr/> for conciseness.<wbr/></p>
   27588 <p>Linear mapping:</p>
   27589 <pre><code>curveRed = [ (0,<wbr/> 0),<wbr/> (1.<wbr/>0,<wbr/> 1.<wbr/>0) ]
   27590 </code></pre>
   27591 <p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
   27592 <p>Invert mapping:</p>
   27593 <pre><code>curveRed = [ (0,<wbr/> 1.<wbr/>0),<wbr/> (1.<wbr/>0,<wbr/> 0) ]
   27594 </code></pre>
   27595 <p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
   27596 <p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
   27597 <pre><code>curveRed = [
   27598   (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/>
   27599   (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/>
   27600   (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/>
   27601   (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) ]
   27602 </code></pre>
   27603 <p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
   27604 <p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
   27605 <pre><code>curveRed = [
   27606   (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/>
   27607   (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/>
   27608   (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/>
   27609   (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) ]
   27610 </code></pre>
   27611 <p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
   27612             </td>
   27613           </tr>
   27614 
   27615           <tr class="entries_header">
   27616             <th class="th_details" colspan="6">HAL Implementation Details</th>
   27617           </tr>
   27618           <tr class="entry_cont">
   27619             <td class="entry_details" colspan="6">
   27620               <p>This entry is created by the framework from the curveRed,<wbr/> curveGreen and
   27621 curveBlue entries.<wbr/></p>
   27622             </td>
   27623           </tr>
   27624 
   27625           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   27626            <!-- end of entry -->
   27627         
   27628                 
   27629           <tr class="entry" id="dynamic_android.tonemap.mode">
   27630             <td class="entry_name
   27631              " rowspan="3">
   27632               android.<wbr/>tonemap.<wbr/>mode
   27633             </td>
   27634             <td class="entry_type">
   27635                 <span class="entry_type_name entry_type_name_enum">byte</span>
   27636 
   27637               <span class="entry_type_visibility"> [public]</span>
   27638 
   27639 
   27640               <span class="entry_type_hwlevel">[full] </span>
   27641 
   27642 
   27643 
   27644                 <ul class="entry_type_enum">
   27645                   <li>
   27646                     <span class="entry_type_enum_name">CONTRAST_CURVE (v3.2)</span>
   27647                     <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
   27648 the <a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>* entries.<wbr/></p>
   27649 <p>All color enhancement and tonemapping must be disabled,<wbr/> except
   27650 for applying the tonemapping curve specified by
   27651 <a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>.<wbr/></p>
   27652 <p>Must not slow down frame rate relative to raw
   27653 sensor output.<wbr/></p></span>
   27654                   </li>
   27655                   <li>
   27656                     <span class="entry_type_enum_name">FAST (v3.2)</span>
   27657                     <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied,<wbr/> without
   27658 reducing frame rate compared to raw sensor output.<wbr/></p></span>
   27659                   </li>
   27660                   <li>
   27661                     <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
   27662                     <span class="entry_type_enum_notes"><p>High-quality gamma mapping and color enhancement will be applied,<wbr/> at
   27663 the cost of possibly reduced frame rate compared to raw sensor output.<wbr/></p></span>
   27664                   </li>
   27665                   <li>
   27666                     <span class="entry_type_enum_name">GAMMA_VALUE (v3.2)</span>
   27667                     <span class="entry_type_enum_notes"><p>Use the gamma value specified in <a href="#controls_android.tonemap.gamma">android.<wbr/>tonemap.<wbr/>gamma</a> to peform
   27668 tonemapping.<wbr/></p>
   27669 <p>All color enhancement and tonemapping must be disabled,<wbr/> except
   27670 for applying the tonemapping curve specified by <a href="#controls_android.tonemap.gamma">android.<wbr/>tonemap.<wbr/>gamma</a>.<wbr/></p>
   27671 <p>Must not slow down frame rate relative to raw sensor output.<wbr/></p></span>
   27672                   </li>
   27673                   <li>
   27674                     <span class="entry_type_enum_name">PRESET_CURVE (v3.2)</span>
   27675                     <span class="entry_type_enum_notes"><p>Use the preset tonemapping curve specified in
   27676 <a href="#controls_android.tonemap.presetCurve">android.<wbr/>tonemap.<wbr/>preset<wbr/>Curve</a> to peform tonemapping.<wbr/></p>
   27677 <p>All color enhancement and tonemapping must be disabled,<wbr/> except
   27678 for applying the tonemapping curve specified by
   27679 <a href="#controls_android.tonemap.presetCurve">android.<wbr/>tonemap.<wbr/>preset<wbr/>Curve</a>.<wbr/></p>
   27680 <p>Must not slow down frame rate relative to raw sensor output.<wbr/></p></span>
   27681                   </li>
   27682                 </ul>
   27683 
   27684             </td> <!-- entry_type -->
   27685 
   27686             <td class="entry_description">
   27687               <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
   27688             </td>
   27689 
   27690             <td class="entry_units">
   27691             </td>
   27692 
   27693             <td class="entry_range">
   27694               <p><a href="#static_android.tonemap.availableToneMapModes">android.<wbr/>tonemap.<wbr/>available<wbr/>Tone<wbr/>Map<wbr/>Modes</a></p>
   27695             </td>
   27696 
   27697             <td class="entry_hal_version">
   27698               <p>3.<wbr/>2</p>
   27699             </td>
   27700 
   27701             <td class="entry_tags">
   27702             </td>
   27703 
   27704           </tr>
   27705           <tr class="entries_header">
   27706             <th class="th_details" colspan="6">Details</th>
   27707           </tr>
   27708           <tr class="entry_cont">
   27709             <td class="entry_details" colspan="6">
   27710               <p>When switching to an application-defined contrast curve by setting
   27711 <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
   27712 per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
   27713 mapping from input high-bit-depth pixel value to the output
   27714 low-bit-depth value.<wbr/>  Since the actual pixel ranges of both input
   27715 and output may change depending on the camera pipeline,<wbr/> the values
   27716 are specified by normalized floating-point numbers.<wbr/></p>
   27717 <p>More-complex color mapping operations such as 3D color look-up
   27718 tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
   27719 transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
   27720 CONTRAST_<wbr/>CURVE.<wbr/></p>
   27721 <p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
   27722 emit its own tonemap curve in <a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>.<wbr/>
   27723 These values are always available,<wbr/> and as close as possible to the
   27724 actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
   27725 <p>If a request is sent with CONTRAST_<wbr/>CURVE with the camera device's
   27726 provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
   27727 roughly the same.<wbr/></p>
   27728             </td>
   27729           </tr>
   27730 
   27731 
   27732           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   27733            <!-- end of entry -->
   27734         
   27735                 
   27736           <tr class="entry" id="dynamic_android.tonemap.gamma">
   27737             <td class="entry_name
   27738              " rowspan="3">
   27739               android.<wbr/>tonemap.<wbr/>gamma
   27740             </td>
   27741             <td class="entry_type">
   27742                 <span class="entry_type_name">float</span>
   27743 
   27744               <span class="entry_type_visibility"> [public]</span>
   27745 
   27746 
   27747 
   27748 
   27749 
   27750 
   27751             </td> <!-- entry_type -->
   27752 
   27753             <td class="entry_description">
   27754               <p>Tonemapping curve to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
   27755 GAMMA_<wbr/>VALUE</p>
   27756             </td>
   27757 
   27758             <td class="entry_units">
   27759             </td>
   27760 
   27761             <td class="entry_range">
   27762             </td>
   27763 
   27764             <td class="entry_hal_version">
   27765               <p>3.<wbr/>2</p>
   27766             </td>
   27767 
   27768             <td class="entry_tags">
   27769             </td>
   27770 
   27771           </tr>
   27772           <tr class="entries_header">
   27773             <th class="th_details" colspan="6">Details</th>
   27774           </tr>
   27775           <tr class="entry_cont">
   27776             <td class="entry_details" colspan="6">
   27777               <p>The tonemap curve will be defined the following formula:
   27778 * OUT = pow(IN,<wbr/> 1.<wbr/>0 /<wbr/> gamma)
   27779 where IN and OUT is the input pixel value scaled to range [0.<wbr/>0,<wbr/> 1.<wbr/>0],<wbr/>
   27780 pow is the power function and gamma is the gamma value specified by this
   27781 key.<wbr/></p>
   27782 <p>The same curve will be applied to all color channels.<wbr/> The camera device
   27783 may clip the input gamma value to its supported range.<wbr/> The actual applied
   27784 value will be returned in capture result.<wbr/></p>
   27785 <p>The valid range of gamma value varies on different devices,<wbr/> but values
   27786 within [1.<wbr/>0,<wbr/> 5.<wbr/>0] are guaranteed not to be clipped.<wbr/></p>
   27787             </td>
   27788           </tr>
   27789 
   27790 
   27791           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   27792            <!-- end of entry -->
   27793         
   27794                 
   27795           <tr class="entry" id="dynamic_android.tonemap.presetCurve">
   27796             <td class="entry_name
   27797              " rowspan="3">
   27798               android.<wbr/>tonemap.<wbr/>preset<wbr/>Curve
   27799             </td>
   27800             <td class="entry_type">
   27801                 <span class="entry_type_name entry_type_name_enum">byte</span>
   27802 
   27803               <span class="entry_type_visibility"> [public]</span>
   27804 
   27805 
   27806 
   27807 
   27808 
   27809                 <ul class="entry_type_enum">
   27810                   <li>
   27811                     <span class="entry_type_enum_name">SRGB (v3.2)</span>
   27812                     <span class="entry_type_enum_notes"><p>Tonemapping curve is defined by sRGB</p></span>
   27813                   </li>
   27814                   <li>
   27815                     <span class="entry_type_enum_name">REC709 (v3.2)</span>
   27816                     <span class="entry_type_enum_notes"><p>Tonemapping curve is defined by ITU-R BT.<wbr/>709</p></span>
   27817                   </li>
   27818                 </ul>
   27819 
   27820             </td> <!-- entry_type -->
   27821 
   27822             <td class="entry_description">
   27823               <p>Tonemapping curve to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
   27824 PRESET_<wbr/>CURVE</p>
   27825             </td>
   27826 
   27827             <td class="entry_units">
   27828             </td>
   27829 
   27830             <td class="entry_range">
   27831             </td>
   27832 
   27833             <td class="entry_hal_version">
   27834               <p>3.<wbr/>2</p>
   27835             </td>
   27836 
   27837             <td class="entry_tags">
   27838             </td>
   27839 
   27840           </tr>
   27841           <tr class="entries_header">
   27842             <th class="th_details" colspan="6">Details</th>
   27843           </tr>
   27844           <tr class="entry_cont">
   27845             <td class="entry_details" colspan="6">
   27846               <p>The tonemap curve will be defined by specified standard.<wbr/></p>
   27847 <p>sRGB (approximated by 16 control points):</p>
   27848 <p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
   27849 <p>Rec.<wbr/> 709 (approximated by 16 control points):</p>
   27850 <p><img alt="Rec. 709 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/rec709_tonemap.png"/></p>
   27851 <p>Note that above figures show a 16 control points approximation of preset
   27852 curves.<wbr/> Camera devices may apply a different approximation to the curve.<wbr/></p>
   27853             </td>
   27854           </tr>
   27855 
   27856 
   27857           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   27858            <!-- end of entry -->
   27859         
   27860         
   27861 
   27862       <!-- end of kind -->
   27863       </tbody>
   27864 
   27865   <!-- end of section -->
   27866   <tr><td colspan="7" id="section_led" class="section">led</td></tr>
   27867 
   27868 
   27869       <tr><td colspan="7" class="kind">controls</td></tr>
   27870 
   27871       <thead class="entries_header">
   27872         <tr>
   27873           <th class="th_name">Property Name</th>
   27874           <th class="th_type">Type</th>
   27875           <th class="th_description">Description</th>
   27876           <th class="th_units">Units</th>
   27877           <th class="th_range">Range</th>
   27878           <th class="th_hal_version">Initial HIDL HAL version</th>
   27879           <th class="th_tags">Tags</th>
   27880         </tr>
   27881       </thead>
   27882 
   27883       <tbody>
   27884 
   27885         
   27886 
   27887         
   27888 
   27889         
   27890 
   27891         
   27892 
   27893                 
   27894           <tr class="entry" id="controls_android.led.transmit">
   27895             <td class="entry_name
   27896              " rowspan="1">
   27897               android.<wbr/>led.<wbr/>transmit
   27898             </td>
   27899             <td class="entry_type">
   27900                 <span class="entry_type_name entry_type_name_enum">byte</span>
   27901 
   27902               <span class="entry_type_visibility"> [hidden as boolean]</span>
   27903 
   27904 
   27905 
   27906 
   27907 
   27908                 <ul class="entry_type_enum">
   27909                   <li>
   27910                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   27911                   </li>
   27912                   <li>
   27913                     <span class="entry_type_enum_name">ON (v3.2)</span>
   27914                   </li>
   27915                 </ul>
   27916 
   27917             </td> <!-- entry_type -->
   27918 
   27919             <td class="entry_description">
   27920               <p>This LED is nominally used to indicate to the user
   27921 that the camera is powered on and may be streaming images back to the
   27922 Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
   27923 disable this when video is processed locally and not transmitted to
   27924 any untrusted applications.<wbr/></p>
   27925 <p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
   27926 transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
   27927 data is stored locally on the device.<wbr/></p>
   27928 <p>The LED <em>may</em> be off if a trusted application is using the data that
   27929 doesn't violate the above rules.<wbr/></p>
   27930             </td>
   27931 
   27932             <td class="entry_units">
   27933             </td>
   27934 
   27935             <td class="entry_range">
   27936             </td>
   27937 
   27938             <td class="entry_hal_version">
   27939               <p>3.<wbr/>2</p>
   27940             </td>
   27941 
   27942             <td class="entry_tags">
   27943             </td>
   27944 
   27945           </tr>
   27946 
   27947 
   27948           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   27949            <!-- end of entry -->
   27950         
   27951         
   27952 
   27953       <!-- end of kind -->
   27954       </tbody>
   27955       <tr><td colspan="7" class="kind">dynamic</td></tr>
   27956 
   27957       <thead class="entries_header">
   27958         <tr>
   27959           <th class="th_name">Property Name</th>
   27960           <th class="th_type">Type</th>
   27961           <th class="th_description">Description</th>
   27962           <th class="th_units">Units</th>
   27963           <th class="th_range">Range</th>
   27964           <th class="th_hal_version">Initial HIDL HAL version</th>
   27965           <th class="th_tags">Tags</th>
   27966         </tr>
   27967       </thead>
   27968 
   27969       <tbody>
   27970 
   27971         
   27972 
   27973         
   27974 
   27975         
   27976 
   27977         
   27978 
   27979                 
   27980           <tr class="entry" id="dynamic_android.led.transmit">
   27981             <td class="entry_name
   27982              " rowspan="1">
   27983               android.<wbr/>led.<wbr/>transmit
   27984             </td>
   27985             <td class="entry_type">
   27986                 <span class="entry_type_name entry_type_name_enum">byte</span>
   27987 
   27988               <span class="entry_type_visibility"> [hidden as boolean]</span>
   27989 
   27990 
   27991 
   27992 
   27993 
   27994                 <ul class="entry_type_enum">
   27995                   <li>
   27996                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   27997                   </li>
   27998                   <li>
   27999                     <span class="entry_type_enum_name">ON (v3.2)</span>
   28000                   </li>
   28001                 </ul>
   28002 
   28003             </td> <!-- entry_type -->
   28004 
   28005             <td class="entry_description">
   28006               <p>This LED is nominally used to indicate to the user
   28007 that the camera is powered on and may be streaming images back to the
   28008 Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
   28009 disable this when video is processed locally and not transmitted to
   28010 any untrusted applications.<wbr/></p>
   28011 <p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
   28012 transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
   28013 data is stored locally on the device.<wbr/></p>
   28014 <p>The LED <em>may</em> be off if a trusted application is using the data that
   28015 doesn't violate the above rules.<wbr/></p>
   28016             </td>
   28017 
   28018             <td class="entry_units">
   28019             </td>
   28020 
   28021             <td class="entry_range">
   28022             </td>
   28023 
   28024             <td class="entry_hal_version">
   28025               <p>3.<wbr/>2</p>
   28026             </td>
   28027 
   28028             <td class="entry_tags">
   28029             </td>
   28030 
   28031           </tr>
   28032 
   28033 
   28034           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   28035            <!-- end of entry -->
   28036         
   28037         
   28038 
   28039       <!-- end of kind -->
   28040       </tbody>
   28041       <tr><td colspan="7" class="kind">static</td></tr>
   28042 
   28043       <thead class="entries_header">
   28044         <tr>
   28045           <th class="th_name">Property Name</th>
   28046           <th class="th_type">Type</th>
   28047           <th class="th_description">Description</th>
   28048           <th class="th_units">Units</th>
   28049           <th class="th_range">Range</th>
   28050           <th class="th_hal_version">Initial HIDL HAL version</th>
   28051           <th class="th_tags">Tags</th>
   28052         </tr>
   28053       </thead>
   28054 
   28055       <tbody>
   28056 
   28057         
   28058 
   28059         
   28060 
   28061         
   28062 
   28063         
   28064 
   28065                 
   28066           <tr class="entry" id="static_android.led.availableLeds">
   28067             <td class="entry_name
   28068              " rowspan="1">
   28069               android.<wbr/>led.<wbr/>available<wbr/>Leds
   28070             </td>
   28071             <td class="entry_type">
   28072                 <span class="entry_type_name entry_type_name_enum">byte</span>
   28073                 <span class="entry_type_container">x</span>
   28074 
   28075                 <span class="entry_type_array">
   28076                   n
   28077                 </span>
   28078               <span class="entry_type_visibility"> [hidden]</span>
   28079 
   28080 
   28081 
   28082 
   28083 
   28084                 <ul class="entry_type_enum">
   28085                   <li>
   28086                     <span class="entry_type_enum_name">TRANSMIT (v3.2)</span>
   28087                     <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>
   28088                   </li>
   28089                 </ul>
   28090 
   28091             </td> <!-- entry_type -->
   28092 
   28093             <td class="entry_description">
   28094               <p>A list of camera LEDs that are available on this system.<wbr/></p>
   28095             </td>
   28096 
   28097             <td class="entry_units">
   28098             </td>
   28099 
   28100             <td class="entry_range">
   28101             </td>
   28102 
   28103             <td class="entry_hal_version">
   28104               <p>3.<wbr/>2</p>
   28105             </td>
   28106 
   28107             <td class="entry_tags">
   28108             </td>
   28109 
   28110           </tr>
   28111 
   28112 
   28113           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   28114            <!-- end of entry -->
   28115         
   28116         
   28117 
   28118       <!-- end of kind -->
   28119       </tbody>
   28120 
   28121   <!-- end of section -->
   28122   <tr><td colspan="7" id="section_info" class="section">info</td></tr>
   28123 
   28124 
   28125       <tr><td colspan="7" class="kind">static</td></tr>
   28126 
   28127       <thead class="entries_header">
   28128         <tr>
   28129           <th class="th_name">Property Name</th>
   28130           <th class="th_type">Type</th>
   28131           <th class="th_description">Description</th>
   28132           <th class="th_units">Units</th>
   28133           <th class="th_range">Range</th>
   28134           <th class="th_hal_version">Initial HIDL HAL version</th>
   28135           <th class="th_tags">Tags</th>
   28136         </tr>
   28137       </thead>
   28138 
   28139       <tbody>
   28140 
   28141         
   28142 
   28143         
   28144 
   28145         
   28146 
   28147         
   28148 
   28149                 
   28150           <tr class="entry" id="static_android.info.supportedHardwareLevel">
   28151             <td class="entry_name
   28152              " rowspan="5">
   28153               android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level
   28154             </td>
   28155             <td class="entry_type">
   28156                 <span class="entry_type_name entry_type_name_enum">byte</span>
   28157 
   28158               <span class="entry_type_visibility"> [public]</span>
   28159 
   28160 
   28161               <span class="entry_type_hwlevel">[legacy] </span>
   28162 
   28163 
   28164 
   28165                 <ul class="entry_type_enum">
   28166                   <li>
   28167                     <span class="entry_type_enum_name">LIMITED (v3.2)</span>
   28168                     <span class="entry_type_enum_notes"><p>This camera device does not have enough capabilities to qualify as a <code>FULL</code> device or
   28169 better.<wbr/></p>
   28170 <p>Only the stream configurations listed in the <code>LEGACY</code> and <code>LIMITED</code> tables in the
   28171 <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureSession">createCaptureSession</a> documentation are guaranteed to be supported.<wbr/></p>
   28172 <p>All <code>LIMITED</code> devices support the <code>BACKWARDS_<wbr/>COMPATIBLE</code> capability,<wbr/> indicating basic
   28173 support for color image capture.<wbr/> The only exception is that the device may
   28174 alternatively support only the <code>DEPTH_<wbr/>OUTPUT</code> capability,<wbr/> if it can only output depth
   28175 measurements and not color images.<wbr/></p>
   28176 <p><code>LIMITED</code> devices and above require the use of <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>
   28177 to lock exposure metering (and calculate flash power,<wbr/> for cameras with flash) before
   28178 capturing a high-quality still image.<wbr/></p>
   28179 <p>A <code>LIMITED</code> device that only lists the <code>BACKWARDS_<wbr/>COMPATIBLE</code> capability is only
   28180 required to support full-automatic operation and post-processing (<code>OFF</code> is not
   28181 supported for <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/> <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>,<wbr/> or
   28182 <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>)</p>
   28183 <p>Additional capabilities may optionally be supported by a <code>LIMITED</code>-level device,<wbr/> and
   28184 can be checked for in <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>.<wbr/></p></span>
   28185                   </li>
   28186                   <li>
   28187                     <span class="entry_type_enum_name">FULL (v3.2)</span>
   28188                     <span class="entry_type_enum_notes"><p>This camera device is capable of supporting advanced imaging applications.<wbr/></p>
   28189 <p>The stream configurations listed in the <code>FULL</code>,<wbr/> <code>LEGACY</code> and <code>LIMITED</code> tables in the
   28190 <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureSession">createCaptureSession</a> documentation are guaranteed to be supported.<wbr/></p>
   28191 <p>A <code>FULL</code> device will support below capabilities:</p>
   28192 <ul>
   28193 <li><code>BURST_<wbr/>CAPTURE</code> capability (<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains
   28194   <code>BURST_<wbr/>CAPTURE</code>)</li>
   28195 <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>
   28196 <li>Manual sensor control (<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains <code>MANUAL_<wbr/>SENSOR</code>)</li>
   28197 <li>Manual post-processing control (<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains
   28198   <code>MANUAL_<wbr/>POST_<wbr/>PROCESSING</code>)</li>
   28199 <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>
   28200 <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>
   28201 </ul>
   28202 <p>Note:
   28203 Pre-API level 23,<wbr/> FULL devices also supported arbitrary cropping region
   28204 (<a href="#static_android.scaler.croppingType">android.<wbr/>scaler.<wbr/>cropping<wbr/>Type</a> <code>== FREEFORM</code>); this requirement was relaxed in API level
   28205 23,<wbr/> and <code>FULL</code> devices may only support <code>CENTERED</code> cropping.<wbr/></p></span>
   28206                   </li>
   28207                   <li>
   28208                     <span class="entry_type_enum_name">LEGACY (v3.2)</span>
   28209                     <span class="entry_type_enum_notes"><p>This camera device is running in backward compatibility mode.<wbr/></p>
   28210 <p>Only the stream configurations listed in the <code>LEGACY</code> table in the <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureSession">createCaptureSession</a> documentation are supported.<wbr/></p>
   28211 <p>A <code>LEGACY</code> device does not support per-frame control,<wbr/> manual sensor control,<wbr/> manual
   28212 post-processing,<wbr/> arbitrary cropping regions,<wbr/> and has relaxed performance constraints.<wbr/>
   28213 No additional capabilities beyond <code>BACKWARD_<wbr/>COMPATIBLE</code> will ever be listed by a
   28214 <code>LEGACY</code> device in <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>.<wbr/></p>
   28215 <p>In addition,<wbr/> the <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is not functional on <code>LEGACY</code>
   28216 devices.<wbr/> Instead,<wbr/> every request that includes a JPEG-format output target is treated
   28217 as triggering a still capture,<wbr/> internally executing a precapture trigger.<wbr/>  This may
   28218 fire the flash for flash power metering during precapture,<wbr/> and then fire the flash
   28219 for the final capture,<wbr/> if a flash is available on the device and the AE mode is set to
   28220 enable the flash.<wbr/></p></span>
   28221                   </li>
   28222                   <li>
   28223                     <span class="entry_type_enum_name">3 (v3.2)</span>
   28224                     <span class="entry_type_enum_notes"><p>This camera device is capable of YUV reprocessing and RAW data capture,<wbr/> in addition to
   28225 FULL-level capabilities.<wbr/></p>
   28226 <p>The stream configurations listed in the <code>LEVEL_<wbr/>3</code>,<wbr/> <code>RAW</code>,<wbr/> <code>FULL</code>,<wbr/> <code>LEGACY</code> and
   28227 <code>LIMITED</code> tables in the <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureSession">createCaptureSession</a> documentation are guaranteed to be supported.<wbr/></p>
   28228 <p>The following additional capabilities are guaranteed to be supported:</p>
   28229 <ul>
   28230 <li><code>YUV_<wbr/>REPROCESSING</code> capability (<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains
   28231   <code>YUV_<wbr/>REPROCESSING</code>)</li>
   28232 <li><code>RAW</code> capability (<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains
   28233   <code>RAW</code>)</li>
   28234 </ul></span>
   28235                   </li>
   28236                   <li>
   28237                     <span class="entry_type_enum_name">EXTERNAL (v3.3)</span>
   28238                     <span class="entry_type_enum_notes"><p>This camera device is backed by an external camera connected to this Android device.<wbr/></p>
   28239 <p>The device has capability identical to a LIMITED level device,<wbr/> with the following
   28240 exceptions:</p>
   28241 <ul>
   28242 <li>The device may not report lens/<wbr/>sensor related information such as<ul>
   28243 <li><a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a></li>
   28244 <li><a href="#static_android.lens.info.hyperfocalDistance">android.<wbr/>lens.<wbr/>info.<wbr/>hyperfocal<wbr/>Distance</a></li>
   28245 <li><a href="#static_android.sensor.info.physicalSize">android.<wbr/>sensor.<wbr/>info.<wbr/>physical<wbr/>Size</a></li>
   28246 <li><a href="#static_android.sensor.info.whiteLevel">android.<wbr/>sensor.<wbr/>info.<wbr/>white<wbr/>Level</a></li>
   28247 <li><a href="#static_android.sensor.blackLevelPattern">android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern</a></li>
   28248 <li><a href="#static_android.sensor.info.colorFilterArrangement">android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement</a></li>
   28249 <li><a href="#dynamic_android.sensor.rollingShutterSkew">android.<wbr/>sensor.<wbr/>rolling<wbr/>Shutter<wbr/>Skew</a></li>
   28250 </ul>
   28251 </li>
   28252 <li>The device will report 0 for <a href="#static_android.sensor.orientation">android.<wbr/>sensor.<wbr/>orientation</a></li>
   28253 <li>The device has less guarantee on stable framerate,<wbr/> as the framerate partly depends
   28254   on the external camera being used.<wbr/></li>
   28255 </ul></span>
   28256                   </li>
   28257                 </ul>
   28258 
   28259             </td> <!-- entry_type -->
   28260 
   28261             <td class="entry_description">
   28262               <p>Generally classifies the overall set of the camera device functionality.<wbr/></p>
   28263             </td>
   28264 
   28265             <td class="entry_units">
   28266             </td>
   28267 
   28268             <td class="entry_range">
   28269             </td>
   28270 
   28271             <td class="entry_hal_version">
   28272               <p>3.<wbr/>2</p>
   28273             </td>
   28274 
   28275             <td class="entry_tags">
   28276             </td>
   28277 
   28278           </tr>
   28279           <tr class="entries_header">
   28280             <th class="th_details" colspan="6">Details</th>
   28281           </tr>
   28282           <tr class="entry_cont">
   28283             <td class="entry_details" colspan="6">
   28284               <p>The supported hardware level is a high-level description of the camera device's
   28285 capabilities,<wbr/> summarizing several capabilities into one field.<wbr/>  Each level adds additional
   28286 features to the previous one,<wbr/> and is always a strict superset of the previous level.<wbr/>
   28287 The ordering is <code>LEGACY &lt; LIMITED &lt; FULL &lt; LEVEL_<wbr/>3</code>.<wbr/></p>
   28288 <p>Starting from <code>LEVEL_<wbr/>3</code>,<wbr/> the level enumerations are guaranteed to be in increasing
   28289 numerical value as well.<wbr/> To check if a given device is at least at a given hardware level,<wbr/>
   28290 the following code snippet can be used:</p>
   28291 <pre><code>//<wbr/> Returns true if the device supports the required hardware level,<wbr/> or better.<wbr/>
   28292 boolean isHardwareLevelSupported(CameraCharacteristics c,<wbr/> int requiredLevel) {
   28293     int deviceLevel = c.<wbr/>get(Camera<wbr/>Characteristics.<wbr/>INFO_<wbr/>SUPPORTED_<wbr/>HARDWARE_<wbr/>LEVEL);
   28294     if (deviceLevel == Camera<wbr/>Characteristics.<wbr/>INFO_<wbr/>SUPPORTED_<wbr/>HARDWARE_<wbr/>LEVEL_<wbr/>LEGACY) {
   28295         return requiredLevel == deviceLevel;
   28296     }
   28297     //<wbr/> deviceLevel is not LEGACY,<wbr/> can use numerical sort
   28298     return requiredLevel &lt;= deviceLevel;
   28299 }
   28300 </code></pre>
   28301 <p>At a high level,<wbr/> the levels are:</p>
   28302 <ul>
   28303 <li><code>LEGACY</code> devices operate in a backwards-compatibility mode for older
   28304   Android devices,<wbr/> and have very limited capabilities.<wbr/></li>
   28305 <li><code>LIMITED</code> devices represent the
   28306   baseline feature set,<wbr/> and may also include additional capabilities that are
   28307   subsets of <code>FULL</code>.<wbr/></li>
   28308 <li><code>FULL</code> devices additionally support per-frame manual control of sensor,<wbr/> flash,<wbr/> lens and
   28309   post-processing settings,<wbr/> and image capture at a high rate.<wbr/></li>
   28310 <li><code>LEVEL_<wbr/>3</code> devices additionally support YUV reprocessing and RAW image capture,<wbr/> along
   28311   with additional output stream configurations.<wbr/></li>
   28312 </ul>
   28313 <p>See the individual level enums for full descriptions of the supported capabilities.<wbr/>  The
   28314 <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> entry describes the device's capabilities at a
   28315 finer-grain level,<wbr/> if needed.<wbr/> In addition,<wbr/> many controls have their available settings or
   28316 ranges defined in individual entries from <a href="https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html">CameraCharacteristics</a>.<wbr/></p>
   28317 <p>Some features are not part of any particular hardware level or capability and must be
   28318 queried separately.<wbr/> These include:</p>
   28319 <ul>
   28320 <li>Calibrated timestamps (<a href="#static_android.sensor.info.timestampSource">android.<wbr/>sensor.<wbr/>info.<wbr/>timestamp<wbr/>Source</a> <code>==</code> REALTIME)</li>
   28321 <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>
   28322 <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>
   28323 <li>Optical or electrical image stabilization
   28324   (<a href="#static_android.lens.info.availableOpticalStabilization">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization</a>,<wbr/>
   28325    <a href="#static_android.control.availableVideoStabilizationModes">android.<wbr/>control.<wbr/>available<wbr/>Video<wbr/>Stabilization<wbr/>Modes</a>)</li>
   28326 </ul>
   28327             </td>
   28328           </tr>
   28329 
   28330           <tr class="entries_header">
   28331             <th class="th_details" colspan="6">HAL Implementation Details</th>
   28332           </tr>
   28333           <tr class="entry_cont">
   28334             <td class="entry_details" colspan="6">
   28335               <p>A camera HALv3 device can implement one of three possible operational modes; LIMITED,<wbr/>
   28336 FULL,<wbr/> and LEVEL_<wbr/>3.<wbr/></p>
   28337 <p>FULL support or better is expected from new higher-end devices.<wbr/> Limited
   28338 mode has hardware requirements roughly in line with those for a camera HAL device v1
   28339 implementation,<wbr/> and is expected from older or inexpensive devices.<wbr/> Each level is a strict
   28340 superset of the previous level,<wbr/> and they share the same essential operational flow.<wbr/></p>
   28341 <p>For full details refer to "S3.<wbr/> Operational Modes" in camera3.<wbr/>h</p>
   28342 <p>Camera HAL3+ must not implement LEGACY mode.<wbr/> It is there for backwards compatibility in
   28343 the <code>android.<wbr/>hardware.<wbr/>camera2</code> user-facing API only on legacy HALv1 devices,<wbr/> and is
   28344 implemented by the camera framework code.<wbr/></p>
   28345 <p>EXTERNAL level devices have lower peformance bar in CTS since the peformance might depend
   28346 on the external camera being used and is not fully controlled by the device manufacturer.<wbr/>
   28347 The ITS test suite is exempted for the same reason.<wbr/></p>
   28348             </td>
   28349           </tr>
   28350 
   28351           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   28352            <!-- end of entry -->
   28353         
   28354                 
   28355           <tr class="entry" id="static_android.info.version">
   28356             <td class="entry_name
   28357              " rowspan="5">
   28358               android.<wbr/>info.<wbr/>version
   28359             </td>
   28360             <td class="entry_type">
   28361                 <span class="entry_type_name">byte</span>
   28362 
   28363               <span class="entry_type_visibility"> [public as string]</span>
   28364 
   28365 
   28366 
   28367 
   28368 
   28369 
   28370             </td> <!-- entry_type -->
   28371 
   28372             <td class="entry_description">
   28373               <p>A short string for manufacturer version information about the camera device,<wbr/> such as
   28374 ISP hardware,<wbr/> sensors,<wbr/> etc.<wbr/></p>
   28375             </td>
   28376 
   28377             <td class="entry_units">
   28378             </td>
   28379 
   28380             <td class="entry_range">
   28381             </td>
   28382 
   28383             <td class="entry_hal_version">
   28384               <p>3.<wbr/>3</p>
   28385             </td>
   28386 
   28387             <td class="entry_tags">
   28388             </td>
   28389 
   28390           </tr>
   28391           <tr class="entries_header">
   28392             <th class="th_details" colspan="6">Details</th>
   28393           </tr>
   28394           <tr class="entry_cont">
   28395             <td class="entry_details" colspan="6">
   28396               <p>This can be used in <a href="https://developer.android.com/reference/android/media/ExifInterface.html#TAG_IMAGE_DESCRIPTION">TAG_<wbr/>IMAGE_<wbr/>DESCRIPTION</a>
   28397 in jpeg EXIF.<wbr/> This key may be absent if no version information is available on the
   28398 device.<wbr/></p>
   28399             </td>
   28400           </tr>
   28401 
   28402           <tr class="entries_header">
   28403             <th class="th_details" colspan="6">HAL Implementation Details</th>
   28404           </tr>
   28405           <tr class="entry_cont">
   28406             <td class="entry_details" colspan="6">
   28407               <p>The string must consist of only alphanumeric characters,<wbr/> punctuation,<wbr/> and
   28408 whitespace,<wbr/> i.<wbr/>e.<wbr/> it must match regular expression "[\p{Alnum}\p{Punct}\p{Space}]*".<wbr/>
   28409 It must not exceed 256 characters.<wbr/></p>
   28410             </td>
   28411           </tr>
   28412 
   28413           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   28414            <!-- end of entry -->
   28415         
   28416         
   28417 
   28418       <!-- end of kind -->
   28419       </tbody>
   28420 
   28421   <!-- end of section -->
   28422   <tr><td colspan="7" id="section_blackLevel" class="section">blackLevel</td></tr>
   28423 
   28424 
   28425       <tr><td colspan="7" class="kind">controls</td></tr>
   28426 
   28427       <thead class="entries_header">
   28428         <tr>
   28429           <th class="th_name">Property Name</th>
   28430           <th class="th_type">Type</th>
   28431           <th class="th_description">Description</th>
   28432           <th class="th_units">Units</th>
   28433           <th class="th_range">Range</th>
   28434           <th class="th_hal_version">Initial HIDL HAL version</th>
   28435           <th class="th_tags">Tags</th>
   28436         </tr>
   28437       </thead>
   28438 
   28439       <tbody>
   28440 
   28441         
   28442 
   28443         
   28444 
   28445         
   28446 
   28447         
   28448 
   28449                 
   28450           <tr class="entry" id="controls_android.blackLevel.lock">
   28451             <td class="entry_name
   28452              " rowspan="5">
   28453               android.<wbr/>black<wbr/>Level.<wbr/>lock
   28454             </td>
   28455             <td class="entry_type">
   28456                 <span class="entry_type_name entry_type_name_enum">byte</span>
   28457 
   28458               <span class="entry_type_visibility"> [public as boolean]</span>
   28459 
   28460 
   28461               <span class="entry_type_hwlevel">[full] </span>
   28462 
   28463 
   28464 
   28465                 <ul class="entry_type_enum">
   28466                   <li>
   28467                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   28468                   </li>
   28469                   <li>
   28470                     <span class="entry_type_enum_name">ON (v3.2)</span>
   28471                   </li>
   28472                 </ul>
   28473 
   28474             </td> <!-- entry_type -->
   28475 
   28476             <td class="entry_description">
   28477               <p>Whether black-level compensation is locked
   28478 to its current values,<wbr/> or is free to vary.<wbr/></p>
   28479             </td>
   28480 
   28481             <td class="entry_units">
   28482             </td>
   28483 
   28484             <td class="entry_range">
   28485             </td>
   28486 
   28487             <td class="entry_hal_version">
   28488               <p>3.<wbr/>2</p>
   28489             </td>
   28490 
   28491             <td class="entry_tags">
   28492               <ul class="entry_tags">
   28493                   <li><a href="#tag_HAL2">HAL2</a></li>
   28494               </ul>
   28495             </td>
   28496 
   28497           </tr>
   28498           <tr class="entries_header">
   28499             <th class="th_details" colspan="6">Details</th>
   28500           </tr>
   28501           <tr class="entry_cont">
   28502             <td class="entry_details" colspan="6">
   28503               <p>When set to <code>true</code> (ON),<wbr/> the values used for black-level
   28504 compensation will not change until the lock is set to
   28505 <code>false</code> (OFF).<wbr/></p>
   28506 <p>Since changes to certain capture parameters (such as
   28507 exposure time) may require resetting of black level
   28508 compensation,<wbr/> the camera device must report whether setting
   28509 the black level lock was successful in the output result
   28510 metadata.<wbr/></p>
   28511 <p>For example,<wbr/> if a sequence of requests is as follows:</p>
   28512 <ul>
   28513 <li>Request 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
   28514 <li>Request 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
   28515 <li>Request 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
   28516 <li>Request 4: Exposure = 20ms,<wbr/> Black level lock = ON</li>
   28517 <li>Request 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
   28518 <li>Request 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
   28519 </ul>
   28520 <p>And the exposure change in Request 4 requires the camera
   28521 device to reset the black level offsets,<wbr/> then the output
   28522 result metadata is expected to be:</p>
   28523 <ul>
   28524 <li>Result 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
   28525 <li>Result 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
   28526 <li>Result 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
   28527 <li>Result 4: Exposure = 20ms,<wbr/> Black level lock = OFF</li>
   28528 <li>Result 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
   28529 <li>Result 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
   28530 </ul>
   28531 <p>This indicates to the application that on frame 4,<wbr/> black
   28532 levels were reset due to exposure value changes,<wbr/> and pixel
   28533 values may not be consistent across captures.<wbr/></p>
   28534 <p>The camera device will maintain the lock to the extent
   28535 possible,<wbr/> only overriding the lock to OFF when changes to
   28536 other request parameters require a black level recalculation
   28537 or reset.<wbr/></p>
   28538             </td>
   28539           </tr>
   28540 
   28541           <tr class="entries_header">
   28542             <th class="th_details" colspan="6">HAL Implementation Details</th>
   28543           </tr>
   28544           <tr class="entry_cont">
   28545             <td class="entry_details" colspan="6">
   28546               <p>If for some reason black level locking is no longer possible
   28547 (for example,<wbr/> the analog gain has changed,<wbr/> which forces
   28548 black level offsets to be recalculated),<wbr/> then the HAL must
   28549 override this request (and it must report 'OFF' when this
   28550 does happen) until the next capture for which locking is
   28551 possible again.<wbr/></p>
   28552             </td>
   28553           </tr>
   28554 
   28555           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   28556            <!-- end of entry -->
   28557         
   28558         
   28559 
   28560       <!-- end of kind -->
   28561       </tbody>
   28562       <tr><td colspan="7" class="kind">dynamic</td></tr>
   28563 
   28564       <thead class="entries_header">
   28565         <tr>
   28566           <th class="th_name">Property Name</th>
   28567           <th class="th_type">Type</th>
   28568           <th class="th_description">Description</th>
   28569           <th class="th_units">Units</th>
   28570           <th class="th_range">Range</th>
   28571           <th class="th_hal_version">Initial HIDL HAL version</th>
   28572           <th class="th_tags">Tags</th>
   28573         </tr>
   28574       </thead>
   28575 
   28576       <tbody>
   28577 
   28578         
   28579 
   28580         
   28581 
   28582         
   28583 
   28584         
   28585 
   28586                 
   28587           <tr class="entry" id="dynamic_android.blackLevel.lock">
   28588             <td class="entry_name
   28589              " rowspan="5">
   28590               android.<wbr/>black<wbr/>Level.<wbr/>lock
   28591             </td>
   28592             <td class="entry_type">
   28593                 <span class="entry_type_name entry_type_name_enum">byte</span>
   28594 
   28595               <span class="entry_type_visibility"> [public as boolean]</span>
   28596 
   28597 
   28598               <span class="entry_type_hwlevel">[full] </span>
   28599 
   28600 
   28601 
   28602                 <ul class="entry_type_enum">
   28603                   <li>
   28604                     <span class="entry_type_enum_name">OFF (v3.2)</span>
   28605                   </li>
   28606                   <li>
   28607                     <span class="entry_type_enum_name">ON (v3.2)</span>
   28608                   </li>
   28609                 </ul>
   28610 
   28611             </td> <!-- entry_type -->
   28612 
   28613             <td class="entry_description">
   28614               <p>Whether black-level compensation is locked
   28615 to its current values,<wbr/> or is free to vary.<wbr/></p>
   28616             </td>
   28617 
   28618             <td class="entry_units">
   28619             </td>
   28620 
   28621             <td class="entry_range">
   28622             </td>
   28623 
   28624             <td class="entry_hal_version">
   28625               <p>3.<wbr/>2</p>
   28626             </td>
   28627 
   28628             <td class="entry_tags">
   28629               <ul class="entry_tags">
   28630                   <li><a href="#tag_HAL2">HAL2</a></li>
   28631               </ul>
   28632             </td>
   28633 
   28634           </tr>
   28635           <tr class="entries_header">
   28636             <th class="th_details" colspan="6">Details</th>
   28637           </tr>
   28638           <tr class="entry_cont">
   28639             <td class="entry_details" colspan="6">
   28640               <p>Whether the black level offset was locked for this frame.<wbr/>  Should be
   28641 ON if <a href="#controls_android.blackLevel.lock">android.<wbr/>black<wbr/>Level.<wbr/>lock</a> was ON in the capture request,<wbr/> unless
   28642 a change in other capture settings forced the camera device to
   28643 perform a black level reset.<wbr/></p>
   28644             </td>
   28645           </tr>
   28646 
   28647           <tr class="entries_header">
   28648             <th class="th_details" colspan="6">HAL Implementation Details</th>
   28649           </tr>
   28650           <tr class="entry_cont">
   28651             <td class="entry_details" colspan="6">
   28652               <p>If for some reason black level locking is no longer possible
   28653 (for example,<wbr/> the analog gain has changed,<wbr/> which forces
   28654 black level offsets to be recalculated),<wbr/> then the HAL must
   28655 override this request (and it must report 'OFF' when this
   28656 does happen) until the next capture for which locking is
   28657 possible again.<wbr/></p>
   28658             </td>
   28659           </tr>
   28660 
   28661           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   28662            <!-- end of entry -->
   28663         
   28664         
   28665 
   28666       <!-- end of kind -->
   28667       </tbody>
   28668 
   28669   <!-- end of section -->
   28670   <tr><td colspan="7" id="section_sync" class="section">sync</td></tr>
   28671 
   28672 
   28673       <tr><td colspan="7" class="kind">dynamic</td></tr>
   28674 
   28675       <thead class="entries_header">
   28676         <tr>
   28677           <th class="th_name">Property Name</th>
   28678           <th class="th_type">Type</th>
   28679           <th class="th_description">Description</th>
   28680           <th class="th_units">Units</th>
   28681           <th class="th_range">Range</th>
   28682           <th class="th_hal_version">Initial HIDL HAL version</th>
   28683           <th class="th_tags">Tags</th>
   28684         </tr>
   28685       </thead>
   28686 
   28687       <tbody>
   28688 
   28689         
   28690 
   28691         
   28692 
   28693         
   28694 
   28695         
   28696 
   28697                 
   28698           <tr class="entry" id="dynamic_android.sync.frameNumber">
   28699             <td class="entry_name
   28700              " rowspan="5">
   28701               android.<wbr/>sync.<wbr/>frame<wbr/>Number
   28702             </td>
   28703             <td class="entry_type">
   28704                 <span class="entry_type_name entry_type_name_enum">int64</span>
   28705 
   28706               <span class="entry_type_visibility"> [ndk_public]</span>
   28707 
   28708 
   28709               <span class="entry_type_hwlevel">[legacy] </span>
   28710 
   28711 
   28712 
   28713                 <ul class="entry_type_enum">
   28714                   <li>
   28715                     <span class="entry_type_enum_name">CONVERGING (v3.2)</span>
   28716                     <span class="entry_type_enum_value">-1</span>
   28717                     <span class="entry_type_enum_notes"><p>The current result is not yet fully synchronized to any request.<wbr/></p>
   28718 <p>Synchronization is in progress,<wbr/> and reading metadata from this
   28719 result may include a mix of data that have taken effect since the
   28720 last synchronization time.<wbr/></p>
   28721 <p>In some future result,<wbr/> within <a href="#static_android.sync.maxLatency">android.<wbr/>sync.<wbr/>max<wbr/>Latency</a> frames,<wbr/>
   28722 this value will update to the actual frame number frame number
   28723 the result is guaranteed to be synchronized to (as long as the
   28724 request settings remain constant).<wbr/></p></span>
   28725                   </li>
   28726                   <li>
   28727                     <span class="entry_type_enum_name">UNKNOWN (v3.2)</span>
   28728                     <span class="entry_type_enum_value">-2</span>
   28729                     <span class="entry_type_enum_notes"><p>The current result's synchronization status is unknown.<wbr/></p>
   28730 <p>The result may have already converged,<wbr/> or it may be in
   28731 progress.<wbr/>  Reading from this result may include some mix
   28732 of settings from past requests.<wbr/></p>
   28733 <p>After a settings change,<wbr/> the new settings will eventually all
   28734 take effect for the output buffers and results.<wbr/> However,<wbr/> this
   28735 value will not change when that happens.<wbr/> Altering settings
   28736 rapidly may provide outcomes using mixes of settings from recent
   28737 requests.<wbr/></p>
   28738 <p>This value is intended primarily for backwards compatibility with
   28739 the older camera implementations (for android.<wbr/>hardware.<wbr/>Camera).<wbr/></p></span>
   28740                   </li>
   28741                 </ul>
   28742 
   28743             </td> <!-- entry_type -->
   28744 
   28745             <td class="entry_description">
   28746               <p>The frame number corresponding to the last request
   28747 with which the output result (metadata + buffers) has been fully
   28748 synchronized.<wbr/></p>
   28749             </td>
   28750 
   28751             <td class="entry_units">
   28752             </td>
   28753 
   28754             <td class="entry_range">
   28755               <p>Either a non-negative value corresponding to a
   28756 <code>frame_<wbr/>number</code>,<wbr/> or one of the two enums (CONVERGING /<wbr/> UNKNOWN).<wbr/></p>
   28757             </td>
   28758 
   28759             <td class="entry_hal_version">
   28760               <p>3.<wbr/>2</p>
   28761             </td>
   28762 
   28763             <td class="entry_tags">
   28764               <ul class="entry_tags">
   28765                   <li><a href="#tag_V1">V1</a></li>
   28766               </ul>
   28767             </td>
   28768 
   28769           </tr>
   28770           <tr class="entries_header">
   28771             <th class="th_details" colspan="6">Details</th>
   28772           </tr>
   28773           <tr class="entry_cont">
   28774             <td class="entry_details" colspan="6">
   28775               <p>When a request is submitted to the camera device,<wbr/> there is usually a
   28776 delay of several frames before the controls get applied.<wbr/> A camera
   28777 device may either choose to account for this delay by implementing a
   28778 pipeline and carefully submit well-timed atomic control updates,<wbr/> or
   28779 it may start streaming control changes that span over several frame
   28780 boundaries.<wbr/></p>
   28781 <p>In the latter case,<wbr/> whenever a request's settings change relative to
   28782 the previous submitted request,<wbr/> the full set of changes may take
   28783 multiple frame durations to fully take effect.<wbr/> Some settings may
   28784 take effect sooner (in less frame durations) than others.<wbr/></p>
   28785 <p>While a set of control changes are being propagated,<wbr/> this value
   28786 will be CONVERGING.<wbr/></p>
   28787 <p>Once it is fully known that a set of control changes have been
   28788 finished propagating,<wbr/> and the resulting updated control settings
   28789 have been read back by the camera device,<wbr/> this value will be set
   28790 to a non-negative frame number (corresponding to the request to
   28791 which the results have synchronized to).<wbr/></p>
   28792 <p>Older camera device implementations may not have a way to detect
   28793 when all camera controls have been applied,<wbr/> and will always set this
   28794 value to UNKNOWN.<wbr/></p>
   28795 <p>FULL capability devices will always have this value set to the
   28796 frame number of the request corresponding to this result.<wbr/></p>
   28797 <p><em>Further details</em>:</p>
   28798 <ul>
   28799 <li>Whenever a request differs from the last request,<wbr/> any future
   28800 results not yet returned may have this value set to CONVERGING (this
   28801 could include any in-progress captures not yet returned by the camera
   28802 device,<wbr/> for more details see pipeline considerations below).<wbr/></li>
   28803 <li>Submitting a series of multiple requests that differ from the
   28804 previous request (e.<wbr/>g.<wbr/> r1,<wbr/> r2,<wbr/> r3 s.<wbr/>t.<wbr/> r1 != r2 != r3)
   28805 moves the new synchronization frame to the last non-repeating
   28806 request (using the smallest frame number from the contiguous list of
   28807 repeating requests).<wbr/></li>
   28808 <li>Submitting the same request repeatedly will not change this value
   28809 to CONVERGING,<wbr/> if it was already a non-negative value.<wbr/></li>
   28810 <li>When this value changes to non-negative,<wbr/> that means that all of the
   28811 metadata controls from the request have been applied,<wbr/> all of the
   28812 metadata controls from the camera device have been read to the
   28813 updated values (into the result),<wbr/> and all of the graphics buffers
   28814 corresponding to this result are also synchronized to the request.<wbr/></li>
   28815 </ul>
   28816 <p><em>Pipeline considerations</em>:</p>
   28817 <p>Submitting a request with updated controls relative to the previously
   28818 submitted requests may also invalidate the synchronization state
   28819 of all the results corresponding to currently in-flight requests.<wbr/></p>
   28820 <p>In other words,<wbr/> results for this current request and up to
   28821 <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> prior requests may have their
   28822 <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> change to CONVERGING.<wbr/></p>
   28823             </td>
   28824           </tr>
   28825 
   28826           <tr class="entries_header">
   28827             <th class="th_details" colspan="6">HAL Implementation Details</th>
   28828           </tr>
   28829           <tr class="entry_cont">
   28830             <td class="entry_details" colspan="6">
   28831               <p>Using UNKNOWN here is illegal unless <a href="#static_android.sync.maxLatency">android.<wbr/>sync.<wbr/>max<wbr/>Latency</a>
   28832 is also UNKNOWN.<wbr/></p>
   28833 <p>FULL capability devices should simply set this value to the
   28834 <code>frame_<wbr/>number</code> of the request this result corresponds to.<wbr/></p>
   28835             </td>
   28836           </tr>
   28837 
   28838           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   28839            <!-- end of entry -->
   28840         
   28841         
   28842 
   28843       <!-- end of kind -->
   28844       </tbody>
   28845       <tr><td colspan="7" class="kind">static</td></tr>
   28846 
   28847       <thead class="entries_header">
   28848         <tr>
   28849           <th class="th_name">Property Name</th>
   28850           <th class="th_type">Type</th>
   28851           <th class="th_description">Description</th>
   28852           <th class="th_units">Units</th>
   28853           <th class="th_range">Range</th>
   28854           <th class="th_hal_version">Initial HIDL HAL version</th>
   28855           <th class="th_tags">Tags</th>
   28856         </tr>
   28857       </thead>
   28858 
   28859       <tbody>
   28860 
   28861         
   28862 
   28863         
   28864 
   28865         
   28866 
   28867         
   28868 
   28869                 
   28870           <tr class="entry" id="static_android.sync.maxLatency">
   28871             <td class="entry_name
   28872              " rowspan="5">
   28873               android.<wbr/>sync.<wbr/>max<wbr/>Latency
   28874             </td>
   28875             <td class="entry_type">
   28876                 <span class="entry_type_name entry_type_name_enum">int32</span>
   28877 
   28878               <span class="entry_type_visibility"> [public]</span>
   28879 
   28880 
   28881               <span class="entry_type_hwlevel">[legacy] </span>
   28882 
   28883 
   28884 
   28885                 <ul class="entry_type_enum">
   28886                   <li>
   28887                     <span class="entry_type_enum_name">PER_FRAME_CONTROL (v3.2)</span>
   28888                     <span class="entry_type_enum_value">0</span>
   28889                     <span class="entry_type_enum_notes"><p>Every frame has the requests immediately applied.<wbr/></p>
   28890 <p>Changing controls over multiple requests one after another will
   28891 produce results that have those controls applied atomically
   28892 each frame.<wbr/></p>
   28893 <p>All FULL capability devices will have this as their maxLatency.<wbr/></p></span>
   28894                   </li>
   28895                   <li>
   28896                     <span class="entry_type_enum_name">UNKNOWN (v3.2)</span>
   28897                     <span class="entry_type_enum_value">-1</span>
   28898                     <span class="entry_type_enum_notes"><p>Each new frame has some subset (potentially the entire set)
   28899 of the past requests applied to the camera settings.<wbr/></p>
   28900 <p>By submitting a series of identical requests,<wbr/> the camera device
   28901 will eventually have the camera settings applied,<wbr/> but it is
   28902 unknown when that exact point will be.<wbr/></p>
   28903 <p>All LEGACY capability devices will have this as their maxLatency.<wbr/></p></span>
   28904                   </li>
   28905                 </ul>
   28906 
   28907             </td> <!-- entry_type -->
   28908 
   28909             <td class="entry_description">
   28910               <p>The maximum number of frames that can occur after a request
   28911 (different than the previous) has been submitted,<wbr/> and before the
   28912 result's state becomes synchronized.<wbr/></p>
   28913             </td>
   28914 
   28915             <td class="entry_units">
   28916               Frame counts
   28917             </td>
   28918 
   28919             <td class="entry_range">
   28920               <p>A positive value,<wbr/> PER_<wbr/>FRAME_<wbr/>CONTROL,<wbr/> or UNKNOWN.<wbr/></p>
   28921             </td>
   28922 
   28923             <td class="entry_hal_version">
   28924               <p>3.<wbr/>2</p>
   28925             </td>
   28926 
   28927             <td class="entry_tags">
   28928               <ul class="entry_tags">
   28929                   <li><a href="#tag_V1">V1</a></li>
   28930               </ul>
   28931             </td>
   28932 
   28933           </tr>
   28934           <tr class="entries_header">
   28935             <th class="th_details" colspan="6">Details</th>
   28936           </tr>
   28937           <tr class="entry_cont">
   28938             <td class="entry_details" colspan="6">
   28939               <p>This defines the maximum distance (in number of metadata results),<wbr/>
   28940 between the frame number of the request that has new controls to apply
   28941 and the frame number of the result that has all the controls applied.<wbr/></p>
   28942 <p>In other words this acts as an upper boundary for how many frames
   28943 must occur before the camera device knows for a fact that the new
   28944 submitted camera settings have been applied in outgoing frames.<wbr/></p>
   28945             </td>
   28946           </tr>
   28947 
   28948           <tr class="entries_header">
   28949             <th class="th_details" colspan="6">HAL Implementation Details</th>
   28950           </tr>
   28951           <tr class="entry_cont">
   28952             <td class="entry_details" colspan="6">
   28953               <p>For example if maxLatency was 2,<wbr/></p>
   28954 <pre><code>initial request = X (repeating)
   28955 request1 = X
   28956 request2 = Y
   28957 request3 = Y
   28958 request4 = Y
   28959 
   28960 where requestN has frameNumber N,<wbr/> and the first of the repeating
   28961 initial request's has frameNumber F (and F &lt; 1).<wbr/>
   28962 
   28963 initial result = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
   28964 result1 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
   28965 result2 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
   28966 result3 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
   28967 result4 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2 }
   28968 
   28969 where resultN has frameNumber N.<wbr/>
   28970 </code></pre>
   28971 <p>Since <code>result4</code> has a <code>frameNumber == 4</code> and
   28972 <code><a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2</code>,<wbr/> the distance is clearly
   28973 <code>4 - 2 = 2</code>.<wbr/></p>
   28974 <p>Use <code>frame_<wbr/>count</code> from camera3_<wbr/>request_<wbr/>t instead of
   28975 <a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a> or
   28976 <code><a href="https://developer.android.com/reference/android/hardware/camera2/CaptureResult.html#getFrameNumber">CaptureResult#getFrameNumber</a></code>.<wbr/></p>
   28977 <p>LIMITED devices are strongly encouraged to use a non-negative
   28978 value.<wbr/> If UNKNOWN is used here then app developers do not have a way
   28979 to know when sensor settings have been applied.<wbr/></p>
   28980             </td>
   28981           </tr>
   28982 
   28983           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   28984            <!-- end of entry -->
   28985         
   28986         
   28987 
   28988       <!-- end of kind -->
   28989       </tbody>
   28990 
   28991   <!-- end of section -->
   28992   <tr><td colspan="7" id="section_reprocess" class="section">reprocess</td></tr>
   28993 
   28994 
   28995       <tr><td colspan="7" class="kind">controls</td></tr>
   28996 
   28997       <thead class="entries_header">
   28998         <tr>
   28999           <th class="th_name">Property Name</th>
   29000           <th class="th_type">Type</th>
   29001           <th class="th_description">Description</th>
   29002           <th class="th_units">Units</th>
   29003           <th class="th_range">Range</th>
   29004           <th class="th_hal_version">Initial HIDL HAL version</th>
   29005           <th class="th_tags">Tags</th>
   29006         </tr>
   29007       </thead>
   29008 
   29009       <tbody>
   29010 
   29011         
   29012 
   29013         
   29014 
   29015         
   29016 
   29017         
   29018 
   29019                 
   29020           <tr class="entry" id="controls_android.reprocess.effectiveExposureFactor">
   29021             <td class="entry_name
   29022              " rowspan="3">
   29023               android.<wbr/>reprocess.<wbr/>effective<wbr/>Exposure<wbr/>Factor
   29024             </td>
   29025             <td class="entry_type">
   29026                 <span class="entry_type_name">float</span>
   29027 
   29028               <span class="entry_type_visibility"> [java_public]</span>
   29029 
   29030 
   29031               <span class="entry_type_hwlevel">[limited] </span>
   29032 
   29033 
   29034 
   29035 
   29036             </td> <!-- entry_type -->
   29037 
   29038             <td class="entry_description">
   29039               <p>The amount of exposure time increase factor applied to the original output
   29040 frame by the application processing before sending for reprocessing.<wbr/></p>
   29041             </td>
   29042 
   29043             <td class="entry_units">
   29044               Relative exposure time increase factor.<wbr/>
   29045             </td>
   29046 
   29047             <td class="entry_range">
   29048               <p>&gt;= 1.<wbr/>0</p>
   29049             </td>
   29050 
   29051             <td class="entry_hal_version">
   29052               <p>3.<wbr/>2</p>
   29053             </td>
   29054 
   29055             <td class="entry_tags">
   29056               <ul class="entry_tags">
   29057                   <li><a href="#tag_REPROC">REPROC</a></li>
   29058               </ul>
   29059             </td>
   29060 
   29061           </tr>
   29062           <tr class="entries_header">
   29063             <th class="th_details" colspan="6">Details</th>
   29064           </tr>
   29065           <tr class="entry_cont">
   29066             <td class="entry_details" colspan="6">
   29067               <p>This is optional,<wbr/> and will be supported if the camera device supports YUV_<wbr/>REPROCESSING
   29068 capability (<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains YUV_<wbr/>REPROCESSING).<wbr/></p>
   29069 <p>For some YUV reprocessing use cases,<wbr/> the application may choose to filter the original
   29070 output frames to effectively reduce the noise to the same level as a frame that was
   29071 captured with longer exposure time.<wbr/> To be more specific,<wbr/> assuming the original captured
   29072 images were captured with a sensitivity of S and an exposure time of T,<wbr/> the model in
   29073 the camera device is that the amount of noise in the image would be approximately what
   29074 would be expected if the original capture parameters had been a sensitivity of
   29075 S/<wbr/>effectiveExposureFactor and an exposure time of T*effectiveExposureFactor,<wbr/> rather
   29076 than S and T respectively.<wbr/> If the captured images were processed by the application
   29077 before being sent for reprocessing,<wbr/> then the application may have used image processing
   29078 algorithms and/<wbr/>or multi-frame image fusion to reduce the noise in the
   29079 application-processed images (input images).<wbr/> By using the effectiveExposureFactor
   29080 control,<wbr/> the application can communicate to the camera device the actual noise level
   29081 improvement in the application-processed image.<wbr/> With this information,<wbr/> the camera
   29082 device can select appropriate noise reduction and edge enhancement parameters to avoid
   29083 excessive noise reduction (<a href="#controls_android.noiseReduction.mode">android.<wbr/>noise<wbr/>Reduction.<wbr/>mode</a>) and insufficient edge
   29084 enhancement (<a href="#controls_android.edge.mode">android.<wbr/>edge.<wbr/>mode</a>) being applied to the reprocessed frames.<wbr/></p>
   29085 <p>For example,<wbr/> for multi-frame image fusion use case,<wbr/> the application may fuse
   29086 multiple output frames together to a final frame for reprocessing.<wbr/> When N image are
   29087 fused into 1 image for reprocessing,<wbr/> the exposure time increase factor could be up to
   29088 square root of N (based on a simple photon shot noise model).<wbr/> The camera device will
   29089 adjust the reprocessing noise reduction and edge enhancement parameters accordingly to
   29090 produce the best quality images.<wbr/></p>
   29091 <p>This is relative factor,<wbr/> 1.<wbr/>0 indicates the application hasn't processed the input
   29092 buffer in a way that affects its effective exposure time.<wbr/></p>
   29093 <p>This control is only effective for YUV reprocessing capture request.<wbr/> For noise
   29094 reduction reprocessing,<wbr/> it is only effective when <code><a href="#controls_android.noiseReduction.mode">android.<wbr/>noise<wbr/>Reduction.<wbr/>mode</a> != OFF</code>.<wbr/>
   29095 Similarly,<wbr/> for edge enhancement reprocessing,<wbr/> it is only effective when
   29096 <code><a href="#controls_android.edge.mode">android.<wbr/>edge.<wbr/>mode</a> != OFF</code>.<wbr/></p>
   29097             </td>
   29098           </tr>
   29099 
   29100 
   29101           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   29102            <!-- end of entry -->
   29103         
   29104         
   29105 
   29106       <!-- end of kind -->
   29107       </tbody>
   29108       <tr><td colspan="7" class="kind">dynamic</td></tr>
   29109 
   29110       <thead class="entries_header">
   29111         <tr>
   29112           <th class="th_name">Property Name</th>
   29113           <th class="th_type">Type</th>
   29114           <th class="th_description">Description</th>
   29115           <th class="th_units">Units</th>
   29116           <th class="th_range">Range</th>
   29117           <th class="th_hal_version">Initial HIDL HAL version</th>
   29118           <th class="th_tags">Tags</th>
   29119         </tr>
   29120       </thead>
   29121 
   29122       <tbody>
   29123 
   29124         
   29125 
   29126         
   29127 
   29128         
   29129 
   29130         
   29131 
   29132                 
   29133           <tr class="entry" id="dynamic_android.reprocess.effectiveExposureFactor">
   29134             <td class="entry_name
   29135              " rowspan="3">
   29136               android.<wbr/>reprocess.<wbr/>effective<wbr/>Exposure<wbr/>Factor
   29137             </td>
   29138             <td class="entry_type">
   29139                 <span class="entry_type_name">float</span>
   29140 
   29141               <span class="entry_type_visibility"> [java_public]</span>
   29142 
   29143 
   29144               <span class="entry_type_hwlevel">[limited] </span>
   29145 
   29146 
   29147 
   29148 
   29149             </td> <!-- entry_type -->
   29150 
   29151             <td class="entry_description">
   29152               <p>The amount of exposure time increase factor applied to the original output
   29153 frame by the application processing before sending for reprocessing.<wbr/></p>
   29154             </td>
   29155 
   29156             <td class="entry_units">
   29157               Relative exposure time increase factor.<wbr/>
   29158             </td>
   29159 
   29160             <td class="entry_range">
   29161               <p>&gt;= 1.<wbr/>0</p>
   29162             </td>
   29163 
   29164             <td class="entry_hal_version">
   29165               <p>3.<wbr/>2</p>
   29166             </td>
   29167 
   29168             <td class="entry_tags">
   29169               <ul class="entry_tags">
   29170                   <li><a href="#tag_REPROC">REPROC</a></li>
   29171               </ul>
   29172             </td>
   29173 
   29174           </tr>
   29175           <tr class="entries_header">
   29176             <th class="th_details" colspan="6">Details</th>
   29177           </tr>
   29178           <tr class="entry_cont">
   29179             <td class="entry_details" colspan="6">
   29180               <p>This is optional,<wbr/> and will be supported if the camera device supports YUV_<wbr/>REPROCESSING
   29181 capability (<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains YUV_<wbr/>REPROCESSING).<wbr/></p>
   29182 <p>For some YUV reprocessing use cases,<wbr/> the application may choose to filter the original
   29183 output frames to effectively reduce the noise to the same level as a frame that was
   29184 captured with longer exposure time.<wbr/> To be more specific,<wbr/> assuming the original captured
   29185 images were captured with a sensitivity of S and an exposure time of T,<wbr/> the model in
   29186 the camera device is that the amount of noise in the image would be approximately what
   29187 would be expected if the original capture parameters had been a sensitivity of
   29188 S/<wbr/>effectiveExposureFactor and an exposure time of T*effectiveExposureFactor,<wbr/> rather
   29189 than S and T respectively.<wbr/> If the captured images were processed by the application
   29190 before being sent for reprocessing,<wbr/> then the application may have used image processing
   29191 algorithms and/<wbr/>or multi-frame image fusion to reduce the noise in the
   29192 application-processed images (input images).<wbr/> By using the effectiveExposureFactor
   29193 control,<wbr/> the application can communicate to the camera device the actual noise level
   29194 improvement in the application-processed image.<wbr/> With this information,<wbr/> the camera
   29195 device can select appropriate noise reduction and edge enhancement parameters to avoid
   29196 excessive noise reduction (<a href="#controls_android.noiseReduction.mode">android.<wbr/>noise<wbr/>Reduction.<wbr/>mode</a>) and insufficient edge
   29197 enhancement (<a href="#controls_android.edge.mode">android.<wbr/>edge.<wbr/>mode</a>) being applied to the reprocessed frames.<wbr/></p>
   29198 <p>For example,<wbr/> for multi-frame image fusion use case,<wbr/> the application may fuse
   29199 multiple output frames together to a final frame for reprocessing.<wbr/> When N image are
   29200 fused into 1 image for reprocessing,<wbr/> the exposure time increase factor could be up to
   29201 square root of N (based on a simple photon shot noise model).<wbr/> The camera device will
   29202 adjust the reprocessing noise reduction and edge enhancement parameters accordingly to
   29203 produce the best quality images.<wbr/></p>
   29204 <p>This is relative factor,<wbr/> 1.<wbr/>0 indicates the application hasn't processed the input
   29205 buffer in a way that affects its effective exposure time.<wbr/></p>
   29206 <p>This control is only effective for YUV reprocessing capture request.<wbr/> For noise
   29207 reduction reprocessing,<wbr/> it is only effective when <code><a href="#controls_android.noiseReduction.mode">android.<wbr/>noise<wbr/>Reduction.<wbr/>mode</a> != OFF</code>.<wbr/>
   29208 Similarly,<wbr/> for edge enhancement reprocessing,<wbr/> it is only effective when
   29209 <code><a href="#controls_android.edge.mode">android.<wbr/>edge.<wbr/>mode</a> != OFF</code>.<wbr/></p>
   29210             </td>
   29211           </tr>
   29212 
   29213 
   29214           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   29215            <!-- end of entry -->
   29216         
   29217         
   29218 
   29219       <!-- end of kind -->
   29220       </tbody>
   29221       <tr><td colspan="7" class="kind">static</td></tr>
   29222 
   29223       <thead class="entries_header">
   29224         <tr>
   29225           <th class="th_name">Property Name</th>
   29226           <th class="th_type">Type</th>
   29227           <th class="th_description">Description</th>
   29228           <th class="th_units">Units</th>
   29229           <th class="th_range">Range</th>
   29230           <th class="th_hal_version">Initial HIDL HAL version</th>
   29231           <th class="th_tags">Tags</th>
   29232         </tr>
   29233       </thead>
   29234 
   29235       <tbody>
   29236 
   29237         
   29238 
   29239         
   29240 
   29241         
   29242 
   29243         
   29244 
   29245                 
   29246           <tr class="entry" id="static_android.reprocess.maxCaptureStall">
   29247             <td class="entry_name
   29248              " rowspan="3">
   29249               android.<wbr/>reprocess.<wbr/>max<wbr/>Capture<wbr/>Stall
   29250             </td>
   29251             <td class="entry_type">
   29252                 <span class="entry_type_name">int32</span>
   29253 
   29254               <span class="entry_type_visibility"> [java_public]</span>
   29255 
   29256 
   29257               <span class="entry_type_hwlevel">[limited] </span>
   29258 
   29259 
   29260 
   29261 
   29262             </td> <!-- entry_type -->
   29263 
   29264             <td class="entry_description">
   29265               <p>The maximal camera capture pipeline stall (in unit of frame count) introduced by a
   29266 reprocess capture request.<wbr/></p>
   29267             </td>
   29268 
   29269             <td class="entry_units">
   29270               Number of frames.<wbr/>
   29271             </td>
   29272 
   29273             <td class="entry_range">
   29274               <p>&lt;= 4</p>
   29275             </td>
   29276 
   29277             <td class="entry_hal_version">
   29278               <p>3.<wbr/>2</p>
   29279             </td>
   29280 
   29281             <td class="entry_tags">
   29282               <ul class="entry_tags">
   29283                   <li><a href="#tag_REPROC">REPROC</a></li>
   29284               </ul>
   29285             </td>
   29286 
   29287           </tr>
   29288           <tr class="entries_header">
   29289             <th class="th_details" colspan="6">Details</th>
   29290           </tr>
   29291           <tr class="entry_cont">
   29292             <td class="entry_details" colspan="6">
   29293               <p>The key describes the maximal interference that one reprocess (input) request
   29294 can introduce to the camera simultaneous streaming of regular (output) capture
   29295 requests,<wbr/> including repeating requests.<wbr/></p>
   29296 <p>When a reprocessing capture request is submitted while a camera output repeating request
   29297 (e.<wbr/>g.<wbr/> preview) is being served by the camera device,<wbr/> it may preempt the camera capture
   29298 pipeline for at least one frame duration so that the camera device is unable to process
   29299 the following capture request in time for the next sensor start of exposure boundary.<wbr/>
   29300 When this happens,<wbr/> the application may observe a capture time gap (longer than one frame
   29301 duration) between adjacent capture output frames,<wbr/> which usually exhibits as preview
   29302 glitch if the repeating request output targets include a preview surface.<wbr/> This key gives
   29303 the worst-case number of frame stall introduced by one reprocess request with any kind of
   29304 formats/<wbr/>sizes combination.<wbr/></p>
   29305 <p>If this key reports 0,<wbr/> it means a reprocess request doesn't introduce any glitch to the
   29306 ongoing camera repeating request outputs,<wbr/> as if this reprocess request is never issued.<wbr/></p>
   29307 <p>This key is supported if the camera device supports PRIVATE or YUV reprocessing (
   29308 i.<wbr/>e.<wbr/> <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains PRIVATE_<wbr/>REPROCESSING or
   29309 YUV_<wbr/>REPROCESSING).<wbr/></p>
   29310             </td>
   29311           </tr>
   29312 
   29313 
   29314           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   29315            <!-- end of entry -->
   29316         
   29317         
   29318 
   29319       <!-- end of kind -->
   29320       </tbody>
   29321 
   29322   <!-- end of section -->
   29323   <tr><td colspan="7" id="section_depth" class="section">depth</td></tr>
   29324 
   29325 
   29326       <tr><td colspan="7" class="kind">static</td></tr>
   29327 
   29328       <thead class="entries_header">
   29329         <tr>
   29330           <th class="th_name">Property Name</th>
   29331           <th class="th_type">Type</th>
   29332           <th class="th_description">Description</th>
   29333           <th class="th_units">Units</th>
   29334           <th class="th_range">Range</th>
   29335           <th class="th_hal_version">Initial HIDL HAL version</th>
   29336           <th class="th_tags">Tags</th>
   29337         </tr>
   29338       </thead>
   29339 
   29340       <tbody>
   29341 
   29342         
   29343 
   29344         
   29345 
   29346         
   29347 
   29348         
   29349 
   29350                 
   29351           <tr class="entry" id="static_android.depth.maxDepthSamples">
   29352             <td class="entry_name
   29353              " rowspan="3">
   29354               android.<wbr/>depth.<wbr/>max<wbr/>Depth<wbr/>Samples
   29355             </td>
   29356             <td class="entry_type">
   29357                 <span class="entry_type_name">int32</span>
   29358 
   29359               <span class="entry_type_visibility"> [system]</span>
   29360 
   29361 
   29362               <span class="entry_type_hwlevel">[limited] </span>
   29363 
   29364 
   29365 
   29366 
   29367             </td> <!-- entry_type -->
   29368 
   29369             <td class="entry_description">
   29370               <p>Maximum number of points that a depth point cloud may contain.<wbr/></p>
   29371             </td>
   29372 
   29373             <td class="entry_units">
   29374             </td>
   29375 
   29376             <td class="entry_range">
   29377             </td>
   29378 
   29379             <td class="entry_hal_version">
   29380               <p>3.<wbr/>2</p>
   29381             </td>
   29382 
   29383             <td class="entry_tags">
   29384               <ul class="entry_tags">
   29385                   <li><a href="#tag_DEPTH">DEPTH</a></li>
   29386               </ul>
   29387             </td>
   29388 
   29389           </tr>
   29390           <tr class="entries_header">
   29391             <th class="th_details" colspan="6">Details</th>
   29392           </tr>
   29393           <tr class="entry_cont">
   29394             <td class="entry_details" colspan="6">
   29395               <p>If a camera device supports outputting depth range data in the form of a depth point
   29396 cloud (<a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#DEPTH_POINT_CLOUD">Image<wbr/>Format#DEPTH_<wbr/>POINT_<wbr/>CLOUD</a>),<wbr/> this is the maximum
   29397 number of points an output buffer may contain.<wbr/></p>
   29398 <p>Any given buffer may contain between 0 and maxDepthSamples points,<wbr/> inclusive.<wbr/>
   29399 If output in the depth point cloud format is not supported,<wbr/> this entry will
   29400 not be defined.<wbr/></p>
   29401             </td>
   29402           </tr>
   29403 
   29404 
   29405           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   29406            <!-- end of entry -->
   29407         
   29408                 
   29409           <tr class="entry" id="static_android.depth.availableDepthStreamConfigurations">
   29410             <td class="entry_name
   29411              " rowspan="3">
   29412               android.<wbr/>depth.<wbr/>available<wbr/>Depth<wbr/>Stream<wbr/>Configurations
   29413             </td>
   29414             <td class="entry_type">
   29415                 <span class="entry_type_name entry_type_name_enum">int32</span>
   29416                 <span class="entry_type_container">x</span>
   29417 
   29418                 <span class="entry_type_array">
   29419                   n x 4
   29420                 </span>
   29421               <span class="entry_type_visibility"> [ndk_public as streamConfiguration]</span>
   29422 
   29423 
   29424               <span class="entry_type_hwlevel">[limited] </span>
   29425 
   29426 
   29427 
   29428                 <ul class="entry_type_enum">
   29429                   <li>
   29430                     <span class="entry_type_enum_name">OUTPUT (v3.2)</span>
   29431                   </li>
   29432                   <li>
   29433                     <span class="entry_type_enum_name">INPUT (v3.2)</span>
   29434                   </li>
   29435                 </ul>
   29436 
   29437             </td> <!-- entry_type -->
   29438 
   29439             <td class="entry_description">
   29440               <p>The available depth dataspace stream
   29441 configurations that this camera device supports
   29442 (i.<wbr/>e.<wbr/> format,<wbr/> width,<wbr/> height,<wbr/> output/<wbr/>input stream).<wbr/></p>
   29443             </td>
   29444 
   29445             <td class="entry_units">
   29446             </td>
   29447 
   29448             <td class="entry_range">
   29449             </td>
   29450 
   29451             <td class="entry_hal_version">
   29452               <p>3.<wbr/>2</p>
   29453             </td>
   29454 
   29455             <td class="entry_tags">
   29456               <ul class="entry_tags">
   29457                   <li><a href="#tag_DEPTH">DEPTH</a></li>
   29458               </ul>
   29459             </td>
   29460 
   29461           </tr>
   29462           <tr class="entries_header">
   29463             <th class="th_details" colspan="6">Details</th>
   29464           </tr>
   29465           <tr class="entry_cont">
   29466             <td class="entry_details" colspan="6">
   29467               <p>These are output stream configurations for use with
   29468 dataSpace HAL_<wbr/>DATASPACE_<wbr/>DEPTH.<wbr/> The configurations are
   29469 listed as <code>(format,<wbr/> width,<wbr/> height,<wbr/> input?)</code> tuples.<wbr/></p>
   29470 <p>Only devices that support depth output for at least
   29471 the HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>Y16 dense depth map may include
   29472 this entry.<wbr/></p>
   29473 <p>A device that also supports the HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>BLOB
   29474 sparse depth point cloud must report a single entry for
   29475 the format in this list as <code>(HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>BLOB,<wbr/>
   29476 <a href="#static_android.depth.maxDepthSamples">android.<wbr/>depth.<wbr/>max<wbr/>Depth<wbr/>Samples</a>,<wbr/> 1,<wbr/> OUTPUT)</code> in addition to
   29477 the entries for HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>Y16.<wbr/></p>
   29478             </td>
   29479           </tr>
   29480 
   29481 
   29482           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   29483            <!-- end of entry -->
   29484         
   29485                 
   29486           <tr class="entry" id="static_android.depth.availableDepthMinFrameDurations">
   29487             <td class="entry_name
   29488              " rowspan="3">
   29489               android.<wbr/>depth.<wbr/>available<wbr/>Depth<wbr/>Min<wbr/>Frame<wbr/>Durations
   29490             </td>
   29491             <td class="entry_type">
   29492                 <span class="entry_type_name">int64</span>
   29493                 <span class="entry_type_container">x</span>
   29494 
   29495                 <span class="entry_type_array">
   29496                   4 x n
   29497                 </span>
   29498               <span class="entry_type_visibility"> [ndk_public as streamConfigurationDuration]</span>
   29499 
   29500 
   29501               <span class="entry_type_hwlevel">[limited] </span>
   29502 
   29503 
   29504 
   29505 
   29506             </td> <!-- entry_type -->
   29507 
   29508             <td class="entry_description">
   29509               <p>This lists the minimum frame duration for each
   29510 format/<wbr/>size combination for depth output formats.<wbr/></p>
   29511             </td>
   29512 
   29513             <td class="entry_units">
   29514               (format,<wbr/> width,<wbr/> height,<wbr/> ns) x n
   29515             </td>
   29516 
   29517             <td class="entry_range">
   29518             </td>
   29519 
   29520             <td class="entry_hal_version">
   29521               <p>3.<wbr/>2</p>
   29522             </td>
   29523 
   29524             <td class="entry_tags">
   29525               <ul class="entry_tags">
   29526                   <li><a href="#tag_DEPTH">DEPTH</a></li>
   29527               </ul>
   29528             </td>
   29529 
   29530           </tr>
   29531           <tr class="entries_header">
   29532             <th class="th_details" colspan="6">Details</th>
   29533           </tr>
   29534           <tr class="entry_cont">
   29535             <td class="entry_details" colspan="6">
   29536               <p>This should correspond to the frame duration when only that
   29537 stream is active,<wbr/> with all processing (typically in android.<wbr/>*.<wbr/>mode)
   29538 set to either OFF or FAST.<wbr/></p>
   29539 <p>When multiple streams are used in a request,<wbr/> the minimum frame
   29540 duration will be max(individual stream min durations).<wbr/></p>
   29541 <p>The minimum frame duration of a stream (of a particular format,<wbr/> size)
   29542 is the same regardless of whether the stream is input or output.<wbr/></p>
   29543 <p>See <a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> and
   29544 <a href="#static_android.scaler.availableStallDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stall<wbr/>Durations</a> for more details about
   29545 calculating the max frame rate.<wbr/></p>
   29546             </td>
   29547           </tr>
   29548 
   29549 
   29550           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   29551            <!-- end of entry -->
   29552         
   29553                 
   29554           <tr class="entry" id="static_android.depth.availableDepthStallDurations">
   29555             <td class="entry_name
   29556              " rowspan="3">
   29557               android.<wbr/>depth.<wbr/>available<wbr/>Depth<wbr/>Stall<wbr/>Durations
   29558             </td>
   29559             <td class="entry_type">
   29560                 <span class="entry_type_name">int64</span>
   29561                 <span class="entry_type_container">x</span>
   29562 
   29563                 <span class="entry_type_array">
   29564                   4 x n
   29565                 </span>
   29566               <span class="entry_type_visibility"> [ndk_public as streamConfigurationDuration]</span>
   29567 
   29568 
   29569               <span class="entry_type_hwlevel">[limited] </span>
   29570 
   29571 
   29572 
   29573 
   29574             </td> <!-- entry_type -->
   29575 
   29576             <td class="entry_description">
   29577               <p>This lists the maximum stall duration for each
   29578 output format/<wbr/>size combination for depth streams.<wbr/></p>
   29579             </td>
   29580 
   29581             <td class="entry_units">
   29582               (format,<wbr/> width,<wbr/> height,<wbr/> ns) x n
   29583             </td>
   29584 
   29585             <td class="entry_range">
   29586             </td>
   29587 
   29588             <td class="entry_hal_version">
   29589               <p>3.<wbr/>2</p>
   29590             </td>
   29591 
   29592             <td class="entry_tags">
   29593               <ul class="entry_tags">
   29594                   <li><a href="#tag_DEPTH">DEPTH</a></li>
   29595               </ul>
   29596             </td>
   29597 
   29598           </tr>
   29599           <tr class="entries_header">
   29600             <th class="th_details" colspan="6">Details</th>
   29601           </tr>
   29602           <tr class="entry_cont">
   29603             <td class="entry_details" colspan="6">
   29604               <p>A stall duration is how much extra time would get added
   29605 to the normal minimum frame duration for a repeating request
   29606 that has streams with non-zero stall.<wbr/></p>
   29607 <p>This functions similarly to
   29608 <a href="#static_android.scaler.availableStallDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Stall<wbr/>Durations</a> for depth
   29609 streams.<wbr/></p>
   29610 <p>All depth output stream formats may have a nonzero stall
   29611 duration.<wbr/></p>
   29612             </td>
   29613           </tr>
   29614 
   29615 
   29616           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   29617            <!-- end of entry -->
   29618         
   29619                 
   29620           <tr class="entry" id="static_android.depth.depthIsExclusive">
   29621             <td class="entry_name
   29622              " rowspan="3">
   29623               android.<wbr/>depth.<wbr/>depth<wbr/>Is<wbr/>Exclusive
   29624             </td>
   29625             <td class="entry_type">
   29626                 <span class="entry_type_name entry_type_name_enum">byte</span>
   29627 
   29628               <span class="entry_type_visibility"> [public as boolean]</span>
   29629 
   29630 
   29631               <span class="entry_type_hwlevel">[limited] </span>
   29632 
   29633 
   29634 
   29635                 <ul class="entry_type_enum">
   29636                   <li>
   29637                     <span class="entry_type_enum_name">FALSE (v3.2)</span>
   29638                   </li>
   29639                   <li>
   29640                     <span class="entry_type_enum_name">TRUE (v3.2)</span>
   29641                   </li>
   29642                 </ul>
   29643 
   29644             </td> <!-- entry_type -->
   29645 
   29646             <td class="entry_description">
   29647               <p>Indicates whether a capture request may target both a
   29648 DEPTH16 /<wbr/> DEPTH_<wbr/>POINT_<wbr/>CLOUD output,<wbr/> and normal color outputs (such as
   29649 YUV_<wbr/>420_<wbr/>888,<wbr/> JPEG,<wbr/> or RAW) simultaneously.<wbr/></p>
   29650             </td>
   29651 
   29652             <td class="entry_units">
   29653             </td>
   29654 
   29655             <td class="entry_range">
   29656             </td>
   29657 
   29658             <td class="entry_hal_version">
   29659               <p>3.<wbr/>2</p>
   29660             </td>
   29661 
   29662             <td class="entry_tags">
   29663             </td>
   29664 
   29665           </tr>
   29666           <tr class="entries_header">
   29667             <th class="th_details" colspan="6">Details</th>
   29668           </tr>
   29669           <tr class="entry_cont">
   29670             <td class="entry_details" colspan="6">
   29671               <p>If TRUE,<wbr/> including both depth and color outputs in a single
   29672 capture request is not supported.<wbr/> An application must interleave color
   29673 and depth requests.<wbr/>  If FALSE,<wbr/> a single request can target both types
   29674 of output.<wbr/></p>
   29675 <p>Typically,<wbr/> this restriction exists on camera devices that
   29676 need to emit a specific pattern or wavelength of light to
   29677 measure depth values,<wbr/> which causes the color image to be
   29678 corrupted during depth measurement.<wbr/></p>
   29679             </td>
   29680           </tr>
   29681 
   29682 
   29683           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   29684            <!-- end of entry -->
   29685         
   29686         
   29687 
   29688       <!-- end of kind -->
   29689       </tbody>
   29690 
   29691   <!-- end of section -->
   29692   <tr><td colspan="7" id="section_logicalMultiCamera" class="section">logicalMultiCamera</td></tr>
   29693 
   29694 
   29695       <tr><td colspan="7" class="kind">static</td></tr>
   29696 
   29697       <thead class="entries_header">
   29698         <tr>
   29699           <th class="th_name">Property Name</th>
   29700           <th class="th_type">Type</th>
   29701           <th class="th_description">Description</th>
   29702           <th class="th_units">Units</th>
   29703           <th class="th_range">Range</th>
   29704           <th class="th_hal_version">Initial HIDL HAL version</th>
   29705           <th class="th_tags">Tags</th>
   29706         </tr>
   29707       </thead>
   29708 
   29709       <tbody>
   29710 
   29711         
   29712 
   29713         
   29714 
   29715         
   29716 
   29717         
   29718 
   29719                 
   29720           <tr class="entry" id="static_android.logicalMultiCamera.physicalIds">
   29721             <td class="entry_name
   29722              " rowspan="3">
   29723               android.<wbr/>logical<wbr/>Multi<wbr/>Camera.<wbr/>physical<wbr/>Ids
   29724             </td>
   29725             <td class="entry_type">
   29726                 <span class="entry_type_name">byte</span>
   29727                 <span class="entry_type_container">x</span>
   29728 
   29729                 <span class="entry_type_array">
   29730                   n
   29731                 </span>
   29732               <span class="entry_type_visibility"> [hidden]</span>
   29733 
   29734 
   29735               <span class="entry_type_hwlevel">[limited] </span>
   29736 
   29737 
   29738 
   29739 
   29740             </td> <!-- entry_type -->
   29741 
   29742             <td class="entry_description">
   29743               <p>String containing the ids of the underlying physical cameras.<wbr/></p>
   29744             </td>
   29745 
   29746             <td class="entry_units">
   29747               UTF-8 null-terminated string
   29748             </td>
   29749 
   29750             <td class="entry_range">
   29751             </td>
   29752 
   29753             <td class="entry_hal_version">
   29754               <p>3.<wbr/>3</p>
   29755             </td>
   29756 
   29757             <td class="entry_tags">
   29758               <ul class="entry_tags">
   29759                   <li><a href="#tag_LOGICALCAMERA">LOGICALCAMERA</a></li>
   29760               </ul>
   29761             </td>
   29762 
   29763           </tr>
   29764           <tr class="entries_header">
   29765             <th class="th_details" colspan="6">Details</th>
   29766           </tr>
   29767           <tr class="entry_cont">
   29768             <td class="entry_details" colspan="6">
   29769               <p>For a logical camera,<wbr/> this is concatenation of all underlying physical camera ids.<wbr/>
   29770 The null terminator for physical camera id must be preserved so that the whole string
   29771 can be tokenized using '\0' to generate list of physical camera ids.<wbr/></p>
   29772 <p>For example,<wbr/> if the physical camera ids of the logical camera are "2" and "3",<wbr/> the
   29773 value of this tag will be ['2',<wbr/> '\0',<wbr/> '3',<wbr/> '\0'].<wbr/></p>
   29774 <p>The number of physical camera ids must be no less than 2.<wbr/></p>
   29775             </td>
   29776           </tr>
   29777 
   29778 
   29779           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   29780            <!-- end of entry -->
   29781         
   29782                 
   29783           <tr class="entry" id="static_android.logicalMultiCamera.sensorSyncType">
   29784             <td class="entry_name
   29785              " rowspan="3">
   29786               android.<wbr/>logical<wbr/>Multi<wbr/>Camera.<wbr/>sensor<wbr/>Sync<wbr/>Type
   29787             </td>
   29788             <td class="entry_type">
   29789                 <span class="entry_type_name entry_type_name_enum">byte</span>
   29790 
   29791               <span class="entry_type_visibility"> [public]</span>
   29792 
   29793 
   29794               <span class="entry_type_hwlevel">[limited] </span>
   29795 
   29796 
   29797 
   29798                 <ul class="entry_type_enum">
   29799                   <li>
   29800                     <span class="entry_type_enum_name">APPROXIMATE (v3.3)</span>
   29801                     <span class="entry_type_enum_notes"><p>A software mechanism is used to synchronize between the physical cameras.<wbr/> As a result,<wbr/>
   29802 the timestamp of an image from a physical stream is only an approximation of the
   29803 image sensor start-of-exposure time.<wbr/></p></span>
   29804                   </li>
   29805                   <li>
   29806                     <span class="entry_type_enum_name">CALIBRATED (v3.3)</span>
   29807                     <span class="entry_type_enum_notes"><p>The camera device supports frame timestamp synchronization at the hardware level,<wbr/>
   29808 and the timestamp of a physical stream image accurately reflects its
   29809 start-of-exposure time.<wbr/></p></span>
   29810                   </li>
   29811                 </ul>
   29812 
   29813             </td> <!-- entry_type -->
   29814 
   29815             <td class="entry_description">
   29816               <p>The accuracy of frame timestamp synchronization between physical cameras</p>
   29817             </td>
   29818 
   29819             <td class="entry_units">
   29820             </td>
   29821 
   29822             <td class="entry_range">
   29823             </td>
   29824 
   29825             <td class="entry_hal_version">
   29826               <p>3.<wbr/>3</p>
   29827             </td>
   29828 
   29829             <td class="entry_tags">
   29830               <ul class="entry_tags">
   29831                   <li><a href="#tag_LOGICALCAMERA">LOGICALCAMERA</a></li>
   29832               </ul>
   29833             </td>
   29834 
   29835           </tr>
   29836           <tr class="entries_header">
   29837             <th class="th_details" colspan="6">Details</th>
   29838           </tr>
   29839           <tr class="entry_cont">
   29840             <td class="entry_details" colspan="6">
   29841               <p>The accuracy of the frame timestamp synchronization determines the physical cameras'
   29842 ability to start exposure at the same time.<wbr/> If the sensorSyncType is CALIBRATED,<wbr/>
   29843 the physical camera sensors usually run in master-slave mode so that their shutter
   29844 time is synchronized.<wbr/> For APPROXIMATE sensorSyncType,<wbr/> the camera sensors usually run in
   29845 master-master mode,<wbr/> and there could be offset between their start of exposure.<wbr/></p>
   29846 <p>In both cases,<wbr/> all images generated for a particular capture request still carry the same
   29847 timestamps,<wbr/> so that they can be used to look up the matching frame number and
   29848 onCaptureStarted callback.<wbr/></p>
   29849             </td>
   29850           </tr>
   29851 
   29852 
   29853           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   29854            <!-- end of entry -->
   29855         
   29856         
   29857 
   29858       <!-- end of kind -->
   29859       </tbody>
   29860 
   29861   <!-- end of section -->
   29862   <tr><td colspan="7" id="section_distortionCorrection" class="section">distortionCorrection</td></tr>
   29863 
   29864 
   29865       <tr><td colspan="7" class="kind">controls</td></tr>
   29866 
   29867       <thead class="entries_header">
   29868         <tr>
   29869           <th class="th_name">Property Name</th>
   29870           <th class="th_type">Type</th>
   29871           <th class="th_description">Description</th>
   29872           <th class="th_units">Units</th>
   29873           <th class="th_range">Range</th>
   29874           <th class="th_hal_version">Initial HIDL HAL version</th>
   29875           <th class="th_tags">Tags</th>
   29876         </tr>
   29877       </thead>
   29878 
   29879       <tbody>
   29880 
   29881         
   29882 
   29883         
   29884 
   29885         
   29886 
   29887         
   29888 
   29889                 
   29890           <tr class="entry" id="controls_android.distortionCorrection.mode">
   29891             <td class="entry_name
   29892              " rowspan="3">
   29893               android.<wbr/>distortion<wbr/>Correction.<wbr/>mode
   29894             </td>
   29895             <td class="entry_type">
   29896                 <span class="entry_type_name entry_type_name_enum">byte</span>
   29897 
   29898               <span class="entry_type_visibility"> [public]</span>
   29899 
   29900 
   29901 
   29902 
   29903 
   29904                 <ul class="entry_type_enum">
   29905                   <li>
   29906                     <span class="entry_type_enum_name">OFF (v3.3)</span>
   29907                     <span class="entry_type_enum_notes"><p>No distortion correction is applied.<wbr/></p></span>
   29908                   </li>
   29909                   <li>
   29910                     <span class="entry_type_enum_name">FAST (v3.3)</span>
   29911                     <span class="entry_type_enum_notes"><p>Lens distortion correction is applied without reducing frame rate
   29912 relative to sensor output.<wbr/> It may be the same as OFF if distortion correction would
   29913 reduce frame rate relative to sensor.<wbr/></p></span>
   29914                   </li>
   29915                   <li>
   29916                     <span class="entry_type_enum_name">HIGH_QUALITY (v3.3)</span>
   29917                     <span class="entry_type_enum_notes"><p>High-quality distortion correction is applied,<wbr/> at the cost of
   29918 possibly reduced frame rate relative to sensor output.<wbr/></p></span>
   29919                   </li>
   29920                 </ul>
   29921 
   29922             </td> <!-- entry_type -->
   29923 
   29924             <td class="entry_description">
   29925               <p>Mode of operation for the lens distortion correction block.<wbr/></p>
   29926             </td>
   29927 
   29928             <td class="entry_units">
   29929             </td>
   29930 
   29931             <td class="entry_range">
   29932               <p><a href="#static_android.distortionCorrection.availableModes">android.<wbr/>distortion<wbr/>Correction.<wbr/>available<wbr/>Modes</a></p>
   29933             </td>
   29934 
   29935             <td class="entry_hal_version">
   29936               <p>3.<wbr/>3</p>
   29937             </td>
   29938 
   29939             <td class="entry_tags">
   29940             </td>
   29941 
   29942           </tr>
   29943           <tr class="entries_header">
   29944             <th class="th_details" colspan="6">Details</th>
   29945           </tr>
   29946           <tr class="entry_cont">
   29947             <td class="entry_details" colspan="6">
   29948               <p>The lens distortion correction block attempts to improve image quality by fixing
   29949 radial,<wbr/> tangential,<wbr/> or other geometric aberrations in the camera device's optics.<wbr/>  If
   29950 available,<wbr/> the <a href="#static_android.lens.distortion">android.<wbr/>lens.<wbr/>distortion</a> field documents the lens's distortion parameters.<wbr/></p>
   29951 <p>OFF means no distortion correction is done.<wbr/></p>
   29952 <p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined distortion correction will be
   29953 applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device will use the highest-quality
   29954 correction algorithms,<wbr/> even if it slows down capture rate.<wbr/> FAST means the camera device
   29955 will not slow down capture rate when applying correction.<wbr/> FAST may be the same as OFF if
   29956 any correction at all would slow down capture rate.<wbr/>  Every output stream will have a
   29957 similar amount of enhancement applied.<wbr/></p>
   29958 <p>The correction only applies to processed outputs such as YUV,<wbr/> JPEG,<wbr/> or DEPTH16; it is not
   29959 applied to any RAW output.<wbr/>  Metadata coordinates such as face rectangles or metering
   29960 regions are also not affected by correction.<wbr/></p>
   29961 <p>Applications enabling distortion correction need to pay extra attention when converting
   29962 image coordinates between corrected output buffers and the sensor array.<wbr/> For example,<wbr/> if
   29963 the app supports tap-to-focus and enables correction,<wbr/> it then has to apply the distortion
   29964 model described in <a href="#static_android.lens.distortion">android.<wbr/>lens.<wbr/>distortion</a> to the image buffer tap coordinates to properly
   29965 calculate the tap position on the sensor active array to be used with
   29966 <a href="#controls_android.control.afRegions">android.<wbr/>control.<wbr/>af<wbr/>Regions</a>.<wbr/> The same applies in reverse to detected face rectangles if
   29967 they need to be drawn on top of the corrected output buffers.<wbr/></p>
   29968             </td>
   29969           </tr>
   29970 
   29971 
   29972           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   29973            <!-- end of entry -->
   29974         
   29975         
   29976 
   29977       <!-- end of kind -->
   29978       </tbody>
   29979       <tr><td colspan="7" class="kind">static</td></tr>
   29980 
   29981       <thead class="entries_header">
   29982         <tr>
   29983           <th class="th_name">Property Name</th>
   29984           <th class="th_type">Type</th>
   29985           <th class="th_description">Description</th>
   29986           <th class="th_units">Units</th>
   29987           <th class="th_range">Range</th>
   29988           <th class="th_hal_version">Initial HIDL HAL version</th>
   29989           <th class="th_tags">Tags</th>
   29990         </tr>
   29991       </thead>
   29992 
   29993       <tbody>
   29994 
   29995         
   29996 
   29997         
   29998 
   29999         
   30000 
   30001         
   30002 
   30003                 
   30004           <tr class="entry" id="static_android.distortionCorrection.availableModes">
   30005             <td class="entry_name
   30006              " rowspan="5">
   30007               android.<wbr/>distortion<wbr/>Correction.<wbr/>available<wbr/>Modes
   30008             </td>
   30009             <td class="entry_type">
   30010                 <span class="entry_type_name">byte</span>
   30011                 <span class="entry_type_container">x</span>
   30012 
   30013                 <span class="entry_type_array">
   30014                   n
   30015                 </span>
   30016               <span class="entry_type_visibility"> [public as enumList]</span>
   30017 
   30018 
   30019 
   30020 
   30021                 <div class="entry_type_notes">list of enums</div>
   30022 
   30023 
   30024             </td> <!-- entry_type -->
   30025 
   30026             <td class="entry_description">
   30027               <p>List of distortion correction modes for <a href="#controls_android.distortionCorrection.mode">android.<wbr/>distortion<wbr/>Correction.<wbr/>mode</a> that are
   30028 supported by this camera device.<wbr/></p>
   30029             </td>
   30030 
   30031             <td class="entry_units">
   30032             </td>
   30033 
   30034             <td class="entry_range">
   30035               <p>Any value listed in <a href="#controls_android.distortionCorrection.mode">android.<wbr/>distortion<wbr/>Correction.<wbr/>mode</a></p>
   30036             </td>
   30037 
   30038             <td class="entry_hal_version">
   30039               <p>3.<wbr/>3</p>
   30040             </td>
   30041 
   30042             <td class="entry_tags">
   30043               <ul class="entry_tags">
   30044                   <li><a href="#tag_V1">V1</a></li>
   30045                   <li><a href="#tag_REPROC">REPROC</a></li>
   30046               </ul>
   30047             </td>
   30048 
   30049           </tr>
   30050           <tr class="entries_header">
   30051             <th class="th_details" colspan="6">Details</th>
   30052           </tr>
   30053           <tr class="entry_cont">
   30054             <td class="entry_details" colspan="6">
   30055               <p>No device is required to support this API; such devices will always list only 'OFF'.<wbr/>
   30056 All devices that support this API will list both FAST and HIGH_<wbr/>QUALITY.<wbr/></p>
   30057             </td>
   30058           </tr>
   30059 
   30060           <tr class="entries_header">
   30061             <th class="th_details" colspan="6">HAL Implementation Details</th>
   30062           </tr>
   30063           <tr class="entry_cont">
   30064             <td class="entry_details" colspan="6">
   30065               <p>HAL must support both FAST and HIGH_<wbr/>QUALITY if distortion correction is available
   30066 on the camera device,<wbr/> but the underlying implementation can be the same for both modes.<wbr/>
   30067 That is,<wbr/> if the highest quality implementation on the camera device does not slow down
   30068 capture rate,<wbr/> then FAST and HIGH_<wbr/>QUALITY will generate the same output.<wbr/></p>
   30069             </td>
   30070           </tr>
   30071 
   30072           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   30073            <!-- end of entry -->
   30074         
   30075         
   30076 
   30077       <!-- end of kind -->
   30078       </tbody>
   30079       <tr><td colspan="7" class="kind">dynamic</td></tr>
   30080 
   30081       <thead class="entries_header">
   30082         <tr>
   30083           <th class="th_name">Property Name</th>
   30084           <th class="th_type">Type</th>
   30085           <th class="th_description">Description</th>
   30086           <th class="th_units">Units</th>
   30087           <th class="th_range">Range</th>
   30088           <th class="th_hal_version">Initial HIDL HAL version</th>
   30089           <th class="th_tags">Tags</th>
   30090         </tr>
   30091       </thead>
   30092 
   30093       <tbody>
   30094 
   30095         
   30096 
   30097         
   30098 
   30099         
   30100 
   30101         
   30102 
   30103                 
   30104           <tr class="entry" id="dynamic_android.distortionCorrection.mode">
   30105             <td class="entry_name
   30106              " rowspan="3">
   30107               android.<wbr/>distortion<wbr/>Correction.<wbr/>mode
   30108             </td>
   30109             <td class="entry_type">
   30110                 <span class="entry_type_name entry_type_name_enum">byte</span>
   30111 
   30112               <span class="entry_type_visibility"> [public]</span>
   30113 
   30114 
   30115 
   30116 
   30117 
   30118                 <ul class="entry_type_enum">
   30119                   <li>
   30120                     <span class="entry_type_enum_name">OFF (v3.3)</span>
   30121                     <span class="entry_type_enum_notes"><p>No distortion correction is applied.<wbr/></p></span>
   30122                   </li>
   30123                   <li>
   30124                     <span class="entry_type_enum_name">FAST (v3.3)</span>
   30125                     <span class="entry_type_enum_notes"><p>Lens distortion correction is applied without reducing frame rate
   30126 relative to sensor output.<wbr/> It may be the same as OFF if distortion correction would
   30127 reduce frame rate relative to sensor.<wbr/></p></span>
   30128                   </li>
   30129                   <li>
   30130                     <span class="entry_type_enum_name">HIGH_QUALITY (v3.3)</span>
   30131                     <span class="entry_type_enum_notes"><p>High-quality distortion correction is applied,<wbr/> at the cost of
   30132 possibly reduced frame rate relative to sensor output.<wbr/></p></span>
   30133                   </li>
   30134                 </ul>
   30135 
   30136             </td> <!-- entry_type -->
   30137 
   30138             <td class="entry_description">
   30139               <p>Mode of operation for the lens distortion correction block.<wbr/></p>
   30140             </td>
   30141 
   30142             <td class="entry_units">
   30143             </td>
   30144 
   30145             <td class="entry_range">
   30146               <p><a href="#static_android.distortionCorrection.availableModes">android.<wbr/>distortion<wbr/>Correction.<wbr/>available<wbr/>Modes</a></p>
   30147             </td>
   30148 
   30149             <td class="entry_hal_version">
   30150               <p>3.<wbr/>3</p>
   30151             </td>
   30152 
   30153             <td class="entry_tags">
   30154             </td>
   30155 
   30156           </tr>
   30157           <tr class="entries_header">
   30158             <th class="th_details" colspan="6">Details</th>
   30159           </tr>
   30160           <tr class="entry_cont">
   30161             <td class="entry_details" colspan="6">
   30162               <p>The lens distortion correction block attempts to improve image quality by fixing
   30163 radial,<wbr/> tangential,<wbr/> or other geometric aberrations in the camera device's optics.<wbr/>  If
   30164 available,<wbr/> the <a href="#static_android.lens.distortion">android.<wbr/>lens.<wbr/>distortion</a> field documents the lens's distortion parameters.<wbr/></p>
   30165 <p>OFF means no distortion correction is done.<wbr/></p>
   30166 <p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined distortion correction will be
   30167 applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device will use the highest-quality
   30168 correction algorithms,<wbr/> even if it slows down capture rate.<wbr/> FAST means the camera device
   30169 will not slow down capture rate when applying correction.<wbr/> FAST may be the same as OFF if
   30170 any correction at all would slow down capture rate.<wbr/>  Every output stream will have a
   30171 similar amount of enhancement applied.<wbr/></p>
   30172 <p>The correction only applies to processed outputs such as YUV,<wbr/> JPEG,<wbr/> or DEPTH16; it is not
   30173 applied to any RAW output.<wbr/>  Metadata coordinates such as face rectangles or metering
   30174 regions are also not affected by correction.<wbr/></p>
   30175 <p>Applications enabling distortion correction need to pay extra attention when converting
   30176 image coordinates between corrected output buffers and the sensor array.<wbr/> For example,<wbr/> if
   30177 the app supports tap-to-focus and enables correction,<wbr/> it then has to apply the distortion
   30178 model described in <a href="#static_android.lens.distortion">android.<wbr/>lens.<wbr/>distortion</a> to the image buffer tap coordinates to properly
   30179 calculate the tap position on the sensor active array to be used with
   30180 <a href="#controls_android.control.afRegions">android.<wbr/>control.<wbr/>af<wbr/>Regions</a>.<wbr/> The same applies in reverse to detected face rectangles if
   30181 they need to be drawn on top of the corrected output buffers.<wbr/></p>
   30182             </td>
   30183           </tr>
   30184 
   30185 
   30186           <tr class="entry_spacer"><td class="entry_spacer" colspan="7"></td></tr>
   30187            <!-- end of entry -->
   30188         
   30189         
   30190 
   30191       <!-- end of kind -->
   30192       </tbody>
   30193 
   30194   <!-- end of section -->
   30195 <!-- </namespace> -->
   30196   </table>
   30197 
   30198   <div class="tags" id="tag_index">
   30199     <h2>Tags</h2>
   30200     <ul>
   30201       <li id="tag_BC">BC - 
   30202         Needed for backwards compatibility with old Java API
   30203     
   30204         <ul class="tags_entries">
   30205           <li><a href="#controls_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a> (controls)</li>
   30206           <li><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a> (controls)</li>
   30207           <li><a href="#controls_android.control.aeLock">android.control.aeLock</a> (controls)</li>
   30208           <li><a href="#controls_android.control.aeMode">android.control.aeMode</a> (controls)</li>
   30209           <li><a href="#controls_android.control.aeRegions">android.control.aeRegions</a> (controls)</li>
   30210           <li><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a> (controls)</li>
   30211           <li><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a> (controls)</li>
   30212           <li><a href="#controls_android.control.afMode">android.control.afMode</a> (controls)</li>
   30213           <li><a href="#controls_android.control.afRegions">android.control.afRegions</a> (controls)</li>
   30214           <li><a href="#controls_android.control.afTrigger">android.control.afTrigger</a> (controls)</li>
   30215           <li><a href="#controls_android.control.awbLock">android.control.awbLock</a> (controls)</li>
   30216           <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
   30217           <li><a href="#controls_android.control.awbRegions">android.control.awbRegions</a> (controls)</li>
   30218           <li><a href="#controls_android.control.captureIntent">android.control.captureIntent</a> (controls)</li>
   30219           <li><a href="#controls_android.control.effectMode">android.control.effectMode</a> (controls)</li>
   30220           <li><a href="#controls_android.control.mode">android.control.mode</a> (controls)</li>
   30221           <li><a href="#controls_android.control.sceneMode">android.control.sceneMode</a> (controls)</li>
   30222           <li><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a> (controls)</li>
   30223           <li><a href="#static_android.control.aeAvailableAntibandingModes">android.control.aeAvailableAntibandingModes</a> (static)</li>
   30224           <li><a href="#static_android.control.aeAvailableModes">android.control.aeAvailableModes</a> (static)</li>
   30225           <li><a href="#static_android.control.aeAvailableTargetFpsRanges">android.control.aeAvailableTargetFpsRanges</a> (static)</li>
   30226           <li><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a> (static)</li>
   30227           <li><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a> (static)</li>
   30228           <li><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a> (static)</li>
   30229           <li><a href="#static_android.control.availableEffects">android.control.availableEffects</a> (static)</li>
   30230           <li><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a> (static)</li>
   30231           <li><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a> (static)</li>
   30232           <li><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a> (static)</li>
   30233           <li><a href="#static_android.control.maxRegions">android.control.maxRegions</a> (static)</li>
   30234           <li><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a> (static)</li>
   30235           <li><a href="#static_android.control.aeLockAvailable">android.control.aeLockAvailable</a> (static)</li>
   30236           <li><a href="#static_android.control.awbLockAvailable">android.control.awbLockAvailable</a> (static)</li>
   30237           <li><a href="#controls_android.flash.mode">android.flash.mode</a> (controls)</li>
   30238           <li><a href="#static_android.flash.info.available">android.flash.info.available</a> (static)</li>
   30239           <li><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a> (controls)</li>
   30240           <li><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a> (controls)</li>
   30241           <li><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a> (controls)</li>
   30242           <li><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a> (controls)</li>
   30243           <li><a href="#controls_android.jpeg.quality">android.jpeg.quality</a> (controls)</li>
   30244           <li><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a> (controls)</li>
   30245           <li><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a> (controls)</li>
   30246           <li><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a> (static)</li>
   30247           <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
   30248           <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
   30249           <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a> (dynamic)</li>
   30250           <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a> (static)</li>
   30251           <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a> (controls)</li>
   30252           <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a> (static)</li>
   30253           <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a> (static)</li>
   30254           <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a> (static)</li>
   30255           <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a> (static)</li>
   30256           <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a> (static)</li>
   30257           <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a> (static)</li>
   30258           <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a> (static)</li>
   30259           <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
   30260           <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
   30261           <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
   30262           <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a> (static)</li>
   30263           <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a> (dynamic)</li>
   30264           <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a> (controls)</li>
   30265           <li><a href="#static_android.statistics.info.maxFaceCount">android.statistics.info.maxFaceCount</a> (static)</li>
   30266           <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a> (dynamic)</li>
   30267           <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a> (dynamic)</li>
   30268           <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a> (dynamic)</li>
   30269           <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a> (dynamic)</li>
   30270           <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a> (dynamic)</li>
   30271           <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a> (dynamic)</li>
   30272         </ul>
   30273       </li> <!-- tag_BC -->
   30274       <li id="tag_V1">V1 - 
   30275         New features for first camera 2 release (API1)
   30276     
   30277         <ul class="tags_entries">
   30278           <li><a href="#static_android.colorCorrection.availableAberrationModes">android.colorCorrection.availableAberrationModes</a> (static)</li>
   30279           <li><a href="#static_android.control.availableHighSpeedVideoConfigurations">android.control.availableHighSpeedVideoConfigurations</a> (static)</li>
   30280           <li><a href="#controls_android.edge.mode">android.edge.mode</a> (controls)</li>
   30281           <li><a href="#static_android.edge.availableEdgeModes">android.edge.availableEdgeModes</a> (static)</li>
   30282           <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a> (controls)</li>
   30283           <li><a href="#static_android.hotPixel.availableHotPixelModes">android.hotPixel.availableHotPixelModes</a> (static)</li>
   30284           <li><a href="#controls_android.lens.aperture">android.lens.aperture</a> (controls)</li>
   30285           <li><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a> (controls)</li>
   30286           <li><a href="#controls_android.lens.focalLength">android.lens.focalLength</a> (controls)</li>
   30287           <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
   30288           <li><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (controls)</li>
   30289           <li><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a> (static)</li>
   30290           <li><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a> (static)</li>
   30291           <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
   30292           <li><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a> (static)</li>
   30293           <li><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a> (static)</li>
   30294           <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a> (static)</li>
   30295           <li><a href="#static_android.lens.info.focusDistanceCalibration">android.lens.info.focusDistanceCalibration</a> (static)</li>
   30296           <li><a href="#dynamic_android.lens.state">android.lens.state</a> (dynamic)</li>
   30297           <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a> (controls)</li>
   30298           <li><a href="#static_android.noiseReduction.availableNoiseReductionModes">android.noiseReduction.availableNoiseReductionModes</a> (static)</li>
   30299           <li><a href="#controls_android.request.id">android.request.id</a> (controls)</li>
   30300           <li><a href="#static_android.scaler.availableMinFrameDurations">android.scaler.availableMinFrameDurations</a> (static)</li>
   30301           <li><a href="#static_android.scaler.availableStallDurations">android.scaler.availableStallDurations</a> (static)</li>
   30302           <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a> (controls)</li>
   30303           <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
   30304           <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a> (controls)</li>
   30305           <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
   30306           <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a> (static)</li>
   30307           <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
   30308           <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
   30309           <li><a href="#static_android.sensor.info.timestampSource">android.sensor.info.timestampSource</a> (static)</li>
   30310           <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
   30311           <li><a href="#dynamic_android.sensor.rollingShutterSkew">android.sensor.rollingShutterSkew</a> (dynamic)</li>
   30312           <li><a href="#controls_android.statistics.hotPixelMapMode">android.statistics.hotPixelMapMode</a> (controls)</li>
   30313           <li><a href="#static_android.statistics.info.availableHotPixelMapModes">android.statistics.info.availableHotPixelMapModes</a> (static)</li>
   30314           <li><a href="#dynamic_android.statistics.hotPixelMap">android.statistics.hotPixelMap</a> (dynamic)</li>
   30315           <li><a href="#dynamic_android.sync.frameNumber">android.sync.frameNumber</a> (dynamic)</li>
   30316           <li><a href="#static_android.sync.maxLatency">android.sync.maxLatency</a> (static)</li>
   30317           <li><a href="#static_android.distortionCorrection.availableModes">android.distortionCorrection.availableModes</a> (static)</li>
   30318           <li><a href="#dynamic_android.edge.mode">android.edge.mode</a> (dynamic)</li>
   30319           <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a> (dynamic)</li>
   30320           <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a> (dynamic)</li>
   30321           <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a> (dynamic)</li>
   30322           <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (dynamic)</li>
   30323           <li><a href="#dynamic_android.noiseReduction.mode">android.noiseReduction.mode</a> (dynamic)</li>
   30324         </ul>
   30325       </li> <!-- tag_V1 -->
   30326       <li id="tag_RAW">RAW - 
   30327         Needed for useful RAW image processing and DNG file support
   30328     
   30329         <ul class="tags_entries">
   30330           <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a> (controls)</li>
   30331           <li><a href="#static_android.hotPixel.availableHotPixelModes">android.hotPixel.availableHotPixelModes</a> (static)</li>
   30332           <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a> (static)</li>
   30333           <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a> (static)</li>
   30334           <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
   30335           <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a> (static)</li>
   30336           <li><a href="#static_android.sensor.info.preCorrectionActiveArraySize">android.sensor.info.preCorrectionActiveArraySize</a> (static)</li>
   30337           <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
   30338           <li><a href="#static_android.sensor.referenceIlluminant2">android.sensor.referenceIlluminant2</a> (static)</li>
   30339           <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a> (static)</li>
   30340           <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a> (static)</li>
   30341           <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a> (static)</li>
   30342           <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a> (static)</li>
   30343           <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a> (static)</li>
   30344           <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a> (static)</li>
   30345           <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a> (static)</li>
   30346           <li><a href="#static_android.sensor.profileHueSatMapDimensions">android.sensor.profileHueSatMapDimensions</a> (static)</li>
   30347           <li><a href="#dynamic_android.sensor.neutralColorPoint">android.sensor.neutralColorPoint</a> (dynamic)</li>
   30348           <li><a href="#dynamic_android.sensor.noiseProfile">android.sensor.noiseProfile</a> (dynamic)</li>
   30349           <li><a href="#dynamic_android.sensor.profileHueSatMap">android.sensor.profileHueSatMap</a> (dynamic)</li>
   30350           <li><a href="#dynamic_android.sensor.profileToneCurve">android.sensor.profileToneCurve</a> (dynamic)</li>
   30351           <li><a href="#dynamic_android.sensor.greenSplit">android.sensor.greenSplit</a> (dynamic)</li>
   30352           <li><a href="#dynamic_android.sensor.dynamicBlackLevel">android.sensor.dynamicBlackLevel</a> (dynamic)</li>
   30353           <li><a href="#dynamic_android.sensor.dynamicWhiteLevel">android.sensor.dynamicWhiteLevel</a> (dynamic)</li>
   30354           <li><a href="#controls_android.statistics.hotPixelMapMode">android.statistics.hotPixelMapMode</a> (controls)</li>
   30355           <li><a href="#static_android.statistics.info.availableHotPixelMapModes">android.statistics.info.availableHotPixelMapModes</a> (static)</li>
   30356           <li><a href="#dynamic_android.statistics.hotPixelMap">android.statistics.hotPixelMap</a> (dynamic)</li>
   30357           <li><a href="#controls_android.statistics.lensShadingMapMode">android.statistics.lensShadingMapMode</a> (controls)</li>
   30358           <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a> (dynamic)</li>
   30359         </ul>
   30360       </li> <!-- tag_RAW -->
   30361       <li id="tag_HAL2">HAL2 - 
   30362         Entry is only used by camera device legacy HAL 2.x
   30363     
   30364         <ul class="tags_entries">
   30365           <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a> (controls)</li>
   30366           <li><a href="#controls_android.request.outputStreams">android.request.outputStreams</a> (controls)</li>
   30367           <li><a href="#controls_android.request.type">android.request.type</a> (controls)</li>
   30368           <li><a href="#static_android.request.maxNumReprocessStreams">android.request.maxNumReprocessStreams</a> (static)</li>
   30369           <li><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a> (controls)</li>
   30370         </ul>
   30371       </li> <!-- tag_HAL2 -->
   30372       <li id="tag_FULL">FULL - 
   30373         Entry is required for full hardware level devices, and optional for other hardware levels
   30374     
   30375         <ul class="tags_entries">
   30376           <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
   30377         </ul>
   30378       </li> <!-- tag_FULL -->
   30379       <li id="tag_DEPTH">DEPTH - 
   30380         Entry is required for the depth capability.
   30381     
   30382         <ul class="tags_entries">
   30383           <li><a href="#static_android.lens.poseRotation">android.lens.poseRotation</a> (static)</li>
   30384           <li><a href="#static_android.lens.poseTranslation">android.lens.poseTranslation</a> (static)</li>
   30385           <li><a href="#static_android.lens.intrinsicCalibration">android.lens.intrinsicCalibration</a> (static)</li>
   30386           <li><a href="#static_android.lens.radialDistortion">android.lens.radialDistortion</a> (static)</li>
   30387           <li><a href="#static_android.lens.distortion">android.lens.distortion</a> (static)</li>
   30388           <li><a href="#static_android.depth.maxDepthSamples">android.depth.maxDepthSamples</a> (static)</li>
   30389           <li><a href="#static_android.depth.availableDepthStreamConfigurations">android.depth.availableDepthStreamConfigurations</a> (static)</li>
   30390           <li><a href="#static_android.depth.availableDepthMinFrameDurations">android.depth.availableDepthMinFrameDurations</a> (static)</li>
   30391           <li><a href="#static_android.depth.availableDepthStallDurations">android.depth.availableDepthStallDurations</a> (static)</li>
   30392         </ul>
   30393       </li> <!-- tag_DEPTH -->
   30394       <li id="tag_REPROC">REPROC - 
   30395         Entry is required for the YUV or PRIVATE reprocessing capability.
   30396     
   30397         <ul class="tags_entries">
   30398           <li><a href="#controls_android.edge.mode">android.edge.mode</a> (controls)</li>
   30399           <li><a href="#static_android.edge.availableEdgeModes">android.edge.availableEdgeModes</a> (static)</li>
   30400           <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a> (controls)</li>
   30401           <li><a href="#static_android.noiseReduction.availableNoiseReductionModes">android.noiseReduction.availableNoiseReductionModes</a> (static)</li>
   30402           <li><a href="#static_android.request.maxNumInputStreams">android.request.maxNumInputStreams</a> (static)</li>
   30403           <li><a href="#static_android.scaler.availableInputOutputFormatsMap">android.scaler.availableInputOutputFormatsMap</a> (static)</li>
   30404           <li><a href="#controls_android.reprocess.effectiveExposureFactor">android.reprocess.effectiveExposureFactor</a> (controls)</li>
   30405           <li><a href="#static_android.reprocess.maxCaptureStall">android.reprocess.maxCaptureStall</a> (static)</li>
   30406           <li><a href="#static_android.distortionCorrection.availableModes">android.distortionCorrection.availableModes</a> (static)</li>
   30407           <li><a href="#dynamic_android.edge.mode">android.edge.mode</a> (dynamic)</li>
   30408           <li><a href="#dynamic_android.noiseReduction.mode">android.noiseReduction.mode</a> (dynamic)</li>
   30409         </ul>
   30410       </li> <!-- tag_REPROC -->
   30411       <li id="tag_LOGICALCAMERA">LOGICALCAMERA - 
   30412         Entry is required for logical multi-camera capability.
   30413     
   30414         <ul class="tags_entries">
   30415           <li><a href="#static_android.logicalMultiCamera.physicalIds">android.logicalMultiCamera.physicalIds</a> (static)</li>
   30416           <li><a href="#static_android.logicalMultiCamera.sensorSyncType">android.logicalMultiCamera.sensorSyncType</a> (static)</li>
   30417         </ul>
   30418       </li> <!-- tag_LOGICALCAMERA -->
   30419       <li id="tag_FUTURE">FUTURE - 
   30420         Entry is  under-specified and is not required for now. This is for book-keeping purpose,
   30421         do not implement or use it, it may be revised for future.
   30422     
   30423         <ul class="tags_entries">
   30424           <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a> (controls)</li>
   30425           <li><a href="#controls_android.edge.strength">android.edge.strength</a> (controls)</li>
   30426           <li><a href="#controls_android.flash.firingPower">android.flash.firingPower</a> (controls)</li>
   30427           <li><a href="#controls_android.flash.firingTime">android.flash.firingTime</a> (controls)</li>
   30428           <li><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a> (static)</li>
   30429           <li><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a> (static)</li>
   30430           <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a> (static)</li>
   30431           <li><a href="#dynamic_android.jpeg.size">android.jpeg.size</a> (dynamic)</li>
   30432           <li><a href="#controls_android.noiseReduction.strength">android.noiseReduction.strength</a> (controls)</li>
   30433           <li><a href="#controls_android.request.metadataMode">android.request.metadataMode</a> (controls)</li>
   30434           <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
   30435           <li><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a> (dynamic)</li>
   30436           <li><a href="#controls_android.shading.strength">android.shading.strength</a> (controls)</li>
   30437           <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a> (controls)</li>
   30438           <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a> (controls)</li>
   30439           <li><a href="#static_android.statistics.info.histogramBucketCount">android.statistics.info.histogramBucketCount</a> (static)</li>
   30440           <li><a href="#static_android.statistics.info.maxHistogramCount">android.statistics.info.maxHistogramCount</a> (static)</li>
   30441           <li><a href="#static_android.statistics.info.maxSharpnessMapValue">android.statistics.info.maxSharpnessMapValue</a> (static)</li>
   30442           <li><a href="#static_android.statistics.info.sharpnessMapSize">android.statistics.info.sharpnessMapSize</a> (static)</li>
   30443           <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a> (dynamic)</li>
   30444           <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a> (dynamic)</li>
   30445         </ul>
   30446       </li> <!-- tag_FUTURE -->
   30447     </ul>
   30448   </div>
   30449 
   30450   [ <a href="#">top</a> ]
   30451 
   30452 </body>
   30453 </html>
   30454