docs.html revision f92c76aca3e7c56c188b18956a00c42b194f796d
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.0 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
38    /* table column sizes */
39    table { border-collapse:collapse; table-layout: fixed; width: 100%; word-wrap: break-word }
40    td,th { border: 1px solid; border-color: #aaaaaa; padding-left: 0.5em; padding-right: 0.5em }
41    .th_name { width: 20% }
42    .th_units { width: 10% }
43    .th_tags { width: 5% }
44    .th_details { width: 25% }
45    .th_type { width: 20% }
46    .th_description { width: 20% }
47    .th_range { width: 10% }
48    td { font-size: 0.9em; }
49
50    /* hide the first thead, we need it there only to enforce column sizes */
51    .thead_dummy { visibility: hidden; }
52
53    /* Entry flair */
54    .entry_name { color: #333333; padding-left:1.0em; font-size:1.1em; font-family: monospace; vertical-align:top; }
55
56    /* Entry type flair */
57    .entry_type_name { font-size:1.1em; color: #669900; font-weight: bold;}
58    .entry_type_name_enum:after { color: #669900; font-weight: bold; content:" (enum)" }
59    .entry_type_visibility { font-weight: bolder; padding-left:1em}
60    .entry_type_enum_name { font-family: monospace; font-weight: bolder; }
61    .entry_type_enum_notes:before { content:" - " }
62    .entry_type_enum_notes>p:first-child { display:inline; }
63    .entry_type_enum_value:before { content:" = " }
64    .entry_type_enum_value { font-family: monospace; }
65    .entry ul { margin: 0 0 0 0; list-style-position: inside; padding-left: 0.5em; }
66    .entry ul li { padding: 0 0 0 0; margin: 0 0 0 0;}
67
68    /* Entry tags flair */
69    .entry_tags ul { list-style-type: none; }
70
71    /* Entry details (full docs) flair */
72    .entry_details_header { font-weight: bold; background-color: #dddddd;
73      text-align: center; font-size: 1.1em; margin-left: 0em; margin-right: 0em; }
74
75    /* Entry spacer flair */
76    .entry_spacer { background-color: transparent; border-style: none; height: 0.5em; }
77
78    /* TODO: generate abbr element for each tag link? */
79    /* TODO for each x.y.z try to link it to the entry */
80
81  </style>
82
83  <style>
84
85    {
86      /* broken...
87         supposedly there is a bug in chrome that it lays out tables before
88         it knows its being printed, so the page-break-* styles are ignored
89         */
90        tr { page-break-after: always; page-break-inside: avoid; }
91    }
92
93  </style>
94</head>
95
96
97
98<body>
99  <h1>Android Camera HAL3.0 Properties</h1>
100
101
102  <h2>Table of Contents</h2>
103  <ul class="toc">
104    <li><a href="#tag_index" class="toc_section_header">Tags</a></li>
105    <li>
106      <span class="toc_section_header"><a href="#section_colorCorrection">colorCorrection</a></span>
107      <ul class="toc_section">
108        <li>
109          <span class="toc_kind_header">controls</span>
110          <ul class="toc_section">
111            <li><a href="#controls_android.colorCorrection.mode">android.colorCorrection.mode</a></li>
112            <li><a href="#controls_android.colorCorrection.transform">android.colorCorrection.transform</a></li>
113            <li><a href="#controls_android.colorCorrection.gains">android.colorCorrection.gains</a></li>
114          </ul>
115        </li>
116        <li>
117          <span class="toc_kind_header">dynamic</span>
118          <ul class="toc_section">
119            <li><a href="#dynamic_android.colorCorrection.transform">android.colorCorrection.transform</a></li>
120            <li><a href="#dynamic_android.colorCorrection.gains">android.colorCorrection.gains</a></li>
121          </ul>
122        </li>
123      </ul> <!-- toc_section -->
124    </li>
125    <li>
126      <span class="toc_section_header"><a href="#section_control">control</a></span>
127      <ul class="toc_section">
128        <li>
129          <span class="toc_kind_header">controls</span>
130          <ul class="toc_section">
131            <li><a href="#controls_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a></li>
132            <li><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a></li>
133            <li><a href="#controls_android.control.aeLock">android.control.aeLock</a></li>
134            <li><a href="#controls_android.control.aeMode">android.control.aeMode</a></li>
135            <li><a href="#controls_android.control.aeRegions">android.control.aeRegions</a></li>
136            <li><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a></li>
137            <li><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a></li>
138            <li><a href="#controls_android.control.afMode">android.control.afMode</a></li>
139            <li><a href="#controls_android.control.afRegions">android.control.afRegions</a></li>
140            <li><a href="#controls_android.control.afTrigger">android.control.afTrigger</a></li>
141            <li><a href="#controls_android.control.awbLock">android.control.awbLock</a></li>
142            <li><a href="#controls_android.control.awbMode">android.control.awbMode</a></li>
143            <li><a href="#controls_android.control.awbRegions">android.control.awbRegions</a></li>
144            <li><a href="#controls_android.control.captureIntent">android.control.captureIntent</a></li>
145            <li><a href="#controls_android.control.effectMode">android.control.effectMode</a></li>
146            <li><a href="#controls_android.control.mode">android.control.mode</a></li>
147            <li><a href="#controls_android.control.sceneMode">android.control.sceneMode</a></li>
148            <li><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a></li>
149          </ul>
150        </li>
151        <li>
152          <span class="toc_kind_header">static</span>
153          <ul class="toc_section">
154            <li><a href="#static_android.control.aeAvailableAntibandingModes">android.control.aeAvailableAntibandingModes</a></li>
155            <li><a href="#static_android.control.aeAvailableModes">android.control.aeAvailableModes</a></li>
156            <li><a href="#static_android.control.aeAvailableTargetFpsRanges">android.control.aeAvailableTargetFpsRanges</a></li>
157            <li><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a></li>
158            <li><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a></li>
159            <li><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a></li>
160            <li><a href="#static_android.control.availableEffects">android.control.availableEffects</a></li>
161            <li><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a></li>
162            <li><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a></li>
163            <li><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a></li>
164            <li><a href="#static_android.control.maxRegions">android.control.maxRegions</a></li>
165            <li><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a></li>
166          </ul>
167        </li>
168        <li>
169          <span class="toc_kind_header">dynamic</span>
170          <ul class="toc_section">
171            <li><a href="#dynamic_android.control.aePrecaptureId">android.control.aePrecaptureId</a></li>
172            <li><a href="#dynamic_android.control.aeMode">android.control.aeMode</a></li>
173            <li><a href="#dynamic_android.control.aeRegions">android.control.aeRegions</a></li>
174            <li><a href="#dynamic_android.control.aeState">android.control.aeState</a></li>
175            <li><a href="#dynamic_android.control.afMode">android.control.afMode</a></li>
176            <li><a href="#dynamic_android.control.afRegions">android.control.afRegions</a></li>
177            <li><a href="#dynamic_android.control.afState">android.control.afState</a></li>
178            <li><a href="#dynamic_android.control.afTriggerId">android.control.afTriggerId</a></li>
179            <li><a href="#dynamic_android.control.awbMode">android.control.awbMode</a></li>
180            <li><a href="#dynamic_android.control.awbRegions">android.control.awbRegions</a></li>
181            <li><a href="#dynamic_android.control.awbState">android.control.awbState</a></li>
182            <li><a href="#dynamic_android.control.mode">android.control.mode</a></li>
183          </ul>
184        </li>
185      </ul> <!-- toc_section -->
186    </li>
187    <li>
188      <span class="toc_section_header"><a href="#section_demosaic">demosaic</a></span>
189      <ul class="toc_section">
190        <li>
191          <span class="toc_kind_header">controls</span>
192          <ul class="toc_section">
193            <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a></li>
194          </ul>
195        </li>
196      </ul> <!-- toc_section -->
197    </li>
198    <li>
199      <span class="toc_section_header"><a href="#section_edge">edge</a></span>
200      <ul class="toc_section">
201        <li>
202          <span class="toc_kind_header">controls</span>
203          <ul class="toc_section">
204            <li><a href="#controls_android.edge.mode">android.edge.mode</a></li>
205            <li><a href="#controls_android.edge.strength">android.edge.strength</a></li>
206          </ul>
207        </li>
208        <li>
209          <span class="toc_kind_header">dynamic</span>
210          <ul class="toc_section">
211            <li><a href="#dynamic_android.edge.mode">android.edge.mode</a></li>
212          </ul>
213        </li>
214      </ul> <!-- toc_section -->
215    </li>
216    <li>
217      <span class="toc_section_header"><a href="#section_flash">flash</a></span>
218      <ul class="toc_section">
219        <li>
220          <span class="toc_kind_header">controls</span>
221          <ul class="toc_section">
222            <li><a href="#controls_android.flash.firingPower">android.flash.firingPower</a></li>
223            <li><a href="#controls_android.flash.firingTime">android.flash.firingTime</a></li>
224            <li><a href="#controls_android.flash.mode">android.flash.mode</a></li>
225          </ul>
226        </li>
227        <li>
228          <span class="toc_kind_header">static</span>
229          <ul class="toc_section">
230
231            <li><a href="#static_android.flash.info.available">android.flash.info.available</a></li>
232            <li><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a></li>
233
234            <li><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a></li>
235            <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a></li>
236          </ul>
237        </li>
238        <li>
239          <span class="toc_kind_header">dynamic</span>
240          <ul class="toc_section">
241            <li><a href="#dynamic_android.flash.firingPower">android.flash.firingPower</a></li>
242            <li><a href="#dynamic_android.flash.firingTime">android.flash.firingTime</a></li>
243            <li><a href="#dynamic_android.flash.mode">android.flash.mode</a></li>
244            <li><a href="#dynamic_android.flash.state">android.flash.state</a></li>
245          </ul>
246        </li>
247      </ul> <!-- toc_section -->
248    </li>
249    <li>
250      <span class="toc_section_header"><a href="#section_geometric">geometric</a></span>
251      <ul class="toc_section">
252        <li>
253          <span class="toc_kind_header">controls</span>
254          <ul class="toc_section">
255            <li><a href="#controls_android.geometric.mode">android.geometric.mode</a></li>
256            <li><a href="#controls_android.geometric.strength">android.geometric.strength</a></li>
257          </ul>
258        </li>
259      </ul> <!-- toc_section -->
260    </li>
261    <li>
262      <span class="toc_section_header"><a href="#section_hotPixel">hotPixel</a></span>
263      <ul class="toc_section">
264        <li>
265          <span class="toc_kind_header">controls</span>
266          <ul class="toc_section">
267            <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a></li>
268          </ul>
269        </li>
270        <li>
271          <span class="toc_kind_header">static</span>
272          <ul class="toc_section">
273
274            <li><a href="#static_android.hotPixel.info.map">android.hotPixel.info.map</a></li>
275
276          </ul>
277        </li>
278        <li>
279          <span class="toc_kind_header">dynamic</span>
280          <ul class="toc_section">
281            <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a></li>
282          </ul>
283        </li>
284      </ul> <!-- toc_section -->
285    </li>
286    <li>
287      <span class="toc_section_header"><a href="#section_jpeg">jpeg</a></span>
288      <ul class="toc_section">
289        <li>
290          <span class="toc_kind_header">controls</span>
291          <ul class="toc_section">
292            <li><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a></li>
293            <li><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a></li>
294            <li><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a></li>
295            <li><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a></li>
296            <li><a href="#controls_android.jpeg.quality">android.jpeg.quality</a></li>
297            <li><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a></li>
298            <li><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a></li>
299          </ul>
300        </li>
301        <li>
302          <span class="toc_kind_header">static</span>
303          <ul class="toc_section">
304            <li><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a></li>
305            <li><a href="#static_android.jpeg.maxSize">android.jpeg.maxSize</a></li>
306          </ul>
307        </li>
308        <li>
309          <span class="toc_kind_header">dynamic</span>
310          <ul class="toc_section">
311            <li><a href="#dynamic_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a></li>
312            <li><a href="#dynamic_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a></li>
313            <li><a href="#dynamic_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a></li>
314            <li><a href="#dynamic_android.jpeg.orientation">android.jpeg.orientation</a></li>
315            <li><a href="#dynamic_android.jpeg.quality">android.jpeg.quality</a></li>
316            <li><a href="#dynamic_android.jpeg.size">android.jpeg.size</a></li>
317            <li><a href="#dynamic_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a></li>
318            <li><a href="#dynamic_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a></li>
319          </ul>
320        </li>
321      </ul> <!-- toc_section -->
322    </li>
323    <li>
324      <span class="toc_section_header"><a href="#section_lens">lens</a></span>
325      <ul class="toc_section">
326        <li>
327          <span class="toc_kind_header">controls</span>
328          <ul class="toc_section">
329            <li><a href="#controls_android.lens.aperture">android.lens.aperture</a></li>
330            <li><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a></li>
331            <li><a href="#controls_android.lens.focalLength">android.lens.focalLength</a></li>
332            <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a></li>
333            <li><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a></li>
334          </ul>
335        </li>
336        <li>
337          <span class="toc_kind_header">static</span>
338          <ul class="toc_section">
339
340            <li><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a></li>
341            <li><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a></li>
342            <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a></li>
343            <li><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a></li>
344            <li><a href="#static_android.lens.info.geometricCorrectionMap">android.lens.info.geometricCorrectionMap</a></li>
345            <li><a href="#static_android.lens.info.geometricCorrectionMapSize">android.lens.info.geometricCorrectionMapSize</a></li>
346            <li><a href="#static_android.lens.info.hyperfocalDistance">android.lens.info.hyperfocalDistance</a></li>
347            <li><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a></li>
348            <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a></li>
349            <li><a href="#static_android.lens.info.focusDistanceCalibration">android.lens.info.focusDistanceCalibration</a></li>
350
351            <li><a href="#static_android.lens.facing">android.lens.facing</a></li>
352            <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a></li>
353            <li><a href="#static_android.lens.position">android.lens.position</a></li>
354          </ul>
355        </li>
356        <li>
357          <span class="toc_kind_header">dynamic</span>
358          <ul class="toc_section">
359            <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a></li>
360            <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a></li>
361            <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a></li>
362            <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a></li>
363            <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a></li>
364            <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a></li>
365            <li><a href="#dynamic_android.lens.state">android.lens.state</a></li>
366          </ul>
367        </li>
368      </ul> <!-- toc_section -->
369    </li>
370    <li>
371      <span class="toc_section_header"><a href="#section_noiseReduction">noiseReduction</a></span>
372      <ul class="toc_section">
373        <li>
374          <span class="toc_kind_header">controls</span>
375          <ul class="toc_section">
376            <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a></li>
377            <li><a href="#controls_android.noiseReduction.strength">android.noiseReduction.strength</a></li>
378          </ul>
379        </li>
380        <li>
381          <span class="toc_kind_header">dynamic</span>
382          <ul class="toc_section">
383            <li><a href="#dynamic_android.noiseReduction.mode">android.noiseReduction.mode</a></li>
384          </ul>
385        </li>
386      </ul> <!-- toc_section -->
387    </li>
388    <li>
389      <span class="toc_section_header"><a href="#section_quirks">quirks</a></span>
390      <ul class="toc_section">
391        <li>
392          <span class="toc_kind_header">static</span>
393          <ul class="toc_section">
394            <li><a href="#static_android.quirks.meteringCropRegion">android.quirks.meteringCropRegion</a></li>
395            <li><a href="#static_android.quirks.triggerAfWithAuto">android.quirks.triggerAfWithAuto</a></li>
396            <li><a href="#static_android.quirks.useZslFormat">android.quirks.useZslFormat</a></li>
397            <li><a href="#static_android.quirks.usePartialResult">android.quirks.usePartialResult</a></li>
398          </ul>
399        </li>
400        <li>
401          <span class="toc_kind_header">dynamic</span>
402          <ul class="toc_section">
403            <li><a href="#dynamic_android.quirks.partialResult">android.quirks.partialResult</a></li>
404          </ul>
405        </li>
406      </ul> <!-- toc_section -->
407    </li>
408    <li>
409      <span class="toc_section_header"><a href="#section_request">request</a></span>
410      <ul class="toc_section">
411        <li>
412          <span class="toc_kind_header">controls</span>
413          <ul class="toc_section">
414            <li><a href="#controls_android.request.frameCount">android.request.frameCount</a></li>
415            <li><a href="#controls_android.request.id">android.request.id</a></li>
416            <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a></li>
417            <li><a href="#controls_android.request.metadataMode">android.request.metadataMode</a></li>
418            <li><a href="#controls_android.request.outputStreams">android.request.outputStreams</a></li>
419            <li><a href="#controls_android.request.type">android.request.type</a></li>
420          </ul>
421        </li>
422        <li>
423          <span class="toc_kind_header">static</span>
424          <ul class="toc_section">
425            <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a></li>
426            <li><a href="#static_android.request.maxNumReprocessStreams">android.request.maxNumReprocessStreams</a></li>
427            <li><a href="#static_android.request.maxNumInputStreams">android.request.maxNumInputStreams</a></li>
428            <li><a href="#static_android.request.pipelineMaxDepth">android.request.pipelineMaxDepth</a></li>
429            <li><a href="#static_android.request.partialResultCount">android.request.partialResultCount</a></li>
430          </ul>
431        </li>
432        <li>
433          <span class="toc_kind_header">dynamic</span>
434          <ul class="toc_section">
435            <li><a href="#dynamic_android.request.frameCount">android.request.frameCount</a></li>
436            <li><a href="#dynamic_android.request.id">android.request.id</a></li>
437            <li><a href="#dynamic_android.request.metadataMode">android.request.metadataMode</a></li>
438            <li><a href="#dynamic_android.request.outputStreams">android.request.outputStreams</a></li>
439            <li><a href="#dynamic_android.request.pipelineDepth">android.request.pipelineDepth</a></li>
440          </ul>
441        </li>
442      </ul> <!-- toc_section -->
443    </li>
444    <li>
445      <span class="toc_section_header"><a href="#section_scaler">scaler</a></span>
446      <ul class="toc_section">
447        <li>
448          <span class="toc_kind_header">controls</span>
449          <ul class="toc_section">
450            <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a></li>
451          </ul>
452        </li>
453        <li>
454          <span class="toc_kind_header">static</span>
455          <ul class="toc_section">
456            <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a></li>
457            <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a></li>
458            <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a></li>
459            <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a></li>
460            <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a></li>
461            <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a></li>
462            <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a></li>
463            <li><a href="#static_android.scaler.availableRawSizes">android.scaler.availableRawSizes</a></li>
464          </ul>
465        </li>
466        <li>
467          <span class="toc_kind_header">dynamic</span>
468          <ul class="toc_section">
469            <li><a href="#dynamic_android.scaler.cropRegion">android.scaler.cropRegion</a></li>
470          </ul>
471        </li>
472      </ul> <!-- toc_section -->
473    </li>
474    <li>
475      <span class="toc_section_header"><a href="#section_sensor">sensor</a></span>
476      <ul class="toc_section">
477        <li>
478          <span class="toc_kind_header">controls</span>
479          <ul class="toc_section">
480            <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a></li>
481            <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a></li>
482            <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a></li>
483            <li><a href="#controls_android.sensor.testPatternData">android.sensor.testPatternData</a></li>
484            <li><a href="#controls_android.sensor.testPatternMode">android.sensor.testPatternMode</a></li>
485          </ul>
486        </li>
487        <li>
488          <span class="toc_kind_header">static</span>
489          <ul class="toc_section">
490
491            <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a></li>
492            <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a></li>
493            <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a></li>
494            <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a></li>
495            <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a></li>
496            <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a></li>
497            <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a></li>
498            <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a></li>
499
500            <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a></li>
501            <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a></li>
502            <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a></li>
503            <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a></li>
504            <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a></li>
505            <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a></li>
506            <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a></li>
507            <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a></li>
508            <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a></li>
509            <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a></li>
510            <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a></li>
511            <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a></li>
512            <li><a href="#static_android.sensor.referenceIlluminant2">android.sensor.referenceIlluminant2</a></li>
513            <li><a href="#static_android.sensor.availableTestPatternModes">android.sensor.availableTestPatternModes</a></li>
514          </ul>
515        </li>
516        <li>
517          <span class="toc_kind_header">dynamic</span>
518          <ul class="toc_section">
519            <li><a href="#dynamic_android.sensor.exposureTime">android.sensor.exposureTime</a></li>
520            <li><a href="#dynamic_android.sensor.frameDuration">android.sensor.frameDuration</a></li>
521            <li><a href="#dynamic_android.sensor.sensitivity">android.sensor.sensitivity</a></li>
522            <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a></li>
523            <li><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a></li>
524            <li><a href="#dynamic_android.sensor.testPatternMode">android.sensor.testPatternMode</a></li>
525          </ul>
526        </li>
527      </ul> <!-- toc_section -->
528    </li>
529    <li>
530      <span class="toc_section_header"><a href="#section_shading">shading</a></span>
531      <ul class="toc_section">
532        <li>
533          <span class="toc_kind_header">controls</span>
534          <ul class="toc_section">
535            <li><a href="#controls_android.shading.mode">android.shading.mode</a></li>
536            <li><a href="#controls_android.shading.strength">android.shading.strength</a></li>
537          </ul>
538        </li>
539        <li>
540          <span class="toc_kind_header">dynamic</span>
541          <ul class="toc_section">
542            <li><a href="#dynamic_android.shading.mode">android.shading.mode</a></li>
543          </ul>
544        </li>
545      </ul> <!-- toc_section -->
546    </li>
547    <li>
548      <span class="toc_section_header"><a href="#section_statistics">statistics</a></span>
549      <ul class="toc_section">
550        <li>
551          <span class="toc_kind_header">controls</span>
552          <ul class="toc_section">
553            <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a></li>
554            <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a></li>
555            <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a></li>
556            <li><a href="#controls_android.statistics.lensShadingMapMode">android.statistics.lensShadingMapMode</a></li>
557          </ul>
558        </li>
559        <li>
560          <span class="toc_kind_header">static</span>
561          <ul class="toc_section">
562
563            <li><a href="#static_android.statistics.info.availableFaceDetectModes">android.statistics.info.availableFaceDetectModes</a></li>
564            <li><a href="#static_android.statistics.info.histogramBucketCount">android.statistics.info.histogramBucketCount</a></li>
565            <li><a href="#static_android.statistics.info.maxFaceCount">android.statistics.info.maxFaceCount</a></li>
566            <li><a href="#static_android.statistics.info.maxHistogramCount">android.statistics.info.maxHistogramCount</a></li>
567            <li><a href="#static_android.statistics.info.maxSharpnessMapValue">android.statistics.info.maxSharpnessMapValue</a></li>
568            <li><a href="#static_android.statistics.info.sharpnessMapSize">android.statistics.info.sharpnessMapSize</a></li>
569
570          </ul>
571        </li>
572        <li>
573          <span class="toc_kind_header">dynamic</span>
574          <ul class="toc_section">
575            <li><a href="#dynamic_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a></li>
576            <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a></li>
577            <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a></li>
578            <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a></li>
579            <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a></li>
580            <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a></li>
581            <li><a href="#dynamic_android.statistics.histogramMode">android.statistics.histogramMode</a></li>
582            <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a></li>
583            <li><a href="#dynamic_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a></li>
584            <li><a href="#dynamic_android.statistics.lensShadingMap">android.statistics.lensShadingMap</a></li>
585            <li><a href="#dynamic_android.statistics.predictedColorGains">android.statistics.predictedColorGains</a></li>
586            <li><a href="#dynamic_android.statistics.predictedColorTransform">android.statistics.predictedColorTransform</a></li>
587            <li><a href="#dynamic_android.statistics.sceneFlicker">android.statistics.sceneFlicker</a></li>
588          </ul>
589        </li>
590      </ul> <!-- toc_section -->
591    </li>
592    <li>
593      <span class="toc_section_header"><a href="#section_tonemap">tonemap</a></span>
594      <ul class="toc_section">
595        <li>
596          <span class="toc_kind_header">controls</span>
597          <ul class="toc_section">
598            <li><a href="#controls_android.tonemap.curveBlue">android.tonemap.curveBlue</a></li>
599            <li><a href="#controls_android.tonemap.curveGreen">android.tonemap.curveGreen</a></li>
600            <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a></li>
601            <li><a href="#controls_android.tonemap.mode">android.tonemap.mode</a></li>
602          </ul>
603        </li>
604        <li>
605          <span class="toc_kind_header">static</span>
606          <ul class="toc_section">
607            <li><a href="#static_android.tonemap.maxCurvePoints">android.tonemap.maxCurvePoints</a></li>
608          </ul>
609        </li>
610        <li>
611          <span class="toc_kind_header">dynamic</span>
612          <ul class="toc_section">
613            <li><a href="#dynamic_android.tonemap.curveBlue">android.tonemap.curveBlue</a></li>
614            <li><a href="#dynamic_android.tonemap.curveGreen">android.tonemap.curveGreen</a></li>
615            <li><a href="#dynamic_android.tonemap.curveRed">android.tonemap.curveRed</a></li>
616            <li><a href="#dynamic_android.tonemap.mode">android.tonemap.mode</a></li>
617          </ul>
618        </li>
619      </ul> <!-- toc_section -->
620    </li>
621    <li>
622      <span class="toc_section_header"><a href="#section_led">led</a></span>
623      <ul class="toc_section">
624        <li>
625          <span class="toc_kind_header">controls</span>
626          <ul class="toc_section">
627            <li><a href="#controls_android.led.transmit">android.led.transmit</a></li>
628          </ul>
629        </li>
630        <li>
631          <span class="toc_kind_header">dynamic</span>
632          <ul class="toc_section">
633            <li><a href="#dynamic_android.led.transmit">android.led.transmit</a></li>
634          </ul>
635        </li>
636        <li>
637          <span class="toc_kind_header">static</span>
638          <ul class="toc_section">
639            <li><a href="#static_android.led.availableLeds">android.led.availableLeds</a></li>
640          </ul>
641        </li>
642      </ul> <!-- toc_section -->
643    </li>
644    <li>
645      <span class="toc_section_header"><a href="#section_info">info</a></span>
646      <ul class="toc_section">
647        <li>
648          <span class="toc_kind_header">static</span>
649          <ul class="toc_section">
650            <li><a href="#static_android.info.supportedHardwareLevel">android.info.supportedHardwareLevel</a></li>
651          </ul>
652        </li>
653      </ul> <!-- toc_section -->
654    </li>
655    <li>
656      <span class="toc_section_header"><a href="#section_blackLevel">blackLevel</a></span>
657      <ul class="toc_section">
658        <li>
659          <span class="toc_kind_header">controls</span>
660          <ul class="toc_section">
661            <li><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a></li>
662          </ul>
663        </li>
664        <li>
665          <span class="toc_kind_header">dynamic</span>
666          <ul class="toc_section">
667            <li><a href="#dynamic_android.blackLevel.lock">android.blackLevel.lock</a></li>
668          </ul>
669        </li>
670      </ul> <!-- toc_section -->
671    </li>
672    <li>
673      <span class="toc_section_header"><a href="#section_sync">sync</a></span>
674      <ul class="toc_section">
675        <li>
676          <span class="toc_kind_header">dynamic</span>
677          <ul class="toc_section">
678            <li><a href="#dynamic_android.sync.frameNumber">android.sync.frameNumber</a></li>
679          </ul>
680        </li>
681        <li>
682          <span class="toc_kind_header">static</span>
683          <ul class="toc_section">
684            <li><a href="#static_android.sync.maxLatency">android.sync.maxLatency</a></li>
685          </ul>
686        </li>
687      </ul> <!-- toc_section -->
688    </li>
689  </ul>
690
691
692  <h1>Properties</h1>
693  <table class="properties">
694
695    <thead class="thead_dummy">
696      <tr>
697        <th class="th_name">Property Name</th>
698        <th class="th_type">Type</th>
699        <th class="th_description">Description</th>
700        <th class="th_units">Units</th>
701        <th class="th_range">Range</th>
702        <th class="th_tags">Tags</th>
703      </tr>
704    </thead> <!-- so that the first occurrence of thead is not
705                         above the first occurrence of tr -->
706<!-- <namespace name="android"> -->
707  <tr><td colspan="6" id="section_colorCorrection" class="section">colorCorrection</td></tr>
708
709
710      <tr><td colspan="6" class="kind">controls</td></tr>
711
712      <thead class="entries_header">
713        <tr>
714          <th class="th_name">Property Name</th>
715          <th class="th_type">Type</th>
716          <th class="th_description">Description</th>
717          <th class="th_units">Units</th>
718          <th class="th_range">Range</th>
719          <th class="th_tags">Tags</th>
720        </tr>
721      </thead>
722
723      <tbody>
724
725        
726
727        
728
729        
730
731        
732
733                
734          <tr class="entry" id="controls_android.colorCorrection.mode">
735            <td class="entry_name" rowspan="3">
736              android.<wbr/>color<wbr/>Correction.<wbr/>mode
737            </td>
738            <td class="entry_type">
739                <span class="entry_type_name entry_type_name_enum">byte</span>
740
741              <span class="entry_type_visibility"> [public]</span>
742
743                <ul class="entry_type_enum">
744                  <li>
745                    <span class="entry_type_enum_name">TRANSFORM_MATRIX</span>
746                    <span class="entry_type_enum_notes"><p>Use the <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> matrix
747and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> to do color conversion.<wbr/></p>
748<p>All advanced white balance adjustments (not specified
749by our white balance pipeline) must be disabled.<wbr/></p>
750<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
751TRANSFORM_<wbr/>MATRIX is ignored.<wbr/> The camera device will override
752this value to either FAST or HIGH_<wbr/>QUALITY.<wbr/></p></span>
753                  </li>
754                  <li>
755                    <span class="entry_type_enum_name">FAST</span>
756                    <span class="entry_type_enum_notes"><p>Must not slow down capture rate relative to sensor raw
757output.<wbr/></p>
758<p>Advanced white balance adjustments above and beyond
759the specified white balance pipeline may be applied.<wbr/></p>
760<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
761the camera device uses the last frame's AWB values
762(or defaults if AWB has never been run).<wbr/></p></span>
763                  </li>
764                  <li>
765                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
766                    <span class="entry_type_enum_notes"><p>Capture rate (relative to sensor raw output)
767may be reduced by high quality.<wbr/></p>
768<p>Advanced white balance adjustments above and beyond
769the specified white balance pipeline may be applied.<wbr/></p>
770<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
771the camera device uses the last frame's AWB values
772(or defaults if AWB has never been run).<wbr/></p></span>
773                  </li>
774                </ul>
775
776            </td> <!-- entry_type -->
777
778            <td class="entry_description">
779              <p>The mode control selects how the image data is converted from the
780sensor's native color into linear sRGB color.<wbr/></p>
781            </td>
782
783            <td class="entry_units">
784            </td>
785
786            <td class="entry_range">
787            </td>
788
789            <td class="entry_tags">
790            </td>
791
792          </tr>
793          <tr class="entries_header">
794            <th class="th_details" colspan="5">Details</th>
795          </tr>
796          <tr class="entry_cont">
797            <td class="entry_details" colspan="5">
798              <p>When auto-white balance is enabled with <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> this
799control is overridden by the AWB routine.<wbr/> When AWB is disabled,<wbr/> the
800application controls how the color mapping is performed.<wbr/></p>
801<p>We define the expected processing pipeline below.<wbr/> For consistency
802across devices,<wbr/> this is always the case with TRANSFORM_<wbr/>MATRIX.<wbr/></p>
803<p>When either FULL or HIGH_<wbr/>QUALITY is used,<wbr/> the camera device may
804do additional processing but <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
805<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> will still be provided by the
806camera device (in the results) and be roughly correct.<wbr/></p>
807<p>Switching to TRANSFORM_<wbr/>MATRIX and using the data provided from
808FAST or HIGH_<wbr/>QUALITY will yield a picture with the same white point
809as what was produced by the camera device in the earlier frame.<wbr/></p>
810<p>The expected processing pipeline is as follows:</p>
811<p><img alt="White balance processing pipeline" src="images/camera2/metadata/android.colorCorrection.mode/processing_pipeline.png"/></p>
812<p>The white balance is encoded by two values,<wbr/> a 4-channel white-balance
813gain vector (applied in the Bayer domain),<wbr/> and a 3x3 color transform
814matrix (applied after demosaic).<wbr/></p>
815<p>The 4-channel white-balance gains are defined as:</p>
816<pre><code><a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> = [ R G_<wbr/>even G_<wbr/>odd B ]
817</code></pre>
818<p>where <code>G_<wbr/>even</code> is the gain for green pixels on even rows of the
819output,<wbr/> and <code>G_<wbr/>odd</code> is the gain for green pixels on the odd rows.<wbr/>
820These may be identical for a given camera device implementation; if
821the camera device does not support a separate gain for even/<wbr/>odd green
822channels,<wbr/> it will use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
823<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
824<p>The matrices for color transforms are defined as a 9-entry vector:</p>
825<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 ]
826</code></pre>
827<p>which define a transform from input sensor colors,<wbr/> <code>P_<wbr/>in = [ r g b ]</code>,<wbr/>
828to output linear sRGB,<wbr/> <code>P_<wbr/>out = [ r' g' b' ]</code>,<wbr/></p>
829<p>with colors as follows:</p>
830<pre><code>r' = I0r + I1g + I2b
831g' = I3r + I4g + I5b
832b' = I6r + I7g + I8b
833</code></pre>
834<p>Both the input and output value ranges must match.<wbr/> Overflow/<wbr/>underflow
835values are clipped to fit within the range.<wbr/></p>
836            </td>
837          </tr>
838
839
840          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
841           <!-- end of entry -->
842        
843                
844          <tr class="entry" id="controls_android.colorCorrection.transform">
845            <td class="entry_name" rowspan="3">
846              android.<wbr/>color<wbr/>Correction.<wbr/>transform
847            </td>
848            <td class="entry_type">
849                <span class="entry_type_name">rational</span>
850                <span class="entry_type_container">x</span>
851
852                <span class="entry_type_array">
853                  3 x 3
854                </span>
855              <span class="entry_type_visibility"> [public]</span>
856                <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
857
858
859            </td> <!-- entry_type -->
860
861            <td class="entry_description">
862              <p>A color transform matrix to use to transform
863from sensor RGB color space to output linear sRGB color space</p>
864            </td>
865
866            <td class="entry_units">
867            </td>
868
869            <td class="entry_range">
870            </td>
871
872            <td class="entry_tags">
873            </td>
874
875          </tr>
876          <tr class="entries_header">
877            <th class="th_details" colspan="5">Details</th>
878          </tr>
879          <tr class="entry_cont">
880            <td class="entry_details" colspan="5">
881              <p>This matrix is either set by the camera device when the request
882<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
883directly by the application in the request when the
884<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
885<p>In the latter case,<wbr/> the camera device may round the matrix to account
886for precision issues; the final rounded matrix should be reported back
887in this matrix result metadata.<wbr/> The transform should keep the magnitude
888of the output color values within <code>[0,<wbr/> 1.<wbr/>0]</code> (assuming input color
889values is within the normalized range <code>[0,<wbr/> 1.<wbr/>0]</code>),<wbr/> or clipping may occur.<wbr/></p>
890            </td>
891          </tr>
892
893
894          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
895           <!-- end of entry -->
896        
897                
898          <tr class="entry" id="controls_android.colorCorrection.gains">
899            <td class="entry_name" rowspan="3">
900              android.<wbr/>color<wbr/>Correction.<wbr/>gains
901            </td>
902            <td class="entry_type">
903                <span class="entry_type_name">float</span>
904                <span class="entry_type_container">x</span>
905
906                <span class="entry_type_array">
907                  4
908                </span>
909              <span class="entry_type_visibility"> [public]</span>
910                <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
911
912
913            </td> <!-- entry_type -->
914
915            <td class="entry_description">
916              <p>Gains applying to Bayer raw color channels for
917white-balance</p>
918            </td>
919
920            <td class="entry_units">
921            </td>
922
923            <td class="entry_range">
924            </td>
925
926            <td class="entry_tags">
927            </td>
928
929          </tr>
930          <tr class="entries_header">
931            <th class="th_details" colspan="5">Details</th>
932          </tr>
933          <tr class="entry_cont">
934            <td class="entry_details" colspan="5">
935              <p>The 4-channel white-balance gains are defined in
936the order of <code>[R G_<wbr/>even G_<wbr/>odd B]</code>,<wbr/> where <code>G_<wbr/>even</code> is the gain
937for green pixels on even rows of the output,<wbr/> and <code>G_<wbr/>odd</code>
938is the gain for green pixels on the odd rows.<wbr/> if a HAL
939does not support a separate gain for even/<wbr/>odd green channels,<wbr/>
940it should use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
941<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
942<p>This array is either set by HAL when the request
943<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
944directly by the application in the request when the
945<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
946<p>The output should be the gains actually applied by the HAL to
947the current frame.<wbr/></p>
948            </td>
949          </tr>
950
951
952          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
953           <!-- end of entry -->
954        
955        
956
957      <!-- end of kind -->
958      </tbody>
959      <tr><td colspan="6" class="kind">dynamic</td></tr>
960
961      <thead class="entries_header">
962        <tr>
963          <th class="th_name">Property Name</th>
964          <th class="th_type">Type</th>
965          <th class="th_description">Description</th>
966          <th class="th_units">Units</th>
967          <th class="th_range">Range</th>
968          <th class="th_tags">Tags</th>
969        </tr>
970      </thead>
971
972      <tbody>
973
974        
975
976        
977
978        
979
980        
981
982                
983          <tr class="entry" id="dynamic_android.colorCorrection.transform">
984            <td class="entry_name" rowspan="3">
985              android.<wbr/>color<wbr/>Correction.<wbr/>transform
986            </td>
987            <td class="entry_type">
988                <span class="entry_type_name">rational</span>
989                <span class="entry_type_container">x</span>
990
991                <span class="entry_type_array">
992                  3 x 3
993                </span>
994              <span class="entry_type_visibility"> [public]</span>
995                <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
996
997
998            </td> <!-- entry_type -->
999
1000            <td class="entry_description">
1001              <p>A color transform matrix to use to transform
1002from sensor RGB color space to output linear sRGB color space</p>
1003            </td>
1004
1005            <td class="entry_units">
1006            </td>
1007
1008            <td class="entry_range">
1009            </td>
1010
1011            <td class="entry_tags">
1012            </td>
1013
1014          </tr>
1015          <tr class="entries_header">
1016            <th class="th_details" colspan="5">Details</th>
1017          </tr>
1018          <tr class="entry_cont">
1019            <td class="entry_details" colspan="5">
1020              <p>This matrix is either set by the camera device when the request
1021<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
1022directly by the application in the request when the
1023<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
1024<p>In the latter case,<wbr/> the camera device may round the matrix to account
1025for precision issues; the final rounded matrix should be reported back
1026in this matrix result metadata.<wbr/> The transform should keep the magnitude
1027of the output color values within <code>[0,<wbr/> 1.<wbr/>0]</code> (assuming input color
1028values is within the normalized range <code>[0,<wbr/> 1.<wbr/>0]</code>),<wbr/> or clipping may occur.<wbr/></p>
1029            </td>
1030          </tr>
1031
1032
1033          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1034           <!-- end of entry -->
1035        
1036                
1037          <tr class="entry" id="dynamic_android.colorCorrection.gains">
1038            <td class="entry_name" rowspan="3">
1039              android.<wbr/>color<wbr/>Correction.<wbr/>gains
1040            </td>
1041            <td class="entry_type">
1042                <span class="entry_type_name">float</span>
1043                <span class="entry_type_container">x</span>
1044
1045                <span class="entry_type_array">
1046                  4
1047                </span>
1048              <span class="entry_type_visibility"> [public]</span>
1049                <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
1050
1051
1052            </td> <!-- entry_type -->
1053
1054            <td class="entry_description">
1055              <p>Gains applying to Bayer raw color channels for
1056white-balance</p>
1057            </td>
1058
1059            <td class="entry_units">
1060            </td>
1061
1062            <td class="entry_range">
1063            </td>
1064
1065            <td class="entry_tags">
1066            </td>
1067
1068          </tr>
1069          <tr class="entries_header">
1070            <th class="th_details" colspan="5">Details</th>
1071          </tr>
1072          <tr class="entry_cont">
1073            <td class="entry_details" colspan="5">
1074              <p>The 4-channel white-balance gains are defined in
1075the order of <code>[R G_<wbr/>even G_<wbr/>odd B]</code>,<wbr/> where <code>G_<wbr/>even</code> is the gain
1076for green pixels on even rows of the output,<wbr/> and <code>G_<wbr/>odd</code>
1077is the gain for green pixels on the odd rows.<wbr/> if a HAL
1078does not support a separate gain for even/<wbr/>odd green channels,<wbr/>
1079it should use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
1080<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
1081<p>This array is either set by HAL when the request
1082<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is not TRANSFORM_<wbr/>MATRIX,<wbr/> or
1083directly by the application in the request when the
1084<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> is TRANSFORM_<wbr/>MATRIX.<wbr/></p>
1085<p>The output should be the gains actually applied by the HAL to
1086the current frame.<wbr/></p>
1087            </td>
1088          </tr>
1089
1090
1091          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1092           <!-- end of entry -->
1093        
1094        
1095
1096      <!-- end of kind -->
1097      </tbody>
1098
1099  <!-- end of section -->
1100  <tr><td colspan="6" id="section_control" class="section">control</td></tr>
1101
1102
1103      <tr><td colspan="6" class="kind">controls</td></tr>
1104
1105      <thead class="entries_header">
1106        <tr>
1107          <th class="th_name">Property Name</th>
1108          <th class="th_type">Type</th>
1109          <th class="th_description">Description</th>
1110          <th class="th_units">Units</th>
1111          <th class="th_range">Range</th>
1112          <th class="th_tags">Tags</th>
1113        </tr>
1114      </thead>
1115
1116      <tbody>
1117
1118        
1119
1120        
1121
1122        
1123
1124        
1125
1126                
1127          <tr class="entry" id="controls_android.control.aeAntibandingMode">
1128            <td class="entry_name" rowspan="5">
1129              android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode
1130            </td>
1131            <td class="entry_type">
1132                <span class="entry_type_name entry_type_name_enum">byte</span>
1133
1134              <span class="entry_type_visibility"> [public]</span>
1135
1136                <ul class="entry_type_enum">
1137                  <li>
1138                    <span class="entry_type_enum_name">OFF</span>
1139                    <span class="entry_type_enum_notes"><p>The camera device will not adjust exposure duration to
1140avoid banding problems.<wbr/></p></span>
1141                  </li>
1142                  <li>
1143                    <span class="entry_type_enum_name">50HZ</span>
1144                    <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
1145avoid banding problems with 50Hz illumination sources.<wbr/></p></span>
1146                  </li>
1147                  <li>
1148                    <span class="entry_type_enum_name">60HZ</span>
1149                    <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
1150avoid banding problems with 60Hz illumination
1151sources.<wbr/></p></span>
1152                  </li>
1153                  <li>
1154                    <span class="entry_type_enum_name">AUTO</span>
1155                    <span class="entry_type_enum_notes"><p>The camera device will automatically adapt its
1156antibanding routine to the current illumination
1157conditions.<wbr/> This is the default.<wbr/></p></span>
1158                  </li>
1159                </ul>
1160
1161            </td> <!-- entry_type -->
1162
1163            <td class="entry_description">
1164              <p>The desired setting for the camera device's auto-exposure
1165algorithm's antibanding compensation.<wbr/></p>
1166            </td>
1167
1168            <td class="entry_units">
1169            </td>
1170
1171            <td class="entry_range">
1172              <p><a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a></p>
1173            </td>
1174
1175            <td class="entry_tags">
1176              <ul class="entry_tags">
1177                  <li><a href="#tag_BC">BC</a></li>
1178              </ul>
1179            </td>
1180
1181          </tr>
1182          <tr class="entries_header">
1183            <th class="th_details" colspan="5">Details</th>
1184          </tr>
1185          <tr class="entry_cont">
1186            <td class="entry_details" colspan="5">
1187              <p>Some kinds of lighting fixtures,<wbr/> such as some fluorescent
1188lights,<wbr/> flicker at the rate of the power supply frequency
1189(60Hz or 50Hz,<wbr/> depending on country).<wbr/> While this is
1190typically not noticeable to a person,<wbr/> it can be visible to
1191a camera device.<wbr/> If a camera sets its exposure time to the
1192wrong value,<wbr/> the flicker may become visible in the
1193viewfinder as flicker or in a final captured image,<wbr/> as a
1194set of variable-brightness bands across the image.<wbr/></p>
1195<p>Therefore,<wbr/> the auto-exposure routines of camera devices
1196include antibanding routines that ensure that the chosen
1197exposure value will not cause such banding.<wbr/> The choice of
1198exposure time depends on the rate of flicker,<wbr/> which the
1199camera device can detect automatically,<wbr/> or the expected
1200rate can be selected by the application using this
1201control.<wbr/></p>
1202<p>A given camera device may not support all of the possible
1203options for the antibanding mode.<wbr/> The
1204<a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a> key contains
1205the available modes for a given camera device.<wbr/></p>
1206<p>The default mode is AUTO,<wbr/> which must be supported by all
1207camera devices.<wbr/></p>
1208<p>If manual exposure control is enabled (by setting
1209<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/>
1210then this setting has no effect,<wbr/> and the application must
1211ensure it selects exposure times that do not cause banding
1212issues.<wbr/> The <a href="#dynamic_android.statistics.sceneFlicker">android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker</a> key can assist
1213the application in this.<wbr/></p>
1214            </td>
1215          </tr>
1216
1217          <tr class="entries_header">
1218            <th class="th_details" colspan="5">HAL Implementation Details</th>
1219          </tr>
1220          <tr class="entry_cont">
1221            <td class="entry_details" colspan="5">
1222              <p>For all capture request templates,<wbr/> this field must be set
1223to AUTO.<wbr/>  AUTO is the only mode that must supported;
1224OFF,<wbr/> 50HZ,<wbr/> 60HZ are all optional.<wbr/></p>
1225<p>If manual exposure control is enabled (by setting
1226<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/>
1227then the exposure values provided by the application must not be
1228adjusted for antibanding.<wbr/></p>
1229            </td>
1230          </tr>
1231
1232          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1233           <!-- end of entry -->
1234        
1235                
1236          <tr class="entry" id="controls_android.control.aeExposureCompensation">
1237            <td class="entry_name" rowspan="3">
1238              android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation
1239            </td>
1240            <td class="entry_type">
1241                <span class="entry_type_name">int32</span>
1242
1243              <span class="entry_type_visibility"> [public]</span>
1244
1245
1246            </td> <!-- entry_type -->
1247
1248            <td class="entry_description">
1249              <p>Adjustment to AE target image
1250brightness</p>
1251            </td>
1252
1253            <td class="entry_units">
1254              count of positive/<wbr/>negative EV steps
1255            </td>
1256
1257            <td class="entry_range">
1258            </td>
1259
1260            <td class="entry_tags">
1261              <ul class="entry_tags">
1262                  <li><a href="#tag_BC">BC</a></li>
1263              </ul>
1264            </td>
1265
1266          </tr>
1267          <tr class="entries_header">
1268            <th class="th_details" colspan="5">Details</th>
1269          </tr>
1270          <tr class="entry_cont">
1271            <td class="entry_details" colspan="5">
1272              <p>For example,<wbr/> if EV step is 0.<wbr/>333,<wbr/> '6' will mean an
1273exposure compensation of +2 EV; -3 will mean an exposure
1274compensation of -1</p>
1275            </td>
1276          </tr>
1277
1278
1279          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1280           <!-- end of entry -->
1281        
1282                
1283          <tr class="entry" id="controls_android.control.aeLock">
1284            <td class="entry_name" rowspan="3">
1285              android.<wbr/>control.<wbr/>ae<wbr/>Lock
1286            </td>
1287            <td class="entry_type">
1288                <span class="entry_type_name entry_type_name_enum">byte</span>
1289
1290              <span class="entry_type_visibility"> [public as boolean]</span>
1291
1292                <ul class="entry_type_enum">
1293                  <li>
1294                    <span class="entry_type_enum_name">OFF</span>
1295                    <span class="entry_type_enum_notes"><p>Autoexposure lock is disabled; the AE algorithm
1296is free to update its parameters.<wbr/></p></span>
1297                  </li>
1298                  <li>
1299                    <span class="entry_type_enum_name">ON</span>
1300                    <span class="entry_type_enum_notes"><p>Autoexposure lock is enabled; the AE algorithm
1301must not update the exposure and sensitivity parameters
1302while the lock is active</p></span>
1303                  </li>
1304                </ul>
1305
1306            </td> <!-- entry_type -->
1307
1308            <td class="entry_description">
1309              <p>Whether AE is currently locked to its latest
1310calculated values.<wbr/></p>
1311            </td>
1312
1313            <td class="entry_units">
1314            </td>
1315
1316            <td class="entry_range">
1317            </td>
1318
1319            <td class="entry_tags">
1320              <ul class="entry_tags">
1321                  <li><a href="#tag_BC">BC</a></li>
1322              </ul>
1323            </td>
1324
1325          </tr>
1326          <tr class="entries_header">
1327            <th class="th_details" colspan="5">Details</th>
1328          </tr>
1329          <tr class="entry_cont">
1330            <td class="entry_details" colspan="5">
1331              <p>Note that even when AE is locked,<wbr/> the flash may be
1332fired if the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is ON_<wbr/>AUTO_<wbr/>FLASH /<wbr/> ON_<wbr/>ALWAYS_<wbr/>FLASH /<wbr/>
1333ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE.<wbr/></p>
1334<p>If AE precapture is triggered (see <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>)
1335when AE is already locked,<wbr/> the camera device will not change the exposure time
1336(<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>)
1337parameters.<wbr/> The flash may be fired if the android.<wbr/>control.<wbr/>ae<wbr/>Mode
1338is ON_<wbr/>AUTO_<wbr/>FLASH/<wbr/>ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE and the scene is too dark.<wbr/> If the
1339<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> the scene may become overexposed.<wbr/></p>
1340<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>
1341            </td>
1342          </tr>
1343
1344
1345          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1346           <!-- end of entry -->
1347        
1348                
1349          <tr class="entry" id="controls_android.control.aeMode">
1350            <td class="entry_name" rowspan="3">
1351              android.<wbr/>control.<wbr/>ae<wbr/>Mode
1352            </td>
1353            <td class="entry_type">
1354                <span class="entry_type_name entry_type_name_enum">byte</span>
1355
1356              <span class="entry_type_visibility"> [public]</span>
1357
1358                <ul class="entry_type_enum">
1359                  <li>
1360                    <span class="entry_type_enum_name">OFF</span>
1361                    <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled;
1362the application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
1363<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
1364<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera
1365device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's
1366a flash unit for this camera device.<wbr/></p></span>
1367                  </li>
1368                  <li>
1369                    <span class="entry_type_enum_name">ON</span>
1370                    <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
1371with no flash control.<wbr/> The application's values for
1372<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
1373<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
1374<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The
1375application has control over the various
1376android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
1377                  </li>
1378                  <li>
1379                    <span class="entry_type_enum_name">ON_AUTO_FLASH</span>
1380                    <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
1381the camera's flash unit,<wbr/> firing it in low-light
1382conditions.<wbr/> The flash may be fired during a
1383precapture sequence (triggered by
1384<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and may be fired
1385for captures for which the
1386<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
1387STILL_<wbr/>CAPTURE</p></span>
1388                  </li>
1389                  <li>
1390                    <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span>
1391                    <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
1392the camera's flash unit,<wbr/> always firing it for still
1393captures.<wbr/> The flash may be fired during a precapture
1394sequence (triggered by
1395<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and will always
1396be fired for captures for which the
1397<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
1398STILL_<wbr/>CAPTURE</p></span>
1399                  </li>
1400                  <li>
1401                    <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span>
1402                    <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
1403reduction.<wbr/> If deemed necessary by the camera device,<wbr/>
1404a red eye reduction flash will fire during the
1405precapture sequence.<wbr/></p></span>
1406                  </li>
1407                </ul>
1408
1409            </td> <!-- entry_type -->
1410
1411            <td class="entry_description">
1412              <p>The desired mode for the camera device's
1413auto-exposure routine.<wbr/></p>
1414            </td>
1415
1416            <td class="entry_units">
1417            </td>
1418
1419            <td class="entry_range">
1420              <p><a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a></p>
1421            </td>
1422
1423            <td class="entry_tags">
1424              <ul class="entry_tags">
1425                  <li><a href="#tag_BC">BC</a></li>
1426              </ul>
1427            </td>
1428
1429          </tr>
1430          <tr class="entries_header">
1431            <th class="th_details" colspan="5">Details</th>
1432          </tr>
1433          <tr class="entry_cont">
1434            <td class="entry_details" colspan="5">
1435              <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
1436AUTO.<wbr/></p>
1437<p>When set to any of the ON modes,<wbr/> the camera device's
1438auto-exposure routine is enabled,<wbr/> overriding the
1439application's selected exposure time,<wbr/> sensor sensitivity,<wbr/>
1440and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
1441<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
1442<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes
1443is selected,<wbr/> the camera device's flash unit controls are
1444also overridden.<wbr/></p>
1445<p>The FLASH modes are only available if the camera device
1446has a flash unit (<a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is <code>true</code>).<wbr/></p>
1447<p>If flash TORCH mode is desired,<wbr/> this field must be set to
1448ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p>
1449<p>When set to any of the ON modes,<wbr/> the values chosen by the
1450camera device auto-exposure routine for the overridden
1451fields for a given capture will be available in its
1452CaptureResult.<wbr/></p>
1453            </td>
1454          </tr>
1455
1456
1457          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1458           <!-- end of entry -->
1459        
1460                
1461          <tr class="entry" id="controls_android.control.aeRegions">
1462            <td class="entry_name" rowspan="3">
1463              android.<wbr/>control.<wbr/>ae<wbr/>Regions
1464            </td>
1465            <td class="entry_type">
1466                <span class="entry_type_name">int32</span>
1467                <span class="entry_type_container">x</span>
1468
1469                <span class="entry_type_array">
1470                  5 x area_count
1471                </span>
1472              <span class="entry_type_visibility"> [public]</span>
1473
1474
1475            </td> <!-- entry_type -->
1476
1477            <td class="entry_description">
1478              <p>List of areas to use for
1479metering.<wbr/></p>
1480            </td>
1481
1482            <td class="entry_units">
1483            </td>
1484
1485            <td class="entry_range">
1486              <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[0]</code></p>
1487            </td>
1488
1489            <td class="entry_tags">
1490              <ul class="entry_tags">
1491                  <li><a href="#tag_BC">BC</a></li>
1492              </ul>
1493            </td>
1494
1495          </tr>
1496          <tr class="entries_header">
1497            <th class="th_details" colspan="5">Details</th>
1498          </tr>
1499          <tr class="entry_cont">
1500            <td class="entry_details" colspan="5">
1501              <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
1502xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
1503specified coordinates.<wbr/></p>
1504<p>The coordinate system is based on the active pixel array,<wbr/>
1505with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
1506(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
1507<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
1508bottom-right pixel in the active pixel array.<wbr/> The weight
1509should be nonnegative.<wbr/></p>
1510<p>If all regions have 0 weight,<wbr/> then no specific metering area
1511needs to be used by the HAL.<wbr/> If the metering region is
1512outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
1513should ignore the sections outside the region and output the
1514used sections in the frame metadata.<wbr/></p>
1515            </td>
1516          </tr>
1517
1518
1519          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1520           <!-- end of entry -->
1521        
1522                
1523          <tr class="entry" id="controls_android.control.aeTargetFpsRange">
1524            <td class="entry_name" rowspan="3">
1525              android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range
1526            </td>
1527            <td class="entry_type">
1528                <span class="entry_type_name">int32</span>
1529                <span class="entry_type_container">x</span>
1530
1531                <span class="entry_type_array">
1532                  2
1533                </span>
1534              <span class="entry_type_visibility"> [public]</span>
1535
1536
1537            </td> <!-- entry_type -->
1538
1539            <td class="entry_description">
1540              <p>Range over which fps can be adjusted to
1541maintain exposure</p>
1542            </td>
1543
1544            <td class="entry_units">
1545            </td>
1546
1547            <td class="entry_range">
1548              <p><a href="#static_android.control.aeAvailableTargetFpsRanges">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges</a></p>
1549            </td>
1550
1551            <td class="entry_tags">
1552              <ul class="entry_tags">
1553                  <li><a href="#tag_BC">BC</a></li>
1554              </ul>
1555            </td>
1556
1557          </tr>
1558          <tr class="entries_header">
1559            <th class="th_details" colspan="5">Details</th>
1560          </tr>
1561          <tr class="entry_cont">
1562            <td class="entry_details" colspan="5">
1563              <p>Only constrains AE algorithm,<wbr/> not manual control
1564of <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a></p>
1565            </td>
1566          </tr>
1567
1568
1569          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1570           <!-- end of entry -->
1571        
1572                
1573          <tr class="entry" id="controls_android.control.aePrecaptureTrigger">
1574            <td class="entry_name" rowspan="3">
1575              android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger
1576            </td>
1577            <td class="entry_type">
1578                <span class="entry_type_name entry_type_name_enum">byte</span>
1579
1580              <span class="entry_type_visibility"> [public]</span>
1581
1582                <ul class="entry_type_enum">
1583                  <li>
1584                    <span class="entry_type_enum_name">IDLE</span>
1585                    <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
1586                  </li>
1587                  <li>
1588                    <span class="entry_type_enum_name">START</span>
1589                    <span class="entry_type_enum_notes"><p>The precapture metering sequence will be started
1590by the camera device.<wbr/> The exact effect of the precapture
1591trigger depends on the current AE mode and state.<wbr/></p></span>
1592                  </li>
1593                </ul>
1594
1595            </td> <!-- entry_type -->
1596
1597            <td class="entry_description">
1598              <p>Whether the camera device will trigger a precapture
1599metering sequence when it processes this request.<wbr/></p>
1600            </td>
1601
1602            <td class="entry_units">
1603            </td>
1604
1605            <td class="entry_range">
1606            </td>
1607
1608            <td class="entry_tags">
1609              <ul class="entry_tags">
1610                  <li><a href="#tag_BC">BC</a></li>
1611              </ul>
1612            </td>
1613
1614          </tr>
1615          <tr class="entries_header">
1616            <th class="th_details" colspan="5">Details</th>
1617          </tr>
1618          <tr class="entry_cont">
1619            <td class="entry_details" colspan="5">
1620              <p>This entry is normally set to IDLE,<wbr/> or is not
1621included at all in the request settings.<wbr/> When included and
1622set to START,<wbr/> the camera device will trigger the autoexposure
1623precapture metering sequence.<wbr/></p>
1624<p>The effect of AE precapture trigger depends on the current
1625AE mode and state; see <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> for AE precapture
1626state transition details.<wbr/></p>
1627            </td>
1628          </tr>
1629
1630
1631          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1632           <!-- end of entry -->
1633        
1634                
1635          <tr class="entry" id="controls_android.control.afMode">
1636            <td class="entry_name" rowspan="3">
1637              android.<wbr/>control.<wbr/>af<wbr/>Mode
1638            </td>
1639            <td class="entry_type">
1640                <span class="entry_type_name entry_type_name_enum">byte</span>
1641
1642              <span class="entry_type_visibility"> [public]</span>
1643
1644                <ul class="entry_type_enum">
1645                  <li>
1646                    <span class="entry_type_enum_name">OFF</span>
1647                    <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
1648<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
1649application</p></span>
1650                  </li>
1651                  <li>
1652                    <span class="entry_type_enum_name">AUTO</span>
1653                    <span class="entry_type_enum_notes"><p>If lens is not fixed focus.<wbr/></p>
1654<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
1655is fixed-focus.<wbr/> In this mode,<wbr/> the lens does not move unless
1656the autofocus trigger action is called.<wbr/> When that trigger
1657is activated,<wbr/> AF must transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
1658the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
1659<p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
1660and sets the AF state to INACTIVE.<wbr/></p></span>
1661                  </li>
1662                  <li>
1663                    <span class="entry_type_enum_name">MACRO</span>
1664                    <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the lens does not move unless the
1665autofocus trigger action is called.<wbr/></p>
1666<p>When that trigger is activated,<wbr/> AF must transition to
1667ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or
1668NOT_<wbr/>FOCUSED).<wbr/>  Triggering cancel AF resets the lens
1669position to default,<wbr/> and sets the AF state to
1670INACTIVE.<wbr/></p></span>
1671                  </li>
1672                  <li>
1673                    <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
1674                    <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
1675position continually to attempt to provide a
1676constantly-in-focus image stream.<wbr/></p>
1677<p>The focusing behavior should be suitable for good quality
1678video recording; typically this means slower focus
1679movement and no overshoots.<wbr/> When the AF trigger is not
1680involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/>
1681and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED
1682states as appropriate.<wbr/> When the AF trigger is activated,<wbr/>
1683the algorithm should immediately transition into
1684AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
1685lens position until a cancel AF trigger is received.<wbr/></p>
1686<p>Once cancel is received,<wbr/> the algorithm should transition
1687back to INACTIVE and resume passive scan.<wbr/> Note that this
1688behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an
1689ongoing PASSIVE_<wbr/>SCAN must immediately be
1690canceled.<wbr/></p></span>
1691                  </li>
1692                  <li>
1693                    <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
1694                    <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
1695position continually to attempt to provide a
1696constantly-in-focus image stream.<wbr/></p>
1697<p>The focusing behavior should be suitable for still image
1698capture; typically this means focusing as fast as
1699possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF
1700algorithm should start in INACTIVE state,<wbr/> and then
1701transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as
1702appropriate as it attempts to maintain focus.<wbr/> When the AF
1703trigger is activated,<wbr/> the algorithm should finish its
1704PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into
1705AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
1706lens position until a cancel AF trigger is received.<wbr/></p>
1707<p>When the AF cancel trigger is activated,<wbr/> the algorithm
1708should transition back to INACTIVE and then act as if it
1709has just been started.<wbr/></p></span>
1710                  </li>
1711                  <li>
1712                    <span class="entry_type_enum_name">EDOF</span>
1713                    <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus).<wbr/> AF
1714trigger is ignored,<wbr/> AF state should always be
1715INACTIVE.<wbr/></p></span>
1716                  </li>
1717                </ul>
1718
1719            </td> <!-- entry_type -->
1720
1721            <td class="entry_description">
1722              <p>Whether AF is currently enabled,<wbr/> and what
1723mode it is set to</p>
1724            </td>
1725
1726            <td class="entry_units">
1727            </td>
1728
1729            <td class="entry_range">
1730              <p><a href="#static_android.control.afAvailableModes">android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes</a></p>
1731            </td>
1732
1733            <td class="entry_tags">
1734              <ul class="entry_tags">
1735                  <li><a href="#tag_BC">BC</a></li>
1736              </ul>
1737            </td>
1738
1739          </tr>
1740          <tr class="entries_header">
1741            <th class="th_details" colspan="5">Details</th>
1742          </tr>
1743          <tr class="entry_cont">
1744            <td class="entry_details" colspan="5">
1745              <p>Only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> = AUTO.<wbr/></p>
1746<p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
1747the camera device will report the current AF status in android.<wbr/>control.<wbr/>af<wbr/>State
1748in result metadata.<wbr/></p>
1749            </td>
1750          </tr>
1751
1752
1753          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1754           <!-- end of entry -->
1755        
1756                
1757          <tr class="entry" id="controls_android.control.afRegions">
1758            <td class="entry_name" rowspan="3">
1759              android.<wbr/>control.<wbr/>af<wbr/>Regions
1760            </td>
1761            <td class="entry_type">
1762                <span class="entry_type_name">int32</span>
1763                <span class="entry_type_container">x</span>
1764
1765                <span class="entry_type_array">
1766                  5 x area_count
1767                </span>
1768              <span class="entry_type_visibility"> [public]</span>
1769
1770
1771            </td> <!-- entry_type -->
1772
1773            <td class="entry_description">
1774              <p>List of areas to use for focus
1775estimation.<wbr/></p>
1776            </td>
1777
1778            <td class="entry_units">
1779            </td>
1780
1781            <td class="entry_range">
1782              <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[2]</code></p>
1783            </td>
1784
1785            <td class="entry_tags">
1786              <ul class="entry_tags">
1787                  <li><a href="#tag_BC">BC</a></li>
1788              </ul>
1789            </td>
1790
1791          </tr>
1792          <tr class="entries_header">
1793            <th class="th_details" colspan="5">Details</th>
1794          </tr>
1795          <tr class="entry_cont">
1796            <td class="entry_details" colspan="5">
1797              <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
1798xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
1799specified coordinates.<wbr/></p>
1800<p>The coordinate system is based on the active pixel array,<wbr/>
1801with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
1802(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
1803<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
1804bottom-right pixel in the active pixel array.<wbr/> The weight
1805should be nonnegative.<wbr/></p>
1806<p>If all regions have 0 weight,<wbr/> then no specific focus area
1807needs to be used by the HAL.<wbr/> If the focusing region is
1808outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
1809should ignore the sections outside the region and output the
1810used sections in the frame metadata.<wbr/></p>
1811            </td>
1812          </tr>
1813
1814
1815          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1816           <!-- end of entry -->
1817        
1818                
1819          <tr class="entry" id="controls_android.control.afTrigger">
1820            <td class="entry_name" rowspan="3">
1821              android.<wbr/>control.<wbr/>af<wbr/>Trigger
1822            </td>
1823            <td class="entry_type">
1824                <span class="entry_type_name entry_type_name_enum">byte</span>
1825
1826              <span class="entry_type_visibility"> [public]</span>
1827
1828                <ul class="entry_type_enum">
1829                  <li>
1830                    <span class="entry_type_enum_name">IDLE</span>
1831                    <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
1832                  </li>
1833                  <li>
1834                    <span class="entry_type_enum_name">START</span>
1835                    <span class="entry_type_enum_notes"><p>Autofocus will trigger now.<wbr/></p></span>
1836                  </li>
1837                  <li>
1838                    <span class="entry_type_enum_name">CANCEL</span>
1839                    <span class="entry_type_enum_notes"><p>Autofocus will return to its initial
1840state,<wbr/> and cancel any currently active trigger.<wbr/></p></span>
1841                  </li>
1842                </ul>
1843
1844            </td> <!-- entry_type -->
1845
1846            <td class="entry_description">
1847              <p>Whether the camera device will trigger autofocus for this request.<wbr/></p>
1848            </td>
1849
1850            <td class="entry_units">
1851            </td>
1852
1853            <td class="entry_range">
1854            </td>
1855
1856            <td class="entry_tags">
1857              <ul class="entry_tags">
1858                  <li><a href="#tag_BC">BC</a></li>
1859              </ul>
1860            </td>
1861
1862          </tr>
1863          <tr class="entries_header">
1864            <th class="th_details" colspan="5">Details</th>
1865          </tr>
1866          <tr class="entry_cont">
1867            <td class="entry_details" colspan="5">
1868              <p>This entry is normally set to IDLE,<wbr/> or is not
1869included at all in the request settings.<wbr/></p>
1870<p>When included and set to START,<wbr/> the camera device will trigger the
1871autofocus algorithm.<wbr/> If autofocus is disabled,<wbr/> this trigger has no effect.<wbr/></p>
1872<p>When set to CANCEL,<wbr/> the camera device will cancel any active trigger,<wbr/>
1873and return to its initial AF state.<wbr/></p>
1874<p>See <a href="#dynamic_android.control.afState">android.<wbr/>control.<wbr/>af<wbr/>State</a> for what that means for each AF mode.<wbr/></p>
1875            </td>
1876          </tr>
1877
1878
1879          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1880           <!-- end of entry -->
1881        
1882                
1883          <tr class="entry" id="controls_android.control.awbLock">
1884            <td class="entry_name" rowspan="3">
1885              android.<wbr/>control.<wbr/>awb<wbr/>Lock
1886            </td>
1887            <td class="entry_type">
1888                <span class="entry_type_name entry_type_name_enum">byte</span>
1889
1890              <span class="entry_type_visibility"> [public as boolean]</span>
1891
1892                <ul class="entry_type_enum">
1893                  <li>
1894                    <span class="entry_type_enum_name">OFF</span>
1895                    <span class="entry_type_enum_notes"><p>Auto-whitebalance lock is disabled; the AWB
1896algorithm is free to update its parameters if in AUTO
1897mode.<wbr/></p></span>
1898                  </li>
1899                  <li>
1900                    <span class="entry_type_enum_name">ON</span>
1901                    <span class="entry_type_enum_notes"><p>Auto-whitebalance lock is enabled; the AWB
1902algorithm must not update the exposure and sensitivity
1903parameters while the lock is active</p></span>
1904                  </li>
1905                </ul>
1906
1907            </td> <!-- entry_type -->
1908
1909            <td class="entry_description">
1910              <p>Whether AWB is currently locked to its
1911latest calculated values</p>
1912            </td>
1913
1914            <td class="entry_units">
1915            </td>
1916
1917            <td class="entry_range">
1918            </td>
1919
1920            <td class="entry_tags">
1921              <ul class="entry_tags">
1922                  <li><a href="#tag_BC">BC</a></li>
1923              </ul>
1924            </td>
1925
1926          </tr>
1927          <tr class="entries_header">
1928            <th class="th_details" colspan="5">Details</th>
1929          </tr>
1930          <tr class="entry_cont">
1931            <td class="entry_details" colspan="5">
1932              <p>Note that AWB lock is only meaningful for AUTO
1933mode; in other modes,<wbr/> AWB is already fixed to a specific
1934setting</p>
1935            </td>
1936          </tr>
1937
1938
1939          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1940           <!-- end of entry -->
1941        
1942                
1943          <tr class="entry" id="controls_android.control.awbMode">
1944            <td class="entry_name" rowspan="3">
1945              android.<wbr/>control.<wbr/>awb<wbr/>Mode
1946            </td>
1947            <td class="entry_type">
1948                <span class="entry_type_name entry_type_name_enum">byte</span>
1949
1950              <span class="entry_type_visibility"> [public]</span>
1951
1952                <ul class="entry_type_enum">
1953                  <li>
1954                    <span class="entry_type_enum_name">OFF</span>
1955                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1956the application-selected color transform matrix
1957(<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
1958(<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
1959device for manual white balance control.<wbr/></p></span>
1960                  </li>
1961                  <li>
1962                    <span class="entry_type_enum_name">AUTO</span>
1963                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is active;
1964the application's values for android.<wbr/>color<wbr/>Correction.<wbr/>transform
1965and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/></p></span>
1966                  </li>
1967                  <li>
1968                    <span class="entry_type_enum_name">INCANDESCENT</span>
1969                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1970the camera device uses incandescent light as the assumed scene
1971illumination for white balance.<wbr/> While the exact white balance
1972transforms are up to the camera device,<wbr/> they will approximately
1973match the CIE standard illuminant A.<wbr/></p></span>
1974                  </li>
1975                  <li>
1976                    <span class="entry_type_enum_name">FLUORESCENT</span>
1977                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1978the camera device uses fluorescent light as the assumed scene
1979illumination for white balance.<wbr/> While the exact white balance
1980transforms are up to the camera device,<wbr/> they will approximately
1981match the CIE standard illuminant F2.<wbr/></p></span>
1982                  </li>
1983                  <li>
1984                    <span class="entry_type_enum_name">WARM_FLUORESCENT</span>
1985                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1986the camera device uses warm fluorescent light as the assumed scene
1987illumination for white balance.<wbr/> While the exact white balance
1988transforms are up to the camera device,<wbr/> they will approximately
1989match the CIE standard illuminant F4.<wbr/></p></span>
1990                  </li>
1991                  <li>
1992                    <span class="entry_type_enum_name">DAYLIGHT</span>
1993                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1994the camera device uses daylight light as the assumed scene
1995illumination for white balance.<wbr/> While the exact white balance
1996transforms are up to the camera device,<wbr/> they will approximately
1997match the CIE standard illuminant D65.<wbr/></p></span>
1998                  </li>
1999                  <li>
2000                    <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span>
2001                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
2002the camera device uses cloudy daylight light as the assumed scene
2003illumination for white balance.<wbr/></p></span>
2004                  </li>
2005                  <li>
2006                    <span class="entry_type_enum_name">TWILIGHT</span>
2007                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
2008the camera device uses twilight light as the assumed scene
2009illumination for white balance.<wbr/></p></span>
2010                  </li>
2011                  <li>
2012                    <span class="entry_type_enum_name">SHADE</span>
2013                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
2014the camera device uses shade light as the assumed scene
2015illumination for white balance.<wbr/></p></span>
2016                  </li>
2017                </ul>
2018
2019            </td> <!-- entry_type -->
2020
2021            <td class="entry_description">
2022              <p>Whether AWB is currently setting the color
2023transform fields,<wbr/> and what its illumination target
2024is</p>
2025            </td>
2026
2027            <td class="entry_units">
2028            </td>
2029
2030            <td class="entry_range">
2031              <p><a href="#static_android.control.awbAvailableModes">android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes</a></p>
2032            </td>
2033
2034            <td class="entry_tags">
2035              <ul class="entry_tags">
2036                  <li><a href="#tag_BC">BC</a></li>
2037                  <li><a href="#tag_AWB">AWB</a></li>
2038              </ul>
2039            </td>
2040
2041          </tr>
2042          <tr class="entries_header">
2043            <th class="th_details" colspan="5">Details</th>
2044          </tr>
2045          <tr class="entry_cont">
2046            <td class="entry_details" colspan="5">
2047              <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
2048<p>When set to the ON mode,<wbr/> the camera device's auto white balance
2049routine is enabled,<wbr/> overriding the application's selected
2050<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
2051<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
2052<p>When set to the OFF mode,<wbr/> the camera device's auto white balance
2053routine is disabled.<wbr/> The applicantion manually controls the white
2054balance by <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> android.<wbr/>color<wbr/>Correction.<wbr/>gains
2055and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
2056<p>When set to any other modes,<wbr/> the camera device's auto white balance
2057routine is disabled.<wbr/> The camera device uses each particular illumination
2058target for white balance adjustment.<wbr/></p>
2059            </td>
2060          </tr>
2061
2062
2063          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2064           <!-- end of entry -->
2065        
2066                
2067          <tr class="entry" id="controls_android.control.awbRegions">
2068            <td class="entry_name" rowspan="3">
2069              android.<wbr/>control.<wbr/>awb<wbr/>Regions
2070            </td>
2071            <td class="entry_type">
2072                <span class="entry_type_name">int32</span>
2073                <span class="entry_type_container">x</span>
2074
2075                <span class="entry_type_array">
2076                  5 x area_count
2077                </span>
2078              <span class="entry_type_visibility"> [public]</span>
2079
2080
2081            </td> <!-- entry_type -->
2082
2083            <td class="entry_description">
2084              <p>List of areas to use for illuminant
2085estimation.<wbr/></p>
2086            </td>
2087
2088            <td class="entry_units">
2089            </td>
2090
2091            <td class="entry_range">
2092              <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[1]</code></p>
2093            </td>
2094
2095            <td class="entry_tags">
2096              <ul class="entry_tags">
2097                  <li><a href="#tag_BC">BC</a></li>
2098              </ul>
2099            </td>
2100
2101          </tr>
2102          <tr class="entries_header">
2103            <th class="th_details" colspan="5">Details</th>
2104          </tr>
2105          <tr class="entry_cont">
2106            <td class="entry_details" colspan="5">
2107              <p>Only used in AUTO mode.<wbr/></p>
2108<p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
2109xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
2110specified coordinates.<wbr/></p>
2111<p>The coordinate system is based on the active pixel array,<wbr/>
2112with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
2113(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
2114<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
2115bottom-right pixel in the active pixel array.<wbr/> The weight
2116should be nonnegative.<wbr/></p>
2117<p>If all regions have 0 weight,<wbr/> then no specific metering area
2118needs to be used by the HAL.<wbr/> If the metering region is
2119outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
2120should ignore the sections outside the region and output the
2121used sections in the frame metadata.<wbr/></p>
2122            </td>
2123          </tr>
2124
2125
2126          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2127           <!-- end of entry -->
2128        
2129                
2130          <tr class="entry" id="controls_android.control.captureIntent">
2131            <td class="entry_name" rowspan="3">
2132              android.<wbr/>control.<wbr/>capture<wbr/>Intent
2133            </td>
2134            <td class="entry_type">
2135                <span class="entry_type_name entry_type_name_enum">byte</span>
2136
2137              <span class="entry_type_visibility"> [public]</span>
2138
2139                <ul class="entry_type_enum">
2140                  <li>
2141                    <span class="entry_type_enum_name">CUSTOM</span>
2142                    <span class="entry_type_enum_notes"><p>This request doesn't fall into the other
2143categories.<wbr/> Default to preview-like
2144behavior.<wbr/></p></span>
2145                  </li>
2146                  <li>
2147                    <span class="entry_type_enum_name">PREVIEW</span>
2148                    <span class="entry_type_enum_notes"><p>This request is for a preview-like usecase.<wbr/> The
2149precapture trigger may be used to start off a metering
2150w/<wbr/>flash sequence</p></span>
2151                  </li>
2152                  <li>
2153                    <span class="entry_type_enum_name">STILL_CAPTURE</span>
2154                    <span class="entry_type_enum_notes"><p>This request is for a still capture-type
2155usecase.<wbr/></p></span>
2156                  </li>
2157                  <li>
2158                    <span class="entry_type_enum_name">VIDEO_RECORD</span>
2159                    <span class="entry_type_enum_notes"><p>This request is for a video recording
2160usecase.<wbr/></p></span>
2161                  </li>
2162                  <li>
2163                    <span class="entry_type_enum_name">VIDEO_SNAPSHOT</span>
2164                    <span class="entry_type_enum_notes"><p>This request is for a video snapshot (still
2165image while recording video) usecase</p></span>
2166                  </li>
2167                  <li>
2168                    <span class="entry_type_enum_name">ZERO_SHUTTER_LAG</span>
2169                    <span class="entry_type_enum_notes"><p>This request is for a ZSL usecase; the
2170application will stream full-resolution images and
2171reprocess one or several later for a final
2172capture</p></span>
2173                  </li>
2174                </ul>
2175
2176            </td> <!-- entry_type -->
2177
2178            <td class="entry_description">
2179              <p>Information to the camera device 3A (auto-exposure,<wbr/>
2180auto-focus,<wbr/> auto-white balance) routines about the purpose
2181of this capture,<wbr/> to help the camera device to decide optimal 3A
2182strategy.<wbr/></p>
2183            </td>
2184
2185            <td class="entry_units">
2186            </td>
2187
2188            <td class="entry_range">
2189              <p>All must be supported</p>
2190            </td>
2191
2192            <td class="entry_tags">
2193              <ul class="entry_tags">
2194                  <li><a href="#tag_BC">BC</a></li>
2195              </ul>
2196            </td>
2197
2198          </tr>
2199          <tr class="entries_header">
2200            <th class="th_details" colspan="5">Details</th>
2201          </tr>
2202          <tr class="entry_cont">
2203            <td class="entry_details" colspan="5">
2204              <p>This control is only effective if <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF</code>
2205and any 3A routine is active.<wbr/></p>
2206            </td>
2207          </tr>
2208
2209
2210          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2211           <!-- end of entry -->
2212        
2213                
2214          <tr class="entry" id="controls_android.control.effectMode">
2215            <td class="entry_name" rowspan="3">
2216              android.<wbr/>control.<wbr/>effect<wbr/>Mode
2217            </td>
2218            <td class="entry_type">
2219                <span class="entry_type_name entry_type_name_enum">byte</span>
2220
2221              <span class="entry_type_visibility"> [public]</span>
2222
2223                <ul class="entry_type_enum">
2224                  <li>
2225                    <span class="entry_type_enum_name">OFF</span>
2226                    <span class="entry_type_enum_notes"><p>No color effect will be applied.<wbr/></p></span>
2227                  </li>
2228                  <li>
2229                    <span class="entry_type_enum_name">MONO</span>
2230                    <span class="entry_type_enum_optional">optional</span>
2231                    <span class="entry_type_enum_notes"><p>A "monocolor" effect where the image is mapped into
2232a single color.<wbr/>  This will typically be grayscale.<wbr/></p></span>
2233                  </li>
2234                  <li>
2235                    <span class="entry_type_enum_name">NEGATIVE</span>
2236                    <span class="entry_type_enum_optional">optional</span>
2237                    <span class="entry_type_enum_notes"><p>A "photo-negative" effect where the image's colors
2238are inverted.<wbr/></p></span>
2239                  </li>
2240                  <li>
2241                    <span class="entry_type_enum_name">SOLARIZE</span>
2242                    <span class="entry_type_enum_optional">optional</span>
2243                    <span class="entry_type_enum_notes"><p>A "solarisation" effect (Sabattier effect) where the
2244image is wholly or partially reversed in
2245tone.<wbr/></p></span>
2246                  </li>
2247                  <li>
2248                    <span class="entry_type_enum_name">SEPIA</span>
2249                    <span class="entry_type_enum_optional">optional</span>
2250                    <span class="entry_type_enum_notes"><p>A "sepia" effect where the image is mapped into warm
2251gray,<wbr/> red,<wbr/> and brown tones.<wbr/></p></span>
2252                  </li>
2253                  <li>
2254                    <span class="entry_type_enum_name">POSTERIZE</span>
2255                    <span class="entry_type_enum_optional">optional</span>
2256                    <span class="entry_type_enum_notes"><p>A "posterization" effect where the image uses
2257discrete regions of tone rather than a continuous
2258gradient of tones.<wbr/></p></span>
2259                  </li>
2260                  <li>
2261                    <span class="entry_type_enum_name">WHITEBOARD</span>
2262                    <span class="entry_type_enum_optional">optional</span>
2263                    <span class="entry_type_enum_notes"><p>A "whiteboard" effect where the image is typically displayed
2264as regions of white,<wbr/> with black or grey details.<wbr/></p></span>
2265                  </li>
2266                  <li>
2267                    <span class="entry_type_enum_name">BLACKBOARD</span>
2268                    <span class="entry_type_enum_optional">optional</span>
2269                    <span class="entry_type_enum_notes"><p>A "blackboard" effect where the image is typically displayed
2270as regions of black,<wbr/> with white or grey details.<wbr/></p></span>
2271                  </li>
2272                  <li>
2273                    <span class="entry_type_enum_name">AQUA</span>
2274                    <span class="entry_type_enum_optional">optional</span>
2275                    <span class="entry_type_enum_notes"><p>An "aqua" effect where a blue hue is added to the image.<wbr/></p></span>
2276                  </li>
2277                </ul>
2278
2279            </td> <!-- entry_type -->
2280
2281            <td class="entry_description">
2282              <p>A special color effect to apply.<wbr/></p>
2283            </td>
2284
2285            <td class="entry_units">
2286            </td>
2287
2288            <td class="entry_range">
2289              <p><a href="#static_android.control.availableEffects">android.<wbr/>control.<wbr/>available<wbr/>Effects</a></p>
2290            </td>
2291
2292            <td class="entry_tags">
2293              <ul class="entry_tags">
2294                  <li><a href="#tag_BC">BC</a></li>
2295              </ul>
2296            </td>
2297
2298          </tr>
2299          <tr class="entries_header">
2300            <th class="th_details" colspan="5">Details</th>
2301          </tr>
2302          <tr class="entry_cont">
2303            <td class="entry_details" colspan="5">
2304              <p>When this mode is set,<wbr/> a color effect will be applied
2305to images produced by the camera device.<wbr/> The interpretation
2306and implementation of these color effects is left to the
2307implementor of the camera device,<wbr/> and should not be
2308depended on to be consistent (or present) across all
2309devices.<wbr/></p>
2310<p>A color effect will only be applied if
2311<a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF.<wbr/></p>
2312            </td>
2313          </tr>
2314
2315
2316          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2317           <!-- end of entry -->
2318        
2319                
2320          <tr class="entry" id="controls_android.control.mode">
2321            <td class="entry_name" rowspan="3">
2322              android.<wbr/>control.<wbr/>mode
2323            </td>
2324            <td class="entry_type">
2325                <span class="entry_type_name entry_type_name_enum">byte</span>
2326
2327              <span class="entry_type_visibility"> [public]</span>
2328
2329                <ul class="entry_type_enum">
2330                  <li>
2331                    <span class="entry_type_enum_name">OFF</span>
2332                    <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/> All 3A
2333routines are disabled,<wbr/> no other settings in
2334android.<wbr/>control.<wbr/>* have any effect</p></span>
2335                  </li>
2336                  <li>
2337                    <span class="entry_type_enum_name">AUTO</span>
2338                    <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/>
2339Manual control of capture parameters is disabled.<wbr/> All
2340controls in android.<wbr/>control.<wbr/>* besides sceneMode take
2341effect</p></span>
2342                  </li>
2343                  <li>
2344                    <span class="entry_type_enum_name">USE_SCENE_MODE</span>
2345                    <span class="entry_type_enum_notes"><p>Use specific scene mode.<wbr/> Enabling this disables
2346control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and control.<wbr/>afMode
2347controls; the HAL must ignore those settings while
2348USE_<wbr/>SCENE_<wbr/>MODE is active (except for FACE_<wbr/>PRIORITY
2349scene mode).<wbr/> Other control entries are still active.<wbr/>
2350This setting can only be used if availableSceneModes !=
2351UNSUPPORTED</p></span>
2352                  </li>
2353                </ul>
2354
2355            </td> <!-- entry_type -->
2356
2357            <td class="entry_description">
2358              <p>Overall mode of 3A control
2359routines</p>
2360            </td>
2361
2362            <td class="entry_units">
2363            </td>
2364
2365            <td class="entry_range">
2366              <p>all must be supported</p>
2367            </td>
2368
2369            <td class="entry_tags">
2370              <ul class="entry_tags">
2371                  <li><a href="#tag_BC">BC</a></li>
2372              </ul>
2373            </td>
2374
2375          </tr>
2376          <tr class="entries_header">
2377            <th class="th_details" colspan="5">Details</th>
2378          </tr>
2379          <tr class="entry_cont">
2380            <td class="entry_details" colspan="5">
2381              <p>High-level 3A control.<wbr/> When set to OFF,<wbr/> all 3A control
2382by the camera device is disabled.<wbr/> The application must set the fields for
2383capture parameters itself.<wbr/></p>
2384<p>When set to AUTO,<wbr/> the individual algorithm controls in
2385android.<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>
2386<p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
2387android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device implements
2388one of the scene mode settings (such as ACTION,<wbr/> SUNSET,<wbr/> or PARTY)
2389as it wishes.<wbr/> The camera device scene mode 3A settings are provided by
2390<a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
2391            </td>
2392          </tr>
2393
2394
2395          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2396           <!-- end of entry -->
2397        
2398                
2399          <tr class="entry" id="controls_android.control.sceneMode">
2400            <td class="entry_name" rowspan="5">
2401              android.<wbr/>control.<wbr/>scene<wbr/>Mode
2402            </td>
2403            <td class="entry_type">
2404                <span class="entry_type_name entry_type_name_enum">byte</span>
2405
2406              <span class="entry_type_visibility"> [public]</span>
2407
2408                <ul class="entry_type_enum">
2409                  <li>
2410                    <span class="entry_type_enum_name">DISABLED</span>
2411                    <span class="entry_type_enum_value">0</span>
2412                    <span class="entry_type_enum_notes"><p>Indicates that no scene modes are set for a given capture request.<wbr/></p></span>
2413                  </li>
2414                  <li>
2415                    <span class="entry_type_enum_name">FACE_PRIORITY</span>
2416                    <span class="entry_type_enum_notes"><p>If face detection support exists,<wbr/> use face
2417detection data for auto-focus,<wbr/> auto-white balance,<wbr/> and
2418auto-exposure routines.<wbr/> If face detection statistics are
2419disabled (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/>
2420this should still operate correctly (but will not return
2421face detection statistics to the framework).<wbr/></p>
2422<p>Unlike the other scene modes,<wbr/> <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2423<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and android.<wbr/>control.<wbr/>af<wbr/>Mode
2424remain active when FACE_<wbr/>PRIORITY is set.<wbr/></p></span>
2425                  </li>
2426                  <li>
2427                    <span class="entry_type_enum_name">ACTION</span>
2428                    <span class="entry_type_enum_optional">optional</span>
2429                    <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving objects.<wbr/>
2430Similar to SPORTS.<wbr/></p></span>
2431                  </li>
2432                  <li>
2433                    <span class="entry_type_enum_name">PORTRAIT</span>
2434                    <span class="entry_type_enum_optional">optional</span>
2435                    <span class="entry_type_enum_notes"><p>Optimized for still photos of people.<wbr/></p></span>
2436                  </li>
2437                  <li>
2438                    <span class="entry_type_enum_name">LANDSCAPE</span>
2439                    <span class="entry_type_enum_optional">optional</span>
2440                    <span class="entry_type_enum_notes"><p>Optimized for photos of distant macroscopic objects.<wbr/></p></span>
2441                  </li>
2442                  <li>
2443                    <span class="entry_type_enum_name">NIGHT</span>
2444                    <span class="entry_type_enum_optional">optional</span>
2445                    <span class="entry_type_enum_notes"><p>Optimized for low-light settings.<wbr/></p></span>
2446                  </li>
2447                  <li>
2448                    <span class="entry_type_enum_name">NIGHT_PORTRAIT</span>
2449                    <span class="entry_type_enum_optional">optional</span>
2450                    <span class="entry_type_enum_notes"><p>Optimized for still photos of people in low-light
2451settings.<wbr/></p></span>
2452                  </li>
2453                  <li>
2454                    <span class="entry_type_enum_name">THEATRE</span>
2455                    <span class="entry_type_enum_optional">optional</span>
2456                    <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings where flash must
2457remain off.<wbr/></p></span>
2458                  </li>
2459                  <li>
2460                    <span class="entry_type_enum_name">BEACH</span>
2461                    <span class="entry_type_enum_optional">optional</span>
2462                    <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor beach settings.<wbr/></p></span>
2463                  </li>
2464                  <li>
2465                    <span class="entry_type_enum_name">SNOW</span>
2466                    <span class="entry_type_enum_optional">optional</span>
2467                    <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor settings containing snow.<wbr/></p></span>
2468                  </li>
2469                  <li>
2470                    <span class="entry_type_enum_name">SUNSET</span>
2471                    <span class="entry_type_enum_optional">optional</span>
2472                    <span class="entry_type_enum_notes"><p>Optimized for scenes of the setting sun.<wbr/></p></span>
2473                  </li>
2474                  <li>
2475                    <span class="entry_type_enum_name">STEADYPHOTO</span>
2476                    <span class="entry_type_enum_optional">optional</span>
2477                    <span class="entry_type_enum_notes"><p>Optimized to avoid blurry photos due to small amounts of
2478device motion (for example: due to hand shake).<wbr/></p></span>
2479                  </li>
2480                  <li>
2481                    <span class="entry_type_enum_name">FIREWORKS</span>
2482                    <span class="entry_type_enum_optional">optional</span>
2483                    <span class="entry_type_enum_notes"><p>Optimized for nighttime photos of fireworks.<wbr/></p></span>
2484                  </li>
2485                  <li>
2486                    <span class="entry_type_enum_name">SPORTS</span>
2487                    <span class="entry_type_enum_optional">optional</span>
2488                    <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving people.<wbr/>
2489Similar to ACTION.<wbr/></p></span>
2490                  </li>
2491                  <li>
2492                    <span class="entry_type_enum_name">PARTY</span>
2493                    <span class="entry_type_enum_optional">optional</span>
2494                    <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings with multiple moving
2495people.<wbr/></p></span>
2496                  </li>
2497                  <li>
2498                    <span class="entry_type_enum_name">CANDLELIGHT</span>
2499                    <span class="entry_type_enum_optional">optional</span>
2500                    <span class="entry_type_enum_notes"><p>Optimized for dim settings where the main light source
2501is a flame.<wbr/></p></span>
2502                  </li>
2503                  <li>
2504                    <span class="entry_type_enum_name">BARCODE</span>
2505                    <span class="entry_type_enum_optional">optional</span>
2506                    <span class="entry_type_enum_notes"><p>Optimized for accurately capturing a photo of barcode
2507for use by camera applications that wish to read the
2508barcode value.<wbr/></p></span>
2509                  </li>
2510                </ul>
2511
2512            </td> <!-- entry_type -->
2513
2514            <td class="entry_description">
2515              <p>A camera mode optimized for conditions typical in a particular
2516capture setting.<wbr/></p>
2517            </td>
2518
2519            <td class="entry_units">
2520            </td>
2521
2522            <td class="entry_range">
2523              <p><a href="#static_android.control.availableSceneModes">android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes</a></p>
2524            </td>
2525
2526            <td class="entry_tags">
2527              <ul class="entry_tags">
2528                  <li><a href="#tag_BC">BC</a></li>
2529              </ul>
2530            </td>
2531
2532          </tr>
2533          <tr class="entries_header">
2534            <th class="th_details" colspan="5">Details</th>
2535          </tr>
2536          <tr class="entry_cont">
2537            <td class="entry_details" colspan="5">
2538              <p>This is the mode that that is active when
2539<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/>
2540these modes will disable <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2541<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> while in use.<wbr/></p>
2542<p>The interpretation and implementation of these scene modes is left
2543to the implementor of the camera device.<wbr/> Their behavior will not be
2544consistent across all devices,<wbr/> and any given device may only implement
2545a subset of these modes.<wbr/></p>
2546            </td>
2547          </tr>
2548
2549          <tr class="entries_header">
2550            <th class="th_details" colspan="5">HAL Implementation Details</th>
2551          </tr>
2552          <tr class="entry_cont">
2553            <td class="entry_details" colspan="5">
2554              <p>HAL implementations that include scene modes are expected to provide
2555the per-scene settings to use for <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2556<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
2557<a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
2558            </td>
2559          </tr>
2560
2561          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2562           <!-- end of entry -->
2563        
2564                
2565          <tr class="entry" id="controls_android.control.videoStabilizationMode">
2566            <td class="entry_name" rowspan="3">
2567              android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode
2568            </td>
2569            <td class="entry_type">
2570                <span class="entry_type_name entry_type_name_enum">byte</span>
2571
2572              <span class="entry_type_visibility"> [public as boolean]</span>
2573
2574                <ul class="entry_type_enum">
2575                  <li>
2576                    <span class="entry_type_enum_name">OFF</span>
2577                  </li>
2578                  <li>
2579                    <span class="entry_type_enum_name">ON</span>
2580                  </li>
2581                </ul>
2582
2583            </td> <!-- entry_type -->
2584
2585            <td class="entry_description">
2586              <p>Whether video stabilization is
2587active</p>
2588            </td>
2589
2590            <td class="entry_units">
2591            </td>
2592
2593            <td class="entry_range">
2594            </td>
2595
2596            <td class="entry_tags">
2597              <ul class="entry_tags">
2598                  <li><a href="#tag_BC">BC</a></li>
2599              </ul>
2600            </td>
2601
2602          </tr>
2603          <tr class="entries_header">
2604            <th class="th_details" colspan="5">Details</th>
2605          </tr>
2606          <tr class="entry_cont">
2607            <td class="entry_details" colspan="5">
2608              <p>If enabled,<wbr/> video stabilization can modify the
2609<a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a> to keep the video stream
2610stabilized</p>
2611            </td>
2612          </tr>
2613
2614
2615          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2616           <!-- end of entry -->
2617        
2618        
2619
2620      <!-- end of kind -->
2621      </tbody>
2622      <tr><td colspan="6" class="kind">static</td></tr>
2623
2624      <thead class="entries_header">
2625        <tr>
2626          <th class="th_name">Property Name</th>
2627          <th class="th_type">Type</th>
2628          <th class="th_description">Description</th>
2629          <th class="th_units">Units</th>
2630          <th class="th_range">Range</th>
2631          <th class="th_tags">Tags</th>
2632        </tr>
2633      </thead>
2634
2635      <tbody>
2636
2637        
2638
2639        
2640
2641        
2642
2643        
2644
2645                
2646          <tr class="entry" id="static_android.control.aeAvailableAntibandingModes">
2647            <td class="entry_name" rowspan="3">
2648              android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes
2649            </td>
2650            <td class="entry_type">
2651                <span class="entry_type_name">byte</span>
2652                <span class="entry_type_container">x</span>
2653
2654                <span class="entry_type_array">
2655                  n
2656                </span>
2657              <span class="entry_type_visibility"> [public]</span>
2658                <div class="entry_type_notes">list of enums</div>
2659
2660
2661            </td> <!-- entry_type -->
2662
2663            <td class="entry_description">
2664              <p>The set of auto-exposure antibanding modes that are
2665supported by this camera device.<wbr/></p>
2666            </td>
2667
2668            <td class="entry_units">
2669            </td>
2670
2671            <td class="entry_range">
2672            </td>
2673
2674            <td class="entry_tags">
2675            </td>
2676
2677          </tr>
2678          <tr class="entries_header">
2679            <th class="th_details" colspan="5">Details</th>
2680          </tr>
2681          <tr class="entry_cont">
2682            <td class="entry_details" colspan="5">
2683              <p>Not all of the auto-exposure anti-banding modes may be
2684supported by a given camera device.<wbr/> This field lists the
2685valid anti-banding modes that the application may request
2686for this camera device; they must include AUTO.<wbr/></p>
2687            </td>
2688          </tr>
2689
2690
2691          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2692           <!-- end of entry -->
2693        
2694                
2695          <tr class="entry" id="static_android.control.aeAvailableModes">
2696            <td class="entry_name" rowspan="3">
2697              android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes
2698            </td>
2699            <td class="entry_type">
2700                <span class="entry_type_name">byte</span>
2701                <span class="entry_type_container">x</span>
2702
2703                <span class="entry_type_array">
2704                  n
2705                </span>
2706              <span class="entry_type_visibility"> [public]</span>
2707                <div class="entry_type_notes">list of enums</div>
2708
2709
2710            </td> <!-- entry_type -->
2711
2712            <td class="entry_description">
2713              <p>The set of auto-exposure modes that are supported by this
2714camera device.<wbr/></p>
2715            </td>
2716
2717            <td class="entry_units">
2718            </td>
2719
2720            <td class="entry_range">
2721            </td>
2722
2723            <td class="entry_tags">
2724              <ul class="entry_tags">
2725                  <li><a href="#tag_BC">BC</a></li>
2726              </ul>
2727            </td>
2728
2729          </tr>
2730          <tr class="entries_header">
2731            <th class="th_details" colspan="5">Details</th>
2732          </tr>
2733          <tr class="entry_cont">
2734            <td class="entry_details" colspan="5">
2735              <p>Not all the auto-exposure modes may be supported by a
2736given camera device,<wbr/> especially if no flash unit is
2737available.<wbr/> This entry lists the valid modes for
2738<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> for this camera device.<wbr/></p>
2739<p>All camera devices support ON,<wbr/> and all camera devices with
2740flash units support ON_<wbr/>AUTO_<wbr/>FLASH and
2741ON_<wbr/>ALWAYS_<wbr/>FLASH.<wbr/></p>
2742<p>Full-capability camera devices always support OFF mode,<wbr/>
2743which enables application control of camera exposure time,<wbr/>
2744sensitivity,<wbr/> and frame duration.<wbr/></p>
2745            </td>
2746          </tr>
2747
2748
2749          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2750           <!-- end of entry -->
2751        
2752                
2753          <tr class="entry" id="static_android.control.aeAvailableTargetFpsRanges">
2754            <td class="entry_name" rowspan="1">
2755              android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges
2756            </td>
2757            <td class="entry_type">
2758                <span class="entry_type_name">int32</span>
2759                <span class="entry_type_container">x</span>
2760
2761                <span class="entry_type_array">
2762                  2 x n
2763                </span>
2764              <span class="entry_type_visibility"> [public]</span>
2765                <div class="entry_type_notes">list of pairs of frame rates</div>
2766
2767
2768            </td> <!-- entry_type -->
2769
2770            <td class="entry_description">
2771              <p>List of frame rate ranges supported by the
2772AE algorithm/<wbr/>hardware</p>
2773            </td>
2774
2775            <td class="entry_units">
2776            </td>
2777
2778            <td class="entry_range">
2779            </td>
2780
2781            <td class="entry_tags">
2782            </td>
2783
2784          </tr>
2785
2786
2787          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2788           <!-- end of entry -->
2789        
2790                
2791          <tr class="entry" id="static_android.control.aeCompensationRange">
2792            <td class="entry_name" rowspan="1">
2793              android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range
2794            </td>
2795            <td class="entry_type">
2796                <span class="entry_type_name">int32</span>
2797                <span class="entry_type_container">x</span>
2798
2799                <span class="entry_type_array">
2800                  2
2801                </span>
2802              <span class="entry_type_visibility"> [public]</span>
2803
2804
2805            </td> <!-- entry_type -->
2806
2807            <td class="entry_description">
2808              <p>Maximum and minimum exposure compensation
2809setting,<wbr/> in counts of
2810android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step<wbr/>Size</p>
2811            </td>
2812
2813            <td class="entry_units">
2814            </td>
2815
2816            <td class="entry_range">
2817              <p>At least (-2,<wbr/>2)/<wbr/>(exp compensation step
2818size)</p>
2819            </td>
2820
2821            <td class="entry_tags">
2822              <ul class="entry_tags">
2823                  <li><a href="#tag_BC">BC</a></li>
2824              </ul>
2825            </td>
2826
2827          </tr>
2828
2829
2830          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2831           <!-- end of entry -->
2832        
2833                
2834          <tr class="entry" id="static_android.control.aeCompensationStep">
2835            <td class="entry_name" rowspan="1">
2836              android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step
2837            </td>
2838            <td class="entry_type">
2839                <span class="entry_type_name">rational</span>
2840
2841              <span class="entry_type_visibility"> [public]</span>
2842
2843
2844            </td> <!-- entry_type -->
2845
2846            <td class="entry_description">
2847              <p>Smallest step by which exposure compensation
2848can be changed</p>
2849            </td>
2850
2851            <td class="entry_units">
2852            </td>
2853
2854            <td class="entry_range">
2855              <p>&lt;= 1/<wbr/>2</p>
2856            </td>
2857
2858            <td class="entry_tags">
2859              <ul class="entry_tags">
2860                  <li><a href="#tag_BC">BC</a></li>
2861              </ul>
2862            </td>
2863
2864          </tr>
2865
2866
2867          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2868           <!-- end of entry -->
2869        
2870                
2871          <tr class="entry" id="static_android.control.afAvailableModes">
2872            <td class="entry_name" rowspan="3">
2873              android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes
2874            </td>
2875            <td class="entry_type">
2876                <span class="entry_type_name">byte</span>
2877                <span class="entry_type_container">x</span>
2878
2879                <span class="entry_type_array">
2880                  n
2881                </span>
2882              <span class="entry_type_visibility"> [public]</span>
2883                <div class="entry_type_notes">List of enums</div>
2884
2885
2886            </td> <!-- entry_type -->
2887
2888            <td class="entry_description">
2889              <p>List of AF modes that can be
2890selected with <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>.<wbr/></p>
2891            </td>
2892
2893            <td class="entry_units">
2894            </td>
2895
2896            <td class="entry_range">
2897            </td>
2898
2899            <td class="entry_tags">
2900              <ul class="entry_tags">
2901                  <li><a href="#tag_BC">BC</a></li>
2902              </ul>
2903            </td>
2904
2905          </tr>
2906          <tr class="entries_header">
2907            <th class="th_details" colspan="5">Details</th>
2908          </tr>
2909          <tr class="entry_cont">
2910            <td class="entry_details" colspan="5">
2911              <p>Not all the auto-focus modes may be supported by a
2912given camera device.<wbr/> This entry lists the valid modes for
2913<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> for this camera device.<wbr/></p>
2914<p>All camera devices will support OFF mode,<wbr/> and all camera devices with
2915adjustable focuser units (<code><a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a> &gt; 0</code>)
2916will support AUTO mode.<wbr/></p>
2917            </td>
2918          </tr>
2919
2920
2921          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2922           <!-- end of entry -->
2923        
2924                
2925          <tr class="entry" id="static_android.control.availableEffects">
2926            <td class="entry_name" rowspan="3">
2927              android.<wbr/>control.<wbr/>available<wbr/>Effects
2928            </td>
2929            <td class="entry_type">
2930                <span class="entry_type_name">byte</span>
2931                <span class="entry_type_container">x</span>
2932
2933                <span class="entry_type_array">
2934                  n
2935                </span>
2936              <span class="entry_type_visibility"> [public]</span>
2937                <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>effect<wbr/>Mode).<wbr/></div>
2938
2939
2940            </td> <!-- entry_type -->
2941
2942            <td class="entry_description">
2943              <p>List containing the subset of color effects
2944specified in <a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a> that is supported by
2945this device.<wbr/></p>
2946            </td>
2947
2948            <td class="entry_units">
2949            </td>
2950
2951            <td class="entry_range">
2952              <p>Any subset of enums from those specified in
2953<a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a>.<wbr/>  OFF must be included in any subset.<wbr/></p>
2954            </td>
2955
2956            <td class="entry_tags">
2957              <ul class="entry_tags">
2958                  <li><a href="#tag_BC">BC</a></li>
2959              </ul>
2960            </td>
2961
2962          </tr>
2963          <tr class="entries_header">
2964            <th class="th_details" colspan="5">Details</th>
2965          </tr>
2966          <tr class="entry_cont">
2967            <td class="entry_details" colspan="5">
2968              <p>This list contains the color effect modes that can be applied to
2969images produced by the camera device.<wbr/> Only modes that have
2970been fully implemented for the current device may be included here.<wbr/>
2971Implementations are not expected to be consistent across all devices.<wbr/>
2972If no color effect modes are available for a device,<wbr/> this should
2973simply be set to OFF.<wbr/></p>
2974<p>A color effect will only be applied if
2975<a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF.<wbr/></p>
2976            </td>
2977          </tr>
2978
2979
2980          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2981           <!-- end of entry -->
2982        
2983                
2984          <tr class="entry" id="static_android.control.availableSceneModes">
2985            <td class="entry_name" rowspan="3">
2986              android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes
2987            </td>
2988            <td class="entry_type">
2989                <span class="entry_type_name">byte</span>
2990                <span class="entry_type_container">x</span>
2991
2992                <span class="entry_type_array">
2993                  n
2994                </span>
2995              <span class="entry_type_visibility"> [public]</span>
2996                <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>scene<wbr/>Mode).<wbr/></div>
2997
2998
2999            </td> <!-- entry_type -->
3000
3001            <td class="entry_description">
3002              <p>List containing a subset of scene modes
3003specified in <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a>.<wbr/></p>
3004            </td>
3005
3006            <td class="entry_units">
3007            </td>
3008
3009            <td class="entry_range">
3010              <p>Any subset of the enums specified in android.<wbr/>control.<wbr/>scene<wbr/>Mode
3011not including DISABLED,<wbr/> or solely DISABLED if no
3012scene modes are available.<wbr/> FACE_<wbr/>PRIORITY must be included
3013if face detection is supported (i.<wbr/>e.<wbr/><code><a href="#static_android.statistics.info.maxFaceCount">android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Face<wbr/>Count</a> &gt; 0</code>).<wbr/></p>
3014            </td>
3015
3016            <td class="entry_tags">
3017              <ul class="entry_tags">
3018                  <li><a href="#tag_BC">BC</a></li>
3019              </ul>
3020            </td>
3021
3022          </tr>
3023          <tr class="entries_header">
3024            <th class="th_details" colspan="5">Details</th>
3025          </tr>
3026          <tr class="entry_cont">
3027            <td class="entry_details" colspan="5">
3028              <p>This list contains scene modes that can be set for the camera device.<wbr/>
3029Only scene modes that have been fully implemented for the
3030camera device may be included here.<wbr/> Implementations are not expected
3031to be consistent across all devices.<wbr/> If no scene modes are supported
3032by the camera device,<wbr/> this will be set to <code>[DISABLED]</code>.<wbr/></p>
3033            </td>
3034          </tr>
3035
3036
3037          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3038           <!-- end of entry -->
3039        
3040                
3041          <tr class="entry" id="static_android.control.availableVideoStabilizationModes">
3042            <td class="entry_name" rowspan="1">
3043              android.<wbr/>control.<wbr/>available<wbr/>Video<wbr/>Stabilization<wbr/>Modes
3044            </td>
3045            <td class="entry_type">
3046                <span class="entry_type_name">byte</span>
3047                <span class="entry_type_container">x</span>
3048
3049                <span class="entry_type_array">
3050                  n
3051                </span>
3052              <span class="entry_type_visibility"> [public]</span>
3053                <div class="entry_type_notes">List of enums.<wbr/></div>
3054
3055
3056            </td> <!-- entry_type -->
3057
3058            <td class="entry_description">
3059              <p>List of video stabilization modes that can
3060be supported</p>
3061            </td>
3062
3063            <td class="entry_units">
3064            </td>
3065
3066            <td class="entry_range">
3067              <p>OFF must be included</p>
3068            </td>
3069
3070            <td class="entry_tags">
3071              <ul class="entry_tags">
3072                  <li><a href="#tag_BC">BC</a></li>
3073              </ul>
3074            </td>
3075
3076          </tr>
3077
3078
3079          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3080           <!-- end of entry -->
3081        
3082                
3083          <tr class="entry" id="static_android.control.awbAvailableModes">
3084            <td class="entry_name" rowspan="3">
3085              android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes
3086            </td>
3087            <td class="entry_type">
3088                <span class="entry_type_name">byte</span>
3089                <span class="entry_type_container">x</span>
3090
3091                <span class="entry_type_array">
3092                  n
3093                </span>
3094              <span class="entry_type_visibility"> [public]</span>
3095                <div class="entry_type_notes">List of enums</div>
3096
3097
3098            </td> <!-- entry_type -->
3099
3100            <td class="entry_description">
3101              <p>The set of auto-white-balance modes (<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>)
3102that are supported by this camera device.<wbr/></p>
3103            </td>
3104
3105            <td class="entry_units">
3106            </td>
3107
3108            <td class="entry_range">
3109            </td>
3110
3111            <td class="entry_tags">
3112              <ul class="entry_tags">
3113                  <li><a href="#tag_BC">BC</a></li>
3114              </ul>
3115            </td>
3116
3117          </tr>
3118          <tr class="entries_header">
3119            <th class="th_details" colspan="5">Details</th>
3120          </tr>
3121          <tr class="entry_cont">
3122            <td class="entry_details" colspan="5">
3123              <p>Not all the auto-white-balance modes may be supported by a
3124given camera device.<wbr/> This entry lists the valid modes for
3125<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> for this camera device.<wbr/></p>
3126<p>All camera devices will support ON mode.<wbr/></p>
3127<p>Full-capability camera devices will always support OFF mode,<wbr/>
3128which enables application control of white balance,<wbr/> by using
3129<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/></p>
3130            </td>
3131          </tr>
3132
3133
3134          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3135           <!-- end of entry -->
3136        
3137                
3138          <tr class="entry" id="static_android.control.maxRegions">
3139            <td class="entry_name" rowspan="1">
3140              android.<wbr/>control.<wbr/>max<wbr/>Regions
3141            </td>
3142            <td class="entry_type">
3143                <span class="entry_type_name">int32</span>
3144                <span class="entry_type_container">x</span>
3145
3146                <span class="entry_type_array">
3147                  3
3148                </span>
3149              <span class="entry_type_visibility"> [public]</span>
3150
3151
3152            </td> <!-- entry_type -->
3153
3154            <td class="entry_description">
3155              <p>List of the maximum number of regions that can be used for metering in
3156auto-exposure (AE),<wbr/> auto-white balance (AWB),<wbr/> and auto-focus (AF);
3157this corresponds to the the maximum number of elements in
3158<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/>
3159and <a href="#controls_android.control.afRegions">android.<wbr/>control.<wbr/>af<wbr/>Regions</a>.<wbr/></p>
3160            </td>
3161
3162            <td class="entry_units">
3163            </td>
3164
3165            <td class="entry_range">
3166              <p>Value must be &gt;= 0 for each element.<wbr/> For full-capability devices
3167this value must be &gt;= 1 for AE and AF.<wbr/> The order of the elements is:
3168<code>(AE,<wbr/> AWB,<wbr/> AF)</code>.<wbr/></p>
3169            </td>
3170
3171            <td class="entry_tags">
3172              <ul class="entry_tags">
3173                  <li><a href="#tag_BC">BC</a></li>
3174              </ul>
3175            </td>
3176
3177          </tr>
3178
3179
3180          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3181           <!-- end of entry -->
3182        
3183                
3184          <tr class="entry" id="static_android.control.sceneModeOverrides">
3185            <td class="entry_name" rowspan="5">
3186              android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides
3187            </td>
3188            <td class="entry_type">
3189                <span class="entry_type_name">byte</span>
3190                <span class="entry_type_container">x</span>
3191
3192                <span class="entry_type_array">
3193                  3 x length(availableSceneModes)
3194                </span>
3195              <span class="entry_type_visibility"> [system]</span>
3196
3197
3198            </td> <!-- entry_type -->
3199
3200            <td class="entry_description">
3201              <p>Ordered list of auto-exposure,<wbr/> auto-white balance,<wbr/> and auto-focus
3202settings to use with each available scene mode.<wbr/></p>
3203            </td>
3204
3205            <td class="entry_units">
3206            </td>
3207
3208            <td class="entry_range">
3209              <p>For each available scene mode,<wbr/> the list must contain three
3210entries containing the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3211<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
3212by the camera device.<wbr/> The entry order is <code>(aeMode,<wbr/> awbMode,<wbr/> afMode)</code>
3213where aeMode has the lowest index position.<wbr/></p>
3214            </td>
3215
3216            <td class="entry_tags">
3217              <ul class="entry_tags">
3218                  <li><a href="#tag_BC">BC</a></li>
3219              </ul>
3220            </td>
3221
3222          </tr>
3223          <tr class="entries_header">
3224            <th class="th_details" colspan="5">Details</th>
3225          </tr>
3226          <tr class="entry_cont">
3227            <td class="entry_details" colspan="5">
3228              <p>When a scene mode is enabled,<wbr/> the camera device is expected
3229to 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/>
3230and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> with its preferred settings for
3231that scene mode.<wbr/></p>
3232<p>The order of this list matches that of availableSceneModes,<wbr/>
3233with 3 entries for each mode.<wbr/>  The overrides listed
3234for FACE_<wbr/>PRIORITY are ignored,<wbr/> since for that
3235mode the application-set <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3236<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
3237used instead,<wbr/> matching the behavior when android.<wbr/>control.<wbr/>mode
3238is set to AUTO.<wbr/> It is recommended that the FACE_<wbr/>PRIORITY
3239overrides should be set to 0.<wbr/></p>
3240<p>For example,<wbr/> if availableSceneModes contains
3241<code>(FACE_<wbr/>PRIORITY,<wbr/> ACTION,<wbr/> NIGHT)</code>,<wbr/>  then the camera framework
3242expects sceneModeOverrides to have 9 entries formatted like:
3243<code>(0,<wbr/> 0,<wbr/> 0,<wbr/> ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> AUTO,<wbr/> CONTINUOUS_<wbr/>PICTURE,<wbr/>
3244ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> INCANDESCENT,<wbr/> AUTO)</code>.<wbr/></p>
3245            </td>
3246          </tr>
3247
3248          <tr class="entries_header">
3249            <th class="th_details" colspan="5">HAL Implementation Details</th>
3250          </tr>
3251          <tr class="entry_cont">
3252            <td class="entry_details" colspan="5">
3253              <p>To maintain backward compatibility,<wbr/> this list will be made available
3254in the static metadata of the camera service.<wbr/>  The camera service will
3255use these values to set <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3256<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
3257mode other than FACE_<wbr/>PRIORITY.<wbr/></p>
3258            </td>
3259          </tr>
3260
3261          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3262           <!-- end of entry -->
3263        
3264        
3265
3266      <!-- end of kind -->
3267      </tbody>
3268      <tr><td colspan="6" class="kind">dynamic</td></tr>
3269
3270      <thead class="entries_header">
3271        <tr>
3272          <th class="th_name">Property Name</th>
3273          <th class="th_type">Type</th>
3274          <th class="th_description">Description</th>
3275          <th class="th_units">Units</th>
3276          <th class="th_range">Range</th>
3277          <th class="th_tags">Tags</th>
3278        </tr>
3279      </thead>
3280
3281      <tbody>
3282
3283        
3284
3285        
3286
3287        
3288
3289        
3290
3291                
3292          <tr class="entry" id="dynamic_android.control.aePrecaptureId">
3293            <td class="entry_name" rowspan="3">
3294              android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Id
3295            </td>
3296            <td class="entry_type">
3297                <span class="entry_type_name">int32</span>
3298
3299              <span class="entry_type_visibility"> [hidden]</span>
3300
3301
3302            </td> <!-- entry_type -->
3303
3304            <td class="entry_description">
3305              <p>The ID sent with the latest
3306CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING call</p>
3307            </td>
3308
3309            <td class="entry_units">
3310            </td>
3311
3312            <td class="entry_range">
3313              <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
3314            </td>
3315
3316            <td class="entry_tags">
3317            </td>
3318
3319          </tr>
3320          <tr class="entries_header">
3321            <th class="th_details" colspan="5">Details</th>
3322          </tr>
3323          <tr class="entry_cont">
3324            <td class="entry_details" colspan="5">
3325              <p>Must be 0 if no
3326CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING trigger received yet
3327by HAL.<wbr/> Always updated even if AE algorithm ignores the
3328trigger</p>
3329            </td>
3330          </tr>
3331
3332
3333          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3334           <!-- end of entry -->
3335        
3336                
3337          <tr class="entry" id="dynamic_android.control.aeMode">
3338            <td class="entry_name" rowspan="3">
3339              android.<wbr/>control.<wbr/>ae<wbr/>Mode
3340            </td>
3341            <td class="entry_type">
3342                <span class="entry_type_name entry_type_name_enum">byte</span>
3343
3344              <span class="entry_type_visibility"> [public]</span>
3345
3346                <ul class="entry_type_enum">
3347                  <li>
3348                    <span class="entry_type_enum_name">OFF</span>
3349                    <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled;
3350the application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3351<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
3352<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera
3353device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's
3354a flash unit for this camera device.<wbr/></p></span>
3355                  </li>
3356                  <li>
3357                    <span class="entry_type_enum_name">ON</span>
3358                    <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
3359with no flash control.<wbr/> The application's values for
3360<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3361<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
3362<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The
3363application has control over the various
3364android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
3365                  </li>
3366                  <li>
3367                    <span class="entry_type_enum_name">ON_AUTO_FLASH</span>
3368                    <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
3369the camera's flash unit,<wbr/> firing it in low-light
3370conditions.<wbr/> The flash may be fired during a
3371precapture sequence (triggered by
3372<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and may be fired
3373for captures for which the
3374<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
3375STILL_<wbr/>CAPTURE</p></span>
3376                  </li>
3377                  <li>
3378                    <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span>
3379                    <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
3380the camera's flash unit,<wbr/> always firing it for still
3381captures.<wbr/> The flash may be fired during a precapture
3382sequence (triggered by
3383<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and will always
3384be fired for captures for which the
3385<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
3386STILL_<wbr/>CAPTURE</p></span>
3387                  </li>
3388                  <li>
3389                    <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span>
3390                    <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
3391reduction.<wbr/> If deemed necessary by the camera device,<wbr/>
3392a red eye reduction flash will fire during the
3393precapture sequence.<wbr/></p></span>
3394                  </li>
3395                </ul>
3396
3397            </td> <!-- entry_type -->
3398
3399            <td class="entry_description">
3400              <p>The desired mode for the camera device's
3401auto-exposure routine.<wbr/></p>
3402            </td>
3403
3404            <td class="entry_units">
3405            </td>
3406
3407            <td class="entry_range">
3408              <p><a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a></p>
3409            </td>
3410
3411            <td class="entry_tags">
3412              <ul class="entry_tags">
3413                  <li><a href="#tag_BC">BC</a></li>
3414              </ul>
3415            </td>
3416
3417          </tr>
3418          <tr class="entries_header">
3419            <th class="th_details" colspan="5">Details</th>
3420          </tr>
3421          <tr class="entry_cont">
3422            <td class="entry_details" colspan="5">
3423              <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
3424AUTO.<wbr/></p>
3425<p>When set to any of the ON modes,<wbr/> the camera device's
3426auto-exposure routine is enabled,<wbr/> overriding the
3427application's selected exposure time,<wbr/> sensor sensitivity,<wbr/>
3428and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3429<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
3430<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes
3431is selected,<wbr/> the camera device's flash unit controls are
3432also overridden.<wbr/></p>
3433<p>The FLASH modes are only available if the camera device
3434has a flash unit (<a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is <code>true</code>).<wbr/></p>
3435<p>If flash TORCH mode is desired,<wbr/> this field must be set to
3436ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p>
3437<p>When set to any of the ON modes,<wbr/> the values chosen by the
3438camera device auto-exposure routine for the overridden
3439fields for a given capture will be available in its
3440CaptureResult.<wbr/></p>
3441            </td>
3442          </tr>
3443
3444
3445          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3446           <!-- end of entry -->
3447        
3448                
3449          <tr class="entry" id="dynamic_android.control.aeRegions">
3450            <td class="entry_name" rowspan="3">
3451              android.<wbr/>control.<wbr/>ae<wbr/>Regions
3452            </td>
3453            <td class="entry_type">
3454                <span class="entry_type_name">int32</span>
3455                <span class="entry_type_container">x</span>
3456
3457                <span class="entry_type_array">
3458                  5 x area_count
3459                </span>
3460              <span class="entry_type_visibility"> [public]</span>
3461
3462
3463            </td> <!-- entry_type -->
3464
3465            <td class="entry_description">
3466              <p>List of areas to use for
3467metering.<wbr/></p>
3468            </td>
3469
3470            <td class="entry_units">
3471            </td>
3472
3473            <td class="entry_range">
3474              <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[0]</code></p>
3475            </td>
3476
3477            <td class="entry_tags">
3478              <ul class="entry_tags">
3479                  <li><a href="#tag_BC">BC</a></li>
3480              </ul>
3481            </td>
3482
3483          </tr>
3484          <tr class="entries_header">
3485            <th class="th_details" colspan="5">Details</th>
3486          </tr>
3487          <tr class="entry_cont">
3488            <td class="entry_details" colspan="5">
3489              <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
3490xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
3491specified coordinates.<wbr/></p>
3492<p>The coordinate system is based on the active pixel array,<wbr/>
3493with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
3494(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
3495<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
3496bottom-right pixel in the active pixel array.<wbr/> The weight
3497should be nonnegative.<wbr/></p>
3498<p>If all regions have 0 weight,<wbr/> then no specific metering area
3499needs to be used by the HAL.<wbr/> If the metering region is
3500outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
3501should ignore the sections outside the region and output the
3502used sections in the frame metadata.<wbr/></p>
3503            </td>
3504          </tr>
3505
3506
3507          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3508           <!-- end of entry -->
3509        
3510                
3511          <tr class="entry" id="dynamic_android.control.aeState">
3512            <td class="entry_name" rowspan="3">
3513              android.<wbr/>control.<wbr/>ae<wbr/>State
3514            </td>
3515            <td class="entry_type">
3516                <span class="entry_type_name entry_type_name_enum">byte</span>
3517
3518              <span class="entry_type_visibility"> [public]</span>
3519
3520                <ul class="entry_type_enum">
3521                  <li>
3522                    <span class="entry_type_enum_name">INACTIVE</span>
3523                    <span class="entry_type_enum_notes"><p>AE is off or recently reset.<wbr/> When a camera device is opened,<wbr/> it starts in
3524this state.<wbr/></p></span>
3525                  </li>
3526                  <li>
3527                    <span class="entry_type_enum_name">SEARCHING</span>
3528                    <span class="entry_type_enum_notes"><p>AE doesn't yet have a good set of control values
3529for the current scene.<wbr/></p></span>
3530                  </li>
3531                  <li>
3532                    <span class="entry_type_enum_name">CONVERGED</span>
3533                    <span class="entry_type_enum_notes"><p>AE has a good set of control values for the
3534current scene.<wbr/></p></span>
3535                  </li>
3536                  <li>
3537                    <span class="entry_type_enum_name">LOCKED</span>
3538                    <span class="entry_type_enum_notes"><p>AE has been locked.<wbr/></p></span>
3539                  </li>
3540                  <li>
3541                    <span class="entry_type_enum_name">FLASH_REQUIRED</span>
3542                    <span class="entry_type_enum_notes"><p>AE has a good set of control values,<wbr/> but flash
3543needs to be fired for good quality still
3544capture.<wbr/></p></span>
3545                  </li>
3546                  <li>
3547                    <span class="entry_type_enum_name">PRECAPTURE</span>
3548                    <span class="entry_type_enum_notes"><p>AE has been asked to do a precapture sequence
3549(through the <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> START),<wbr/>
3550and is currently executing it.<wbr/> Once PRECAPTURE
3551completes,<wbr/> AE will transition to CONVERGED or
3552FLASH_<wbr/>REQUIRED as appropriate.<wbr/></p></span>
3553                  </li>
3554                </ul>
3555
3556            </td> <!-- entry_type -->
3557
3558            <td class="entry_description">
3559              <p>Current state of AE algorithm</p>
3560            </td>
3561
3562            <td class="entry_units">
3563            </td>
3564
3565            <td class="entry_range">
3566            </td>
3567
3568            <td class="entry_tags">
3569            </td>
3570
3571          </tr>
3572          <tr class="entries_header">
3573            <th class="th_details" colspan="5">Details</th>
3574          </tr>
3575          <tr class="entry_cont">
3576            <td class="entry_details" colspan="5">
3577              <p>Switching between or enabling AE modes (<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>) always
3578resets the AE state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
3579or <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
3580the algorithm states to INACTIVE.<wbr/></p>
3581<p>The camera device can do several state transitions between two results,<wbr/> if it is
3582allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
3583seen in a result.<wbr/></p>
3584<p>The state in the result is the state for this image (in sync with this image): if
3585AE state becomes CONVERGED,<wbr/> then the image data associated with this result should
3586be good to use.<wbr/></p>
3587<p>Below are state transition tables for different AE modes.<wbr/></p>
3588<table>
3589<thead>
3590<tr>
3591<th align="center">State</th>
3592<th align="center">Transition Cause</th>
3593<th align="center">New State</th>
3594<th align="center">Notes</th>
3595</tr>
3596</thead>
3597<tbody>
3598<tr>
3599<td align="center">INACTIVE</td>
3600<td align="center"></td>
3601<td align="center">INACTIVE</td>
3602<td align="center">Camera device auto exposure algorithm is disabled</td>
3603</tr>
3604</tbody>
3605</table>
3606<p>When <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is AE_<wbr/>MODE_<wbr/>ON_<wbr/>*:</p>
3607<table>
3608<thead>
3609<tr>
3610<th align="center">State</th>
3611<th align="center">Transition Cause</th>
3612<th align="center">New State</th>
3613<th align="center">Notes</th>
3614</tr>
3615</thead>
3616<tbody>
3617<tr>
3618<td align="center">INACTIVE</td>
3619<td align="center">Camera device initiates AE scan</td>
3620<td align="center">SEARCHING</td>
3621<td align="center">Values changing</td>
3622</tr>
3623<tr>
3624<td align="center">INACTIVE</td>
3625<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3626<td align="center">LOCKED</td>
3627<td align="center">Values locked</td>
3628</tr>
3629<tr>
3630<td align="center">SEARCHING</td>
3631<td align="center">Camera device finishes AE scan</td>
3632<td align="center">CONVERGED</td>
3633<td align="center">Good values,<wbr/> not changing</td>
3634</tr>
3635<tr>
3636<td align="center">SEARCHING</td>
3637<td align="center">Camera device finishes AE scan</td>
3638<td align="center">FLASH_<wbr/>REQUIRED</td>
3639<td align="center">Converged but too dark w/<wbr/>o flash</td>
3640</tr>
3641<tr>
3642<td align="center">SEARCHING</td>
3643<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3644<td align="center">LOCKED</td>
3645<td align="center">Values locked</td>
3646</tr>
3647<tr>
3648<td align="center">CONVERGED</td>
3649<td align="center">Camera device initiates AE scan</td>
3650<td align="center">SEARCHING</td>
3651<td align="center">Values changing</td>
3652</tr>
3653<tr>
3654<td align="center">CONVERGED</td>
3655<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3656<td align="center">LOCKED</td>
3657<td align="center">Values locked</td>
3658</tr>
3659<tr>
3660<td align="center">FLASH_<wbr/>REQUIRED</td>
3661<td align="center">Camera device initiates AE scan</td>
3662<td align="center">SEARCHING</td>
3663<td align="center">Values changing</td>
3664</tr>
3665<tr>
3666<td align="center">FLASH_<wbr/>REQUIRED</td>
3667<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3668<td align="center">LOCKED</td>
3669<td align="center">Values locked</td>
3670</tr>
3671<tr>
3672<td align="center">LOCKED</td>
3673<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3674<td align="center">SEARCHING</td>
3675<td align="center">Values not good after unlock</td>
3676</tr>
3677<tr>
3678<td align="center">LOCKED</td>
3679<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3680<td align="center">CONVERGED</td>
3681<td align="center">Values good after unlock</td>
3682</tr>
3683<tr>
3684<td align="center">LOCKED</td>
3685<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3686<td align="center">FLASH_<wbr/>REQUIRED</td>
3687<td align="center">Exposure good,<wbr/> but too dark</td>
3688</tr>
3689<tr>
3690<td align="center">PRECAPTURE</td>
3691<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3692<td align="center">CONVERGED</td>
3693<td align="center">Ready for high-quality capture</td>
3694</tr>
3695<tr>
3696<td align="center">PRECAPTURE</td>
3697<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3698<td align="center">LOCKED</td>
3699<td align="center">Ready for high-quality capture</td>
3700</tr>
3701<tr>
3702<td align="center">Any state</td>
3703<td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is START</td>
3704<td align="center">PRECAPTURE</td>
3705<td align="center">Start AE precapture metering sequence</td>
3706</tr>
3707</tbody>
3708</table>
3709            </td>
3710          </tr>
3711
3712
3713          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3714           <!-- end of entry -->
3715        
3716                
3717          <tr class="entry" id="dynamic_android.control.afMode">
3718            <td class="entry_name" rowspan="3">
3719              android.<wbr/>control.<wbr/>af<wbr/>Mode
3720            </td>
3721            <td class="entry_type">
3722                <span class="entry_type_name entry_type_name_enum">byte</span>
3723
3724              <span class="entry_type_visibility"> [public]</span>
3725
3726                <ul class="entry_type_enum">
3727                  <li>
3728                    <span class="entry_type_enum_name">OFF</span>
3729                    <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
3730<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
3731application</p></span>
3732                  </li>
3733                  <li>
3734                    <span class="entry_type_enum_name">AUTO</span>
3735                    <span class="entry_type_enum_notes"><p>If lens is not fixed focus.<wbr/></p>
3736<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
3737is fixed-focus.<wbr/> In this mode,<wbr/> the lens does not move unless
3738the autofocus trigger action is called.<wbr/> When that trigger
3739is activated,<wbr/> AF must transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
3740the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
3741<p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
3742and sets the AF state to INACTIVE.<wbr/></p></span>
3743                  </li>
3744                  <li>
3745                    <span class="entry_type_enum_name">MACRO</span>
3746                    <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the lens does not move unless the
3747autofocus trigger action is called.<wbr/></p>
3748<p>When that trigger is activated,<wbr/> AF must transition to
3749ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or
3750NOT_<wbr/>FOCUSED).<wbr/>  Triggering cancel AF resets the lens
3751position to default,<wbr/> and sets the AF state to
3752INACTIVE.<wbr/></p></span>
3753                  </li>
3754                  <li>
3755                    <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
3756                    <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
3757position continually to attempt to provide a
3758constantly-in-focus image stream.<wbr/></p>
3759<p>The focusing behavior should be suitable for good quality
3760video recording; typically this means slower focus
3761movement and no overshoots.<wbr/> When the AF trigger is not
3762involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/>
3763and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED
3764states as appropriate.<wbr/> When the AF trigger is activated,<wbr/>
3765the algorithm should immediately transition into
3766AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
3767lens position until a cancel AF trigger is received.<wbr/></p>
3768<p>Once cancel is received,<wbr/> the algorithm should transition
3769back to INACTIVE and resume passive scan.<wbr/> Note that this
3770behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an
3771ongoing PASSIVE_<wbr/>SCAN must immediately be
3772canceled.<wbr/></p></span>
3773                  </li>
3774                  <li>
3775                    <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
3776                    <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
3777position continually to attempt to provide a
3778constantly-in-focus image stream.<wbr/></p>
3779<p>The focusing behavior should be suitable for still image
3780capture; typically this means focusing as fast as
3781possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF
3782algorithm should start in INACTIVE state,<wbr/> and then
3783transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as
3784appropriate as it attempts to maintain focus.<wbr/> When the AF
3785trigger is activated,<wbr/> the algorithm should finish its
3786PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into
3787AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
3788lens position until a cancel AF trigger is received.<wbr/></p>
3789<p>When the AF cancel trigger is activated,<wbr/> the algorithm
3790should transition back to INACTIVE and then act as if it
3791has just been started.<wbr/></p></span>
3792                  </li>
3793                  <li>
3794                    <span class="entry_type_enum_name">EDOF</span>
3795                    <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus).<wbr/> AF
3796trigger is ignored,<wbr/> AF state should always be
3797INACTIVE.<wbr/></p></span>
3798                  </li>
3799                </ul>
3800
3801            </td> <!-- entry_type -->
3802
3803            <td class="entry_description">
3804              <p>Whether AF is currently enabled,<wbr/> and what
3805mode it is set to</p>
3806            </td>
3807
3808            <td class="entry_units">
3809            </td>
3810
3811            <td class="entry_range">
3812              <p><a href="#static_android.control.afAvailableModes">android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes</a></p>
3813            </td>
3814
3815            <td class="entry_tags">
3816              <ul class="entry_tags">
3817                  <li><a href="#tag_BC">BC</a></li>
3818              </ul>
3819            </td>
3820
3821          </tr>
3822          <tr class="entries_header">
3823            <th class="th_details" colspan="5">Details</th>
3824          </tr>
3825          <tr class="entry_cont">
3826            <td class="entry_details" colspan="5">
3827              <p>Only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> = AUTO.<wbr/></p>
3828<p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
3829the camera device will report the current AF status in android.<wbr/>control.<wbr/>af<wbr/>State
3830in result metadata.<wbr/></p>
3831            </td>
3832          </tr>
3833
3834
3835          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3836           <!-- end of entry -->
3837        
3838                
3839          <tr class="entry" id="dynamic_android.control.afRegions">
3840            <td class="entry_name" rowspan="3">
3841              android.<wbr/>control.<wbr/>af<wbr/>Regions
3842            </td>
3843            <td class="entry_type">
3844                <span class="entry_type_name">int32</span>
3845                <span class="entry_type_container">x</span>
3846
3847                <span class="entry_type_array">
3848                  5 x area_count
3849                </span>
3850              <span class="entry_type_visibility"> [public]</span>
3851
3852
3853            </td> <!-- entry_type -->
3854
3855            <td class="entry_description">
3856              <p>List of areas to use for focus
3857estimation.<wbr/></p>
3858            </td>
3859
3860            <td class="entry_units">
3861            </td>
3862
3863            <td class="entry_range">
3864              <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[2]</code></p>
3865            </td>
3866
3867            <td class="entry_tags">
3868              <ul class="entry_tags">
3869                  <li><a href="#tag_BC">BC</a></li>
3870              </ul>
3871            </td>
3872
3873          </tr>
3874          <tr class="entries_header">
3875            <th class="th_details" colspan="5">Details</th>
3876          </tr>
3877          <tr class="entry_cont">
3878            <td class="entry_details" colspan="5">
3879              <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
3880xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
3881specified coordinates.<wbr/></p>
3882<p>The coordinate system is based on the active pixel array,<wbr/>
3883with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
3884(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
3885<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
3886bottom-right pixel in the active pixel array.<wbr/> The weight
3887should be nonnegative.<wbr/></p>
3888<p>If all regions have 0 weight,<wbr/> then no specific focus area
3889needs to be used by the HAL.<wbr/> If the focusing region is
3890outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
3891should ignore the sections outside the region and output the
3892used sections in the frame metadata.<wbr/></p>
3893            </td>
3894          </tr>
3895
3896
3897          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3898           <!-- end of entry -->
3899        
3900                
3901          <tr class="entry" id="dynamic_android.control.afState">
3902            <td class="entry_name" rowspan="3">
3903              android.<wbr/>control.<wbr/>af<wbr/>State
3904            </td>
3905            <td class="entry_type">
3906                <span class="entry_type_name entry_type_name_enum">byte</span>
3907
3908              <span class="entry_type_visibility"> [public]</span>
3909
3910                <ul class="entry_type_enum">
3911                  <li>
3912                    <span class="entry_type_enum_name">INACTIVE</span>
3913                    <span class="entry_type_enum_notes"><p>AF off or has not yet tried to scan/<wbr/>been asked
3914to scan.<wbr/>  When a camera device is opened,<wbr/> it starts in
3915this state.<wbr/></p></span>
3916                  </li>
3917                  <li>
3918                    <span class="entry_type_enum_name">PASSIVE_SCAN</span>
3919                    <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF is
3920currently doing an AF scan initiated by a continuous
3921autofocus mode</p></span>
3922                  </li>
3923                  <li>
3924                    <span class="entry_type_enum_name">PASSIVE_FOCUSED</span>
3925                    <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF currently
3926believes it is in focus,<wbr/> but may restart scanning at
3927any time.<wbr/></p></span>
3928                  </li>
3929                  <li>
3930                    <span class="entry_type_enum_name">ACTIVE_SCAN</span>
3931                    <span class="entry_type_enum_notes"><p>if AUTO or MACRO modes are supported.<wbr/> AF is doing
3932an AF scan because it was triggered by AF
3933trigger</p></span>
3934                  </li>
3935                  <li>
3936                    <span class="entry_type_enum_name">FOCUSED_LOCKED</span>
3937                    <span class="entry_type_enum_notes"><p>if any AF mode besides OFF is supported.<wbr/> AF
3938believes it is focused correctly and is
3939locked</p></span>
3940                  </li>
3941                  <li>
3942                    <span class="entry_type_enum_name">NOT_FOCUSED_LOCKED</span>
3943                    <span class="entry_type_enum_notes"><p>if any AF mode besides OFF is supported.<wbr/> AF has
3944failed to focus successfully and is
3945locked</p></span>
3946                  </li>
3947                  <li>
3948                    <span class="entry_type_enum_name">PASSIVE_UNFOCUSED</span>
3949                    <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF finished a
3950passive scan without finding focus,<wbr/> and may restart
3951scanning at any time.<wbr/></p></span>
3952                  </li>
3953                </ul>
3954
3955            </td> <!-- entry_type -->
3956
3957            <td class="entry_description">
3958              <p>Current state of AF algorithm</p>
3959            </td>
3960
3961            <td class="entry_units">
3962            </td>
3963
3964            <td class="entry_range">
3965            </td>
3966
3967            <td class="entry_tags">
3968            </td>
3969
3970          </tr>
3971          <tr class="entries_header">
3972            <th class="th_details" colspan="5">Details</th>
3973          </tr>
3974          <tr class="entry_cont">
3975            <td class="entry_details" colspan="5">
3976              <p>Switching between or enabling AF modes (<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>) always
3977resets the AF state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
3978or <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
3979the algorithm states to INACTIVE.<wbr/></p>
3980<p>The camera device can do several state transitions between two results,<wbr/> if it is
3981allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
3982seen in a result.<wbr/></p>
3983<p>The state in the result is the state for this image (in sync with this image): if
3984AF state becomes FOCUSED,<wbr/> then the image data associated with this result should
3985be sharp.<wbr/></p>
3986<p>Below are state transition tables for different AF modes.<wbr/></p>
3987<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>
3988<table>
3989<thead>
3990<tr>
3991<th align="center">State</th>
3992<th align="center">Transition Cause</th>
3993<th align="center">New State</th>
3994<th align="center">Notes</th>
3995</tr>
3996</thead>
3997<tbody>
3998<tr>
3999<td align="center">INACTIVE</td>
4000<td align="center"></td>
4001<td align="center">INACTIVE</td>
4002<td align="center">Never changes</td>
4003</tr>
4004</tbody>
4005</table>
4006<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>
4007<table>
4008<thead>
4009<tr>
4010<th align="center">State</th>
4011<th align="center">Transition Cause</th>
4012<th align="center">New State</th>
4013<th align="center">Notes</th>
4014</tr>
4015</thead>
4016<tbody>
4017<tr>
4018<td align="center">INACTIVE</td>
4019<td align="center">AF_<wbr/>TRIGGER</td>
4020<td align="center">ACTIVE_<wbr/>SCAN</td>
4021<td align="center">Start AF sweep,<wbr/> Lens now moving</td>
4022</tr>
4023<tr>
4024<td align="center">ACTIVE_<wbr/>SCAN</td>
4025<td align="center">AF sweep done</td>
4026<td align="center">FOCUSED_<wbr/>LOCKED</td>
4027<td align="center">Focused,<wbr/> Lens now locked</td>
4028</tr>
4029<tr>
4030<td align="center">ACTIVE_<wbr/>SCAN</td>
4031<td align="center">AF sweep done</td>
4032<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4033<td align="center">Not focused,<wbr/> Lens now locked</td>
4034</tr>
4035<tr>
4036<td align="center">ACTIVE_<wbr/>SCAN</td>
4037<td align="center">AF_<wbr/>CANCEL</td>
4038<td align="center">INACTIVE</td>
4039<td align="center">Cancel/<wbr/>reset AF,<wbr/> Lens now locked</td>
4040</tr>
4041<tr>
4042<td align="center">FOCUSED_<wbr/>LOCKED</td>
4043<td align="center">AF_<wbr/>CANCEL</td>
4044<td align="center">INACTIVE</td>
4045<td align="center">Cancel/<wbr/>reset AF</td>
4046</tr>
4047<tr>
4048<td align="center">FOCUSED_<wbr/>LOCKED</td>
4049<td align="center">AF_<wbr/>TRIGGER</td>
4050<td align="center">ACTIVE_<wbr/>SCAN</td>
4051<td align="center">Start new sweep,<wbr/> Lens now moving</td>
4052</tr>
4053<tr>
4054<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4055<td align="center">AF_<wbr/>CANCEL</td>
4056<td align="center">INACTIVE</td>
4057<td align="center">Cancel/<wbr/>reset AF</td>
4058</tr>
4059<tr>
4060<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4061<td align="center">AF_<wbr/>TRIGGER</td>
4062<td align="center">ACTIVE_<wbr/>SCAN</td>
4063<td align="center">Start new sweep,<wbr/> Lens now moving</td>
4064</tr>
4065<tr>
4066<td align="center">Any state</td>
4067<td align="center">Mode change</td>
4068<td align="center">INACTIVE</td>
4069<td align="center"></td>
4070</tr>
4071</tbody>
4072</table>
4073<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>
4074<table>
4075<thead>
4076<tr>
4077<th align="center">State</th>
4078<th align="center">Transition Cause</th>
4079<th align="center">New State</th>
4080<th align="center">Notes</th>
4081</tr>
4082</thead>
4083<tbody>
4084<tr>
4085<td align="center">INACTIVE</td>
4086<td align="center">Camera device initiates new scan</td>
4087<td align="center">PASSIVE_<wbr/>SCAN</td>
4088<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4089</tr>
4090<tr>
4091<td align="center">INACTIVE</td>
4092<td align="center">AF_<wbr/>TRIGGER</td>
4093<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4094<td align="center">AF state query,<wbr/> Lens now locked</td>
4095</tr>
4096<tr>
4097<td align="center">PASSIVE_<wbr/>SCAN</td>
4098<td align="center">Camera device completes current scan</td>
4099<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4100<td align="center">End AF scan,<wbr/> Lens now locked</td>
4101</tr>
4102<tr>
4103<td align="center">PASSIVE_<wbr/>SCAN</td>
4104<td align="center">Camera device fails current scan</td>
4105<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4106<td align="center">End AF scan,<wbr/> Lens now locked</td>
4107</tr>
4108<tr>
4109<td align="center">PASSIVE_<wbr/>SCAN</td>
4110<td align="center">AF_<wbr/>TRIGGER</td>
4111<td align="center">FOCUSED_<wbr/>LOCKED</td>
4112<td align="center">Immediate trans.<wbr/> If focus is good,<wbr/> Lens now locked</td>
4113</tr>
4114<tr>
4115<td align="center">PASSIVE_<wbr/>SCAN</td>
4116<td align="center">AF_<wbr/>TRIGGER</td>
4117<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4118<td align="center">Immediate trans.<wbr/> if focus is bad,<wbr/> Lens now locked</td>
4119</tr>
4120<tr>
4121<td align="center">PASSIVE_<wbr/>SCAN</td>
4122<td align="center">AF_<wbr/>CANCEL</td>
4123<td align="center">INACTIVE</td>
4124<td align="center">Reset lens position,<wbr/> Lens now locked</td>
4125</tr>
4126<tr>
4127<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4128<td align="center">Camera device initiates new scan</td>
4129<td align="center">PASSIVE_<wbr/>SCAN</td>
4130<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4131</tr>
4132<tr>
4133<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4134<td align="center">Camera device initiates new scan</td>
4135<td align="center">PASSIVE_<wbr/>SCAN</td>
4136<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4137</tr>
4138<tr>
4139<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4140<td align="center">AF_<wbr/>TRIGGER</td>
4141<td align="center">FOCUSED_<wbr/>LOCKED</td>
4142<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4143</tr>
4144<tr>
4145<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4146<td align="center">AF_<wbr/>TRIGGER</td>
4147<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4148<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4149</tr>
4150<tr>
4151<td align="center">FOCUSED_<wbr/>LOCKED</td>
4152<td align="center">AF_<wbr/>TRIGGER</td>
4153<td align="center">FOCUSED_<wbr/>LOCKED</td>
4154<td align="center">No effect</td>
4155</tr>
4156<tr>
4157<td align="center">FOCUSED_<wbr/>LOCKED</td>
4158<td align="center">AF_<wbr/>CANCEL</td>
4159<td align="center">INACTIVE</td>
4160<td align="center">Restart AF scan</td>
4161</tr>
4162<tr>
4163<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4164<td align="center">AF_<wbr/>TRIGGER</td>
4165<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4166<td align="center">No effect</td>
4167</tr>
4168<tr>
4169<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4170<td align="center">AF_<wbr/>CANCEL</td>
4171<td align="center">INACTIVE</td>
4172<td align="center">Restart AF scan</td>
4173</tr>
4174</tbody>
4175</table>
4176<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>
4177<table>
4178<thead>
4179<tr>
4180<th align="center">State</th>
4181<th align="center">Transition Cause</th>
4182<th align="center">New State</th>
4183<th align="center">Notes</th>
4184</tr>
4185</thead>
4186<tbody>
4187<tr>
4188<td align="center">INACTIVE</td>
4189<td align="center">Camera device initiates new scan</td>
4190<td align="center">PASSIVE_<wbr/>SCAN</td>
4191<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4192</tr>
4193<tr>
4194<td align="center">INACTIVE</td>
4195<td align="center">AF_<wbr/>TRIGGER</td>
4196<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4197<td align="center">AF state query,<wbr/> Lens now locked</td>
4198</tr>
4199<tr>
4200<td align="center">PASSIVE_<wbr/>SCAN</td>
4201<td align="center">Camera device completes current scan</td>
4202<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4203<td align="center">End AF scan,<wbr/> Lens now locked</td>
4204</tr>
4205<tr>
4206<td align="center">PASSIVE_<wbr/>SCAN</td>
4207<td align="center">Camera device fails current scan</td>
4208<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4209<td align="center">End AF scan,<wbr/> Lens now locked</td>
4210</tr>
4211<tr>
4212<td align="center">PASSIVE_<wbr/>SCAN</td>
4213<td align="center">AF_<wbr/>TRIGGER</td>
4214<td align="center">FOCUSED_<wbr/>LOCKED</td>
4215<td align="center">Eventual trans.<wbr/> once focus good,<wbr/> Lens now locked</td>
4216</tr>
4217<tr>
4218<td align="center">PASSIVE_<wbr/>SCAN</td>
4219<td align="center">AF_<wbr/>TRIGGER</td>
4220<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4221<td align="center">Eventual trans.<wbr/> if cannot focus,<wbr/> Lens now locked</td>
4222</tr>
4223<tr>
4224<td align="center">PASSIVE_<wbr/>SCAN</td>
4225<td align="center">AF_<wbr/>CANCEL</td>
4226<td align="center">INACTIVE</td>
4227<td align="center">Reset lens position,<wbr/> Lens now locked</td>
4228</tr>
4229<tr>
4230<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4231<td align="center">Camera device initiates new scan</td>
4232<td align="center">PASSIVE_<wbr/>SCAN</td>
4233<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4234</tr>
4235<tr>
4236<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4237<td align="center">Camera device initiates new scan</td>
4238<td align="center">PASSIVE_<wbr/>SCAN</td>
4239<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4240</tr>
4241<tr>
4242<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4243<td align="center">AF_<wbr/>TRIGGER</td>
4244<td align="center">FOCUSED_<wbr/>LOCKED</td>
4245<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4246</tr>
4247<tr>
4248<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4249<td align="center">AF_<wbr/>TRIGGER</td>
4250<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4251<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4252</tr>
4253<tr>
4254<td align="center">FOCUSED_<wbr/>LOCKED</td>
4255<td align="center">AF_<wbr/>TRIGGER</td>
4256<td align="center">FOCUSED_<wbr/>LOCKED</td>
4257<td align="center">No effect</td>
4258</tr>
4259<tr>
4260<td align="center">FOCUSED_<wbr/>LOCKED</td>
4261<td align="center">AF_<wbr/>CANCEL</td>
4262<td align="center">INACTIVE</td>
4263<td align="center">Restart AF scan</td>
4264</tr>
4265<tr>
4266<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4267<td align="center">AF_<wbr/>TRIGGER</td>
4268<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4269<td align="center">No effect</td>
4270</tr>
4271<tr>
4272<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4273<td align="center">AF_<wbr/>CANCEL</td>
4274<td align="center">INACTIVE</td>
4275<td align="center">Restart AF scan</td>
4276</tr>
4277</tbody>
4278</table>
4279            </td>
4280          </tr>
4281
4282
4283          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4284           <!-- end of entry -->
4285        
4286                
4287          <tr class="entry" id="dynamic_android.control.afTriggerId">
4288            <td class="entry_name" rowspan="3">
4289              android.<wbr/>control.<wbr/>af<wbr/>Trigger<wbr/>Id
4290            </td>
4291            <td class="entry_type">
4292                <span class="entry_type_name">int32</span>
4293
4294              <span class="entry_type_visibility"> [hidden]</span>
4295
4296
4297            </td> <!-- entry_type -->
4298
4299            <td class="entry_description">
4300              <p>The ID sent with the latest
4301CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS call</p>
4302            </td>
4303
4304            <td class="entry_units">
4305            </td>
4306
4307            <td class="entry_range">
4308              <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
4309            </td>
4310
4311            <td class="entry_tags">
4312            </td>
4313
4314          </tr>
4315          <tr class="entries_header">
4316            <th class="th_details" colspan="5">Details</th>
4317          </tr>
4318          <tr class="entry_cont">
4319            <td class="entry_details" colspan="5">
4320              <p>Must be 0 if no CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS trigger
4321received yet by HAL.<wbr/> Always updated even if AF algorithm
4322ignores the trigger</p>
4323            </td>
4324          </tr>
4325
4326
4327          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4328           <!-- end of entry -->
4329        
4330                
4331          <tr class="entry" id="dynamic_android.control.awbMode">
4332            <td class="entry_name" rowspan="3">
4333              android.<wbr/>control.<wbr/>awb<wbr/>Mode
4334            </td>
4335            <td class="entry_type">
4336                <span class="entry_type_name entry_type_name_enum">byte</span>
4337
4338              <span class="entry_type_visibility"> [public]</span>
4339
4340                <ul class="entry_type_enum">
4341                  <li>
4342                    <span class="entry_type_enum_name">OFF</span>
4343                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4344the application-selected color transform matrix
4345(<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
4346(<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
4347device for manual white balance control.<wbr/></p></span>
4348                  </li>
4349                  <li>
4350                    <span class="entry_type_enum_name">AUTO</span>
4351                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is active;
4352the application's values for android.<wbr/>color<wbr/>Correction.<wbr/>transform
4353and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/></p></span>
4354                  </li>
4355                  <li>
4356                    <span class="entry_type_enum_name">INCANDESCENT</span>
4357                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4358the camera device uses incandescent light as the assumed scene
4359illumination for white balance.<wbr/> While the exact white balance
4360transforms are up to the camera device,<wbr/> they will approximately
4361match the CIE standard illuminant A.<wbr/></p></span>
4362                  </li>
4363                  <li>
4364                    <span class="entry_type_enum_name">FLUORESCENT</span>
4365                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4366the camera device uses fluorescent light as the assumed scene
4367illumination for white balance.<wbr/> While the exact white balance
4368transforms are up to the camera device,<wbr/> they will approximately
4369match the CIE standard illuminant F2.<wbr/></p></span>
4370                  </li>
4371                  <li>
4372                    <span class="entry_type_enum_name">WARM_FLUORESCENT</span>
4373                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4374the camera device uses warm fluorescent light as the assumed scene
4375illumination for white balance.<wbr/> While the exact white balance
4376transforms are up to the camera device,<wbr/> they will approximately
4377match the CIE standard illuminant F4.<wbr/></p></span>
4378                  </li>
4379                  <li>
4380                    <span class="entry_type_enum_name">DAYLIGHT</span>
4381                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4382the camera device uses daylight light as the assumed scene
4383illumination for white balance.<wbr/> While the exact white balance
4384transforms are up to the camera device,<wbr/> they will approximately
4385match the CIE standard illuminant D65.<wbr/></p></span>
4386                  </li>
4387                  <li>
4388                    <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span>
4389                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4390the camera device uses cloudy daylight light as the assumed scene
4391illumination for white balance.<wbr/></p></span>
4392                  </li>
4393                  <li>
4394                    <span class="entry_type_enum_name">TWILIGHT</span>
4395                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4396the camera device uses twilight light as the assumed scene
4397illumination for white balance.<wbr/></p></span>
4398                  </li>
4399                  <li>
4400                    <span class="entry_type_enum_name">SHADE</span>
4401                    <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4402the camera device uses shade light as the assumed scene
4403illumination for white balance.<wbr/></p></span>
4404                  </li>
4405                </ul>
4406
4407            </td> <!-- entry_type -->
4408
4409            <td class="entry_description">
4410              <p>Whether AWB is currently setting the color
4411transform fields,<wbr/> and what its illumination target
4412is</p>
4413            </td>
4414
4415            <td class="entry_units">
4416            </td>
4417
4418            <td class="entry_range">
4419              <p><a href="#static_android.control.awbAvailableModes">android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes</a></p>
4420            </td>
4421
4422            <td class="entry_tags">
4423              <ul class="entry_tags">
4424                  <li><a href="#tag_BC">BC</a></li>
4425                  <li><a href="#tag_AWB">AWB</a></li>
4426              </ul>
4427            </td>
4428
4429          </tr>
4430          <tr class="entries_header">
4431            <th class="th_details" colspan="5">Details</th>
4432          </tr>
4433          <tr class="entry_cont">
4434            <td class="entry_details" colspan="5">
4435              <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
4436<p>When set to the ON mode,<wbr/> the camera device's auto white balance
4437routine is enabled,<wbr/> overriding the application's selected
4438<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
4439<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
4440<p>When set to the OFF mode,<wbr/> the camera device's auto white balance
4441routine is disabled.<wbr/> The applicantion manually controls the white
4442balance by <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> android.<wbr/>color<wbr/>Correction.<wbr/>gains
4443and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
4444<p>When set to any other modes,<wbr/> the camera device's auto white balance
4445routine is disabled.<wbr/> The camera device uses each particular illumination
4446target for white balance adjustment.<wbr/></p>
4447            </td>
4448          </tr>
4449
4450
4451          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4452           <!-- end of entry -->
4453        
4454                
4455          <tr class="entry" id="dynamic_android.control.awbRegions">
4456            <td class="entry_name" rowspan="3">
4457              android.<wbr/>control.<wbr/>awb<wbr/>Regions
4458            </td>
4459            <td class="entry_type">
4460                <span class="entry_type_name">int32</span>
4461                <span class="entry_type_container">x</span>
4462
4463                <span class="entry_type_array">
4464                  5 x area_count
4465                </span>
4466              <span class="entry_type_visibility"> [public]</span>
4467
4468
4469            </td> <!-- entry_type -->
4470
4471            <td class="entry_description">
4472              <p>List of areas to use for illuminant
4473estimation.<wbr/></p>
4474            </td>
4475
4476            <td class="entry_units">
4477            </td>
4478
4479            <td class="entry_range">
4480              <p><code>area_<wbr/>count &lt;= <a href="#static_android.control.maxRegions">android.<wbr/>control.<wbr/>max<wbr/>Regions</a>[1]</code></p>
4481            </td>
4482
4483            <td class="entry_tags">
4484              <ul class="entry_tags">
4485                  <li><a href="#tag_BC">BC</a></li>
4486              </ul>
4487            </td>
4488
4489          </tr>
4490          <tr class="entries_header">
4491            <th class="th_details" colspan="5">Details</th>
4492          </tr>
4493          <tr class="entry_cont">
4494            <td class="entry_details" colspan="5">
4495              <p>Only used in AUTO mode.<wbr/></p>
4496<p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
4497xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
4498specified coordinates.<wbr/></p>
4499<p>The coordinate system is based on the active pixel array,<wbr/>
4500with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
4501(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
4502<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>height - 1) being the
4503bottom-right pixel in the active pixel array.<wbr/> The weight
4504should be nonnegative.<wbr/></p>
4505<p>If all regions have 0 weight,<wbr/> then no specific metering area
4506needs to be used by the HAL.<wbr/> If the metering region is
4507outside the current <a href="#controls_android.scaler.cropRegion">android.<wbr/>scaler.<wbr/>crop<wbr/>Region</a>,<wbr/> the HAL
4508should ignore the sections outside the region and output the
4509used sections in the frame metadata.<wbr/></p>
4510            </td>
4511          </tr>
4512
4513
4514          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4515           <!-- end of entry -->
4516        
4517                
4518          <tr class="entry" id="dynamic_android.control.awbState">
4519            <td class="entry_name" rowspan="3">
4520              android.<wbr/>control.<wbr/>awb<wbr/>State
4521            </td>
4522            <td class="entry_type">
4523                <span class="entry_type_name entry_type_name_enum">byte</span>
4524
4525              <span class="entry_type_visibility"> [public]</span>
4526
4527                <ul class="entry_type_enum">
4528                  <li>
4529                    <span class="entry_type_enum_name">INACTIVE</span>
4530                    <span class="entry_type_enum_notes"><p>AWB is not in auto mode.<wbr/>  When a camera device is opened,<wbr/> it
4531starts in this state.<wbr/></p></span>
4532                  </li>
4533                  <li>
4534                    <span class="entry_type_enum_name">SEARCHING</span>
4535                    <span class="entry_type_enum_notes"><p>AWB doesn't yet have a good set of control
4536values for the current scene.<wbr/></p></span>
4537                  </li>
4538                  <li>
4539                    <span class="entry_type_enum_name">CONVERGED</span>
4540                    <span class="entry_type_enum_notes"><p>AWB has a good set of control values for the
4541current scene.<wbr/></p></span>
4542                  </li>
4543                  <li>
4544                    <span class="entry_type_enum_name">LOCKED</span>
4545                    <span class="entry_type_enum_notes"><p>AWB has been locked.<wbr/></p></span>
4546                  </li>
4547                </ul>
4548
4549            </td> <!-- entry_type -->
4550
4551            <td class="entry_description">
4552              <p>Current state of AWB algorithm</p>
4553            </td>
4554
4555            <td class="entry_units">
4556            </td>
4557
4558            <td class="entry_range">
4559            </td>
4560
4561            <td class="entry_tags">
4562            </td>
4563
4564          </tr>
4565          <tr class="entries_header">
4566            <th class="th_details" colspan="5">Details</th>
4567          </tr>
4568          <tr class="entry_cont">
4569            <td class="entry_details" colspan="5">
4570              <p>Switching between or enabling AWB modes (<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>) always
4571resets the AWB state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
4572or <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
4573the algorithm states to INACTIVE.<wbr/></p>
4574<p>The camera device can do several state transitions between two results,<wbr/> if it is
4575allowed by the state transition table.<wbr/> So INACTIVE may never actually be seen in
4576a result.<wbr/></p>
4577<p>The state in the result is the state for this image (in sync with this image): if
4578AWB state becomes CONVERGED,<wbr/> then the image data associated with this result should
4579be good to use.<wbr/></p>
4580<p>Below are state transition tables for different AWB modes.<wbr/></p>
4581<p>When <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != AWB_<wbr/>MODE_<wbr/>AUTO</code>:</p>
4582<table>
4583<thead>
4584<tr>
4585<th align="center">State</th>
4586<th align="center">Transition Cause</th>
4587<th align="center">New State</th>
4588<th align="center">Notes</th>
4589</tr>
4590</thead>
4591<tbody>
4592<tr>
4593<td align="center">INACTIVE</td>
4594<td align="center"></td>
4595<td align="center">INACTIVE</td>
4596<td align="center">Camera device auto white balance algorithm is disabled</td>
4597</tr>
4598</tbody>
4599</table>
4600<p>When <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> is AWB_<wbr/>MODE_<wbr/>AUTO:</p>
4601<table>
4602<thead>
4603<tr>
4604<th align="center">State</th>
4605<th align="center">Transition Cause</th>
4606<th align="center">New State</th>
4607<th align="center">Notes</th>
4608</tr>
4609</thead>
4610<tbody>
4611<tr>
4612<td align="center">INACTIVE</td>
4613<td align="center">Camera device initiates AWB scan</td>
4614<td align="center">SEARCHING</td>
4615<td align="center">Values changing</td>
4616</tr>
4617<tr>
4618<td align="center">INACTIVE</td>
4619<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4620<td align="center">LOCKED</td>
4621<td align="center">Values locked</td>
4622</tr>
4623<tr>
4624<td align="center">SEARCHING</td>
4625<td align="center">Camera device finishes AWB scan</td>
4626<td align="center">CONVERGED</td>
4627<td align="center">Good values,<wbr/> not changing</td>
4628</tr>
4629<tr>
4630<td align="center">SEARCHING</td>
4631<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4632<td align="center">LOCKED</td>
4633<td align="center">Values locked</td>
4634</tr>
4635<tr>
4636<td align="center">CONVERGED</td>
4637<td align="center">Camera device initiates AWB scan</td>
4638<td align="center">SEARCHING</td>
4639<td align="center">Values changing</td>
4640</tr>
4641<tr>
4642<td align="center">CONVERGED</td>
4643<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4644<td align="center">LOCKED</td>
4645<td align="center">Values locked</td>
4646</tr>
4647<tr>
4648<td align="center">LOCKED</td>
4649<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
4650<td align="center">SEARCHING</td>
4651<td align="center">Values not good after unlock</td>
4652</tr>
4653<tr>
4654<td align="center">LOCKED</td>
4655<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
4656<td align="center">CONVERGED</td>
4657<td align="center">Values good after unlock</td>
4658</tr>
4659</tbody>
4660</table>
4661            </td>
4662          </tr>
4663
4664
4665          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4666           <!-- end of entry -->
4667        
4668                
4669          <tr class="entry" id="dynamic_android.control.mode">
4670            <td class="entry_name" rowspan="3">
4671              android.<wbr/>control.<wbr/>mode
4672            </td>
4673            <td class="entry_type">
4674                <span class="entry_type_name entry_type_name_enum">byte</span>
4675
4676              <span class="entry_type_visibility"> [public]</span>
4677
4678                <ul class="entry_type_enum">
4679                  <li>
4680                    <span class="entry_type_enum_name">OFF</span>
4681                    <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/> All 3A
4682routines are disabled,<wbr/> no other settings in
4683android.<wbr/>control.<wbr/>* have any effect</p></span>
4684                  </li>
4685                  <li>
4686                    <span class="entry_type_enum_name">AUTO</span>
4687                    <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/>
4688Manual control of capture parameters is disabled.<wbr/> All
4689controls in android.<wbr/>control.<wbr/>* besides sceneMode take
4690effect</p></span>
4691                  </li>
4692                  <li>
4693                    <span class="entry_type_enum_name">USE_SCENE_MODE</span>
4694                    <span class="entry_type_enum_notes"><p>Use specific scene mode.<wbr/> Enabling this disables
4695control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and control.<wbr/>afMode
4696controls; the HAL must ignore those settings while
4697USE_<wbr/>SCENE_<wbr/>MODE is active (except for FACE_<wbr/>PRIORITY
4698scene mode).<wbr/> Other control entries are still active.<wbr/>
4699This setting can only be used if availableSceneModes !=
4700UNSUPPORTED</p></span>
4701                  </li>
4702                </ul>
4703
4704            </td> <!-- entry_type -->
4705
4706            <td class="entry_description">
4707              <p>Overall mode of 3A control
4708routines</p>
4709            </td>
4710
4711            <td class="entry_units">
4712            </td>
4713
4714            <td class="entry_range">
4715              <p>all must be supported</p>
4716            </td>
4717
4718            <td class="entry_tags">
4719              <ul class="entry_tags">
4720                  <li><a href="#tag_BC">BC</a></li>
4721              </ul>
4722            </td>
4723
4724          </tr>
4725          <tr class="entries_header">
4726            <th class="th_details" colspan="5">Details</th>
4727          </tr>
4728          <tr class="entry_cont">
4729            <td class="entry_details" colspan="5">
4730              <p>High-level 3A control.<wbr/> When set to OFF,<wbr/> all 3A control
4731by the camera device is disabled.<wbr/> The application must set the fields for
4732capture parameters itself.<wbr/></p>
4733<p>When set to AUTO,<wbr/> the individual algorithm controls in
4734android.<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>
4735<p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
4736android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device implements
4737one of the scene mode settings (such as ACTION,<wbr/> SUNSET,<wbr/> or PARTY)
4738as it wishes.<wbr/> The camera device scene mode 3A settings are provided by
4739<a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
4740            </td>
4741          </tr>
4742
4743
4744          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4745           <!-- end of entry -->
4746        
4747        
4748
4749      <!-- end of kind -->
4750      </tbody>
4751
4752  <!-- end of section -->
4753  <tr><td colspan="6" id="section_demosaic" class="section">demosaic</td></tr>
4754
4755
4756      <tr><td colspan="6" class="kind">controls</td></tr>
4757
4758      <thead class="entries_header">
4759        <tr>
4760          <th class="th_name">Property Name</th>
4761          <th class="th_type">Type</th>
4762          <th class="th_description">Description</th>
4763          <th class="th_units">Units</th>
4764          <th class="th_range">Range</th>
4765          <th class="th_tags">Tags</th>
4766        </tr>
4767      </thead>
4768
4769      <tbody>
4770
4771        
4772
4773        
4774
4775        
4776
4777        
4778
4779                
4780          <tr class="entry" id="controls_android.demosaic.mode">
4781            <td class="entry_name" rowspan="1">
4782              android.<wbr/>demosaic.<wbr/>mode
4783            </td>
4784            <td class="entry_type">
4785                <span class="entry_type_name entry_type_name_enum">byte</span>
4786
4787              <span class="entry_type_visibility"> [system]</span>
4788
4789                <ul class="entry_type_enum">
4790                  <li>
4791                    <span class="entry_type_enum_name">FAST</span>
4792                    <span class="entry_type_enum_notes"><p>Minimal or no slowdown of frame rate compared to
4793Bayer RAW output</p></span>
4794                  </li>
4795                  <li>
4796                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
4797                    <span class="entry_type_enum_notes"><p>High-quality may reduce output frame
4798rate</p></span>
4799                  </li>
4800                </ul>
4801
4802            </td> <!-- entry_type -->
4803
4804            <td class="entry_description">
4805              <p>Controls the quality of the demosaicing
4806processing</p>
4807            </td>
4808
4809            <td class="entry_units">
4810            </td>
4811
4812            <td class="entry_range">
4813            </td>
4814
4815            <td class="entry_tags">
4816              <ul class="entry_tags">
4817                  <li><a href="#tag_V1">V1</a></li>
4818              </ul>
4819            </td>
4820
4821          </tr>
4822
4823
4824          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4825           <!-- end of entry -->
4826        
4827        
4828
4829      <!-- end of kind -->
4830      </tbody>
4831
4832  <!-- end of section -->
4833  <tr><td colspan="6" id="section_edge" class="section">edge</td></tr>
4834
4835
4836      <tr><td colspan="6" class="kind">controls</td></tr>
4837
4838      <thead class="entries_header">
4839        <tr>
4840          <th class="th_name">Property Name</th>
4841          <th class="th_type">Type</th>
4842          <th class="th_description">Description</th>
4843          <th class="th_units">Units</th>
4844          <th class="th_range">Range</th>
4845          <th class="th_tags">Tags</th>
4846        </tr>
4847      </thead>
4848
4849      <tbody>
4850
4851        
4852
4853        
4854
4855        
4856
4857        
4858
4859                
4860          <tr class="entry" id="controls_android.edge.mode">
4861            <td class="entry_name" rowspan="3">
4862              android.<wbr/>edge.<wbr/>mode
4863            </td>
4864            <td class="entry_type">
4865                <span class="entry_type_name entry_type_name_enum">byte</span>
4866
4867              <span class="entry_type_visibility"> [public]</span>
4868
4869                <ul class="entry_type_enum">
4870                  <li>
4871                    <span class="entry_type_enum_name">OFF</span>
4872                    <span class="entry_type_enum_notes"><p>No edge enhancement is applied</p></span>
4873                  </li>
4874                  <li>
4875                    <span class="entry_type_enum_name">FAST</span>
4876                    <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
4877output</p></span>
4878                  </li>
4879                  <li>
4880                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
4881                    <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
4882quality</p></span>
4883                  </li>
4884                </ul>
4885
4886            </td> <!-- entry_type -->
4887
4888            <td class="entry_description">
4889              <p>Operation mode for edge
4890enhancement</p>
4891            </td>
4892
4893            <td class="entry_units">
4894            </td>
4895
4896            <td class="entry_range">
4897            </td>
4898
4899            <td class="entry_tags">
4900            </td>
4901
4902          </tr>
4903          <tr class="entries_header">
4904            <th class="th_details" colspan="5">Details</th>
4905          </tr>
4906          <tr class="entry_cont">
4907            <td class="entry_details" colspan="5">
4908              <p>Edge/<wbr/>sharpness/<wbr/>detail enhancement.<wbr/> OFF means no
4909enhancement will be applied by the HAL.<wbr/></p>
4910<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
4911will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
4912camera device will use the highest-quality enhancement algorithms,<wbr/>
4913even if it slows down capture rate.<wbr/> FAST means the camera device will
4914not slow down capture rate when applying edge enhancement.<wbr/></p>
4915            </td>
4916          </tr>
4917
4918
4919          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4920           <!-- end of entry -->
4921        
4922                
4923          <tr class="entry" id="controls_android.edge.strength">
4924            <td class="entry_name" rowspan="1">
4925              android.<wbr/>edge.<wbr/>strength
4926            </td>
4927            <td class="entry_type">
4928                <span class="entry_type_name">byte</span>
4929
4930              <span class="entry_type_visibility"> [system]</span>
4931
4932
4933            </td> <!-- entry_type -->
4934
4935            <td class="entry_description">
4936              <p>Control the amount of edge enhancement
4937applied to the images</p>
4938            </td>
4939
4940            <td class="entry_units">
4941              1-10; 10 is maximum sharpening
4942            </td>
4943
4944            <td class="entry_range">
4945            </td>
4946
4947            <td class="entry_tags">
4948            </td>
4949
4950          </tr>
4951
4952
4953          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4954           <!-- end of entry -->
4955        
4956        
4957
4958      <!-- end of kind -->
4959      </tbody>
4960      <tr><td colspan="6" class="kind">dynamic</td></tr>
4961
4962      <thead class="entries_header">
4963        <tr>
4964          <th class="th_name">Property Name</th>
4965          <th class="th_type">Type</th>
4966          <th class="th_description">Description</th>
4967          <th class="th_units">Units</th>
4968          <th class="th_range">Range</th>
4969          <th class="th_tags">Tags</th>
4970        </tr>
4971      </thead>
4972
4973      <tbody>
4974
4975        
4976
4977        
4978
4979        
4980
4981        
4982
4983                
4984          <tr class="entry" id="dynamic_android.edge.mode">
4985            <td class="entry_name" rowspan="3">
4986              android.<wbr/>edge.<wbr/>mode
4987            </td>
4988            <td class="entry_type">
4989                <span class="entry_type_name entry_type_name_enum">byte</span>
4990
4991              <span class="entry_type_visibility"> [public]</span>
4992
4993                <ul class="entry_type_enum">
4994                  <li>
4995                    <span class="entry_type_enum_name">OFF</span>
4996                    <span class="entry_type_enum_notes"><p>No edge enhancement is applied</p></span>
4997                  </li>
4998                  <li>
4999                    <span class="entry_type_enum_name">FAST</span>
5000                    <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
5001output</p></span>
5002                  </li>
5003                  <li>
5004                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
5005                    <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5006quality</p></span>
5007                  </li>
5008                </ul>
5009
5010            </td> <!-- entry_type -->
5011
5012            <td class="entry_description">
5013              <p>Operation mode for edge
5014enhancement</p>
5015            </td>
5016
5017            <td class="entry_units">
5018            </td>
5019
5020            <td class="entry_range">
5021            </td>
5022
5023            <td class="entry_tags">
5024            </td>
5025
5026          </tr>
5027          <tr class="entries_header">
5028            <th class="th_details" colspan="5">Details</th>
5029          </tr>
5030          <tr class="entry_cont">
5031            <td class="entry_details" colspan="5">
5032              <p>Edge/<wbr/>sharpness/<wbr/>detail enhancement.<wbr/> OFF means no
5033enhancement will be applied by the HAL.<wbr/></p>
5034<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
5035will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
5036camera device will use the highest-quality enhancement algorithms,<wbr/>
5037even if it slows down capture rate.<wbr/> FAST means the camera device will
5038not slow down capture rate when applying edge enhancement.<wbr/></p>
5039            </td>
5040          </tr>
5041
5042
5043          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5044           <!-- end of entry -->
5045        
5046        
5047
5048      <!-- end of kind -->
5049      </tbody>
5050
5051  <!-- end of section -->
5052  <tr><td colspan="6" id="section_flash" class="section">flash</td></tr>
5053
5054
5055      <tr><td colspan="6" class="kind">controls</td></tr>
5056
5057      <thead class="entries_header">
5058        <tr>
5059          <th class="th_name">Property Name</th>
5060          <th class="th_type">Type</th>
5061          <th class="th_description">Description</th>
5062          <th class="th_units">Units</th>
5063          <th class="th_range">Range</th>
5064          <th class="th_tags">Tags</th>
5065        </tr>
5066      </thead>
5067
5068      <tbody>
5069
5070        
5071
5072        
5073
5074        
5075
5076        
5077
5078                
5079          <tr class="entry" id="controls_android.flash.firingPower">
5080            <td class="entry_name" rowspan="3">
5081              android.<wbr/>flash.<wbr/>firing<wbr/>Power
5082            </td>
5083            <td class="entry_type">
5084                <span class="entry_type_name">byte</span>
5085
5086              <span class="entry_type_visibility"> [system]</span>
5087
5088
5089            </td> <!-- entry_type -->
5090
5091            <td class="entry_description">
5092              <p>Power for flash firing/<wbr/>torch</p>
5093            </td>
5094
5095            <td class="entry_units">
5096              10 is max power; 0 is no flash.<wbr/> Linear
5097            </td>
5098
5099            <td class="entry_range">
5100              <p>0 - 10</p>
5101            </td>
5102
5103            <td class="entry_tags">
5104              <ul class="entry_tags">
5105                  <li><a href="#tag_V1">V1</a></li>
5106              </ul>
5107            </td>
5108
5109          </tr>
5110          <tr class="entries_header">
5111            <th class="th_details" colspan="5">Details</th>
5112          </tr>
5113          <tr class="entry_cont">
5114            <td class="entry_details" colspan="5">
5115              <p>Power for snapshot may use a different scale than
5116for torch mode.<wbr/> Only one entry for torch mode will be
5117used</p>
5118            </td>
5119          </tr>
5120
5121
5122          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5123           <!-- end of entry -->
5124        
5125                
5126          <tr class="entry" id="controls_android.flash.firingTime">
5127            <td class="entry_name" rowspan="3">
5128              android.<wbr/>flash.<wbr/>firing<wbr/>Time
5129            </td>
5130            <td class="entry_type">
5131                <span class="entry_type_name">int64</span>
5132
5133              <span class="entry_type_visibility"> [system]</span>
5134
5135
5136            </td> <!-- entry_type -->
5137
5138            <td class="entry_description">
5139              <p>Firing time of flash relative to start of
5140exposure</p>
5141            </td>
5142
5143            <td class="entry_units">
5144              nanoseconds
5145            </td>
5146
5147            <td class="entry_range">
5148              <p>0-(exposure time-flash duration)</p>
5149            </td>
5150
5151            <td class="entry_tags">
5152              <ul class="entry_tags">
5153                  <li><a href="#tag_V1">V1</a></li>
5154              </ul>
5155            </td>
5156
5157          </tr>
5158          <tr class="entries_header">
5159            <th class="th_details" colspan="5">Details</th>
5160          </tr>
5161          <tr class="entry_cont">
5162            <td class="entry_details" colspan="5">
5163              <p>Clamped to (0,<wbr/> exposure time - flash
5164duration).<wbr/></p>
5165            </td>
5166          </tr>
5167
5168
5169          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5170           <!-- end of entry -->
5171        
5172                
5173          <tr class="entry" id="controls_android.flash.mode">
5174            <td class="entry_name" rowspan="3">
5175              android.<wbr/>flash.<wbr/>mode
5176            </td>
5177            <td class="entry_type">
5178                <span class="entry_type_name entry_type_name_enum">byte</span>
5179
5180              <span class="entry_type_visibility"> [public]</span>
5181
5182                <ul class="entry_type_enum">
5183                  <li>
5184                    <span class="entry_type_enum_name">OFF</span>
5185                    <span class="entry_type_enum_notes"><p>Do not fire the flash for this capture.<wbr/></p></span>
5186                  </li>
5187                  <li>
5188                    <span class="entry_type_enum_name">SINGLE</span>
5189                    <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
5190for this capture based on <a href="#controls_android.flash.firingPower">android.<wbr/>flash.<wbr/>firing<wbr/>Power</a> and
5191<a href="#controls_android.flash.firingTime">android.<wbr/>flash.<wbr/>firing<wbr/>Time</a>.<wbr/></p></span>
5192                  </li>
5193                  <li>
5194                    <span class="entry_type_enum_name">TORCH</span>
5195                    <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
5196                  </li>
5197                </ul>
5198
5199            </td> <!-- entry_type -->
5200
5201            <td class="entry_description">
5202              <p>The desired mode for for the camera device's flash control.<wbr/></p>
5203            </td>
5204
5205            <td class="entry_units">
5206            </td>
5207
5208            <td class="entry_range">
5209            </td>
5210
5211            <td class="entry_tags">
5212              <ul class="entry_tags">
5213                  <li><a href="#tag_BC">BC</a></li>
5214              </ul>
5215            </td>
5216
5217          </tr>
5218          <tr class="entries_header">
5219            <th class="th_details" colspan="5">Details</th>
5220          </tr>
5221          <tr class="entry_cont">
5222            <td class="entry_details" colspan="5">
5223              <p>This control is only effective when flash unit is available
5224(<code><a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> == true</code>).<wbr/></p>
5225<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/>
5226Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
5227ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
5228<p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
5229<p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
5230device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
5231control should be used along with AE precapture metering sequence
5232(<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>
5233<p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
5234for use cases such as preview,<wbr/> auto-focus assist,<wbr/> still capture,<wbr/> or video recording.<wbr/></p>
5235<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>
5236            </td>
5237          </tr>
5238
5239
5240          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5241           <!-- end of entry -->
5242        
5243        
5244
5245      <!-- end of kind -->
5246      </tbody>
5247      <tr><td colspan="6" class="kind">static</td></tr>
5248
5249      <thead class="entries_header">
5250        <tr>
5251          <th class="th_name">Property Name</th>
5252          <th class="th_type">Type</th>
5253          <th class="th_description">Description</th>
5254          <th class="th_units">Units</th>
5255          <th class="th_range">Range</th>
5256          <th class="th_tags">Tags</th>
5257        </tr>
5258      </thead>
5259
5260      <tbody>
5261
5262        
5263
5264        
5265
5266        
5267
5268        
5269                
5270            
5271
5272                
5273          <tr class="entry" id="static_android.flash.info.available">
5274            <td class="entry_name" rowspan="3">
5275              android.<wbr/>flash.<wbr/>info.<wbr/>available
5276            </td>
5277            <td class="entry_type">
5278                <span class="entry_type_name entry_type_name_enum">byte</span>
5279
5280              <span class="entry_type_visibility"> [public as boolean]</span>
5281
5282                <ul class="entry_type_enum">
5283                  <li>
5284                    <span class="entry_type_enum_name">FALSE</span>
5285                  </li>
5286                  <li>
5287                    <span class="entry_type_enum_name">TRUE</span>
5288                  </li>
5289                </ul>
5290
5291            </td> <!-- entry_type -->
5292
5293            <td class="entry_description">
5294              <p>Whether this camera device has a
5295flash.<wbr/></p>
5296            </td>
5297
5298            <td class="entry_units">
5299            </td>
5300
5301            <td class="entry_range">
5302            </td>
5303
5304            <td class="entry_tags">
5305              <ul class="entry_tags">
5306                  <li><a href="#tag_BC">BC</a></li>
5307              </ul>
5308            </td>
5309
5310          </tr>
5311          <tr class="entries_header">
5312            <th class="th_details" colspan="5">Details</th>
5313          </tr>
5314          <tr class="entry_cont">
5315            <td class="entry_details" colspan="5">
5316              <p>If no flash,<wbr/> none of the flash controls do
5317anything.<wbr/> All other metadata should return 0.<wbr/></p>
5318            </td>
5319          </tr>
5320
5321
5322          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5323           <!-- end of entry -->
5324        
5325                
5326          <tr class="entry" id="static_android.flash.info.chargeDuration">
5327            <td class="entry_name" rowspan="3">
5328              android.<wbr/>flash.<wbr/>info.<wbr/>charge<wbr/>Duration
5329            </td>
5330            <td class="entry_type">
5331                <span class="entry_type_name">int64</span>
5332
5333              <span class="entry_type_visibility"> [system]</span>
5334
5335
5336            </td> <!-- entry_type -->
5337
5338            <td class="entry_description">
5339              <p>Time taken before flash can fire
5340again</p>
5341            </td>
5342
5343            <td class="entry_units">
5344              nanoseconds
5345            </td>
5346
5347            <td class="entry_range">
5348              <p>0-1e9</p>
5349            </td>
5350
5351            <td class="entry_tags">
5352              <ul class="entry_tags">
5353                  <li><a href="#tag_V1">V1</a></li>
5354              </ul>
5355            </td>
5356
5357          </tr>
5358          <tr class="entries_header">
5359            <th class="th_details" colspan="5">Details</th>
5360          </tr>
5361          <tr class="entry_cont">
5362            <td class="entry_details" colspan="5">
5363              <p>1 second too long/<wbr/>too short for recharge? Should
5364this be power-dependent?</p>
5365            </td>
5366          </tr>
5367
5368
5369          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5370           <!-- end of entry -->
5371        
5372        
5373        
5374
5375                
5376          <tr class="entry" id="static_android.flash.colorTemperature">
5377            <td class="entry_name" rowspan="1">
5378              android.<wbr/>flash.<wbr/>color<wbr/>Temperature
5379            </td>
5380            <td class="entry_type">
5381                <span class="entry_type_name">byte</span>
5382
5383              <span class="entry_type_visibility"> [system]</span>
5384
5385
5386            </td> <!-- entry_type -->
5387
5388            <td class="entry_description">
5389              <p>The x,<wbr/>y whitepoint of the
5390flash</p>
5391            </td>
5392
5393            <td class="entry_units">
5394              pair of floats
5395            </td>
5396
5397            <td class="entry_range">
5398              <p>0-1 for both</p>
5399            </td>
5400
5401            <td class="entry_tags">
5402              <ul class="entry_tags">
5403                  <li><a href="#tag_ADV">ADV</a></li>
5404              </ul>
5405            </td>
5406
5407          </tr>
5408
5409
5410          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5411           <!-- end of entry -->
5412        
5413                
5414          <tr class="entry" id="static_android.flash.maxEnergy">
5415            <td class="entry_name" rowspan="1">
5416              android.<wbr/>flash.<wbr/>max<wbr/>Energy
5417            </td>
5418            <td class="entry_type">
5419                <span class="entry_type_name">byte</span>
5420
5421              <span class="entry_type_visibility"> [system]</span>
5422
5423
5424            </td> <!-- entry_type -->
5425
5426            <td class="entry_description">
5427              <p>Max energy output of the flash for a full
5428power single flash</p>
5429            </td>
5430
5431            <td class="entry_units">
5432              lumen-seconds
5433            </td>
5434
5435            <td class="entry_range">
5436              <p>&gt;= 0</p>
5437            </td>
5438
5439            <td class="entry_tags">
5440              <ul class="entry_tags">
5441                  <li><a href="#tag_ADV">ADV</a></li>
5442              </ul>
5443            </td>
5444
5445          </tr>
5446
5447
5448          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5449           <!-- end of entry -->
5450        
5451        
5452
5453      <!-- end of kind -->
5454      </tbody>
5455      <tr><td colspan="6" class="kind">dynamic</td></tr>
5456
5457      <thead class="entries_header">
5458        <tr>
5459          <th class="th_name">Property Name</th>
5460          <th class="th_type">Type</th>
5461          <th class="th_description">Description</th>
5462          <th class="th_units">Units</th>
5463          <th class="th_range">Range</th>
5464          <th class="th_tags">Tags</th>
5465        </tr>
5466      </thead>
5467
5468      <tbody>
5469
5470        
5471
5472        
5473
5474        
5475
5476        
5477
5478                
5479          <tr class="entry" id="dynamic_android.flash.firingPower">
5480            <td class="entry_name" rowspan="3">
5481              android.<wbr/>flash.<wbr/>firing<wbr/>Power
5482            </td>
5483            <td class="entry_type">
5484                <span class="entry_type_name">byte</span>
5485
5486              <span class="entry_type_visibility"> [system]</span>
5487
5488
5489            </td> <!-- entry_type -->
5490
5491            <td class="entry_description">
5492              <p>Power for flash firing/<wbr/>torch</p>
5493            </td>
5494
5495            <td class="entry_units">
5496              10 is max power; 0 is no flash.<wbr/> Linear
5497            </td>
5498
5499            <td class="entry_range">
5500              <p>0 - 10</p>
5501            </td>
5502
5503            <td class="entry_tags">
5504              <ul class="entry_tags">
5505                  <li><a href="#tag_V1">V1</a></li>
5506              </ul>
5507            </td>
5508
5509          </tr>
5510          <tr class="entries_header">
5511            <th class="th_details" colspan="5">Details</th>
5512          </tr>
5513          <tr class="entry_cont">
5514            <td class="entry_details" colspan="5">
5515              <p>Power for snapshot may use a different scale than
5516for torch mode.<wbr/> Only one entry for torch mode will be
5517used</p>
5518            </td>
5519          </tr>
5520
5521
5522          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5523           <!-- end of entry -->
5524        
5525                
5526          <tr class="entry" id="dynamic_android.flash.firingTime">
5527            <td class="entry_name" rowspan="3">
5528              android.<wbr/>flash.<wbr/>firing<wbr/>Time
5529            </td>
5530            <td class="entry_type">
5531                <span class="entry_type_name">int64</span>
5532
5533              <span class="entry_type_visibility"> [system]</span>
5534
5535
5536            </td> <!-- entry_type -->
5537
5538            <td class="entry_description">
5539              <p>Firing time of flash relative to start of
5540exposure</p>
5541            </td>
5542
5543            <td class="entry_units">
5544              nanoseconds
5545            </td>
5546
5547            <td class="entry_range">
5548              <p>0-(exposure time-flash duration)</p>
5549            </td>
5550
5551            <td class="entry_tags">
5552              <ul class="entry_tags">
5553                  <li><a href="#tag_V1">V1</a></li>
5554              </ul>
5555            </td>
5556
5557          </tr>
5558          <tr class="entries_header">
5559            <th class="th_details" colspan="5">Details</th>
5560          </tr>
5561          <tr class="entry_cont">
5562            <td class="entry_details" colspan="5">
5563              <p>Clamped to (0,<wbr/> exposure time - flash
5564duration).<wbr/></p>
5565            </td>
5566          </tr>
5567
5568
5569          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5570           <!-- end of entry -->
5571        
5572                
5573          <tr class="entry" id="dynamic_android.flash.mode">
5574            <td class="entry_name" rowspan="3">
5575              android.<wbr/>flash.<wbr/>mode
5576            </td>
5577            <td class="entry_type">
5578                <span class="entry_type_name entry_type_name_enum">byte</span>
5579
5580              <span class="entry_type_visibility"> [public]</span>
5581
5582                <ul class="entry_type_enum">
5583                  <li>
5584                    <span class="entry_type_enum_name">OFF</span>
5585                    <span class="entry_type_enum_notes"><p>Do not fire the flash for this capture.<wbr/></p></span>
5586                  </li>
5587                  <li>
5588                    <span class="entry_type_enum_name">SINGLE</span>
5589                    <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
5590for this capture based on <a href="#controls_android.flash.firingPower">android.<wbr/>flash.<wbr/>firing<wbr/>Power</a> and
5591<a href="#controls_android.flash.firingTime">android.<wbr/>flash.<wbr/>firing<wbr/>Time</a>.<wbr/></p></span>
5592                  </li>
5593                  <li>
5594                    <span class="entry_type_enum_name">TORCH</span>
5595                    <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
5596                  </li>
5597                </ul>
5598
5599            </td> <!-- entry_type -->
5600
5601            <td class="entry_description">
5602              <p>The desired mode for for the camera device's flash control.<wbr/></p>
5603            </td>
5604
5605            <td class="entry_units">
5606            </td>
5607
5608            <td class="entry_range">
5609            </td>
5610
5611            <td class="entry_tags">
5612              <ul class="entry_tags">
5613                  <li><a href="#tag_BC">BC</a></li>
5614              </ul>
5615            </td>
5616
5617          </tr>
5618          <tr class="entries_header">
5619            <th class="th_details" colspan="5">Details</th>
5620          </tr>
5621          <tr class="entry_cont">
5622            <td class="entry_details" colspan="5">
5623              <p>This control is only effective when flash unit is available
5624(<code><a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> == true</code>).<wbr/></p>
5625<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/>
5626Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
5627ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
5628<p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
5629<p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
5630device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
5631control should be used along with AE precapture metering sequence
5632(<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>
5633<p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
5634for use cases such as preview,<wbr/> auto-focus assist,<wbr/> still capture,<wbr/> or video recording.<wbr/></p>
5635<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>
5636            </td>
5637          </tr>
5638
5639
5640          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5641           <!-- end of entry -->
5642        
5643                
5644          <tr class="entry" id="dynamic_android.flash.state">
5645            <td class="entry_name" rowspan="3">
5646              android.<wbr/>flash.<wbr/>state
5647            </td>
5648            <td class="entry_type">
5649                <span class="entry_type_name entry_type_name_enum">byte</span>
5650
5651              <span class="entry_type_visibility"> [public]</span>
5652
5653                <ul class="entry_type_enum">
5654                  <li>
5655                    <span class="entry_type_enum_name">UNAVAILABLE</span>
5656                    <span class="entry_type_enum_notes"><p>No flash on camera</p></span>
5657                  </li>
5658                  <li>
5659                    <span class="entry_type_enum_name">CHARGING</span>
5660                    <span class="entry_type_enum_notes"><p>if <a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is true Flash is
5661charging and cannot be fired</p></span>
5662                  </li>
5663                  <li>
5664                    <span class="entry_type_enum_name">READY</span>
5665                    <span class="entry_type_enum_notes"><p>if <a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is true Flash is
5666ready to fire</p></span>
5667                  </li>
5668                  <li>
5669                    <span class="entry_type_enum_name">FIRED</span>
5670                    <span class="entry_type_enum_notes"><p>if <a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is true Flash fired
5671for this capture</p></span>
5672                  </li>
5673                </ul>
5674
5675            </td> <!-- entry_type -->
5676
5677            <td class="entry_description">
5678              <p>Current state of the flash
5679unit.<wbr/></p>
5680            </td>
5681
5682            <td class="entry_units">
5683            </td>
5684
5685            <td class="entry_range">
5686            </td>
5687
5688            <td class="entry_tags">
5689            </td>
5690
5691          </tr>
5692          <tr class="entries_header">
5693            <th class="th_details" colspan="5">Details</th>
5694          </tr>
5695          <tr class="entry_cont">
5696            <td class="entry_details" colspan="5">
5697              <p>When the camera device doesn't have flash unit
5698(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/>
5699Other states indicate the current flash status.<wbr/></p>
5700            </td>
5701          </tr>
5702
5703
5704          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5705           <!-- end of entry -->
5706        
5707        
5708
5709      <!-- end of kind -->
5710      </tbody>
5711
5712  <!-- end of section -->
5713  <tr><td colspan="6" id="section_geometric" class="section">geometric</td></tr>
5714
5715
5716      <tr><td colspan="6" class="kind">controls</td></tr>
5717
5718      <thead class="entries_header">
5719        <tr>
5720          <th class="th_name">Property Name</th>
5721          <th class="th_type">Type</th>
5722          <th class="th_description">Description</th>
5723          <th class="th_units">Units</th>
5724          <th class="th_range">Range</th>
5725          <th class="th_tags">Tags</th>
5726        </tr>
5727      </thead>
5728
5729      <tbody>
5730
5731        
5732
5733        
5734
5735        
5736
5737        
5738
5739                
5740          <tr class="entry" id="controls_android.geometric.mode">
5741            <td class="entry_name" rowspan="1">
5742              android.<wbr/>geometric.<wbr/>mode
5743            </td>
5744            <td class="entry_type">
5745                <span class="entry_type_name entry_type_name_enum">byte</span>
5746
5747              <span class="entry_type_visibility"> [system]</span>
5748
5749                <ul class="entry_type_enum">
5750                  <li>
5751                    <span class="entry_type_enum_name">OFF</span>
5752                    <span class="entry_type_enum_notes"><p>No geometric correction is
5753applied</p></span>
5754                  </li>
5755                  <li>
5756                    <span class="entry_type_enum_name">FAST</span>
5757                    <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to raw
5758bayer output</p></span>
5759                  </li>
5760                  <li>
5761                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
5762                    <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5763quality</p></span>
5764                  </li>
5765                </ul>
5766
5767            </td> <!-- entry_type -->
5768
5769            <td class="entry_description">
5770              <p>Operating mode of geometric
5771correction</p>
5772            </td>
5773
5774            <td class="entry_units">
5775            </td>
5776
5777            <td class="entry_range">
5778            </td>
5779
5780            <td class="entry_tags">
5781            </td>
5782
5783          </tr>
5784
5785
5786          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5787           <!-- end of entry -->
5788        
5789                
5790          <tr class="entry" id="controls_android.geometric.strength">
5791            <td class="entry_name" rowspan="1">
5792              android.<wbr/>geometric.<wbr/>strength
5793            </td>
5794            <td class="entry_type">
5795                <span class="entry_type_name">byte</span>
5796
5797              <span class="entry_type_visibility"> [system]</span>
5798
5799
5800            </td> <!-- entry_type -->
5801
5802            <td class="entry_description">
5803              <p>Control the amount of shading correction
5804applied to the images</p>
5805            </td>
5806
5807            <td class="entry_units">
5808              unitless: 1-10; 10 is full shading
5809          compensation
5810            </td>
5811
5812            <td class="entry_range">
5813            </td>
5814
5815            <td class="entry_tags">
5816              <ul class="entry_tags">
5817                  <li><a href="#tag_ADV">ADV</a></li>
5818              </ul>
5819            </td>
5820
5821          </tr>
5822
5823
5824          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5825           <!-- end of entry -->
5826        
5827        
5828
5829      <!-- end of kind -->
5830      </tbody>
5831
5832  <!-- end of section -->
5833  <tr><td colspan="6" id="section_hotPixel" class="section">hotPixel</td></tr>
5834
5835
5836      <tr><td colspan="6" class="kind">controls</td></tr>
5837
5838      <thead class="entries_header">
5839        <tr>
5840          <th class="th_name">Property Name</th>
5841          <th class="th_type">Type</th>
5842          <th class="th_description">Description</th>
5843          <th class="th_units">Units</th>
5844          <th class="th_range">Range</th>
5845          <th class="th_tags">Tags</th>
5846        </tr>
5847      </thead>
5848
5849      <tbody>
5850
5851        
5852
5853        
5854
5855        
5856
5857        
5858
5859                
5860          <tr class="entry" id="controls_android.hotPixel.mode">
5861            <td class="entry_name" rowspan="1">
5862              android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
5863            </td>
5864            <td class="entry_type">
5865                <span class="entry_type_name entry_type_name_enum">byte</span>
5866
5867              <span class="entry_type_visibility"> [system]</span>
5868
5869                <ul class="entry_type_enum">
5870                  <li>
5871                    <span class="entry_type_enum_name">OFF</span>
5872                    <span class="entry_type_enum_notes"><p>No hot pixel correction can be
5873applied</p></span>
5874                  </li>
5875                  <li>
5876                    <span class="entry_type_enum_name">FAST</span>
5877                    <span class="entry_type_enum_notes"><p>Frame rate must not be reduced compared to raw
5878Bayer output</p></span>
5879                  </li>
5880                  <li>
5881                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
5882                    <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5883quality</p></span>
5884                  </li>
5885                </ul>
5886
5887            </td> <!-- entry_type -->
5888
5889            <td class="entry_description">
5890              <p>Set operational mode for hot pixel
5891correction</p>
5892            </td>
5893
5894            <td class="entry_units">
5895            </td>
5896
5897            <td class="entry_range">
5898            </td>
5899
5900            <td class="entry_tags">
5901              <ul class="entry_tags">
5902                  <li><a href="#tag_V1">V1</a></li>
5903              </ul>
5904            </td>
5905
5906          </tr>
5907
5908
5909          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5910           <!-- end of entry -->
5911        
5912        
5913
5914      <!-- end of kind -->
5915      </tbody>
5916      <tr><td colspan="6" class="kind">static</td></tr>
5917
5918      <thead class="entries_header">
5919        <tr>
5920          <th class="th_name">Property Name</th>
5921          <th class="th_type">Type</th>
5922          <th class="th_description">Description</th>
5923          <th class="th_units">Units</th>
5924          <th class="th_range">Range</th>
5925          <th class="th_tags">Tags</th>
5926        </tr>
5927      </thead>
5928
5929      <tbody>
5930
5931        
5932
5933        
5934
5935        
5936
5937        
5938                
5939            
5940
5941                
5942          <tr class="entry" id="static_android.hotPixel.info.map">
5943            <td class="entry_name" rowspan="1">
5944              android.<wbr/>hot<wbr/>Pixel.<wbr/>info.<wbr/>map
5945            </td>
5946            <td class="entry_type">
5947                <span class="entry_type_name">int32</span>
5948                <span class="entry_type_container">x</span>
5949
5950                <span class="entry_type_array">
5951                  2 x n
5952                </span>
5953              <span class="entry_type_visibility"> [system]</span>
5954                <div class="entry_type_notes">list of coordinates based on android.<wbr/>sensor.<wbr/>pixel<wbr/>Array<wbr/>Size</div>
5955
5956
5957            </td> <!-- entry_type -->
5958
5959            <td class="entry_description">
5960              <p>Location of hot/<wbr/>defective pixels on
5961sensor</p>
5962            </td>
5963
5964            <td class="entry_units">
5965            </td>
5966
5967            <td class="entry_range">
5968            </td>
5969
5970            <td class="entry_tags">
5971              <ul class="entry_tags">
5972                  <li><a href="#tag_ADV">ADV</a></li>
5973              </ul>
5974            </td>
5975
5976          </tr>
5977
5978
5979          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5980           <!-- end of entry -->
5981        
5982        
5983        
5984
5985        
5986
5987      <!-- end of kind -->
5988      </tbody>
5989      <tr><td colspan="6" class="kind">dynamic</td></tr>
5990
5991      <thead class="entries_header">
5992        <tr>
5993          <th class="th_name">Property Name</th>
5994          <th class="th_type">Type</th>
5995          <th class="th_description">Description</th>
5996          <th class="th_units">Units</th>
5997          <th class="th_range">Range</th>
5998          <th class="th_tags">Tags</th>
5999        </tr>
6000      </thead>
6001
6002      <tbody>
6003
6004        
6005
6006        
6007
6008        
6009
6010        
6011
6012                
6013          <tr class="entry" id="dynamic_android.hotPixel.mode">
6014            <td class="entry_name" rowspan="1">
6015              android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
6016            </td>
6017            <td class="entry_type">
6018                <span class="entry_type_name entry_type_name_enum">byte</span>
6019
6020              <span class="entry_type_visibility"> [system]</span>
6021
6022                <ul class="entry_type_enum">
6023                  <li>
6024                    <span class="entry_type_enum_name">OFF</span>
6025                    <span class="entry_type_enum_notes"><p>No hot pixel correction can be
6026applied</p></span>
6027                  </li>
6028                  <li>
6029                    <span class="entry_type_enum_name">FAST</span>
6030                    <span class="entry_type_enum_notes"><p>Frame rate must not be reduced compared to raw
6031Bayer output</p></span>
6032                  </li>
6033                  <li>
6034                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
6035                    <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
6036quality</p></span>
6037                  </li>
6038                </ul>
6039
6040            </td> <!-- entry_type -->
6041
6042            <td class="entry_description">
6043              <p>Set operational mode for hot pixel
6044correction</p>
6045            </td>
6046
6047            <td class="entry_units">
6048            </td>
6049
6050            <td class="entry_range">
6051            </td>
6052
6053            <td class="entry_tags">
6054              <ul class="entry_tags">
6055                  <li><a href="#tag_V1">V1</a></li>
6056              </ul>
6057            </td>
6058
6059          </tr>
6060
6061
6062          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6063           <!-- end of entry -->
6064        
6065        
6066
6067      <!-- end of kind -->
6068      </tbody>
6069
6070  <!-- end of section -->
6071  <tr><td colspan="6" id="section_jpeg" class="section">jpeg</td></tr>
6072
6073
6074      <tr><td colspan="6" class="kind">controls</td></tr>
6075
6076      <thead class="entries_header">
6077        <tr>
6078          <th class="th_name">Property Name</th>
6079          <th class="th_type">Type</th>
6080          <th class="th_description">Description</th>
6081          <th class="th_units">Units</th>
6082          <th class="th_range">Range</th>
6083          <th class="th_tags">Tags</th>
6084        </tr>
6085      </thead>
6086
6087      <tbody>
6088
6089        
6090
6091        
6092
6093        
6094
6095        
6096
6097                
6098          <tr class="entry" id="controls_android.jpeg.gpsCoordinates">
6099            <td class="entry_name" rowspan="1">
6100              android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
6101            </td>
6102            <td class="entry_type">
6103                <span class="entry_type_name">double</span>
6104                <span class="entry_type_container">x</span>
6105
6106                <span class="entry_type_array">
6107                  3
6108                </span>
6109              <span class="entry_type_visibility"> [public]</span>
6110                <div class="entry_type_notes">latitude,<wbr/> longitude,<wbr/> altitude.<wbr/> First two in degrees,<wbr/> the third in meters</div>
6111
6112
6113            </td> <!-- entry_type -->
6114
6115            <td class="entry_description">
6116              <p>GPS coordinates to include in output JPEG
6117EXIF</p>
6118            </td>
6119
6120            <td class="entry_units">
6121            </td>
6122
6123            <td class="entry_range">
6124              <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
6125            </td>
6126
6127            <td class="entry_tags">
6128              <ul class="entry_tags">
6129                  <li><a href="#tag_BC">BC</a></li>
6130              </ul>
6131            </td>
6132
6133          </tr>
6134
6135
6136          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6137           <!-- end of entry -->
6138        
6139                
6140          <tr class="entry" id="controls_android.jpeg.gpsProcessingMethod">
6141            <td class="entry_name" rowspan="1">
6142              android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
6143            </td>
6144            <td class="entry_type">
6145                <span class="entry_type_name">byte</span>
6146
6147              <span class="entry_type_visibility"> [public as string]</span>
6148
6149
6150            </td> <!-- entry_type -->
6151
6152            <td class="entry_description">
6153              <p>32 characters describing GPS algorithm to
6154include in EXIF</p>
6155            </td>
6156
6157            <td class="entry_units">
6158              UTF-8 null-terminated string
6159            </td>
6160
6161            <td class="entry_range">
6162            </td>
6163
6164            <td class="entry_tags">
6165              <ul class="entry_tags">
6166                  <li><a href="#tag_BC">BC</a></li>
6167              </ul>
6168            </td>
6169
6170          </tr>
6171
6172
6173          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6174           <!-- end of entry -->
6175        
6176                
6177          <tr class="entry" id="controls_android.jpeg.gpsTimestamp">
6178            <td class="entry_name" rowspan="1">
6179              android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
6180            </td>
6181            <td class="entry_type">
6182                <span class="entry_type_name">int64</span>
6183
6184              <span class="entry_type_visibility"> [public]</span>
6185
6186
6187            </td> <!-- entry_type -->
6188
6189            <td class="entry_description">
6190              <p>Time GPS fix was made to include in
6191EXIF</p>
6192            </td>
6193
6194            <td class="entry_units">
6195              UTC in seconds since January 1,<wbr/> 1970
6196            </td>
6197
6198            <td class="entry_range">
6199            </td>
6200
6201            <td class="entry_tags">
6202              <ul class="entry_tags">
6203                  <li><a href="#tag_BC">BC</a></li>
6204              </ul>
6205            </td>
6206
6207          </tr>
6208
6209
6210          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6211           <!-- end of entry -->
6212        
6213                
6214          <tr class="entry" id="controls_android.jpeg.orientation">
6215            <td class="entry_name" rowspan="1">
6216              android.<wbr/>jpeg.<wbr/>orientation
6217            </td>
6218            <td class="entry_type">
6219                <span class="entry_type_name">int32</span>
6220
6221              <span class="entry_type_visibility"> [public]</span>
6222
6223
6224            </td> <!-- entry_type -->
6225
6226            <td class="entry_description">
6227              <p>Orientation of JPEG image to
6228write</p>
6229            </td>
6230
6231            <td class="entry_units">
6232              Degrees in multiples of 90
6233            </td>
6234
6235            <td class="entry_range">
6236              <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
6237            </td>
6238
6239            <td class="entry_tags">
6240              <ul class="entry_tags">
6241                  <li><a href="#tag_BC">BC</a></li>
6242              </ul>
6243            </td>
6244
6245          </tr>
6246
6247
6248          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6249           <!-- end of entry -->
6250        
6251                
6252          <tr class="entry" id="controls_android.jpeg.quality">
6253            <td class="entry_name" rowspan="3">
6254              android.<wbr/>jpeg.<wbr/>quality
6255            </td>
6256            <td class="entry_type">
6257                <span class="entry_type_name">byte</span>
6258
6259              <span class="entry_type_visibility"> [public]</span>
6260
6261
6262            </td> <!-- entry_type -->
6263
6264            <td class="entry_description">
6265              <p>Compression quality of the final JPEG
6266image</p>
6267            </td>
6268
6269            <td class="entry_units">
6270            </td>
6271
6272            <td class="entry_range">
6273              <p>1-100; larger is higher quality</p>
6274            </td>
6275
6276            <td class="entry_tags">
6277              <ul class="entry_tags">
6278                  <li><a href="#tag_BC">BC</a></li>
6279              </ul>
6280            </td>
6281
6282          </tr>
6283          <tr class="entries_header">
6284            <th class="th_details" colspan="5">Details</th>
6285          </tr>
6286          <tr class="entry_cont">
6287            <td class="entry_details" colspan="5">
6288              <p>85-95 is typical usage range</p>
6289            </td>
6290          </tr>
6291
6292
6293          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6294           <!-- end of entry -->
6295        
6296                
6297          <tr class="entry" id="controls_android.jpeg.thumbnailQuality">
6298            <td class="entry_name" rowspan="1">
6299              android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
6300            </td>
6301            <td class="entry_type">
6302                <span class="entry_type_name">byte</span>
6303
6304              <span class="entry_type_visibility"> [public]</span>
6305
6306
6307            </td> <!-- entry_type -->
6308
6309            <td class="entry_description">
6310              <p>Compression quality of JPEG
6311thumbnail</p>
6312            </td>
6313
6314            <td class="entry_units">
6315            </td>
6316
6317            <td class="entry_range">
6318              <p>1-100; larger is higher quality</p>
6319            </td>
6320
6321            <td class="entry_tags">
6322              <ul class="entry_tags">
6323                  <li><a href="#tag_BC">BC</a></li>
6324              </ul>
6325            </td>
6326
6327          </tr>
6328
6329
6330          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6331           <!-- end of entry -->
6332        
6333                
6334          <tr class="entry" id="controls_android.jpeg.thumbnailSize">
6335            <td class="entry_name" rowspan="3">
6336              android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
6337            </td>
6338            <td class="entry_type">
6339                <span class="entry_type_name">int32</span>
6340                <span class="entry_type_container">x</span>
6341
6342                <span class="entry_type_array">
6343                  2
6344                </span>
6345              <span class="entry_type_visibility"> [public as size]</span>
6346
6347
6348            </td> <!-- entry_type -->
6349
6350            <td class="entry_description">
6351              <p>Resolution of embedded JPEG thumbnail</p>
6352            </td>
6353
6354            <td class="entry_units">
6355            </td>
6356
6357            <td class="entry_range">
6358              <p>Size must be one of the size from <a href="#static_android.jpeg.availableThumbnailSizes">android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes</a></p>
6359            </td>
6360
6361            <td class="entry_tags">
6362              <ul class="entry_tags">
6363                  <li><a href="#tag_BC">BC</a></li>
6364              </ul>
6365            </td>
6366
6367          </tr>
6368          <tr class="entries_header">
6369            <th class="th_details" colspan="5">Details</th>
6370          </tr>
6371          <tr class="entry_cont">
6372            <td class="entry_details" colspan="5">
6373              <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
6374but the captured JPEG will still be a valid image.<wbr/></p>
6375<p>When a jpeg image capture is issued,<wbr/> the thumbnail size selected should have
6376the same aspect ratio as the jpeg image.<wbr/></p>
6377            </td>
6378          </tr>
6379
6380
6381          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6382           <!-- end of entry -->
6383        
6384        
6385
6386      <!-- end of kind -->
6387      </tbody>
6388      <tr><td colspan="6" class="kind">static</td></tr>
6389
6390      <thead class="entries_header">
6391        <tr>
6392          <th class="th_name">Property Name</th>
6393          <th class="th_type">Type</th>
6394          <th class="th_description">Description</th>
6395          <th class="th_units">Units</th>
6396          <th class="th_range">Range</th>
6397          <th class="th_tags">Tags</th>
6398        </tr>
6399      </thead>
6400
6401      <tbody>
6402
6403        
6404
6405        
6406
6407        
6408
6409        
6410
6411                
6412          <tr class="entry" id="static_android.jpeg.availableThumbnailSizes">
6413            <td class="entry_name" rowspan="3">
6414              android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes
6415            </td>
6416            <td class="entry_type">
6417                <span class="entry_type_name">int32</span>
6418                <span class="entry_type_container">x</span>
6419
6420                <span class="entry_type_array">
6421                  2 x n
6422                </span>
6423              <span class="entry_type_visibility"> [public as size]</span>
6424
6425
6426            </td> <!-- entry_type -->
6427
6428            <td class="entry_description">
6429              <p>Supported resolutions for the JPEG thumbnail</p>
6430            </td>
6431
6432            <td class="entry_units">
6433            </td>
6434
6435            <td class="entry_range">
6436              <p>Will include at least one valid resolution,<wbr/> plus
6437(0,<wbr/>0) for no thumbnail generation,<wbr/> and each size will be distinct.<wbr/></p>
6438            </td>
6439
6440            <td class="entry_tags">
6441              <ul class="entry_tags">
6442                  <li><a href="#tag_BC">BC</a></li>
6443              </ul>
6444            </td>
6445
6446          </tr>
6447          <tr class="entries_header">
6448            <th class="th_details" colspan="5">Details</th>
6449          </tr>
6450          <tr class="entry_cont">
6451            <td class="entry_details" colspan="5">
6452              <p>Below condiditions will be satisfied for this size list:</p>
6453<ul>
6454<li>The sizes will be sorted by increasing pixel area (width x height).<wbr/>
6455If several resolutions have the same area,<wbr/> they will be sorted by increasing width.<wbr/></li>
6456<li>The aspect ratio of the largest thumbnail size will be same as the
6457aspect ratio of largest size in <a href="#static_android.scaler.availableJpegSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes</a>.<wbr/>
6458The largest size is defined as the size that has the largest pixel area
6459in a given size list.<wbr/></li>
6460<li>Each size in <a href="#static_android.scaler.availableJpegSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes</a> will have at least
6461one corresponding size that has the same aspect ratio in availableThumbnailSizes,<wbr/>
6462and vice versa.<wbr/></li>
6463<li>All non (0,<wbr/> 0) sizes will have non-zero widths and heights.<wbr/></li>
6464</ul>
6465            </td>
6466          </tr>
6467
6468
6469          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6470           <!-- end of entry -->
6471        
6472                
6473          <tr class="entry" id="static_android.jpeg.maxSize">
6474            <td class="entry_name" rowspan="3">
6475              android.<wbr/>jpeg.<wbr/>max<wbr/>Size
6476            </td>
6477            <td class="entry_type">
6478                <span class="entry_type_name">int32</span>
6479
6480              <span class="entry_type_visibility"> [system]</span>
6481
6482
6483            </td> <!-- entry_type -->
6484
6485            <td class="entry_description">
6486              <p>Maximum size in bytes for the compressed
6487JPEG buffer</p>
6488            </td>
6489
6490            <td class="entry_units">
6491            </td>
6492
6493            <td class="entry_range">
6494              <p>Must be large enough to fit any JPEG produced by
6495the camera</p>
6496            </td>
6497
6498            <td class="entry_tags">
6499            </td>
6500
6501          </tr>
6502          <tr class="entries_header">
6503            <th class="th_details" colspan="5">Details</th>
6504          </tr>
6505          <tr class="entry_cont">
6506            <td class="entry_details" colspan="5">
6507              <p>This is used for sizing the gralloc buffers for
6508JPEG</p>
6509            </td>
6510          </tr>
6511
6512
6513          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6514           <!-- end of entry -->
6515        
6516        
6517
6518      <!-- end of kind -->
6519      </tbody>
6520      <tr><td colspan="6" class="kind">dynamic</td></tr>
6521
6522      <thead class="entries_header">
6523        <tr>
6524          <th class="th_name">Property Name</th>
6525          <th class="th_type">Type</th>
6526          <th class="th_description">Description</th>
6527          <th class="th_units">Units</th>
6528          <th class="th_range">Range</th>
6529          <th class="th_tags">Tags</th>
6530        </tr>
6531      </thead>
6532
6533      <tbody>
6534
6535        
6536
6537        
6538
6539        
6540
6541        
6542
6543                
6544          <tr class="entry" id="dynamic_android.jpeg.gpsCoordinates">
6545            <td class="entry_name" rowspan="1">
6546              android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
6547            </td>
6548            <td class="entry_type">
6549                <span class="entry_type_name">double</span>
6550                <span class="entry_type_container">x</span>
6551
6552                <span class="entry_type_array">
6553                  3
6554                </span>
6555              <span class="entry_type_visibility"> [public]</span>
6556                <div class="entry_type_notes">latitude,<wbr/> longitude,<wbr/> altitude.<wbr/> First two in degrees,<wbr/> the third in meters</div>
6557
6558
6559            </td> <!-- entry_type -->
6560
6561            <td class="entry_description">
6562              <p>GPS coordinates to include in output JPEG
6563EXIF</p>
6564            </td>
6565
6566            <td class="entry_units">
6567            </td>
6568
6569            <td class="entry_range">
6570              <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
6571            </td>
6572
6573            <td class="entry_tags">
6574              <ul class="entry_tags">
6575                  <li><a href="#tag_BC">BC</a></li>
6576              </ul>
6577            </td>
6578
6579          </tr>
6580
6581
6582          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6583           <!-- end of entry -->
6584        
6585                
6586          <tr class="entry" id="dynamic_android.jpeg.gpsProcessingMethod">
6587            <td class="entry_name" rowspan="1">
6588              android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
6589            </td>
6590            <td class="entry_type">
6591                <span class="entry_type_name">byte</span>
6592
6593              <span class="entry_type_visibility"> [public as string]</span>
6594
6595
6596            </td> <!-- entry_type -->
6597
6598            <td class="entry_description">
6599              <p>32 characters describing GPS algorithm to
6600include in EXIF</p>
6601            </td>
6602
6603            <td class="entry_units">
6604              UTF-8 null-terminated string
6605            </td>
6606
6607            <td class="entry_range">
6608            </td>
6609
6610            <td class="entry_tags">
6611              <ul class="entry_tags">
6612                  <li><a href="#tag_BC">BC</a></li>
6613              </ul>
6614            </td>
6615
6616          </tr>
6617
6618
6619          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6620           <!-- end of entry -->
6621        
6622                
6623          <tr class="entry" id="dynamic_android.jpeg.gpsTimestamp">
6624            <td class="entry_name" rowspan="1">
6625              android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
6626            </td>
6627            <td class="entry_type">
6628                <span class="entry_type_name">int64</span>
6629
6630              <span class="entry_type_visibility"> [public]</span>
6631
6632
6633            </td> <!-- entry_type -->
6634
6635            <td class="entry_description">
6636              <p>Time GPS fix was made to include in
6637EXIF</p>
6638            </td>
6639
6640            <td class="entry_units">
6641              UTC in seconds since January 1,<wbr/> 1970
6642            </td>
6643
6644            <td class="entry_range">
6645            </td>
6646
6647            <td class="entry_tags">
6648              <ul class="entry_tags">
6649                  <li><a href="#tag_BC">BC</a></li>
6650              </ul>
6651            </td>
6652
6653          </tr>
6654
6655
6656          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6657           <!-- end of entry -->
6658        
6659                
6660          <tr class="entry" id="dynamic_android.jpeg.orientation">
6661            <td class="entry_name" rowspan="1">
6662              android.<wbr/>jpeg.<wbr/>orientation
6663            </td>
6664            <td class="entry_type">
6665                <span class="entry_type_name">int32</span>
6666
6667              <span class="entry_type_visibility"> [public]</span>
6668
6669
6670            </td> <!-- entry_type -->
6671
6672            <td class="entry_description">
6673              <p>Orientation of JPEG image to
6674write</p>
6675            </td>
6676
6677            <td class="entry_units">
6678              Degrees in multiples of 90
6679            </td>
6680
6681            <td class="entry_range">
6682              <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
6683            </td>
6684
6685            <td class="entry_tags">
6686              <ul class="entry_tags">
6687                  <li><a href="#tag_BC">BC</a></li>
6688              </ul>
6689            </td>
6690
6691          </tr>
6692
6693
6694          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6695           <!-- end of entry -->
6696        
6697                
6698          <tr class="entry" id="dynamic_android.jpeg.quality">
6699            <td class="entry_name" rowspan="3">
6700              android.<wbr/>jpeg.<wbr/>quality
6701            </td>
6702            <td class="entry_type">
6703                <span class="entry_type_name">byte</span>
6704
6705              <span class="entry_type_visibility"> [public]</span>
6706
6707
6708            </td> <!-- entry_type -->
6709
6710            <td class="entry_description">
6711              <p>Compression quality of the final JPEG
6712image</p>
6713            </td>
6714
6715            <td class="entry_units">
6716            </td>
6717
6718            <td class="entry_range">
6719              <p>1-100; larger is higher quality</p>
6720            </td>
6721
6722            <td class="entry_tags">
6723              <ul class="entry_tags">
6724                  <li><a href="#tag_BC">BC</a></li>
6725              </ul>
6726            </td>
6727
6728          </tr>
6729          <tr class="entries_header">
6730            <th class="th_details" colspan="5">Details</th>
6731          </tr>
6732          <tr class="entry_cont">
6733            <td class="entry_details" colspan="5">
6734              <p>85-95 is typical usage range</p>
6735            </td>
6736          </tr>
6737
6738
6739          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6740           <!-- end of entry -->
6741        
6742                
6743          <tr class="entry" id="dynamic_android.jpeg.size">
6744            <td class="entry_name" rowspan="3">
6745              android.<wbr/>jpeg.<wbr/>size
6746            </td>
6747            <td class="entry_type">
6748                <span class="entry_type_name">int32</span>
6749
6750              <span class="entry_type_visibility"> [system]</span>
6751
6752
6753            </td> <!-- entry_type -->
6754
6755            <td class="entry_description">
6756              <p>The size of the compressed JPEG image,<wbr/> in
6757bytes</p>
6758            </td>
6759
6760            <td class="entry_units">
6761            </td>
6762
6763            <td class="entry_range">
6764              <p>&gt;= 0</p>
6765            </td>
6766
6767            <td class="entry_tags">
6768            </td>
6769
6770          </tr>
6771          <tr class="entries_header">
6772            <th class="th_details" colspan="5">Details</th>
6773          </tr>
6774          <tr class="entry_cont">
6775            <td class="entry_details" colspan="5">
6776              <p>If no JPEG output is produced for the request,<wbr/>
6777this must be 0.<wbr/></p>
6778<p>Otherwise,<wbr/> this describes the real size of the compressed
6779JPEG image placed in the output stream.<wbr/>  More specifically,<wbr/>
6780if <a href="#static_android.jpeg.maxSize">android.<wbr/>jpeg.<wbr/>max<wbr/>Size</a> = 1000000,<wbr/> and a specific capture
6781has <a href="#dynamic_android.jpeg.size">android.<wbr/>jpeg.<wbr/>size</a> = 500000,<wbr/> then the output buffer from
6782the JPEG stream will be 1000000 bytes,<wbr/> of which the first
6783500000 make up the real data.<wbr/></p>
6784            </td>
6785          </tr>
6786
6787
6788          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6789           <!-- end of entry -->
6790        
6791                
6792          <tr class="entry" id="dynamic_android.jpeg.thumbnailQuality">
6793            <td class="entry_name" rowspan="1">
6794              android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
6795            </td>
6796            <td class="entry_type">
6797                <span class="entry_type_name">byte</span>
6798
6799              <span class="entry_type_visibility"> [public]</span>
6800
6801
6802            </td> <!-- entry_type -->
6803
6804            <td class="entry_description">
6805              <p>Compression quality of JPEG
6806thumbnail</p>
6807            </td>
6808
6809            <td class="entry_units">
6810            </td>
6811
6812            <td class="entry_range">
6813              <p>1-100; larger is higher quality</p>
6814            </td>
6815
6816            <td class="entry_tags">
6817              <ul class="entry_tags">
6818                  <li><a href="#tag_BC">BC</a></li>
6819              </ul>
6820            </td>
6821
6822          </tr>
6823
6824
6825          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6826           <!-- end of entry -->
6827        
6828                
6829          <tr class="entry" id="dynamic_android.jpeg.thumbnailSize">
6830            <td class="entry_name" rowspan="3">
6831              android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
6832            </td>
6833            <td class="entry_type">
6834                <span class="entry_type_name">int32</span>
6835                <span class="entry_type_container">x</span>
6836
6837                <span class="entry_type_array">
6838                  2
6839                </span>
6840              <span class="entry_type_visibility"> [public as size]</span>
6841
6842
6843            </td> <!-- entry_type -->
6844
6845            <td class="entry_description">
6846              <p>Resolution of embedded JPEG thumbnail</p>
6847            </td>
6848
6849            <td class="entry_units">
6850            </td>
6851
6852            <td class="entry_range">
6853              <p>Size must be one of the size from <a href="#static_android.jpeg.availableThumbnailSizes">android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes</a></p>
6854            </td>
6855
6856            <td class="entry_tags">
6857              <ul class="entry_tags">
6858                  <li><a href="#tag_BC">BC</a></li>
6859              </ul>
6860            </td>
6861
6862          </tr>
6863          <tr class="entries_header">
6864            <th class="th_details" colspan="5">Details</th>
6865          </tr>
6866          <tr class="entry_cont">
6867            <td class="entry_details" colspan="5">
6868              <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
6869but the captured JPEG will still be a valid image.<wbr/></p>
6870<p>When a jpeg image capture is issued,<wbr/> the thumbnail size selected should have
6871the same aspect ratio as the jpeg image.<wbr/></p>
6872            </td>
6873          </tr>
6874
6875
6876          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6877           <!-- end of entry -->
6878        
6879        
6880
6881      <!-- end of kind -->
6882      </tbody>
6883
6884  <!-- end of section -->
6885  <tr><td colspan="6" id="section_lens" class="section">lens</td></tr>
6886
6887
6888      <tr><td colspan="6" class="kind">controls</td></tr>
6889
6890      <thead class="entries_header">
6891        <tr>
6892          <th class="th_name">Property Name</th>
6893          <th class="th_type">Type</th>
6894          <th class="th_description">Description</th>
6895          <th class="th_units">Units</th>
6896          <th class="th_range">Range</th>
6897          <th class="th_tags">Tags</th>
6898        </tr>
6899      </thead>
6900
6901      <tbody>
6902
6903        
6904
6905        
6906
6907        
6908
6909        
6910
6911                
6912          <tr class="entry" id="controls_android.lens.aperture">
6913            <td class="entry_name" rowspan="3">
6914              android.<wbr/>lens.<wbr/>aperture
6915            </td>
6916            <td class="entry_type">
6917                <span class="entry_type_name">float</span>
6918
6919              <span class="entry_type_visibility"> [public]</span>
6920
6921
6922            </td> <!-- entry_type -->
6923
6924            <td class="entry_description">
6925              <p>The ratio of lens focal length to the effective
6926aperture diameter.<wbr/></p>
6927            </td>
6928
6929            <td class="entry_units">
6930              f-number (f/<wbr/>NNN)
6931            </td>
6932
6933            <td class="entry_range">
6934              <p><a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a></p>
6935            </td>
6936
6937            <td class="entry_tags">
6938              <ul class="entry_tags">
6939                  <li><a href="#tag_V1">V1</a></li>
6940              </ul>
6941            </td>
6942
6943          </tr>
6944          <tr class="entries_header">
6945            <th class="th_details" colspan="5">Details</th>
6946          </tr>
6947          <tr class="entry_cont">
6948            <td class="entry_details" colspan="5">
6949              <p>This will only be supported on the camera devices that
6950have variable aperture lens.<wbr/> The aperture value can only be
6951one of the values listed in <a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a>.<wbr/></p>
6952<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
6953this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
6954<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
6955to achieve manual exposure control.<wbr/></p>
6956<p>The requested aperture value may take several frames to reach the
6957requested value; the camera device will report the current (intermediate)
6958aperture size in capture result metadata while the aperture is changing.<wbr/>
6959While 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>
6960<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
6961the ON modes,<wbr/> this will be overridden by the camera device
6962auto-exposure algorithm,<wbr/> the overridden values are then provided
6963back to the user in the corresponding result.<wbr/></p>
6964            </td>
6965          </tr>
6966
6967
6968          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6969           <!-- end of entry -->
6970        
6971                
6972          <tr class="entry" id="controls_android.lens.filterDensity">
6973            <td class="entry_name" rowspan="3">
6974              android.<wbr/>lens.<wbr/>filter<wbr/>Density
6975            </td>
6976            <td class="entry_type">
6977                <span class="entry_type_name">float</span>
6978
6979              <span class="entry_type_visibility"> [public]</span>
6980
6981
6982            </td> <!-- entry_type -->
6983
6984            <td class="entry_description">
6985              <p>State of lens neutral density filter(s).<wbr/></p>
6986            </td>
6987
6988            <td class="entry_units">
6989              Steps of Exposure Value (EV).<wbr/>
6990            </td>
6991
6992            <td class="entry_range">
6993              <p><a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a></p>
6994            </td>
6995
6996            <td class="entry_tags">
6997              <ul class="entry_tags">
6998                  <li><a href="#tag_V1">V1</a></li>
6999              </ul>
7000            </td>
7001
7002          </tr>
7003          <tr class="entries_header">
7004            <th class="th_details" colspan="5">Details</th>
7005          </tr>
7006          <tr class="entry_cont">
7007            <td class="entry_details" colspan="5">
7008              <p>This will not be supported on most camera devices.<wbr/> On devices
7009where this is supported,<wbr/> this may only be set to one of the
7010values included in <a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a>.<wbr/></p>
7011<p>Lens filters are typically used to lower the amount of light the
7012sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
7013step is the standard logarithmic representation,<wbr/> which are
7014non-negative,<wbr/> and inversely proportional to the amount of light
7015hitting the sensor.<wbr/>  For example,<wbr/> setting this to 0 would result
7016in no reduction of the incoming light,<wbr/> and setting this to 2 would
7017mean that the filter is set to reduce incoming light by two stops
7018(allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
7019<p>It may take several frames before the lens filter density changes
7020to the requested value.<wbr/> While the filter density is still changing,<wbr/>
7021<a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
7022            </td>
7023          </tr>
7024
7025
7026          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7027           <!-- end of entry -->
7028        
7029                
7030          <tr class="entry" id="controls_android.lens.focalLength">
7031            <td class="entry_name" rowspan="3">
7032              android.<wbr/>lens.<wbr/>focal<wbr/>Length
7033            </td>
7034            <td class="entry_type">
7035                <span class="entry_type_name">float</span>
7036
7037              <span class="entry_type_visibility"> [public]</span>
7038
7039
7040            </td> <!-- entry_type -->
7041
7042            <td class="entry_description">
7043              <p>The current lens focal length; used for optical zoom.<wbr/></p>
7044            </td>
7045
7046            <td class="entry_units">
7047              focal length in mm
7048            </td>
7049
7050            <td class="entry_range">
7051              <p><a href="#static_android.lens.info.availableFocalLengths">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths</a></p>
7052            </td>
7053
7054            <td class="entry_tags">
7055              <ul class="entry_tags">
7056                  <li><a href="#tag_V1">V1</a></li>
7057              </ul>
7058            </td>
7059
7060          </tr>
7061          <tr class="entries_header">
7062            <th class="th_details" colspan="5">Details</th>
7063          </tr>
7064          <tr class="entry_cont">
7065            <td class="entry_details" colspan="5">
7066              <p>This setting controls the physical focal length of the camera
7067device's lens.<wbr/> Changing the focal length changes the field of
7068view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
7069<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
7070setting won't be applied instantaneously,<wbr/> and it may take several
7071frames before the lens can change to the requested focal length.<wbr/>
7072While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
7073be set to MOVING.<wbr/></p>
7074<p>This is expected not to be supported on most devices.<wbr/></p>
7075            </td>
7076          </tr>
7077
7078
7079          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7080           <!-- end of entry -->
7081        
7082                
7083          <tr class="entry" id="controls_android.lens.focusDistance">
7084            <td class="entry_name" rowspan="3">
7085              android.<wbr/>lens.<wbr/>focus<wbr/>Distance
7086            </td>
7087            <td class="entry_type">
7088                <span class="entry_type_name">float</span>
7089
7090              <span class="entry_type_visibility"> [public]</span>
7091
7092
7093            </td> <!-- entry_type -->
7094
7095            <td class="entry_description">
7096              <p>Distance to plane of sharpest focus,<wbr/>
7097measured from frontmost surface of the lens</p>
7098            </td>
7099
7100            <td class="entry_units">
7101              See android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details.<wbr/>
7102            </td>
7103
7104            <td class="entry_range">
7105              <p>&gt;= 0</p>
7106            </td>
7107
7108            <td class="entry_tags">
7109              <ul class="entry_tags">
7110                  <li><a href="#tag_BC">BC</a></li>
7111                  <li><a href="#tag_V1">V1</a></li>
7112              </ul>
7113            </td>
7114
7115          </tr>
7116          <tr class="entries_header">
7117            <th class="th_details" colspan="5">Details</th>
7118          </tr>
7119          <tr class="entry_cont">
7120            <td class="entry_details" colspan="5">
7121              <p>0 means infinity focus.<wbr/> Used value will be clamped
7122to [0,<wbr/> <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a>].<wbr/></p>
7123<p>Like <a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>,<wbr/> this setting won't be applied
7124instantaneously,<wbr/> and it may take several frames before the lens
7125can move to the requested focus distance.<wbr/> While the lens is still moving,<wbr/>
7126<a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
7127            </td>
7128          </tr>
7129
7130
7131          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7132           <!-- end of entry -->
7133        
7134                
7135          <tr class="entry" id="controls_android.lens.opticalStabilizationMode">
7136            <td class="entry_name" rowspan="3">
7137              android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
7138            </td>
7139            <td class="entry_type">
7140                <span class="entry_type_name entry_type_name_enum">byte</span>
7141
7142              <span class="entry_type_visibility"> [public]</span>
7143
7144                <ul class="entry_type_enum">
7145                  <li>
7146                    <span class="entry_type_enum_name">OFF</span>
7147                    <span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
7148                  </li>
7149                  <li>
7150                    <span class="entry_type_enum_name">ON</span>
7151                    <span class="entry_type_enum_optional">optional</span>
7152                    <span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
7153                  </li>
7154                </ul>
7155
7156            </td> <!-- entry_type -->
7157
7158            <td class="entry_description">
7159              <p>Sets whether the camera device uses optical image stabilization (OIS)
7160when capturing images.<wbr/></p>
7161            </td>
7162
7163            <td class="entry_units">
7164            </td>
7165
7166            <td class="entry_range">
7167              <p><a href="#static_android.lens.info.availableOpticalStabilization">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization</a></p>
7168            </td>
7169
7170            <td class="entry_tags">
7171              <ul class="entry_tags">
7172                  <li><a href="#tag_V1">V1</a></li>
7173              </ul>
7174            </td>
7175
7176          </tr>
7177          <tr class="entries_header">
7178            <th class="th_details" colspan="5">Details</th>
7179          </tr>
7180          <tr class="entry_cont">
7181            <td class="entry_details" colspan="5">
7182              <p>OIS is used to compensate for motion blur due to small movements of
7183the camera during capture.<wbr/> Unlike digital image stabilization,<wbr/> OIS makes
7184use of mechanical elements to stabilize the camera sensor,<wbr/> and thus
7185allows for longer exposure times before camera shake becomes
7186apparent.<wbr/></p>
7187<p>This is not expected to be supported on most devices.<wbr/></p>
7188            </td>
7189          </tr>
7190
7191
7192          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7193           <!-- end of entry -->
7194        
7195        
7196
7197      <!-- end of kind -->
7198      </tbody>
7199      <tr><td colspan="6" class="kind">static</td></tr>
7200
7201      <thead class="entries_header">
7202        <tr>
7203          <th class="th_name">Property Name</th>
7204          <th class="th_type">Type</th>
7205          <th class="th_description">Description</th>
7206          <th class="th_units">Units</th>
7207          <th class="th_range">Range</th>
7208          <th class="th_tags">Tags</th>
7209        </tr>
7210      </thead>
7211
7212      <tbody>
7213
7214        
7215
7216        
7217
7218        
7219
7220        
7221                
7222            
7223
7224                
7225          <tr class="entry" id="static_android.lens.info.availableApertures">
7226            <td class="entry_name" rowspan="3">
7227              android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures
7228            </td>
7229            <td class="entry_type">
7230                <span class="entry_type_name">float</span>
7231                <span class="entry_type_container">x</span>
7232
7233                <span class="entry_type_array">
7234                  n
7235                </span>
7236              <span class="entry_type_visibility"> [public]</span>
7237
7238
7239            </td> <!-- entry_type -->
7240
7241            <td class="entry_description">
7242              <p>List of supported aperture
7243values.<wbr/></p>
7244            </td>
7245
7246            <td class="entry_units">
7247            </td>
7248
7249            <td class="entry_range">
7250              <p>one entry required,<wbr/> &gt; 0</p>
7251            </td>
7252
7253            <td class="entry_tags">
7254              <ul class="entry_tags">
7255                  <li><a href="#tag_V1">V1</a></li>
7256              </ul>
7257            </td>
7258
7259          </tr>
7260          <tr class="entries_header">
7261            <th class="th_details" colspan="5">Details</th>
7262          </tr>
7263          <tr class="entry_cont">
7264            <td class="entry_details" colspan="5">
7265              <p>If the camera device doesn't support variable apertures,<wbr/>
7266listed value will be the fixed aperture.<wbr/></p>
7267<p>If the camera device supports variable apertures,<wbr/> the aperture value
7268in this list will be sorted in ascending order.<wbr/></p>
7269            </td>
7270          </tr>
7271
7272
7273          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7274           <!-- end of entry -->
7275        
7276                
7277          <tr class="entry" id="static_android.lens.info.availableFilterDensities">
7278            <td class="entry_name" rowspan="3">
7279              android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities
7280            </td>
7281            <td class="entry_type">
7282                <span class="entry_type_name">float</span>
7283                <span class="entry_type_container">x</span>
7284
7285                <span class="entry_type_array">
7286                  n
7287                </span>
7288              <span class="entry_type_visibility"> [public]</span>
7289
7290
7291            </td> <!-- entry_type -->
7292
7293            <td class="entry_description">
7294              <p>List of supported neutral density filter values for
7295<a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a>.<wbr/></p>
7296            </td>
7297
7298            <td class="entry_units">
7299            </td>
7300
7301            <td class="entry_range">
7302              <p>At least one value is required.<wbr/> Values must be &gt;= 0.<wbr/></p>
7303            </td>
7304
7305            <td class="entry_tags">
7306              <ul class="entry_tags">
7307                  <li><a href="#tag_V1">V1</a></li>
7308              </ul>
7309            </td>
7310
7311          </tr>
7312          <tr class="entries_header">
7313            <th class="th_details" colspan="5">Details</th>
7314          </tr>
7315          <tr class="entry_cont">
7316            <td class="entry_details" colspan="5">
7317              <p>If changing <a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a> is not supported,<wbr/>
7318availableFilterDensities must contain only 0.<wbr/> Otherwise,<wbr/> this
7319list contains only the exact filter density values available on
7320this camera device.<wbr/></p>
7321            </td>
7322          </tr>
7323
7324
7325          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7326           <!-- end of entry -->
7327        
7328                
7329          <tr class="entry" id="static_android.lens.info.availableFocalLengths">
7330            <td class="entry_name" rowspan="3">
7331              android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths
7332            </td>
7333            <td class="entry_type">
7334                <span class="entry_type_name">float</span>
7335                <span class="entry_type_container">x</span>
7336
7337                <span class="entry_type_array">
7338                  n
7339                </span>
7340              <span class="entry_type_visibility"> [public]</span>
7341                <div class="entry_type_notes">The list of available focal lengths</div>
7342
7343
7344            </td> <!-- entry_type -->
7345
7346            <td class="entry_description">
7347              <p>The available focal lengths for this device for use with
7348<a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>.<wbr/></p>
7349            </td>
7350
7351            <td class="entry_units">
7352            </td>
7353
7354            <td class="entry_range">
7355              <p>Each value in this list must be &gt; 0.<wbr/> This list must
7356contain at least one value.<wbr/></p>
7357            </td>
7358
7359            <td class="entry_tags">
7360              <ul class="entry_tags">
7361                  <li><a href="#tag_BC">BC</a></li>
7362                  <li><a href="#tag_V1">V1</a></li>
7363              </ul>
7364            </td>
7365
7366          </tr>
7367          <tr class="entries_header">
7368            <th class="th_details" colspan="5">Details</th>
7369          </tr>
7370          <tr class="entry_cont">
7371            <td class="entry_details" colspan="5">
7372              <p>If optical zoom is not supported,<wbr/> this will only report
7373a single value corresponding to the static focal length of the
7374device.<wbr/> Otherwise,<wbr/> this will report every focal length supported
7375by the device.<wbr/></p>
7376            </td>
7377          </tr>
7378
7379
7380          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7381           <!-- end of entry -->
7382        
7383                
7384          <tr class="entry" id="static_android.lens.info.availableOpticalStabilization">
7385            <td class="entry_name" rowspan="3">
7386              android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization
7387            </td>
7388            <td class="entry_type">
7389                <span class="entry_type_name">byte</span>
7390                <span class="entry_type_container">x</span>
7391
7392                <span class="entry_type_array">
7393                  n
7394                </span>
7395              <span class="entry_type_visibility"> [public]</span>
7396                <div class="entry_type_notes">list of enums</div>
7397
7398
7399            </td> <!-- entry_type -->
7400
7401            <td class="entry_description">
7402              <p>List containing a subset of the optical image
7403stabilization (OIS) modes specified in
7404<a href="#controls_android.lens.opticalStabilizationMode">android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode</a>.<wbr/></p>
7405            </td>
7406
7407            <td class="entry_units">
7408            </td>
7409
7410            <td class="entry_range">
7411            </td>
7412
7413            <td class="entry_tags">
7414              <ul class="entry_tags">
7415                  <li><a href="#tag_V1">V1</a></li>
7416              </ul>
7417            </td>
7418
7419          </tr>
7420          <tr class="entries_header">
7421            <th class="th_details" colspan="5">Details</th>
7422          </tr>
7423          <tr class="entry_cont">
7424            <td class="entry_details" colspan="5">
7425              <p>If OIS is not implemented for a given camera device,<wbr/> this should
7426contain only OFF.<wbr/></p>
7427            </td>
7428          </tr>
7429
7430
7431          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7432           <!-- end of entry -->
7433        
7434                
7435          <tr class="entry" id="static_android.lens.info.geometricCorrectionMap">
7436            <td class="entry_name" rowspan="3">
7437              android.<wbr/>lens.<wbr/>info.<wbr/>geometric<wbr/>Correction<wbr/>Map
7438            </td>
7439            <td class="entry_type">
7440                <span class="entry_type_name">float</span>
7441                <span class="entry_type_container">x</span>
7442
7443                <span class="entry_type_array">
7444                  2 x 3 x n x m
7445                </span>
7446              <span class="entry_type_visibility"> [system]</span>
7447                <div class="entry_type_notes">2D array of destination coordinate pairs for uniform grid points in source image,<wbr/> per color channel.<wbr/> Size in the range of 2x3x40x30</div>
7448
7449
7450            </td> <!-- entry_type -->
7451
7452            <td class="entry_description">
7453              <p>A low-resolution map for correction of
7454geometric distortions and chromatic aberrations,<wbr/> per
7455color channel</p>
7456            </td>
7457
7458            <td class="entry_units">
7459            </td>
7460
7461            <td class="entry_range">
7462              <p>N,<wbr/> M &gt;= 2</p>
7463            </td>
7464
7465            <td class="entry_tags">
7466              <ul class="entry_tags">
7467                  <li><a href="#tag_DNG">DNG</a></li>
7468              </ul>
7469            </td>
7470
7471          </tr>
7472          <tr class="entries_header">
7473            <th class="th_details" colspan="5">Details</th>
7474          </tr>
7475          <tr class="entry_cont">
7476            <td class="entry_details" colspan="5">
7477              <p>[DNG wants a function instead].<wbr/> What's easiest
7478for implementers? With an array size (M,<wbr/> N),<wbr/> entry (i,<wbr/>
7479j) provides the destination for pixel (i/<wbr/>(M-1) * width,<wbr/>
7480j/<wbr/>(N-1) * height).<wbr/> Data is row-major,<wbr/> with each array
7481entry being ( (X,<wbr/> Y)_<wbr/>r,<wbr/> (X,<wbr/> Y)_<wbr/>g,<wbr/> (X,<wbr/> Y)_<wbr/>b ) )</p>
7482            </td>
7483          </tr>
7484
7485
7486          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7487           <!-- end of entry -->
7488        
7489                
7490          <tr class="entry" id="static_android.lens.info.geometricCorrectionMapSize">
7491            <td class="entry_name" rowspan="1">
7492              android.<wbr/>lens.<wbr/>info.<wbr/>geometric<wbr/>Correction<wbr/>Map<wbr/>Size
7493            </td>
7494            <td class="entry_type">
7495                <span class="entry_type_name">int32</span>
7496                <span class="entry_type_container">x</span>
7497
7498                <span class="entry_type_array">
7499                  2
7500                </span>
7501              <span class="entry_type_visibility"> [system as size]</span>
7502                <div class="entry_type_notes">width and height of geometric correction map</div>
7503
7504
7505            </td> <!-- entry_type -->
7506
7507            <td class="entry_description">
7508              <p>Dimensions of geometric correction
7509map</p>
7510            </td>
7511
7512            <td class="entry_units">
7513            </td>
7514
7515            <td class="entry_range">
7516              <p>Both values &gt;= 2</p>
7517            </td>
7518
7519            <td class="entry_tags">
7520              <ul class="entry_tags">
7521                  <li><a href="#tag_V1">V1</a></li>
7522              </ul>
7523            </td>
7524
7525          </tr>
7526
7527
7528          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7529           <!-- end of entry -->
7530        
7531                
7532          <tr class="entry" id="static_android.lens.info.hyperfocalDistance">
7533            <td class="entry_name" rowspan="3">
7534              android.<wbr/>lens.<wbr/>info.<wbr/>hyperfocal<wbr/>Distance
7535            </td>
7536            <td class="entry_type">
7537                <span class="entry_type_name">float</span>
7538
7539              <span class="entry_type_visibility"> [public]</span>
7540
7541
7542            </td> <!-- entry_type -->
7543
7544            <td class="entry_description">
7545              <p>Optional.<wbr/> Hyperfocal distance for this lens.<wbr/></p>
7546            </td>
7547
7548            <td class="entry_units">
7549              See android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details.<wbr/>
7550            </td>
7551
7552            <td class="entry_range">
7553              <p>&gt;= 0</p>
7554            </td>
7555
7556            <td class="entry_tags">
7557            </td>
7558
7559          </tr>
7560          <tr class="entries_header">
7561            <th class="th_details" colspan="5">Details</th>
7562          </tr>
7563          <tr class="entry_cont">
7564            <td class="entry_details" colspan="5">
7565              <p>If the lens is fixed focus,<wbr/> the camera device will report 0.<wbr/></p>
7566<p>If the lens is not fixed focus,<wbr/> the camera device will report this
7567field 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>
7568            </td>
7569          </tr>
7570
7571
7572          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7573           <!-- end of entry -->
7574        
7575                
7576          <tr class="entry" id="static_android.lens.info.minimumFocusDistance">
7577            <td class="entry_name" rowspan="3">
7578              android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance
7579            </td>
7580            <td class="entry_type">
7581                <span class="entry_type_name">float</span>
7582
7583              <span class="entry_type_visibility"> [public]</span>
7584
7585
7586            </td> <!-- entry_type -->
7587
7588            <td class="entry_description">
7589              <p>Shortest distance from frontmost surface
7590of the lens that can be focused correctly.<wbr/></p>
7591            </td>
7592
7593            <td class="entry_units">
7594              See android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details.<wbr/>
7595            </td>
7596
7597            <td class="entry_range">
7598              <p>&gt;= 0</p>
7599            </td>
7600
7601            <td class="entry_tags">
7602              <ul class="entry_tags">
7603                  <li><a href="#tag_V1">V1</a></li>
7604              </ul>
7605            </td>
7606
7607          </tr>
7608          <tr class="entries_header">
7609            <th class="th_details" colspan="5">Details</th>
7610          </tr>
7611          <tr class="entry_cont">
7612            <td class="entry_details" colspan="5">
7613              <p>If the lens is fixed-focus,<wbr/> this should be
76140.<wbr/></p>
7615            </td>
7616          </tr>
7617
7618
7619          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7620           <!-- end of entry -->
7621        
7622                
7623          <tr class="entry" id="static_android.lens.info.shadingMapSize">
7624            <td class="entry_name" rowspan="3">
7625              android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size
7626            </td>
7627            <td class="entry_type">
7628                <span class="entry_type_name">int32</span>
7629                <span class="entry_type_container">x</span>
7630
7631                <span class="entry_type_array">
7632                  2
7633                </span>
7634              <span class="entry_type_visibility"> [public as size]</span>
7635                <div class="entry_type_notes">width and height of lens shading map provided by the HAL.<wbr/> (N x M)</div>
7636
7637
7638            </td> <!-- entry_type -->
7639
7640            <td class="entry_description">
7641              <p>Dimensions of lens shading map.<wbr/></p>
7642            </td>
7643
7644            <td class="entry_units">
7645            </td>
7646
7647            <td class="entry_range">
7648              <p>Both values &gt;= 1</p>
7649            </td>
7650
7651            <td class="entry_tags">
7652              <ul class="entry_tags">
7653                  <li><a href="#tag_V1">V1</a></li>
7654              </ul>
7655            </td>
7656
7657          </tr>
7658          <tr class="entries_header">
7659            <th class="th_details" colspan="5">Details</th>
7660          </tr>
7661          <tr class="entry_cont">
7662            <td class="entry_details" colspan="5">
7663              <p>The map should be on the order of 30-40 rows and columns,<wbr/> and
7664must be smaller than 64x64.<wbr/></p>
7665            </td>
7666          </tr>
7667
7668
7669          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7670           <!-- end of entry -->
7671        
7672                
7673          <tr class="entry" id="static_android.lens.info.focusDistanceCalibration">
7674            <td class="entry_name" rowspan="3">
7675              android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration
7676            </td>
7677            <td class="entry_type">
7678                <span class="entry_type_name entry_type_name_enum">byte</span>
7679
7680              <span class="entry_type_visibility"> [public]</span>
7681
7682                <ul class="entry_type_enum">
7683                  <li>
7684                    <span class="entry_type_enum_name">UNCALIBRATED</span>
7685                    <span class="entry_type_enum_notes"><p>The lens focus distance is not accurate,<wbr/> and the units used for
7686<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> do not correspond to any physical units.<wbr/>
7687Setting the lens to the same focus distance on separate occasions may
7688result in a different real focus distance,<wbr/> depending on factors such
7689as the orientation of the device,<wbr/> the age of the focusing mechanism,<wbr/>
7690and the device temperature.<wbr/> The focus distance value will still be
7691in 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
7692represents the farthest focus.<wbr/></p></span>
7693                  </li>
7694                  <li>
7695                    <span class="entry_type_enum_name">APPROXIMATE</span>
7696                    <span class="entry_type_enum_notes"><p>The lens focus distance is measured in diopters.<wbr/> However,<wbr/> setting the lens
7697to the same focus distance on separate occasions may result in a
7698different real focus distance,<wbr/> depending on factors such as the
7699orientation of the device,<wbr/> the age of the focusing mechanism,<wbr/> and
7700the device temperature.<wbr/></p></span>
7701                  </li>
7702                  <li>
7703                    <span class="entry_type_enum_name">CALIBRATED</span>
7704                    <span class="entry_type_enum_notes"><p>The lens focus distance is measured in diopters.<wbr/> The lens mechanism is
7705calibrated so that setting the same focus distance is repeatable on
7706multiple occasions with good accuracy,<wbr/> and the focus distance corresponds
7707to the real physical distance to the plane of best focus.<wbr/></p></span>
7708                  </li>
7709                </ul>
7710
7711            </td> <!-- entry_type -->
7712
7713            <td class="entry_description">
7714              <p>The lens focus distance calibration quality.<wbr/></p>
7715            </td>
7716
7717            <td class="entry_units">
7718            </td>
7719
7720            <td class="entry_range">
7721            </td>
7722
7723            <td class="entry_tags">
7724              <ul class="entry_tags">
7725                  <li><a href="#tag_V1">V1</a></li>
7726              </ul>
7727            </td>
7728
7729          </tr>
7730          <tr class="entries_header">
7731            <th class="th_details" colspan="5">Details</th>
7732          </tr>
7733          <tr class="entry_cont">
7734            <td class="entry_details" colspan="5">
7735              <p>The lens focus distance calibration quality determines the reliability of
7736focus related metadata entries,<wbr/> i.<wbr/>e.<wbr/> <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a>,<wbr/>
7737<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
7738<a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a>.<wbr/></p>
7739            </td>
7740          </tr>
7741
7742
7743          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7744           <!-- end of entry -->
7745        
7746        
7747        
7748
7749                
7750          <tr class="entry" id="static_android.lens.facing">
7751            <td class="entry_name" rowspan="1">
7752              android.<wbr/>lens.<wbr/>facing
7753            </td>
7754            <td class="entry_type">
7755                <span class="entry_type_name entry_type_name_enum">byte</span>
7756
7757              <span class="entry_type_visibility"> [public]</span>
7758
7759                <ul class="entry_type_enum">
7760                  <li>
7761                    <span class="entry_type_enum_name">FRONT</span>
7762                  </li>
7763                  <li>
7764                    <span class="entry_type_enum_name">BACK</span>
7765                  </li>
7766                </ul>
7767
7768            </td> <!-- entry_type -->
7769
7770            <td class="entry_description">
7771              <p>Direction the camera faces relative to
7772device screen</p>
7773            </td>
7774
7775            <td class="entry_units">
7776            </td>
7777
7778            <td class="entry_range">
7779            </td>
7780
7781            <td class="entry_tags">
7782            </td>
7783
7784          </tr>
7785
7786
7787          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7788           <!-- end of entry -->
7789        
7790                
7791          <tr class="entry" id="static_android.lens.opticalAxisAngle">
7792            <td class="entry_name" rowspan="3">
7793              android.<wbr/>lens.<wbr/>optical<wbr/>Axis<wbr/>Angle
7794            </td>
7795            <td class="entry_type">
7796                <span class="entry_type_name">float</span>
7797                <span class="entry_type_container">x</span>
7798
7799                <span class="entry_type_array">
7800                  2
7801                </span>
7802              <span class="entry_type_visibility"> [system]</span>
7803                <div class="entry_type_notes">degrees.<wbr/> First defines the angle of separation between the perpendicular to the screen and the camera optical axis.<wbr/> The second then defines the clockwise rotation of the optical axis from native device up.<wbr/></div>
7804
7805
7806            </td> <!-- entry_type -->
7807
7808            <td class="entry_description">
7809              <p>Relative angle of camera optical axis to the
7810perpendicular axis from the display</p>
7811            </td>
7812
7813            <td class="entry_units">
7814            </td>
7815
7816            <td class="entry_range">
7817              <p>[0-90) for first angle,<wbr/> [0-360) for second</p>
7818            </td>
7819
7820            <td class="entry_tags">
7821              <ul class="entry_tags">
7822                  <li><a href="#tag_ADV">ADV</a></li>
7823              </ul>
7824            </td>
7825
7826          </tr>
7827          <tr class="entries_header">
7828            <th class="th_details" colspan="5">Details</th>
7829          </tr>
7830          <tr class="entry_cont">
7831            <td class="entry_details" colspan="5">
7832              <p>Examples:</p>
7833<p>(0,<wbr/>0) means that the camera optical axis
7834is perpendicular to the display surface;</p>
7835<p>(45,<wbr/>0) means that the camera points 45 degrees up when
7836device is held upright;</p>
7837<p>(45,<wbr/>90) means the camera points 45 degrees to the right when
7838the device is held upright.<wbr/></p>
7839<p>Use FACING field to determine perpendicular outgoing
7840direction</p>
7841            </td>
7842          </tr>
7843
7844
7845          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7846           <!-- end of entry -->
7847        
7848                
7849          <tr class="entry" id="static_android.lens.position">
7850            <td class="entry_name" rowspan="1">
7851              android.<wbr/>lens.<wbr/>position
7852            </td>
7853            <td class="entry_type">
7854                <span class="entry_type_name">float</span>
7855                <span class="entry_type_container">x</span>
7856
7857                <span class="entry_type_array">
7858                  3, location in mm, in the sensor coordinate
7859            system
7860                </span>
7861              <span class="entry_type_visibility"> [system]</span>
7862
7863
7864            </td> <!-- entry_type -->
7865
7866            <td class="entry_description">
7867              <p>Coordinates of camera optical axis on
7868device</p>
7869            </td>
7870
7871            <td class="entry_units">
7872            </td>
7873
7874            <td class="entry_range">
7875            </td>
7876
7877            <td class="entry_tags">
7878              <ul class="entry_tags">
7879                  <li><a href="#tag_V1">V1</a></li>
7880              </ul>
7881            </td>
7882
7883          </tr>
7884
7885
7886          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7887           <!-- end of entry -->
7888        
7889        
7890
7891      <!-- end of kind -->
7892      </tbody>
7893      <tr><td colspan="6" class="kind">dynamic</td></tr>
7894
7895      <thead class="entries_header">
7896        <tr>
7897          <th class="th_name">Property Name</th>
7898          <th class="th_type">Type</th>
7899          <th class="th_description">Description</th>
7900          <th class="th_units">Units</th>
7901          <th class="th_range">Range</th>
7902          <th class="th_tags">Tags</th>
7903        </tr>
7904      </thead>
7905
7906      <tbody>
7907
7908        
7909
7910        
7911
7912        
7913
7914        
7915
7916                
7917          <tr class="entry" id="dynamic_android.lens.aperture">
7918            <td class="entry_name" rowspan="3">
7919              android.<wbr/>lens.<wbr/>aperture
7920            </td>
7921            <td class="entry_type">
7922                <span class="entry_type_name">float</span>
7923
7924              <span class="entry_type_visibility"> [public]</span>
7925
7926
7927            </td> <!-- entry_type -->
7928
7929            <td class="entry_description">
7930              <p>The ratio of lens focal length to the effective
7931aperture diameter.<wbr/></p>
7932            </td>
7933
7934            <td class="entry_units">
7935              f-number (f/<wbr/>NNN)
7936            </td>
7937
7938            <td class="entry_range">
7939              <p><a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a></p>
7940            </td>
7941
7942            <td class="entry_tags">
7943              <ul class="entry_tags">
7944                  <li><a href="#tag_V1">V1</a></li>
7945              </ul>
7946            </td>
7947
7948          </tr>
7949          <tr class="entries_header">
7950            <th class="th_details" colspan="5">Details</th>
7951          </tr>
7952          <tr class="entry_cont">
7953            <td class="entry_details" colspan="5">
7954              <p>This will only be supported on the camera devices that
7955have variable aperture lens.<wbr/> The aperture value can only be
7956one of the values listed in <a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a>.<wbr/></p>
7957<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
7958this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
7959<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
7960to achieve manual exposure control.<wbr/></p>
7961<p>The requested aperture value may take several frames to reach the
7962requested value; the camera device will report the current (intermediate)
7963aperture size in capture result metadata while the aperture is changing.<wbr/>
7964While 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>
7965<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
7966the ON modes,<wbr/> this will be overridden by the camera device
7967auto-exposure algorithm,<wbr/> the overridden values are then provided
7968back to the user in the corresponding result.<wbr/></p>
7969            </td>
7970          </tr>
7971
7972
7973          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7974           <!-- end of entry -->
7975        
7976                
7977          <tr class="entry" id="dynamic_android.lens.filterDensity">
7978            <td class="entry_name" rowspan="3">
7979              android.<wbr/>lens.<wbr/>filter<wbr/>Density
7980            </td>
7981            <td class="entry_type">
7982                <span class="entry_type_name">float</span>
7983
7984              <span class="entry_type_visibility"> [public]</span>
7985
7986
7987            </td> <!-- entry_type -->
7988
7989            <td class="entry_description">
7990              <p>State of lens neutral density filter(s).<wbr/></p>
7991            </td>
7992
7993            <td class="entry_units">
7994              Steps of Exposure Value (EV).<wbr/>
7995            </td>
7996
7997            <td class="entry_range">
7998              <p><a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a></p>
7999            </td>
8000
8001            <td class="entry_tags">
8002              <ul class="entry_tags">
8003                  <li><a href="#tag_V1">V1</a></li>
8004              </ul>
8005            </td>
8006
8007          </tr>
8008          <tr class="entries_header">
8009            <th class="th_details" colspan="5">Details</th>
8010          </tr>
8011          <tr class="entry_cont">
8012            <td class="entry_details" colspan="5">
8013              <p>This will not be supported on most camera devices.<wbr/> On devices
8014where this is supported,<wbr/> this may only be set to one of the
8015values included in <a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a>.<wbr/></p>
8016<p>Lens filters are typically used to lower the amount of light the
8017sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
8018step is the standard logarithmic representation,<wbr/> which are
8019non-negative,<wbr/> and inversely proportional to the amount of light
8020hitting the sensor.<wbr/>  For example,<wbr/> setting this to 0 would result
8021in no reduction of the incoming light,<wbr/> and setting this to 2 would
8022mean that the filter is set to reduce incoming light by two stops
8023(allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
8024<p>It may take several frames before the lens filter density changes
8025to the requested value.<wbr/> While the filter density is still changing,<wbr/>
8026<a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will be set to MOVING.<wbr/></p>
8027            </td>
8028          </tr>
8029
8030
8031          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8032           <!-- end of entry -->
8033        
8034                
8035          <tr class="entry" id="dynamic_android.lens.focalLength">
8036            <td class="entry_name" rowspan="3">
8037              android.<wbr/>lens.<wbr/>focal<wbr/>Length
8038            </td>
8039            <td class="entry_type">
8040                <span class="entry_type_name">float</span>
8041
8042              <span class="entry_type_visibility"> [public]</span>
8043
8044
8045            </td> <!-- entry_type -->
8046
8047            <td class="entry_description">
8048              <p>The current lens focal length; used for optical zoom.<wbr/></p>
8049            </td>
8050
8051            <td class="entry_units">
8052              focal length in mm
8053            </td>
8054
8055            <td class="entry_range">
8056              <p><a href="#static_android.lens.info.availableFocalLengths">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths</a></p>
8057            </td>
8058
8059            <td class="entry_tags">
8060              <ul class="entry_tags">
8061                  <li><a href="#tag_BC">BC</a></li>
8062              </ul>
8063            </td>
8064
8065          </tr>
8066          <tr class="entries_header">
8067            <th class="th_details" colspan="5">Details</th>
8068          </tr>
8069          <tr class="entry_cont">
8070            <td class="entry_details" colspan="5">
8071              <p>This setting controls the physical focal length of the camera
8072device's lens.<wbr/> Changing the focal length changes the field of
8073view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
8074<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
8075setting won't be applied instantaneously,<wbr/> and it may take several
8076frames before the lens can change to the requested focal length.<wbr/>
8077While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
8078be set to MOVING.<wbr/></p>
8079<p>This is expected not to be supported on most devices.<wbr/></p>
8080            </td>
8081          </tr>
8082
8083
8084          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8085           <!-- end of entry -->
8086        
8087                
8088          <tr class="entry" id="dynamic_android.lens.focusDistance">
8089            <td class="entry_name" rowspan="3">
8090              android.<wbr/>lens.<wbr/>focus<wbr/>Distance
8091            </td>
8092            <td class="entry_type">
8093                <span class="entry_type_name">float</span>
8094
8095              <span class="entry_type_visibility"> [public]</span>
8096
8097
8098            </td> <!-- entry_type -->
8099
8100            <td class="entry_description">
8101              <p>Distance to plane of sharpest focus,<wbr/>
8102measured from frontmost surface of the lens</p>
8103            </td>
8104
8105            <td class="entry_units">
8106              See android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details.<wbr/>
8107            </td>
8108
8109            <td class="entry_range">
8110              <p>&gt;= 0</p>
8111            </td>
8112
8113            <td class="entry_tags">
8114              <ul class="entry_tags">
8115                  <li><a href="#tag_BC">BC</a></li>
8116              </ul>
8117            </td>
8118
8119          </tr>
8120          <tr class="entries_header">
8121            <th class="th_details" colspan="5">Details</th>
8122          </tr>
8123          <tr class="entry_cont">
8124            <td class="entry_details" colspan="5">
8125              <p>Should be zero for fixed-focus cameras</p>
8126            </td>
8127          </tr>
8128
8129
8130          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8131           <!-- end of entry -->
8132        
8133                
8134          <tr class="entry" id="dynamic_android.lens.focusRange">
8135            <td class="entry_name" rowspan="3">
8136              android.<wbr/>lens.<wbr/>focus<wbr/>Range
8137            </td>
8138            <td class="entry_type">
8139                <span class="entry_type_name">float</span>
8140                <span class="entry_type_container">x</span>
8141
8142                <span class="entry_type_array">
8143                  2
8144                </span>
8145              <span class="entry_type_visibility"> [public]</span>
8146                <div class="entry_type_notes">Range of scene distances that are in focus</div>
8147
8148
8149            </td> <!-- entry_type -->
8150
8151            <td class="entry_description">
8152              <p>The range of scene distances that are in
8153sharp focus (depth of field)</p>
8154            </td>
8155
8156            <td class="entry_units">
8157              pair of focus distances in diopters: (near,<wbr/>
8158          far),<wbr/> see android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details.<wbr/>
8159            </td>
8160
8161            <td class="entry_range">
8162              <p>&gt;=0</p>
8163            </td>
8164
8165            <td class="entry_tags">
8166              <ul class="entry_tags">
8167                  <li><a href="#tag_BC">BC</a></li>
8168              </ul>
8169            </td>
8170
8171          </tr>
8172          <tr class="entries_header">
8173            <th class="th_details" colspan="5">Details</th>
8174          </tr>
8175          <tr class="entry_cont">
8176            <td class="entry_details" colspan="5">
8177              <p>If variable focus not supported,<wbr/> can still report
8178fixed depth of field range</p>
8179            </td>
8180          </tr>
8181
8182
8183          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8184           <!-- end of entry -->
8185        
8186                
8187          <tr class="entry" id="dynamic_android.lens.opticalStabilizationMode">
8188            <td class="entry_name" rowspan="3">
8189              android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
8190            </td>
8191            <td class="entry_type">
8192                <span class="entry_type_name entry_type_name_enum">byte</span>
8193
8194              <span class="entry_type_visibility"> [public]</span>
8195
8196                <ul class="entry_type_enum">
8197                  <li>
8198                    <span class="entry_type_enum_name">OFF</span>
8199                    <span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
8200                  </li>
8201                  <li>
8202                    <span class="entry_type_enum_name">ON</span>
8203                    <span class="entry_type_enum_optional">optional</span>
8204                    <span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
8205                  </li>
8206                </ul>
8207
8208            </td> <!-- entry_type -->
8209
8210            <td class="entry_description">
8211              <p>Sets whether the camera device uses optical image stabilization (OIS)
8212when capturing images.<wbr/></p>
8213            </td>
8214
8215            <td class="entry_units">
8216            </td>
8217
8218            <td class="entry_range">
8219              <p><a href="#static_android.lens.info.availableOpticalStabilization">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization</a></p>
8220            </td>
8221
8222            <td class="entry_tags">
8223              <ul class="entry_tags">
8224                  <li><a href="#tag_V1">V1</a></li>
8225              </ul>
8226            </td>
8227
8228          </tr>
8229          <tr class="entries_header">
8230            <th class="th_details" colspan="5">Details</th>
8231          </tr>
8232          <tr class="entry_cont">
8233            <td class="entry_details" colspan="5">
8234              <p>OIS is used to compensate for motion blur due to small movements of
8235the camera during capture.<wbr/> Unlike digital image stabilization,<wbr/> OIS makes
8236use of mechanical elements to stabilize the camera sensor,<wbr/> and thus
8237allows for longer exposure times before camera shake becomes
8238apparent.<wbr/></p>
8239<p>This is not expected to be supported on most devices.<wbr/></p>
8240            </td>
8241          </tr>
8242
8243
8244          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8245           <!-- end of entry -->
8246        
8247                
8248          <tr class="entry" id="dynamic_android.lens.state">
8249            <td class="entry_name" rowspan="3">
8250              android.<wbr/>lens.<wbr/>state
8251            </td>
8252            <td class="entry_type">
8253                <span class="entry_type_name entry_type_name_enum">byte</span>
8254
8255              <span class="entry_type_visibility"> [public]</span>
8256
8257                <ul class="entry_type_enum">
8258                  <li>
8259                    <span class="entry_type_enum_name">STATIONARY</span>
8260                    <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/> android.<wbr/>lens.<wbr/>focus<wbr/>Distance
8261android.<wbr/>lens.<wbr/>filter<wbr/>Density and <a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a>) are not changing.<wbr/></p></span>
8262                  </li>
8263                  <li>
8264                    <span class="entry_type_enum_name">MOVING</span>
8265                    <span class="entry_type_enum_notes"><p>Any of the lens parameters (<a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>,<wbr/> android.<wbr/>lens.<wbr/>focus<wbr/>Distance
8266android.<wbr/>lens.<wbr/>filter<wbr/>Density or <a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a>) is changing.<wbr/></p></span>
8267                  </li>
8268                </ul>
8269
8270            </td> <!-- entry_type -->
8271
8272            <td class="entry_description">
8273              <p>Current lens status.<wbr/></p>
8274            </td>
8275
8276            <td class="entry_units">
8277            </td>
8278
8279            <td class="entry_range">
8280            </td>
8281
8282            <td class="entry_tags">
8283              <ul class="entry_tags">
8284                  <li><a href="#tag_V1">V1</a></li>
8285              </ul>
8286            </td>
8287
8288          </tr>
8289          <tr class="entries_header">
8290            <th class="th_details" colspan="5">Details</th>
8291          </tr>
8292          <tr class="entry_cont">
8293            <td class="entry_details" colspan="5">
8294              <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/>
8295<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/>
8296they may take several frames to reach the requested values.<wbr/> This state indicates
8297the current status of the lens parameters.<wbr/></p>
8298<p>When the state is STATIONARY,<wbr/> the lens parameters are not changing.<wbr/> This could be
8299either because the parameters are all fixed,<wbr/> or because the lens has had enough
8300time to reach the most recently-requested values.<wbr/>
8301If all these lens parameters are not changable for a camera device,<wbr/> as listed below:</p>
8302<ul>
8303<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
8304<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> parameter will always be 0.<wbr/></li>
8305<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/>
8306which means the optical zoom is not supported.<wbr/></li>
8307<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>
8308<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>
8309</ul>
8310<p>Then this state will always be STATIONARY.<wbr/></p>
8311<p>When the state is MOVING,<wbr/> it indicates that at least one of the lens parameters
8312is changing.<wbr/></p>
8313            </td>
8314          </tr>
8315
8316
8317          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8318           <!-- end of entry -->
8319        
8320        
8321
8322      <!-- end of kind -->
8323      </tbody>
8324
8325  <!-- end of section -->
8326  <tr><td colspan="6" id="section_noiseReduction" class="section">noiseReduction</td></tr>
8327
8328
8329      <tr><td colspan="6" class="kind">controls</td></tr>
8330
8331      <thead class="entries_header">
8332        <tr>
8333          <th class="th_name">Property Name</th>
8334          <th class="th_type">Type</th>
8335          <th class="th_description">Description</th>
8336          <th class="th_units">Units</th>
8337          <th class="th_range">Range</th>
8338          <th class="th_tags">Tags</th>
8339        </tr>
8340      </thead>
8341
8342      <tbody>
8343
8344        
8345
8346        
8347
8348        
8349
8350        
8351
8352                
8353          <tr class="entry" id="controls_android.noiseReduction.mode">
8354            <td class="entry_name" rowspan="3">
8355              android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
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                <ul class="entry_type_enum">
8363                  <li>
8364                    <span class="entry_type_enum_name">OFF</span>
8365                    <span class="entry_type_enum_notes"><p>No noise reduction is applied</p></span>
8366                  </li>
8367                  <li>
8368                    <span class="entry_type_enum_name">FAST</span>
8369                    <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
8370output</p></span>
8371                  </li>
8372                  <li>
8373                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
8374                    <span class="entry_type_enum_notes"><p>May slow down frame rate to provide highest
8375quality</p></span>
8376                  </li>
8377                </ul>
8378
8379            </td> <!-- entry_type -->
8380
8381            <td class="entry_description">
8382              <p>Mode of operation for the noise reduction
8383algorithm</p>
8384            </td>
8385
8386            <td class="entry_units">
8387            </td>
8388
8389            <td class="entry_range">
8390              <p>android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Modes</p>
8391            </td>
8392
8393            <td class="entry_tags">
8394              <ul class="entry_tags">
8395                  <li><a href="#tag_V1">V1</a></li>
8396              </ul>
8397            </td>
8398
8399          </tr>
8400          <tr class="entries_header">
8401            <th class="th_details" colspan="5">Details</th>
8402          </tr>
8403          <tr class="entry_cont">
8404            <td class="entry_details" colspan="5">
8405              <p>Noise filtering control.<wbr/> OFF means no noise reduction
8406will be applied by the HAL.<wbr/></p>
8407<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
8408will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
8409will use the highest-quality noise filtering algorithms,<wbr/>
8410even if it slows down capture rate.<wbr/> FAST means the camera device should not
8411slow down capture rate when applying noise filtering.<wbr/></p>
8412            </td>
8413          </tr>
8414
8415
8416          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8417           <!-- end of entry -->
8418        
8419                
8420          <tr class="entry" id="controls_android.noiseReduction.strength">
8421            <td class="entry_name" rowspan="1">
8422              android.<wbr/>noise<wbr/>Reduction.<wbr/>strength
8423            </td>
8424            <td class="entry_type">
8425                <span class="entry_type_name">byte</span>
8426
8427              <span class="entry_type_visibility"> [system]</span>
8428
8429
8430            </td> <!-- entry_type -->
8431
8432            <td class="entry_description">
8433              <p>Control the amount of noise reduction
8434applied to the images</p>
8435            </td>
8436
8437            <td class="entry_units">
8438              1-10; 10 is max noise reduction
8439            </td>
8440
8441            <td class="entry_range">
8442              <p>1 - 10</p>
8443            </td>
8444
8445            <td class="entry_tags">
8446            </td>
8447
8448          </tr>
8449
8450
8451          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8452           <!-- end of entry -->
8453        
8454        
8455
8456      <!-- end of kind -->
8457      </tbody>
8458      <tr><td colspan="6" class="kind">dynamic</td></tr>
8459
8460      <thead class="entries_header">
8461        <tr>
8462          <th class="th_name">Property Name</th>
8463          <th class="th_type">Type</th>
8464          <th class="th_description">Description</th>
8465          <th class="th_units">Units</th>
8466          <th class="th_range">Range</th>
8467          <th class="th_tags">Tags</th>
8468        </tr>
8469      </thead>
8470
8471      <tbody>
8472
8473        
8474
8475        
8476
8477        
8478
8479        
8480
8481                
8482          <tr class="entry" id="dynamic_android.noiseReduction.mode">
8483            <td class="entry_name" rowspan="3">
8484              android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
8485            </td>
8486            <td class="entry_type">
8487                <span class="entry_type_name entry_type_name_enum">byte</span>
8488
8489              <span class="entry_type_visibility"> [public]</span>
8490
8491                <ul class="entry_type_enum">
8492                  <li>
8493                    <span class="entry_type_enum_name">OFF</span>
8494                    <span class="entry_type_enum_notes"><p>No noise reduction is applied</p></span>
8495                  </li>
8496                  <li>
8497                    <span class="entry_type_enum_name">FAST</span>
8498                    <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
8499output</p></span>
8500                  </li>
8501                  <li>
8502                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
8503                    <span class="entry_type_enum_notes"><p>May slow down frame rate to provide highest
8504quality</p></span>
8505                  </li>
8506                </ul>
8507
8508            </td> <!-- entry_type -->
8509
8510            <td class="entry_description">
8511              <p>Mode of operation for the noise reduction
8512algorithm</p>
8513            </td>
8514
8515            <td class="entry_units">
8516            </td>
8517
8518            <td class="entry_range">
8519              <p>android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Modes</p>
8520            </td>
8521
8522            <td class="entry_tags">
8523              <ul class="entry_tags">
8524                  <li><a href="#tag_V1">V1</a></li>
8525              </ul>
8526            </td>
8527
8528          </tr>
8529          <tr class="entries_header">
8530            <th class="th_details" colspan="5">Details</th>
8531          </tr>
8532          <tr class="entry_cont">
8533            <td class="entry_details" colspan="5">
8534              <p>Noise filtering control.<wbr/> OFF means no noise reduction
8535will be applied by the HAL.<wbr/></p>
8536<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
8537will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
8538will use the highest-quality noise filtering algorithms,<wbr/>
8539even if it slows down capture rate.<wbr/> FAST means the camera device should not
8540slow down capture rate when applying noise filtering.<wbr/></p>
8541            </td>
8542          </tr>
8543
8544
8545          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8546           <!-- end of entry -->
8547        
8548        
8549
8550      <!-- end of kind -->
8551      </tbody>
8552
8553  <!-- end of section -->
8554  <tr><td colspan="6" id="section_quirks" class="section">quirks</td></tr>
8555
8556
8557      <tr><td colspan="6" class="kind">static</td></tr>
8558
8559      <thead class="entries_header">
8560        <tr>
8561          <th class="th_name">Property Name</th>
8562          <th class="th_type">Type</th>
8563          <th class="th_description">Description</th>
8564          <th class="th_units">Units</th>
8565          <th class="th_range">Range</th>
8566          <th class="th_tags">Tags</th>
8567        </tr>
8568      </thead>
8569
8570      <tbody>
8571
8572        
8573
8574        
8575
8576        
8577
8578        
8579
8580                
8581          <tr class="entry" id="static_android.quirks.meteringCropRegion">
8582            <td class="entry_name" rowspan="3">
8583              android.<wbr/>quirks.<wbr/>metering<wbr/>Crop<wbr/>Region
8584            </td>
8585            <td class="entry_type">
8586                <span class="entry_type_name">byte</span>
8587
8588              <span class="entry_type_visibility"> [system]</span>
8589
8590
8591            </td> <!-- entry_type -->
8592
8593            <td class="entry_description">
8594              <p>If set to 1,<wbr/> the camera service does not
8595scale 'normalized' coordinates with respect to the crop
8596region.<wbr/> This applies to metering input (a{e,<wbr/>f,<wbr/>wb}Region
8597and output (face rectangles).<wbr/></p>
8598            </td>
8599
8600            <td class="entry_units">
8601            </td>
8602
8603            <td class="entry_range">
8604              <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
8605            </td>
8606
8607            <td class="entry_tags">
8608            </td>
8609
8610          </tr>
8611          <tr class="entries_header">
8612            <th class="th_details" colspan="5">Details</th>
8613          </tr>
8614          <tr class="entry_cont">
8615            <td class="entry_details" colspan="5">
8616              <p>Normalized coordinates refer to those in the
8617(-1000,<wbr/>1000) range mentioned in the
8618android.<wbr/>hardware.<wbr/>Camera API.<wbr/></p>
8619<p>HAL implementations should instead always use and emit
8620sensor array-relative coordinates for all region data.<wbr/> Does
8621not need to be listed in static metadata.<wbr/> Support will be
8622removed in future versions of camera service.<wbr/></p>
8623            </td>
8624          </tr>
8625
8626
8627          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8628           <!-- end of entry -->
8629        
8630                
8631          <tr class="entry" id="static_android.quirks.triggerAfWithAuto">
8632            <td class="entry_name" rowspan="3">
8633              android.<wbr/>quirks.<wbr/>trigger<wbr/>Af<wbr/>With<wbr/>Auto
8634            </td>
8635            <td class="entry_type">
8636                <span class="entry_type_name">byte</span>
8637
8638              <span class="entry_type_visibility"> [system]</span>
8639
8640
8641            </td> <!-- entry_type -->
8642
8643            <td class="entry_description">
8644              <p>If set to 1,<wbr/> then the camera service always
8645switches to FOCUS_<wbr/>MODE_<wbr/>AUTO before issuing a AF
8646trigger.<wbr/></p>
8647            </td>
8648
8649            <td class="entry_units">
8650            </td>
8651
8652            <td class="entry_range">
8653              <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
8654            </td>
8655
8656            <td class="entry_tags">
8657            </td>
8658
8659          </tr>
8660          <tr class="entries_header">
8661            <th class="th_details" colspan="5">Details</th>
8662          </tr>
8663          <tr class="entry_cont">
8664            <td class="entry_details" colspan="5">
8665              <p>HAL implementations should implement AF trigger
8666modes for AUTO,<wbr/> MACRO,<wbr/> CONTINUOUS_<wbr/>FOCUS,<wbr/> and
8667CONTINUOUS_<wbr/>PICTURE modes instead of using this flag.<wbr/> Does
8668not need to be listed in static metadata.<wbr/> Support will be
8669removed in future versions of camera service</p>
8670            </td>
8671          </tr>
8672
8673
8674          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8675           <!-- end of entry -->
8676        
8677                
8678          <tr class="entry" id="static_android.quirks.useZslFormat">
8679            <td class="entry_name" rowspan="3">
8680              android.<wbr/>quirks.<wbr/>use<wbr/>Zsl<wbr/>Format
8681            </td>
8682            <td class="entry_type">
8683                <span class="entry_type_name">byte</span>
8684
8685              <span class="entry_type_visibility"> [system]</span>
8686
8687
8688            </td> <!-- entry_type -->
8689
8690            <td class="entry_description">
8691              <p>If set to 1,<wbr/> the camera service uses
8692CAMERA2_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>ZSL instead of
8693HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>IMPLEMENTATION_<wbr/>DEFINED for the zero
8694shutter lag stream</p>
8695            </td>
8696
8697            <td class="entry_units">
8698            </td>
8699
8700            <td class="entry_range">
8701              <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
8702            </td>
8703
8704            <td class="entry_tags">
8705            </td>
8706
8707          </tr>
8708          <tr class="entries_header">
8709            <th class="th_details" colspan="5">Details</th>
8710          </tr>
8711          <tr class="entry_cont">
8712            <td class="entry_details" colspan="5">
8713              <p>HAL implementations should use gralloc usage flags
8714to determine that a stream will be used for
8715zero-shutter-lag,<wbr/> instead of relying on an explicit
8716format setting.<wbr/> Does not need to be listed in static
8717metadata.<wbr/> Support will be removed in future versions of
8718camera service.<wbr/></p>
8719            </td>
8720          </tr>
8721
8722
8723          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8724           <!-- end of entry -->
8725        
8726                
8727          <tr class="entry" id="static_android.quirks.usePartialResult">
8728            <td class="entry_name" rowspan="5">
8729              android.<wbr/>quirks.<wbr/>use<wbr/>Partial<wbr/>Result
8730            </td>
8731            <td class="entry_type">
8732                <span class="entry_type_name">byte</span>
8733
8734              <span class="entry_type_visibility"> [hidden]</span>
8735
8736
8737            </td> <!-- entry_type -->
8738
8739            <td class="entry_description">
8740              <p>If set to 1,<wbr/> the HAL will always split result
8741metadata for a single capture into multiple buffers,<wbr/>
8742returned using multiple process_<wbr/>capture_<wbr/>result calls.<wbr/></p>
8743            </td>
8744
8745            <td class="entry_units">
8746            </td>
8747
8748            <td class="entry_range">
8749              <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
8750            </td>
8751
8752            <td class="entry_tags">
8753            </td>
8754
8755          </tr>
8756          <tr class="entries_header">
8757            <th class="th_details" colspan="5">Details</th>
8758          </tr>
8759          <tr class="entry_cont">
8760            <td class="entry_details" colspan="5">
8761              <p>Does not need to be listed in static
8762metadata.<wbr/> Support for partial results will be reworked in
8763future versions of camera service.<wbr/> This quirk will stop
8764working at that point; DO NOT USE without careful
8765consideration of future support.<wbr/></p>
8766            </td>
8767          </tr>
8768
8769          <tr class="entries_header">
8770            <th class="th_details" colspan="5">HAL Implementation Details</th>
8771          </tr>
8772          <tr class="entry_cont">
8773            <td class="entry_details" colspan="5">
8774              <p>Refer to <code>camera3_<wbr/>capture_<wbr/>result::partial_<wbr/>result</code>
8775for information on how to implement partial results.<wbr/></p>
8776            </td>
8777          </tr>
8778
8779          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8780           <!-- end of entry -->
8781        
8782        
8783
8784      <!-- end of kind -->
8785      </tbody>
8786      <tr><td colspan="6" class="kind">dynamic</td></tr>
8787
8788      <thead class="entries_header">
8789        <tr>
8790          <th class="th_name">Property Name</th>
8791          <th class="th_type">Type</th>
8792          <th class="th_description">Description</th>
8793          <th class="th_units">Units</th>
8794          <th class="th_range">Range</th>
8795          <th class="th_tags">Tags</th>
8796        </tr>
8797      </thead>
8798
8799      <tbody>
8800
8801        
8802
8803        
8804
8805        
8806
8807        
8808
8809                
8810          <tr class="entry" id="dynamic_android.quirks.partialResult">
8811            <td class="entry_name" rowspan="5">
8812              android.<wbr/>quirks.<wbr/>partial<wbr/>Result
8813            </td>
8814            <td class="entry_type">
8815                <span class="entry_type_name entry_type_name_enum">byte</span>
8816
8817              <span class="entry_type_visibility"> [hidden as boolean]</span>
8818
8819                <ul class="entry_type_enum">
8820                  <li>
8821                    <span class="entry_type_enum_name">FINAL</span>
8822                    <span class="entry_type_enum_notes"><p>The last or only metadata result buffer
8823for this capture.<wbr/></p></span>
8824                  </li>
8825                  <li>
8826                    <span class="entry_type_enum_name">PARTIAL</span>
8827                    <span class="entry_type_enum_notes"><p>A partial buffer of result metadata for this
8828capture.<wbr/> More result buffers for this capture will be sent
8829by the HAL,<wbr/> the last of which will be marked
8830FINAL.<wbr/></p></span>
8831                  </li>
8832                </ul>
8833
8834            </td> <!-- entry_type -->
8835
8836            <td class="entry_description">
8837              <p>Whether a result given to the framework is the
8838final one for the capture,<wbr/> or only a partial that contains a
8839subset of the full set of dynamic metadata
8840values.<wbr/></p>
8841            </td>
8842
8843            <td class="entry_units">
8844            </td>
8845
8846            <td class="entry_range">
8847              <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/> Optional.<wbr/> Default value is FINAL.<wbr/></p>
8848            </td>
8849
8850            <td class="entry_tags">
8851            </td>
8852
8853          </tr>
8854          <tr class="entries_header">
8855            <th class="th_details" colspan="5">Details</th>
8856          </tr>
8857          <tr class="entry_cont">
8858            <td class="entry_details" colspan="5">
8859              <p>The entries in the result metadata buffers for a
8860single capture may not overlap,<wbr/> except for this entry.<wbr/> The
8861FINAL buffers must retain FIFO ordering relative to the
8862requests that generate them,<wbr/> so the FINAL buffer for frame 3 must
8863always be sent to the framework after the FINAL buffer for frame 2,<wbr/> and
8864before the FINAL buffer for frame 4.<wbr/> PARTIAL buffers may be returned
8865in any order relative to other frames,<wbr/> but all PARTIAL buffers for a given
8866capture must arrive before the FINAL buffer for that capture.<wbr/> This entry may
8867only be used by the HAL if quirks.<wbr/>usePartialResult is set to 1.<wbr/></p>
8868            </td>
8869          </tr>
8870
8871          <tr class="entries_header">
8872            <th class="th_details" colspan="5">HAL Implementation Details</th>
8873          </tr>
8874          <tr class="entry_cont">
8875            <td class="entry_details" colspan="5">
8876              <p>Refer to <code>camera3_<wbr/>capture_<wbr/>result::partial_<wbr/>result</code>
8877for information on how to implement partial results.<wbr/></p>
8878            </td>
8879          </tr>
8880
8881          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8882           <!-- end of entry -->
8883        
8884        
8885
8886      <!-- end of kind -->
8887      </tbody>
8888
8889  <!-- end of section -->
8890  <tr><td colspan="6" id="section_request" class="section">request</td></tr>
8891
8892
8893      <tr><td colspan="6" class="kind">controls</td></tr>
8894
8895      <thead class="entries_header">
8896        <tr>
8897          <th class="th_name">Property Name</th>
8898          <th class="th_type">Type</th>
8899          <th class="th_description">Description</th>
8900          <th class="th_units">Units</th>
8901          <th class="th_range">Range</th>
8902          <th class="th_tags">Tags</th>
8903        </tr>
8904      </thead>
8905
8906      <tbody>
8907
8908        
8909
8910        
8911
8912        
8913
8914        
8915
8916                
8917          <tr class="entry" id="controls_android.request.frameCount">
8918            <td class="entry_name" rowspan="1">
8919              android.<wbr/>request.<wbr/>frame<wbr/>Count
8920            </td>
8921            <td class="entry_type">
8922                <span class="entry_type_name">int32</span>
8923
8924              <span class="entry_type_visibility"> [system]</span>
8925
8926
8927            </td> <!-- entry_type -->
8928
8929            <td class="entry_description">
8930              <p>A frame counter set by the framework.<wbr/> Must
8931be maintained unchanged in output frame.<wbr/> This value monotonically
8932increases with every new result (that is,<wbr/> each new result has a unique
8933frameCount value).<wbr/></p>
8934            </td>
8935
8936            <td class="entry_units">
8937              incrementing integer
8938            </td>
8939
8940            <td class="entry_range">
8941              <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/> Any int.<wbr/></p>
8942            </td>
8943
8944            <td class="entry_tags">
8945            </td>
8946
8947          </tr>
8948
8949
8950          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8951           <!-- end of entry -->
8952        
8953                
8954          <tr class="entry" id="controls_android.request.id">
8955            <td class="entry_name" rowspan="1">
8956              android.<wbr/>request.<wbr/>id
8957            </td>
8958            <td class="entry_type">
8959                <span class="entry_type_name">int32</span>
8960
8961              <span class="entry_type_visibility"> [hidden]</span>
8962
8963
8964            </td> <!-- entry_type -->
8965
8966            <td class="entry_description">
8967              <p>An application-specified ID for the current
8968request.<wbr/> Must be maintained unchanged in output
8969frame</p>
8970            </td>
8971
8972            <td class="entry_units">
8973              arbitrary integer assigned by application
8974            </td>
8975
8976            <td class="entry_range">
8977              <p>Any int</p>
8978            </td>
8979
8980            <td class="entry_tags">
8981              <ul class="entry_tags">
8982                  <li><a href="#tag_V1">V1</a></li>
8983              </ul>
8984            </td>
8985
8986          </tr>
8987
8988
8989          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8990           <!-- end of entry -->
8991        
8992                
8993          <tr class="entry" id="controls_android.request.inputStreams">
8994            <td class="entry_name" rowspan="3">
8995              android.<wbr/>request.<wbr/>input<wbr/>Streams
8996            </td>
8997            <td class="entry_type">
8998                <span class="entry_type_name">int32</span>
8999                <span class="entry_type_container">x</span>
9000
9001                <span class="entry_type_array">
9002                  n
9003                </span>
9004              <span class="entry_type_visibility"> [system]</span>
9005
9006
9007            </td> <!-- entry_type -->
9008
9009            <td class="entry_description">
9010              <p>List which camera reprocess stream is used
9011for the source of reprocessing data.<wbr/></p>
9012            </td>
9013
9014            <td class="entry_units">
9015              List of camera reprocess stream IDs
9016            </td>
9017
9018            <td class="entry_range">
9019              <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
9020<p>Typically,<wbr/> only one entry allowed,<wbr/> must be a valid reprocess stream ID.<wbr/></p>
9021<p>If android.<wbr/>jpeg.<wbr/>needs<wbr/>Thumbnail is set,<wbr/> then multiple
9022reprocess streams may be included in a single request; they
9023must be different scaled versions of the same image.<wbr/></p>
9024            </td>
9025
9026            <td class="entry_tags">
9027              <ul class="entry_tags">
9028                  <li><a href="#tag_HAL2">HAL2</a></li>
9029              </ul>
9030            </td>
9031
9032          </tr>
9033          <tr class="entries_header">
9034            <th class="th_details" colspan="5">Details</th>
9035          </tr>
9036          <tr class="entry_cont">
9037            <td class="entry_details" colspan="5">
9038              <p>Only meaningful when <a href="#controls_android.request.type">android.<wbr/>request.<wbr/>type</a> ==
9039REPROCESS.<wbr/> Ignored otherwise</p>
9040            </td>
9041          </tr>
9042
9043
9044          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9045           <!-- end of entry -->
9046        
9047                
9048          <tr class="entry" id="controls_android.request.metadataMode">
9049            <td class="entry_name" rowspan="1">
9050              android.<wbr/>request.<wbr/>metadata<wbr/>Mode
9051            </td>
9052            <td class="entry_type">
9053                <span class="entry_type_name entry_type_name_enum">byte</span>
9054
9055              <span class="entry_type_visibility"> [system]</span>
9056
9057                <ul class="entry_type_enum">
9058                  <li>
9059                    <span class="entry_type_enum_name">NONE</span>
9060                    <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
9061for application-bound buffer data.<wbr/> If no
9062application-bound streams exist,<wbr/> no frame should be
9063placed in the output frame queue.<wbr/> If such streams
9064exist,<wbr/> a frame should be placed on the output queue
9065with null metadata but with the necessary output buffer
9066information.<wbr/> Timestamp information should still be
9067included with any output stream buffers</p></span>
9068                  </li>
9069                  <li>
9070                    <span class="entry_type_enum_name">FULL</span>
9071                    <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
9072only be produced if they are separately
9073enabled</p></span>
9074                  </li>
9075                </ul>
9076
9077            </td> <!-- entry_type -->
9078
9079            <td class="entry_description">
9080              <p>How much metadata to produce on
9081output</p>
9082            </td>
9083
9084            <td class="entry_units">
9085            </td>
9086
9087            <td class="entry_range">
9088            </td>
9089
9090            <td class="entry_tags">
9091            </td>
9092
9093          </tr>
9094
9095
9096          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9097           <!-- end of entry -->
9098        
9099                
9100          <tr class="entry" id="controls_android.request.outputStreams">
9101            <td class="entry_name" rowspan="3">
9102              android.<wbr/>request.<wbr/>output<wbr/>Streams
9103            </td>
9104            <td class="entry_type">
9105                <span class="entry_type_name">int32</span>
9106                <span class="entry_type_container">x</span>
9107
9108                <span class="entry_type_array">
9109                  n
9110                </span>
9111              <span class="entry_type_visibility"> [system]</span>
9112
9113
9114            </td> <!-- entry_type -->
9115
9116            <td class="entry_description">
9117              <p>Lists which camera output streams image data
9118from this capture must be sent to</p>
9119            </td>
9120
9121            <td class="entry_units">
9122              List of camera stream IDs
9123            </td>
9124
9125            <td class="entry_range">
9126              <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/> List must only include streams that have been
9127created</p>
9128            </td>
9129
9130            <td class="entry_tags">
9131              <ul class="entry_tags">
9132                  <li><a href="#tag_HAL2">HAL2</a></li>
9133              </ul>
9134            </td>
9135
9136          </tr>
9137          <tr class="entries_header">
9138            <th class="th_details" colspan="5">Details</th>
9139          </tr>
9140          <tr class="entry_cont">
9141            <td class="entry_details" colspan="5">
9142              <p>If no output streams are listed,<wbr/> then the image
9143data should simply be discarded.<wbr/> The image data must
9144still be captured for metadata and statistics production,<wbr/>
9145and the lens and flash must operate as requested.<wbr/></p>
9146            </td>
9147          </tr>
9148
9149
9150          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9151           <!-- end of entry -->
9152        
9153                
9154          <tr class="entry" id="controls_android.request.type">
9155            <td class="entry_name" rowspan="1">
9156              android.<wbr/>request.<wbr/>type
9157            </td>
9158            <td class="entry_type">
9159                <span class="entry_type_name entry_type_name_enum">byte</span>
9160
9161              <span class="entry_type_visibility"> [system]</span>
9162
9163                <ul class="entry_type_enum">
9164                  <li>
9165                    <span class="entry_type_enum_name">CAPTURE</span>
9166                    <span class="entry_type_enum_notes"><p>Capture a new image from the imaging hardware,<wbr/>
9167and process it according to the
9168settings</p></span>
9169                  </li>
9170                  <li>
9171                    <span class="entry_type_enum_name">REPROCESS</span>
9172                    <span class="entry_type_enum_notes"><p>Process previously captured data; the
9173android.<wbr/>request.<wbr/>input<wbr/>Stream parameter determines the
9174source reprocessing stream.<wbr/> TODO: Mark dynamic metadata
9175needed for reprocessing with [RP]</p></span>
9176                  </li>
9177                </ul>
9178
9179            </td> <!-- entry_type -->
9180
9181            <td class="entry_description">
9182              <p>The type of the request; either CAPTURE or
9183REPROCESS.<wbr/> For HAL3,<wbr/> this tag is redundant.<wbr/></p>
9184            </td>
9185
9186            <td class="entry_units">
9187            </td>
9188
9189            <td class="entry_range">
9190            </td>
9191
9192            <td class="entry_tags">
9193              <ul class="entry_tags">
9194                  <li><a href="#tag_HAL2">HAL2</a></li>
9195              </ul>
9196            </td>
9197
9198          </tr>
9199
9200
9201          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9202           <!-- end of entry -->
9203        
9204        
9205
9206      <!-- end of kind -->
9207      </tbody>
9208      <tr><td colspan="6" class="kind">static</td></tr>
9209
9210      <thead class="entries_header">
9211        <tr>
9212          <th class="th_name">Property Name</th>
9213          <th class="th_type">Type</th>
9214          <th class="th_description">Description</th>
9215          <th class="th_units">Units</th>
9216          <th class="th_range">Range</th>
9217          <th class="th_tags">Tags</th>
9218        </tr>
9219      </thead>
9220
9221      <tbody>
9222
9223        
9224
9225        
9226
9227        
9228
9229        
9230
9231                
9232          <tr class="entry" id="static_android.request.maxNumOutputStreams">
9233            <td class="entry_name" rowspan="3">
9234              android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Streams
9235            </td>
9236            <td class="entry_type">
9237                <span class="entry_type_name">int32</span>
9238                <span class="entry_type_container">x</span>
9239
9240                <span class="entry_type_array">
9241                  3
9242                </span>
9243              <span class="entry_type_visibility"> [public]</span>
9244
9245
9246            </td> <!-- entry_type -->
9247
9248            <td class="entry_description">
9249              <p>The maximum numbers of different types of output streams
9250that can be configured and used simultaneously by a camera device.<wbr/></p>
9251            </td>
9252
9253            <td class="entry_units">
9254            </td>
9255
9256            <td class="entry_range">
9257              <p>&gt;= 1 for JPEG-compressed format streams.<wbr/></p>
9258<p>&gt;= 0 for Raw format streams.<wbr/></p>
9259<p>&gt;= 3 for processed,<wbr/> uncompressed format streams.<wbr/></p>
9260            </td>
9261
9262            <td class="entry_tags">
9263              <ul class="entry_tags">
9264                  <li><a href="#tag_BC">BC</a></li>
9265              </ul>
9266            </td>
9267
9268          </tr>
9269          <tr class="entries_header">
9270            <th class="th_details" colspan="5">Details</th>
9271          </tr>
9272          <tr class="entry_cont">
9273            <td class="entry_details" colspan="5">
9274              <p>This is a 3 element tuple that contains the max number of output simultaneous
9275streams for raw sensor,<wbr/> processed (and uncompressed),<wbr/> and JPEG formats respectively.<wbr/>
9276For example,<wbr/> if max raw sensor format output stream number is 1,<wbr/> max YUV streams
9277number 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>
9278<p>This lists the upper bound of the number of output streams supported by
9279the camera device.<wbr/> Using more streams simultaneously may require more hardware and
9280CPU resources that will consume more power.<wbr/> The image format for a output stream can
9281be any supported format provided by <a href="#static_android.scaler.availableFormats">android.<wbr/>scaler.<wbr/>available<wbr/>Formats</a>.<wbr/> The formats
9282defined in <a href="#static_android.scaler.availableFormats">android.<wbr/>scaler.<wbr/>available<wbr/>Formats</a> can be catergorized into the 3 stream types
9283as below:</p>
9284<ul>
9285<li>JPEG-compressed format: BLOB.<wbr/></li>
9286<li>Raw formats: RAW_<wbr/>SENSOR and RAW_<wbr/>OPAQUE.<wbr/></li>
9287<li>processed,<wbr/> uncompressed formats: YCb<wbr/>Cr_<wbr/>420_<wbr/>888,<wbr/> YCr<wbr/>Cb_<wbr/>420_<wbr/>SP,<wbr/> YV12.<wbr/></li>
9288</ul>
9289            </td>
9290          </tr>
9291
9292
9293          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9294           <!-- end of entry -->
9295        
9296                
9297          <tr class="entry" id="static_android.request.maxNumReprocessStreams">
9298            <td class="entry_name" rowspan="3">
9299              android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Reprocess<wbr/>Streams
9300            </td>
9301            <td class="entry_type">
9302                <span class="entry_type_name">int32</span>
9303                <span class="entry_type_container">x</span>
9304
9305                <span class="entry_type_array">
9306                  1
9307                </span>
9308              <span class="entry_type_visibility"> [system]</span>
9309
9310
9311            </td> <!-- entry_type -->
9312
9313            <td class="entry_description">
9314              <p>How many reprocessing streams of any type
9315can be allocated at the same time.<wbr/></p>
9316            </td>
9317
9318            <td class="entry_units">
9319            </td>
9320
9321            <td class="entry_range">
9322              <p>&gt;= 0</p>
9323            </td>
9324
9325            <td class="entry_tags">
9326              <ul class="entry_tags">
9327                  <li><a href="#tag_HAL2">HAL2</a></li>
9328              </ul>
9329            </td>
9330
9331          </tr>
9332          <tr class="entries_header">
9333            <th class="th_details" colspan="5">Details</th>
9334          </tr>
9335          <tr class="entry_cont">
9336            <td class="entry_details" colspan="5">
9337              <p><strong>Deprecated</strong>.<wbr/> Only used by HAL2.<wbr/>x.<wbr/></p>
9338<p>When set to 0,<wbr/> it means no reprocess stream is supported.<wbr/></p>
9339            </td>
9340          </tr>
9341
9342
9343          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9344           <!-- end of entry -->
9345        
9346                
9347          <tr class="entry" id="static_android.request.maxNumInputStreams">
9348            <td class="entry_name" rowspan="3">
9349              android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Input<wbr/>Streams
9350            </td>
9351            <td class="entry_type">
9352                <span class="entry_type_name">int32</span>
9353
9354              <span class="entry_type_visibility"> [public]</span>
9355
9356
9357            </td> <!-- entry_type -->
9358
9359            <td class="entry_description">
9360              <p>The maximum numbers of any type of input streams
9361that can be configured and used simultaneously by a camera device.<wbr/></p>
9362            </td>
9363
9364            <td class="entry_units">
9365            </td>
9366
9367            <td class="entry_range">
9368              <p>&gt;= 0 for LIMITED mode device (<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == LIMITED</code>).<wbr/>
9369&gt;= 1 for FULL mode device (<code><a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a> == FULL</code>).<wbr/></p>
9370            </td>
9371
9372            <td class="entry_tags">
9373            </td>
9374
9375          </tr>
9376          <tr class="entries_header">
9377            <th class="th_details" colspan="5">Details</th>
9378          </tr>
9379          <tr class="entry_cont">
9380            <td class="entry_details" colspan="5">
9381              <p>When set to 0,<wbr/> it means no input stream is supported.<wbr/></p>
9382<p>The image format for a input stream can be any supported format provided
9383by android.<wbr/>scaler.<wbr/>available<wbr/>Input<wbr/>Formats.<wbr/> When using an input stream,<wbr/> there must be
9384at least one output stream configured to to receive the reprocessed images.<wbr/></p>
9385<p>For example,<wbr/> for Zero Shutter Lag (ZSL) still capture use case,<wbr/> the input
9386stream image format will be RAW_<wbr/>OPAQUE,<wbr/> the associated output stream image format
9387should be JPEG.<wbr/></p>
9388            </td>
9389          </tr>
9390
9391
9392          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9393           <!-- end of entry -->
9394        
9395                
9396          <tr class="entry" id="static_android.request.pipelineMaxDepth">
9397            <td class="entry_name" rowspan="5">
9398              android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth
9399            </td>
9400            <td class="entry_type">
9401                <span class="entry_type_name">byte</span>
9402
9403              <span class="entry_type_visibility"> [public]</span>
9404
9405
9406            </td> <!-- entry_type -->
9407
9408            <td class="entry_description">
9409              <p>Specifies the number of maximum pipeline stages a frame
9410has to go through from when it's exposed to when it's available
9411to the framework.<wbr/></p>
9412            </td>
9413
9414            <td class="entry_units">
9415            </td>
9416
9417            <td class="entry_range">
9418            </td>
9419
9420            <td class="entry_tags">
9421            </td>
9422
9423          </tr>
9424          <tr class="entries_header">
9425            <th class="th_details" colspan="5">Details</th>
9426          </tr>
9427          <tr class="entry_cont">
9428            <td class="entry_details" colspan="5">
9429              <p>A typical minimum value for this is 2 (one stage to expose,<wbr/>
9430one stage to readout) from the sensor.<wbr/> The ISP then usually adds
9431its own stages to do custom HW processing.<wbr/> Further stages may be
9432added by SW processing.<wbr/></p>
9433<p>Depending on what settings are used (e.<wbr/>g.<wbr/> YUV,<wbr/> JPEG) and what
9434processing is enabled (e.<wbr/>g.<wbr/> face detection),<wbr/> the actual pipeline
9435depth (specified by <a href="#dynamic_android.request.pipelineDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Depth</a>) may be less than
9436the max pipeline depth.<wbr/></p>
9437<p>A pipeline depth of X stages is equivalent to a pipeline latency of
9438X frame intervals.<wbr/></p>
9439<p>This value will be 8 or less.<wbr/></p>
9440            </td>
9441          </tr>
9442
9443          <tr class="entries_header">
9444            <th class="th_details" colspan="5">HAL Implementation Details</th>
9445          </tr>
9446          <tr class="entry_cont">
9447            <td class="entry_details" colspan="5">
9448              <p>This value should be 4 or less.<wbr/></p>
9449            </td>
9450          </tr>
9451
9452          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9453           <!-- end of entry -->
9454        
9455                
9456          <tr class="entry" id="static_android.request.partialResultCount">
9457            <td class="entry_name" rowspan="3">
9458              android.<wbr/>request.<wbr/>partial<wbr/>Result<wbr/>Count
9459            </td>
9460            <td class="entry_type">
9461                <span class="entry_type_name">int32</span>
9462
9463              <span class="entry_type_visibility"> [public]</span>
9464
9465
9466            </td> <!-- entry_type -->
9467
9468            <td class="entry_description">
9469              <p>Optional.<wbr/> Defaults to 1.<wbr/> Defines how many sub-components
9470a result will be composed of.<wbr/></p>
9471            </td>
9472
9473            <td class="entry_units">
9474            </td>
9475
9476            <td class="entry_range">
9477              <p>&gt;= 1</p>
9478            </td>
9479
9480            <td class="entry_tags">
9481            </td>
9482
9483          </tr>
9484          <tr class="entries_header">
9485            <th class="th_details" colspan="5">Details</th>
9486          </tr>
9487          <tr class="entry_cont">
9488            <td class="entry_details" colspan="5">
9489              <p>In order to combat the pipeline latency,<wbr/> partial results
9490may be delivered to the application layer from the camera device as
9491soon as they are available.<wbr/></p>
9492<p>A value of 1 means that partial results are not supported.<wbr/></p>
9493<p>A typical use case for this might be: after requesting an AF lock the
9494new AF state might be available 50% of the way through the pipeline.<wbr/>
9495The camera device could then immediately dispatch this state via a
9496partial result to the framework/<wbr/>application layer,<wbr/> and the rest of
9497the metadata via later partial results.<wbr/></p>
9498            </td>
9499          </tr>
9500
9501
9502          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9503           <!-- end of entry -->
9504        
9505        
9506
9507      <!-- end of kind -->
9508      </tbody>
9509      <tr><td colspan="6" class="kind">dynamic</td></tr>
9510
9511      <thead class="entries_header">
9512        <tr>
9513          <th class="th_name">Property Name</th>
9514          <th class="th_type">Type</th>
9515          <th class="th_description">Description</th>
9516          <th class="th_units">Units</th>
9517          <th class="th_range">Range</th>
9518          <th class="th_tags">Tags</th>
9519        </tr>
9520      </thead>
9521
9522      <tbody>
9523
9524        
9525
9526        
9527
9528        
9529
9530        
9531
9532                
9533          <tr class="entry" id="dynamic_android.request.frameCount">
9534            <td class="entry_name" rowspan="3">
9535              android.<wbr/>request.<wbr/>frame<wbr/>Count
9536            </td>
9537            <td class="entry_type">
9538                <span class="entry_type_name">int32</span>
9539
9540              <span class="entry_type_visibility"> [public]</span>
9541
9542
9543            </td> <!-- entry_type -->
9544
9545            <td class="entry_description">
9546              <p>A frame counter set by the framework.<wbr/> This value monotonically
9547increases with every new result (that is,<wbr/> each new result has a unique
9548frameCount value).<wbr/></p>
9549            </td>
9550
9551            <td class="entry_units">
9552              count of frames
9553            </td>
9554
9555            <td class="entry_range">
9556              <p>&gt; 0</p>
9557            </td>
9558
9559            <td class="entry_tags">
9560            </td>
9561
9562          </tr>
9563          <tr class="entries_header">
9564            <th class="th_details" colspan="5">Details</th>
9565          </tr>
9566          <tr class="entry_cont">
9567            <td class="entry_details" colspan="5">
9568              <p>Reset on release()</p>
9569            </td>
9570          </tr>
9571
9572
9573          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9574           <!-- end of entry -->
9575        
9576                
9577          <tr class="entry" id="dynamic_android.request.id">
9578            <td class="entry_name" rowspan="1">
9579              android.<wbr/>request.<wbr/>id
9580            </td>
9581            <td class="entry_type">
9582                <span class="entry_type_name">int32</span>
9583
9584              <span class="entry_type_visibility"> [hidden]</span>
9585
9586
9587            </td> <!-- entry_type -->
9588
9589            <td class="entry_description">
9590              <p>An application-specified ID for the current
9591request.<wbr/> Must be maintained unchanged in output
9592frame</p>
9593            </td>
9594
9595            <td class="entry_units">
9596              arbitrary integer assigned by application
9597            </td>
9598
9599            <td class="entry_range">
9600              <p>Any int</p>
9601            </td>
9602
9603            <td class="entry_tags">
9604              <ul class="entry_tags">
9605                  <li><a href="#tag_V1">V1</a></li>
9606              </ul>
9607            </td>
9608
9609          </tr>
9610
9611
9612          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9613           <!-- end of entry -->
9614        
9615                
9616          <tr class="entry" id="dynamic_android.request.metadataMode">
9617            <td class="entry_name" rowspan="1">
9618              android.<wbr/>request.<wbr/>metadata<wbr/>Mode
9619            </td>
9620            <td class="entry_type">
9621                <span class="entry_type_name entry_type_name_enum">byte</span>
9622
9623              <span class="entry_type_visibility"> [system]</span>
9624
9625                <ul class="entry_type_enum">
9626                  <li>
9627                    <span class="entry_type_enum_name">NONE</span>
9628                    <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
9629for application-bound buffer data.<wbr/> If no
9630application-bound streams exist,<wbr/> no frame should be
9631placed in the output frame queue.<wbr/> If such streams
9632exist,<wbr/> a frame should be placed on the output queue
9633with null metadata but with the necessary output buffer
9634information.<wbr/> Timestamp information should still be
9635included with any output stream buffers</p></span>
9636                  </li>
9637                  <li>
9638                    <span class="entry_type_enum_name">FULL</span>
9639                    <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
9640only be produced if they are separately
9641enabled</p></span>
9642                  </li>
9643                </ul>
9644
9645            </td> <!-- entry_type -->
9646
9647            <td class="entry_description">
9648              <p>How much metadata to produce on
9649output</p>
9650            </td>
9651
9652            <td class="entry_units">
9653            </td>
9654
9655            <td class="entry_range">
9656            </td>
9657
9658            <td class="entry_tags">
9659            </td>
9660
9661          </tr>
9662
9663
9664          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9665           <!-- end of entry -->
9666        
9667                
9668          <tr class="entry" id="dynamic_android.request.outputStreams">
9669            <td class="entry_name" rowspan="3">
9670              android.<wbr/>request.<wbr/>output<wbr/>Streams
9671            </td>
9672            <td class="entry_type">
9673                <span class="entry_type_name">int32</span>
9674                <span class="entry_type_container">x</span>
9675
9676                <span class="entry_type_array">
9677                  n
9678                </span>
9679              <span class="entry_type_visibility"> [system]</span>
9680
9681
9682            </td> <!-- entry_type -->
9683
9684            <td class="entry_description">
9685              <p>Lists which camera output streams image data
9686from this capture must be sent to</p>
9687            </td>
9688
9689            <td class="entry_units">
9690              List of camera stream IDs
9691            </td>
9692
9693            <td class="entry_range">
9694              <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/> List must only include streams that have been
9695created</p>
9696            </td>
9697
9698            <td class="entry_tags">
9699              <ul class="entry_tags">
9700                  <li><a href="#tag_HAL2">HAL2</a></li>
9701              </ul>
9702            </td>
9703
9704          </tr>
9705          <tr class="entries_header">
9706            <th class="th_details" colspan="5">Details</th>
9707          </tr>
9708          <tr class="entry_cont">
9709            <td class="entry_details" colspan="5">
9710              <p>If no output streams are listed,<wbr/> then the image
9711data should simply be discarded.<wbr/> The image data must
9712still be captured for metadata and statistics production,<wbr/>
9713and the lens and flash must operate as requested.<wbr/></p>
9714            </td>
9715          </tr>
9716
9717
9718          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9719           <!-- end of entry -->
9720        
9721                
9722          <tr class="entry" id="dynamic_android.request.pipelineDepth">
9723            <td class="entry_name" rowspan="5">
9724              android.<wbr/>request.<wbr/>pipeline<wbr/>Depth
9725            </td>
9726            <td class="entry_type">
9727                <span class="entry_type_name">byte</span>
9728
9729              <span class="entry_type_visibility"> [public]</span>
9730
9731
9732            </td> <!-- entry_type -->
9733
9734            <td class="entry_description">
9735              <p>Specifies the number of pipeline stages the frame went
9736through from when it was exposed to when the final completed result
9737was available to the framework.<wbr/></p>
9738            </td>
9739
9740            <td class="entry_units">
9741            </td>
9742
9743            <td class="entry_range">
9744              <p>&lt;= <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a></p>
9745            </td>
9746
9747            <td class="entry_tags">
9748            </td>
9749
9750          </tr>
9751          <tr class="entries_header">
9752            <th class="th_details" colspan="5">Details</th>
9753          </tr>
9754          <tr class="entry_cont">
9755            <td class="entry_details" colspan="5">
9756              <p>Depending on what settings are used in the request,<wbr/> and
9757what streams are configured,<wbr/> the data may undergo less processing,<wbr/>
9758and some pipeline stages skipped.<wbr/></p>
9759<p>See <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> for more details.<wbr/></p>
9760            </td>
9761          </tr>
9762
9763          <tr class="entries_header">
9764            <th class="th_details" colspan="5">HAL Implementation Details</th>
9765          </tr>
9766          <tr class="entry_cont">
9767            <td class="entry_details" colspan="5">
9768              <p>This value must always represent the accurate count of how many
9769pipeline stages were actually used.<wbr/></p>
9770            </td>
9771          </tr>
9772
9773          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9774           <!-- end of entry -->
9775        
9776        
9777
9778      <!-- end of kind -->
9779      </tbody>
9780
9781  <!-- end of section -->
9782  <tr><td colspan="6" id="section_scaler" class="section">scaler</td></tr>
9783
9784
9785      <tr><td colspan="6" class="kind">controls</td></tr>
9786
9787      <thead class="entries_header">
9788        <tr>
9789          <th class="th_name">Property Name</th>
9790          <th class="th_type">Type</th>
9791          <th class="th_description">Description</th>
9792          <th class="th_units">Units</th>
9793          <th class="th_range">Range</th>
9794          <th class="th_tags">Tags</th>
9795        </tr>
9796      </thead>
9797
9798      <tbody>
9799
9800        
9801
9802        
9803
9804        
9805
9806        
9807
9808                
9809          <tr class="entry" id="controls_android.scaler.cropRegion">
9810            <td class="entry_name" rowspan="3">
9811              android.<wbr/>scaler.<wbr/>crop<wbr/>Region
9812            </td>
9813            <td class="entry_type">
9814                <span class="entry_type_name">int32</span>
9815                <span class="entry_type_container">x</span>
9816
9817                <span class="entry_type_array">
9818                  4
9819                </span>
9820              <span class="entry_type_visibility"> [public as rectangle]</span>
9821
9822
9823            </td> <!-- entry_type -->
9824
9825            <td class="entry_description">
9826              <p>(x,<wbr/> y,<wbr/> width,<wbr/> height).<wbr/></p>
9827<p>A rectangle with the top-level corner of (x,<wbr/>y) and size
9828(width,<wbr/> height).<wbr/> The region of the sensor that is used for
9829output.<wbr/> Each stream must use this rectangle to produce its
9830output,<wbr/> cropping to a smaller region if necessary to
9831maintain the stream's aspect ratio.<wbr/></p>
9832<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
9833            </td>
9834
9835            <td class="entry_units">
9836              (x,<wbr/>y) of top-left corner,<wbr/> width and height of region
9837          in pixels; (0,<wbr/>0) is top-left corner of
9838          android.<wbr/>sensor.<wbr/>active<wbr/>Array<wbr/>Size
9839            </td>
9840
9841            <td class="entry_range">
9842            </td>
9843
9844            <td class="entry_tags">
9845              <ul class="entry_tags">
9846                  <li><a href="#tag_BC">BC</a></li>
9847              </ul>
9848            </td>
9849
9850          </tr>
9851          <tr class="entries_header">
9852            <th class="th_details" colspan="5">Details</th>
9853          </tr>
9854          <tr class="entry_cont">
9855            <td class="entry_details" colspan="5">
9856              <p>Any additional per-stream cropping must be done to
9857maximize the final pixel area of the stream.<wbr/></p>
9858<p>For example,<wbr/> if the crop region is set to a 4:3 aspect
9859ratio,<wbr/> then 4:3 streams should use the exact crop
9860region.<wbr/> 16:9 streams should further crop vertically
9861(letterbox).<wbr/></p>
9862<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
9863outputs should crop horizontally (pillarbox),<wbr/> and 16:9
9864streams should match exactly.<wbr/> These additional crops must
9865be centered within the crop region.<wbr/></p>
9866<p>The output streams must maintain square pixels at all
9867times,<wbr/> no matter what the relative aspect ratios of the
9868crop region and the stream are.<wbr/>  Negative values for
9869corner are allowed for raw output if full pixel array is
9870larger than active pixel array.<wbr/> Width and height may be
9871rounded to nearest larger supportable width,<wbr/> especially
9872for raw output,<wbr/> where only a few fixed scales may be
9873possible.<wbr/> The width and height of the crop region cannot
9874be set to be smaller than floor( activeArraySize.<wbr/>width /<wbr/>
9875android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom ) and floor(
9876activeArraySize.<wbr/>height /<wbr/> android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom),<wbr/>
9877respectively.<wbr/></p>
9878            </td>
9879          </tr>
9880
9881
9882          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9883           <!-- end of entry -->
9884        
9885        
9886
9887      <!-- end of kind -->
9888      </tbody>
9889      <tr><td colspan="6" class="kind">static</td></tr>
9890
9891      <thead class="entries_header">
9892        <tr>
9893          <th class="th_name">Property Name</th>
9894          <th class="th_type">Type</th>
9895          <th class="th_description">Description</th>
9896          <th class="th_units">Units</th>
9897          <th class="th_range">Range</th>
9898          <th class="th_tags">Tags</th>
9899        </tr>
9900      </thead>
9901
9902      <tbody>
9903
9904        
9905
9906        
9907
9908        
9909
9910        
9911
9912                
9913          <tr class="entry" id="static_android.scaler.availableFormats">
9914            <td class="entry_name" rowspan="5">
9915              android.<wbr/>scaler.<wbr/>available<wbr/>Formats
9916            </td>
9917            <td class="entry_type">
9918                <span class="entry_type_name entry_type_name_enum">int32</span>
9919                <span class="entry_type_container">x</span>
9920
9921                <span class="entry_type_array">
9922                  n
9923                </span>
9924              <span class="entry_type_visibility"> [public as imageFormat]</span>
9925
9926                <ul class="entry_type_enum">
9927                  <li>
9928                    <span class="entry_type_enum_name">RAW_SENSOR</span>
9929                    <span class="entry_type_enum_optional">optional</span>
9930                    <span class="entry_type_enum_value">0x20</span>
9931                  </li>
9932                  <li>
9933                    <span class="entry_type_enum_name">YV12</span>
9934                    <span class="entry_type_enum_optional">optional</span>
9935                    <span class="entry_type_enum_value">0x32315659</span>
9936                    <span class="entry_type_enum_notes"><p>YCrCb 4:2:0 Planar</p></span>
9937                  </li>
9938                  <li>
9939                    <span class="entry_type_enum_name">YCrCb_420_SP</span>
9940                    <span class="entry_type_enum_optional">optional</span>
9941                    <span class="entry_type_enum_value">0x11</span>
9942                    <span class="entry_type_enum_notes"><p>NV21</p></span>
9943                  </li>
9944                  <li>
9945                    <span class="entry_type_enum_name">IMPLEMENTATION_DEFINED</span>
9946                    <span class="entry_type_enum_value">0x22</span>
9947                    <span class="entry_type_enum_notes"><p>System internal format,<wbr/> not application-accessible</p></span>
9948                  </li>
9949                  <li>
9950                    <span class="entry_type_enum_name">YCbCr_420_888</span>
9951                    <span class="entry_type_enum_value">0x23</span>
9952                    <span class="entry_type_enum_notes"><p>Flexible YUV420 Format</p></span>
9953                  </li>
9954                  <li>
9955                    <span class="entry_type_enum_name">BLOB</span>
9956                    <span class="entry_type_enum_value">0x21</span>
9957                    <span class="entry_type_enum_notes"><p>JPEG format</p></span>
9958                  </li>
9959                </ul>
9960
9961            </td> <!-- entry_type -->
9962
9963            <td class="entry_description">
9964              <p>The list of image formats that are supported by this
9965camera device.<wbr/></p>
9966            </td>
9967
9968            <td class="entry_units">
9969            </td>
9970
9971            <td class="entry_range">
9972            </td>
9973
9974            <td class="entry_tags">
9975              <ul class="entry_tags">
9976                  <li><a href="#tag_BC">BC</a></li>
9977              </ul>
9978            </td>
9979
9980          </tr>
9981          <tr class="entries_header">
9982            <th class="th_details" colspan="5">Details</th>
9983          </tr>
9984          <tr class="entry_cont">
9985            <td class="entry_details" colspan="5">
9986              <p>All camera devices will support JPEG and YUV_<wbr/>420_<wbr/>888 formats.<wbr/></p>
9987<p>When set to YUV_<wbr/>420_<wbr/>888,<wbr/> application can access the YUV420 data directly.<wbr/></p>
9988            </td>
9989          </tr>
9990
9991          <tr class="entries_header">
9992            <th class="th_details" colspan="5">HAL Implementation Details</th>
9993          </tr>
9994          <tr class="entry_cont">
9995            <td class="entry_details" colspan="5">
9996              <p>These format values are from HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>* in
9997system/<wbr/>core/<wbr/>include/<wbr/>system/<wbr/>graphics.<wbr/>h.<wbr/></p>
9998<p>When IMPLEMENTATION_<wbr/>DEFINED is used,<wbr/> the platform
9999gralloc module will select a format based on the usage flags provided
10000by the camera HAL device and the other endpoint of the stream.<wbr/> It is
10001usually used by preview and recording streams,<wbr/> where the application doesn't
10002need access the image data.<wbr/></p>
10003<p>YCb<wbr/>Cr_<wbr/>420_<wbr/>888 format must be supported by the HAL.<wbr/> When an image stream
10004needs CPU/<wbr/>application direct access,<wbr/> this format will be used.<wbr/></p>
10005<p>The BLOB format must be supported by the HAL.<wbr/> This is used for the JPEG stream.<wbr/></p>
10006            </td>
10007          </tr>
10008
10009          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10010           <!-- end of entry -->
10011        
10012                
10013          <tr class="entry" id="static_android.scaler.availableJpegMinDurations">
10014            <td class="entry_name" rowspan="3">
10015              android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations
10016            </td>
10017            <td class="entry_type">
10018                <span class="entry_type_name">int64</span>
10019                <span class="entry_type_container">x</span>
10020
10021                <span class="entry_type_array">
10022                  n
10023                </span>
10024              <span class="entry_type_visibility"> [public]</span>
10025
10026
10027            </td> <!-- entry_type -->
10028
10029            <td class="entry_description">
10030              <p>The minimum frame duration that is supported
10031for each resolution in <a href="#static_android.scaler.availableJpegSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes</a>.<wbr/></p>
10032            </td>
10033
10034            <td class="entry_units">
10035              ns
10036            </td>
10037
10038            <td class="entry_range">
10039            </td>
10040
10041            <td class="entry_tags">
10042              <ul class="entry_tags">
10043                  <li><a href="#tag_BC">BC</a></li>
10044              </ul>
10045            </td>
10046
10047          </tr>
10048          <tr class="entries_header">
10049            <th class="th_details" colspan="5">Details</th>
10050          </tr>
10051          <tr class="entry_cont">
10052            <td class="entry_details" colspan="5">
10053              <p>This corresponds to the minimum steady-state frame duration when only
10054that JPEG stream is active and captured in a burst,<wbr/> with all
10055processing (typically in android.<wbr/>*.<wbr/>mode) set to FAST.<wbr/></p>
10056<p>When multiple streams are configured,<wbr/> the minimum
10057frame duration will be &gt;= max(individual stream min
10058durations)</p>
10059            </td>
10060          </tr>
10061
10062
10063          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10064           <!-- end of entry -->
10065        
10066                
10067          <tr class="entry" id="static_android.scaler.availableJpegSizes">
10068            <td class="entry_name" rowspan="5">
10069              android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes
10070            </td>
10071            <td class="entry_type">
10072                <span class="entry_type_name">int32</span>
10073                <span class="entry_type_container">x</span>
10074
10075                <span class="entry_type_array">
10076                  n x 2
10077                </span>
10078              <span class="entry_type_visibility"> [public as size]</span>
10079
10080
10081            </td> <!-- entry_type -->
10082
10083            <td class="entry_description">
10084              <p>The JPEG resolutions that are supported by this camera device.<wbr/></p>
10085            </td>
10086
10087            <td class="entry_units">
10088            </td>
10089
10090            <td class="entry_range">
10091            </td>
10092
10093            <td class="entry_tags">
10094              <ul class="entry_tags">
10095                  <li><a href="#tag_BC">BC</a></li>
10096              </ul>
10097            </td>
10098
10099          </tr>
10100          <tr class="entries_header">
10101            <th class="th_details" colspan="5">Details</th>
10102          </tr>
10103          <tr class="entry_cont">
10104            <td class="entry_details" colspan="5">
10105              <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/> All camera devices will support
10106sensor 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>
10107            </td>
10108          </tr>
10109
10110          <tr class="entries_header">
10111            <th class="th_details" colspan="5">HAL Implementation Details</th>
10112          </tr>
10113          <tr class="entry_cont">
10114            <td class="entry_details" colspan="5">
10115              <p>The HAL must include sensor maximum resolution
10116(defined by <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>),<wbr/>
10117and should include half/<wbr/>quarter of sensor maximum resolution.<wbr/></p>
10118            </td>
10119          </tr>
10120
10121          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10122           <!-- end of entry -->
10123        
10124                
10125          <tr class="entry" id="static_android.scaler.availableMaxDigitalZoom">
10126            <td class="entry_name" rowspan="1">
10127              android.<wbr/>scaler.<wbr/>available<wbr/>Max<wbr/>Digital<wbr/>Zoom
10128            </td>
10129            <td class="entry_type">
10130                <span class="entry_type_name">float</span>
10131
10132              <span class="entry_type_visibility"> [public]</span>
10133
10134
10135            </td> <!-- entry_type -->
10136
10137            <td class="entry_description">
10138              <p>The maximum ratio between active area width
10139and crop region width,<wbr/> or between active area height and
10140crop region height,<wbr/> if the crop region height is larger
10141than width</p>
10142            </td>
10143
10144            <td class="entry_units">
10145            </td>
10146
10147            <td class="entry_range">
10148              <p>&gt;=1</p>
10149            </td>
10150
10151            <td class="entry_tags">
10152              <ul class="entry_tags">
10153                  <li><a href="#tag_BC">BC</a></li>
10154              </ul>
10155            </td>
10156
10157          </tr>
10158
10159
10160          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10161           <!-- end of entry -->
10162        
10163                
10164          <tr class="entry" id="static_android.scaler.availableProcessedMinDurations">
10165            <td class="entry_name" rowspan="3">
10166              android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations
10167            </td>
10168            <td class="entry_type">
10169                <span class="entry_type_name">int64</span>
10170                <span class="entry_type_container">x</span>
10171
10172                <span class="entry_type_array">
10173                  n
10174                </span>
10175              <span class="entry_type_visibility"> [public]</span>
10176
10177
10178            </td> <!-- entry_type -->
10179
10180            <td class="entry_description">
10181              <p>For each available processed output size (defined in
10182<a href="#static_android.scaler.availableProcessedSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes</a>),<wbr/> this property lists the
10183minimum supportable frame duration for that size.<wbr/></p>
10184            </td>
10185
10186            <td class="entry_units">
10187              ns
10188            </td>
10189
10190            <td class="entry_range">
10191            </td>
10192
10193            <td class="entry_tags">
10194              <ul class="entry_tags">
10195                  <li><a href="#tag_BC">BC</a></li>
10196              </ul>
10197            </td>
10198
10199          </tr>
10200          <tr class="entries_header">
10201            <th class="th_details" colspan="5">Details</th>
10202          </tr>
10203          <tr class="entry_cont">
10204            <td class="entry_details" colspan="5">
10205              <p>This should correspond to the frame duration when only that processed
10206stream is active,<wbr/> with all processing (typically in android.<wbr/>*.<wbr/>mode)
10207set to FAST.<wbr/></p>
10208<p>When multiple streams are configured,<wbr/> the minimum frame duration will
10209be &gt;= max(individual stream min durations).<wbr/></p>
10210            </td>
10211          </tr>
10212
10213
10214          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10215           <!-- end of entry -->
10216        
10217                
10218          <tr class="entry" id="static_android.scaler.availableProcessedSizes">
10219            <td class="entry_name" rowspan="5">
10220              android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes
10221            </td>
10222            <td class="entry_type">
10223                <span class="entry_type_name">int32</span>
10224                <span class="entry_type_container">x</span>
10225
10226                <span class="entry_type_array">
10227                  n x 2
10228                </span>
10229              <span class="entry_type_visibility"> [public as size]</span>
10230
10231
10232            </td> <!-- entry_type -->
10233
10234            <td class="entry_description">
10235              <p>The resolutions available for use with
10236processed output streams,<wbr/> such as YV12,<wbr/> NV12,<wbr/> and
10237platform opaque YUV/<wbr/>RGB streams to the GPU or video
10238encoders.<wbr/></p>
10239            </td>
10240
10241            <td class="entry_units">
10242            </td>
10243
10244            <td class="entry_range">
10245            </td>
10246
10247            <td class="entry_tags">
10248              <ul class="entry_tags">
10249                  <li><a href="#tag_BC">BC</a></li>
10250              </ul>
10251            </td>
10252
10253          </tr>
10254          <tr class="entries_header">
10255            <th class="th_details" colspan="5">Details</th>
10256          </tr>
10257          <tr class="entry_cont">
10258            <td class="entry_details" colspan="5">
10259              <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/></p>
10260<p>For a given use case,<wbr/> the actual maximum supported resolution
10261may be lower than what is listed here,<wbr/> depending on the destination
10262Surface for the image data.<wbr/> For example,<wbr/> for recording video,<wbr/>
10263the video encoder chosen may have a maximum size limit (e.<wbr/>g.<wbr/> 1080p)
10264smaller than what the camera (e.<wbr/>g.<wbr/> maximum resolution is 3264x2448)
10265can provide.<wbr/></p>
10266<p>Please reference the documentation for the image data destination to
10267check if it limits the maximum size for image data.<wbr/></p>
10268            </td>
10269          </tr>
10270
10271          <tr class="entries_header">
10272            <th class="th_details" colspan="5">HAL Implementation Details</th>
10273          </tr>
10274          <tr class="entry_cont">
10275            <td class="entry_details" colspan="5">
10276              <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/>
10277the HAL must include all JPEG sizes listed in android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes
10278and each below resolution if it is smaller than or equal to the sensor
10279maximum resolution (if they are not listed in JPEG sizes already):</p>
10280<ul>
10281<li>240p (320 x 240)</li>
10282<li>480p (640 x 480)</li>
10283<li>720p (1280 x 720)</li>
10284<li>1080p (1920 x 1080)</li>
10285</ul>
10286<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/>
10287the HAL only has to list up to the maximum video size supported by the devices.<wbr/></p>
10288            </td>
10289          </tr>
10290
10291          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10292           <!-- end of entry -->
10293        
10294                
10295          <tr class="entry" id="static_android.scaler.availableRawMinDurations">
10296            <td class="entry_name" rowspan="3">
10297              android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations
10298            </td>
10299            <td class="entry_type">
10300                <span class="entry_type_name">int64</span>
10301                <span class="entry_type_container">x</span>
10302
10303                <span class="entry_type_array">
10304                  n
10305                </span>
10306              <span class="entry_type_visibility"> [system]</span>
10307
10308
10309            </td> <!-- entry_type -->
10310
10311            <td class="entry_description">
10312              <p>For each available raw output size (defined in
10313<a href="#static_android.scaler.availableRawSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes</a>),<wbr/> this property lists the minimum
10314supportable frame duration for that size.<wbr/></p>
10315            </td>
10316
10317            <td class="entry_units">
10318              ns
10319            </td>
10320
10321            <td class="entry_range">
10322            </td>
10323
10324            <td class="entry_tags">
10325              <ul class="entry_tags">
10326                  <li><a href="#tag_BC">BC</a></li>
10327              </ul>
10328            </td>
10329
10330          </tr>
10331          <tr class="entries_header">
10332            <th class="th_details" colspan="5">Details</th>
10333          </tr>
10334          <tr class="entry_cont">
10335            <td class="entry_details" colspan="5">
10336              <p>Should correspond to the frame duration when only the raw stream is
10337active.<wbr/></p>
10338<p>When multiple streams are configured,<wbr/> the minimum
10339frame duration will be &gt;= max(individual stream min
10340durations)</p>
10341            </td>
10342          </tr>
10343
10344
10345          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10346           <!-- end of entry -->
10347        
10348                
10349          <tr class="entry" id="static_android.scaler.availableRawSizes">
10350            <td class="entry_name" rowspan="1">
10351              android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes
10352            </td>
10353            <td class="entry_type">
10354                <span class="entry_type_name">int32</span>
10355                <span class="entry_type_container">x</span>
10356
10357                <span class="entry_type_array">
10358                  n x 2
10359                </span>
10360              <span class="entry_type_visibility"> [system as size]</span>
10361
10362
10363            </td> <!-- entry_type -->
10364
10365            <td class="entry_description">
10366              <p>The resolutions available for use with raw
10367sensor output streams,<wbr/> listed as width,<wbr/>
10368height</p>
10369            </td>
10370
10371            <td class="entry_units">
10372            </td>
10373
10374            <td class="entry_range">
10375              <p>Must include: - sensor maximum resolution</p>
10376            </td>
10377
10378            <td class="entry_tags">
10379            </td>
10380
10381          </tr>
10382
10383
10384          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10385           <!-- end of entry -->
10386        
10387        
10388
10389      <!-- end of kind -->
10390      </tbody>
10391      <tr><td colspan="6" class="kind">dynamic</td></tr>
10392
10393      <thead class="entries_header">
10394        <tr>
10395          <th class="th_name">Property Name</th>
10396          <th class="th_type">Type</th>
10397          <th class="th_description">Description</th>
10398          <th class="th_units">Units</th>
10399          <th class="th_range">Range</th>
10400          <th class="th_tags">Tags</th>
10401        </tr>
10402      </thead>
10403
10404      <tbody>
10405
10406        
10407
10408        
10409
10410        
10411
10412        
10413
10414                
10415          <tr class="entry" id="dynamic_android.scaler.cropRegion">
10416            <td class="entry_name" rowspan="3">
10417              android.<wbr/>scaler.<wbr/>crop<wbr/>Region
10418            </td>
10419            <td class="entry_type">
10420                <span class="entry_type_name">int32</span>
10421                <span class="entry_type_container">x</span>
10422
10423                <span class="entry_type_array">
10424                  4
10425                </span>
10426              <span class="entry_type_visibility"> [public as rectangle]</span>
10427
10428
10429            </td> <!-- entry_type -->
10430
10431            <td class="entry_description">
10432              <p>(x,<wbr/> y,<wbr/> width,<wbr/> height).<wbr/></p>
10433<p>A rectangle with the top-level corner of (x,<wbr/>y) and size
10434(width,<wbr/> height).<wbr/> The region of the sensor that is used for
10435output.<wbr/> Each stream must use this rectangle to produce its
10436output,<wbr/> cropping to a smaller region if necessary to
10437maintain the stream's aspect ratio.<wbr/></p>
10438<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
10439            </td>
10440
10441            <td class="entry_units">
10442              (x,<wbr/>y) of top-left corner,<wbr/> width and height of region
10443          in pixels; (0,<wbr/>0) is top-left corner of
10444          android.<wbr/>sensor.<wbr/>active<wbr/>Array<wbr/>Size
10445            </td>
10446
10447            <td class="entry_range">
10448            </td>
10449
10450            <td class="entry_tags">
10451              <ul class="entry_tags">
10452                  <li><a href="#tag_BC">BC</a></li>
10453              </ul>
10454            </td>
10455
10456          </tr>
10457          <tr class="entries_header">
10458            <th class="th_details" colspan="5">Details</th>
10459          </tr>
10460          <tr class="entry_cont">
10461            <td class="entry_details" colspan="5">
10462              <p>Any additional per-stream cropping must be done to
10463maximize the final pixel area of the stream.<wbr/></p>
10464<p>For example,<wbr/> if the crop region is set to a 4:3 aspect
10465ratio,<wbr/> then 4:3 streams should use the exact crop
10466region.<wbr/> 16:9 streams should further crop vertically
10467(letterbox).<wbr/></p>
10468<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
10469outputs should crop horizontally (pillarbox),<wbr/> and 16:9
10470streams should match exactly.<wbr/> These additional crops must
10471be centered within the crop region.<wbr/></p>
10472<p>The output streams must maintain square pixels at all
10473times,<wbr/> no matter what the relative aspect ratios of the
10474crop region and the stream are.<wbr/>  Negative values for
10475corner are allowed for raw output if full pixel array is
10476larger than active pixel array.<wbr/> Width and height may be
10477rounded to nearest larger supportable width,<wbr/> especially
10478for raw output,<wbr/> where only a few fixed scales may be
10479possible.<wbr/> The width and height of the crop region cannot
10480be set to be smaller than floor( activeArraySize.<wbr/>width /<wbr/>
10481android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom ) and floor(
10482activeArraySize.<wbr/>height /<wbr/> android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom),<wbr/>
10483respectively.<wbr/></p>
10484            </td>
10485          </tr>
10486
10487
10488          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10489           <!-- end of entry -->
10490        
10491        
10492
10493      <!-- end of kind -->
10494      </tbody>
10495
10496  <!-- end of section -->
10497  <tr><td colspan="6" id="section_sensor" class="section">sensor</td></tr>
10498
10499
10500      <tr><td colspan="6" class="kind">controls</td></tr>
10501
10502      <thead class="entries_header">
10503        <tr>
10504          <th class="th_name">Property Name</th>
10505          <th class="th_type">Type</th>
10506          <th class="th_description">Description</th>
10507          <th class="th_units">Units</th>
10508          <th class="th_range">Range</th>
10509          <th class="th_tags">Tags</th>
10510        </tr>
10511      </thead>
10512
10513      <tbody>
10514
10515        
10516
10517        
10518
10519        
10520
10521        
10522
10523                
10524          <tr class="entry" id="controls_android.sensor.exposureTime">
10525            <td class="entry_name" rowspan="3">
10526              android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
10527            </td>
10528            <td class="entry_type">
10529                <span class="entry_type_name">int64</span>
10530
10531              <span class="entry_type_visibility"> [public]</span>
10532
10533
10534            </td> <!-- entry_type -->
10535
10536            <td class="entry_description">
10537              <p>Duration each pixel is exposed to
10538light.<wbr/></p>
10539<p>If the sensor can't expose this exact duration,<wbr/> it should shorten the
10540duration exposed to the nearest possible value (rather than expose longer).<wbr/></p>
10541            </td>
10542
10543            <td class="entry_units">
10544              nanoseconds
10545            </td>
10546
10547            <td class="entry_range">
10548              <p><a href="#static_android.sensor.info.exposureTimeRange">android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range</a></p>
10549            </td>
10550
10551            <td class="entry_tags">
10552              <ul class="entry_tags">
10553                  <li><a href="#tag_V1">V1</a></li>
10554              </ul>
10555            </td>
10556
10557          </tr>
10558          <tr class="entries_header">
10559            <th class="th_details" colspan="5">Details</th>
10560          </tr>
10561          <tr class="entry_cont">
10562            <td class="entry_details" colspan="5">
10563              <p>1/<wbr/>10000 - 30 sec range.<wbr/> No bulb mode</p>
10564            </td>
10565          </tr>
10566
10567
10568          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10569           <!-- end of entry -->
10570        
10571                
10572          <tr class="entry" id="controls_android.sensor.frameDuration">
10573            <td class="entry_name" rowspan="3">
10574              android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
10575            </td>
10576            <td class="entry_type">
10577                <span class="entry_type_name">int64</span>
10578
10579              <span class="entry_type_visibility"> [public]</span>
10580
10581
10582            </td> <!-- entry_type -->
10583
10584            <td class="entry_description">
10585              <p>Duration from start of frame exposure to
10586start of next frame exposure.<wbr/></p>
10587            </td>
10588
10589            <td class="entry_units">
10590              nanoseconds
10591            </td>
10592
10593            <td class="entry_range">
10594              <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/>
10595android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations.<wbr/> The duration
10596is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
10597            </td>
10598
10599            <td class="entry_tags">
10600              <ul class="entry_tags">
10601                  <li><a href="#tag_V1">V1</a></li>
10602                  <li><a href="#tag_BC">BC</a></li>
10603              </ul>
10604            </td>
10605
10606          </tr>
10607          <tr class="entries_header">
10608            <th class="th_details" colspan="5">Details</th>
10609          </tr>
10610          <tr class="entry_cont">
10611            <td class="entry_details" colspan="5">
10612              <p>The maximum frame rate that can be supported by a camera subsystem is
10613a function of many factors:</p>
10614<ul>
10615<li>Requested resolutions of output image streams</li>
10616<li>Availability of binning /<wbr/> skipping modes on the imager</li>
10617<li>The bandwidth of the imager interface</li>
10618<li>The bandwidth of the various ISP processing blocks</li>
10619</ul>
10620<p>Since these factors can vary greatly between different ISPs and
10621sensors,<wbr/> the camera abstraction tries to represent the bandwidth
10622restrictions with as simple a model as possible.<wbr/></p>
10623<p>The model presented has the following characteristics:</p>
10624<ul>
10625<li>The image sensor is always configured to output the smallest
10626resolution possible given the application's requested output stream
10627sizes.<wbr/>  The smallest resolution is defined as being at least as large
10628as the largest requested output stream size; the camera pipeline must
10629never digitally upsample sensor data when the crop region covers the
10630whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
10631resolutions are configured,<wbr/> the sensor can provide a higher frame
10632rate.<wbr/></li>
10633<li>Since any request may use any or all the currently configured
10634output streams,<wbr/> the sensor and ISP must be configured to support
10635scaling a single capture to all the streams at the same time.<wbr/>  This
10636means the camera pipeline must be ready to produce the largest
10637requested output size without any delay.<wbr/>  Therefore,<wbr/> the overall
10638frame rate of a given configured stream set is governed only by the
10639largest requested stream resolution.<wbr/></li>
10640<li>Using more than one output stream in a request does not affect the
10641frame duration.<wbr/></li>
10642<li>JPEG streams act like processed YUV streams in requests for which
10643they are not included; in requests in which they are directly
10644referenced,<wbr/> they act as JPEG streams.<wbr/> This is because supporting a
10645JPEG stream requires the underlying YUV data to always be ready for
10646use by a JPEG encoder,<wbr/> but the encoder will only be used (and impact
10647frame duration) on requests that actually reference a JPEG stream.<wbr/></li>
10648<li>The JPEG processor can run concurrently to the rest of the camera
10649pipeline,<wbr/> but cannot process more than 1 capture at a time.<wbr/></li>
10650</ul>
10651<p>The necessary information for the application,<wbr/> given the model above,<wbr/>
10652is provided via the android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations fields.<wbr/>
10653These are used to determine the maximum frame rate /<wbr/> minimum frame
10654duration that is possible for a given stream configuration.<wbr/></p>
10655<p>Specifically,<wbr/> the application can use the following rules to
10656determine the minimum frame duration it can request from the HAL
10657device:</p>
10658<ol>
10659<li>Given the application's currently configured set of output
10660streams,<wbr/> <code>S</code>,<wbr/> divide them into three sets: streams in a JPEG format
10661<code>SJ</code>,<wbr/> streams in a raw sensor format <code>SR</code>,<wbr/> and the rest ('processed')
10662<code>SP</code>.<wbr/></li>
10663<li>For each subset of streams,<wbr/> find the largest resolution (by pixel
10664count) in the subset.<wbr/> This gives (at most) three resolutions <code>RJ</code>,<wbr/>
10665<code>RR</code>,<wbr/> and <code>RP</code>.<wbr/></li>
10666<li>If <code>RJ</code> is greater than <code>RP</code>,<wbr/> set <code>RP</code> equal to <code>RJ</code>.<wbr/> If there is
10667no exact match for <code>RP == RJ</code> (in particular there isn't an available
10668processed resolution at the same size as <code>RJ</code>),<wbr/> then set <code>RP</code> equal
10669to the smallest processed resolution that is larger than <code>RJ</code>.<wbr/> If
10670there are no processed resolutions larger than <code>RJ</code>,<wbr/> then set <code>RJ</code> to
10671the processed resolution closest to <code>RJ</code>.<wbr/></li>
10672<li>If <code>RP</code> is greater than <code>RR</code>,<wbr/> set <code>RR</code> equal to <code>RP</code>.<wbr/> If there is
10673no exact match for <code>RR == RP</code> (in particular there isn't an available
10674raw resolution at the same size as <code>RP</code>),<wbr/> then set <code>RR</code> equal to
10675or to the smallest raw resolution that is larger than <code>RP</code>.<wbr/> If
10676there are no raw resolutions larger than <code>RP</code>,<wbr/> then set <code>RR</code> to
10677the raw resolution closest to <code>RP</code>.<wbr/></li>
10678<li>Look up the matching minimum frame durations in the property lists
10679<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/>
10680<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a>,<wbr/> and
10681<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>.<wbr/>  This gives three
10682minimum frame durations <code>FJ</code>,<wbr/> <code>FR</code>,<wbr/> and <code>FP</code>.<wbr/></li>
10683<li>If a stream of requests do not use a JPEG stream,<wbr/> then the minimum
10684supported frame duration for each request is <code>max(FR,<wbr/> FP)</code>.<wbr/></li>
10685<li>If a stream of requests all use the JPEG stream,<wbr/> then the minimum
10686supported frame duration for each request is <code>max(FR,<wbr/> FP,<wbr/> FJ)</code>.<wbr/></li>
10687<li>If a mix of JPEG-using and non-JPEG-using requests is submitted by
10688the application,<wbr/> then the HAL will have to delay JPEG-using requests
10689whenever the JPEG encoder is still busy processing an older capture.<wbr/>
10690This will happen whenever a JPEG-using request starts capture less
10691than <code>FJ</code> <em>ns</em> after a previous JPEG-using request.<wbr/> The minimum
10692supported frame duration will vary between the values calculated in
10693#6 and #7.<wbr/></li>
10694</ol>
10695            </td>
10696          </tr>
10697
10698
10699          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10700           <!-- end of entry -->
10701        
10702                
10703          <tr class="entry" id="controls_android.sensor.sensitivity">
10704            <td class="entry_name" rowspan="3">
10705              android.<wbr/>sensor.<wbr/>sensitivity
10706            </td>
10707            <td class="entry_type">
10708                <span class="entry_type_name">int32</span>
10709
10710              <span class="entry_type_visibility"> [public]</span>
10711
10712
10713            </td> <!-- entry_type -->
10714
10715            <td class="entry_description">
10716              <p>Gain applied to image data.<wbr/> Must be
10717implemented through analog gain only if set to values
10718below 'maximum analog sensitivity'.<wbr/></p>
10719<p>If the sensor can't apply this exact gain,<wbr/> it should lessen the
10720gain to the nearest possible value (rather than gain more).<wbr/></p>
10721            </td>
10722
10723            <td class="entry_units">
10724              ISO arithmetic units
10725            </td>
10726
10727            <td class="entry_range">
10728              <p><a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a></p>
10729            </td>
10730
10731            <td class="entry_tags">
10732              <ul class="entry_tags">
10733                  <li><a href="#tag_V1">V1</a></li>
10734              </ul>
10735            </td>
10736
10737          </tr>
10738          <tr class="entries_header">
10739            <th class="th_details" colspan="5">Details</th>
10740          </tr>
10741          <tr class="entry_cont">
10742            <td class="entry_details" colspan="5">
10743              <p>ISO 12232:2006 REI method</p>
10744            </td>
10745          </tr>
10746
10747
10748          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10749           <!-- end of entry -->
10750        
10751                
10752          <tr class="entry" id="controls_android.sensor.testPatternData">
10753            <td class="entry_name" rowspan="5">
10754              android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data
10755            </td>
10756            <td class="entry_type">
10757                <span class="entry_type_name">int32</span>
10758                <span class="entry_type_container">x</span>
10759
10760                <span class="entry_type_array">
10761                  4
10762                </span>
10763              <span class="entry_type_visibility"> [public]</span>
10764
10765
10766            </td> <!-- entry_type -->
10767
10768            <td class="entry_description">
10769              <p>A pixel <code>[R,<wbr/> G_<wbr/>even,<wbr/> G_<wbr/>odd,<wbr/> B]</code> that supplies the test pattern
10770when <a href="#controls_android.sensor.testPatternMode">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode</a> is SOLID_<wbr/>COLOR.<wbr/></p>
10771            </td>
10772
10773            <td class="entry_units">
10774            </td>
10775
10776            <td class="entry_range">
10777              <p>Optional.<wbr/>
10778Must be supported if <a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a> contains
10779SOLID_<wbr/>COLOR.<wbr/></p>
10780            </td>
10781
10782            <td class="entry_tags">
10783            </td>
10784
10785          </tr>
10786          <tr class="entries_header">
10787            <th class="th_details" colspan="5">Details</th>
10788          </tr>
10789          <tr class="entry_cont">
10790            <td class="entry_details" colspan="5">
10791              <p>Each color channel is treated as an unsigned 32-bit integer.<wbr/>
10792The camera device then uses the most significant X bits
10793that correspond to how many bits are in its Bayer raw sensor
10794output.<wbr/></p>
10795<p>For example,<wbr/> a sensor with RAW10 Bayer output would use the
1079610 most significant bits from each color channel.<wbr/></p>
10797            </td>
10798          </tr>
10799
10800          <tr class="entries_header">
10801            <th class="th_details" colspan="5">HAL Implementation Details</th>
10802          </tr>
10803          <tr class="entry_cont">
10804            <td class="entry_details" colspan="5">
10805              
10806            </td>
10807          </tr>
10808
10809          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10810           <!-- end of entry -->
10811        
10812                
10813          <tr class="entry" id="controls_android.sensor.testPatternMode">
10814            <td class="entry_name" rowspan="5">
10815              android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
10816            </td>
10817            <td class="entry_type">
10818                <span class="entry_type_name entry_type_name_enum">int32</span>
10819
10820              <span class="entry_type_visibility"> [public]</span>
10821
10822                <ul class="entry_type_enum">
10823                  <li>
10824                    <span class="entry_type_enum_name">OFF</span>
10825                    <span class="entry_type_enum_notes"><p>Default.<wbr/> No test pattern mode is used,<wbr/> and the camera
10826device returns captures from the image sensor.<wbr/></p></span>
10827                  </li>
10828                  <li>
10829                    <span class="entry_type_enum_name">SOLID_COLOR</span>
10830                    <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
10831respective color channel provided in
10832<a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
10833<p>For example:</p>
10834<pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
10835</code></pre>
10836<p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
10837<pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
10838</code></pre>
10839<p>All red pixels are 100% red.<wbr/> Only the odd green pixels
10840are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
10841                  </li>
10842                  <li>
10843                    <span class="entry_type_enum_name">COLOR_BARS</span>
10844                    <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
10845<p>The vertical bars (left-to-right) are as follows:</p>
10846<ul>
10847<li>100% white</li>
10848<li>yellow</li>
10849<li>cyan</li>
10850<li>green</li>
10851<li>magenta</li>
10852<li>red</li>
10853<li>blue</li>
10854<li>black</li>
10855</ul>
10856<p>In general the image would look like the following:</p>
10857<pre><code>W Y C G M R B K
10858W Y C G M R B K
10859W Y C G M R B K
10860W Y C G M R B K
10861W Y C G M R B K
10862.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10863.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10864.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10865
10866(B = Blue,<wbr/> K = Black)
10867</code></pre>
10868<p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
10869When this is not possible,<wbr/> the bar size should be rounded
10870down to the nearest integer and the pattern can repeat
10871on the right side.<wbr/></p>
10872<p>Each bar's height must always take up the full sensor
10873pixel array height.<wbr/></p>
10874<p>Each pixel in this test pattern must be set to either
108750% intensity or 100% intensity.<wbr/></p></span>
10876                  </li>
10877                  <li>
10878                    <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY</span>
10879                    <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
10880each bar should start at its specified color at the top,<wbr/>
10881and fade to gray at the bottom.<wbr/></p>
10882<p>Furthermore each bar is further subdivided into a left and
10883right half.<wbr/> The left half should have a smooth gradient,<wbr/>
10884and the right half should have a quantized gradient.<wbr/></p>
10885<p>In particular,<wbr/> the right half's should consist of blocks of the
10886same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
10887<p>The least significant bits in the quantized gradient should
10888be copied from the most significant bits of the smooth gradient.<wbr/></p>
10889<p>The height of each bar should always be a multiple of 128.<wbr/>
10890When this is not the case,<wbr/> the pattern should repeat at the bottom
10891of the image.<wbr/></p></span>
10892                  </li>
10893                  <li>
10894                    <span class="entry_type_enum_name">PN9</span>
10895                    <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
10896generated from a PN9 512-bit sequence (typically implemented
10897in hardware with a linear feedback shift register).<wbr/></p>
10898<p>The generator should be reset at the beginning of each frame,<wbr/>
10899and thus each subsequent raw frame with this test pattern should
10900be exactly the same as the last.<wbr/></p></span>
10901                  </li>
10902                  <li>
10903                    <span class="entry_type_enum_name">CUSTOM1</span>
10904                    <span class="entry_type_enum_value">256</span>
10905                    <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
10906available only on this camera device are at least this numeric
10907value.<wbr/></p>
10908<p>All of the custom test patterns will be static
10909(that is the raw image must not vary from frame to frame).<wbr/></p></span>
10910                  </li>
10911                </ul>
10912
10913            </td> <!-- entry_type -->
10914
10915            <td class="entry_description">
10916              <p>When enabled,<wbr/> the sensor sends a test pattern instead of
10917doing a real exposure from the camera.<wbr/></p>
10918            </td>
10919
10920            <td class="entry_units">
10921            </td>
10922
10923            <td class="entry_range">
10924              <p>Optional.<wbr/> Defaults to OFF.<wbr/> Value must be one of
10925<a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
10926            </td>
10927
10928            <td class="entry_tags">
10929            </td>
10930
10931          </tr>
10932          <tr class="entries_header">
10933            <th class="th_details" colspan="5">Details</th>
10934          </tr>
10935          <tr class="entry_cont">
10936            <td class="entry_details" colspan="5">
10937              <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
10938by android.<wbr/>sensor.<wbr/>* should be ignored.<wbr/> All other controls should
10939work as normal.<wbr/></p>
10940<p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
10941occur (and that the test pattern remain unmodified,<wbr/> since the flash
10942would not actually affect it).<wbr/></p>
10943            </td>
10944          </tr>
10945
10946          <tr class="entries_header">
10947            <th class="th_details" colspan="5">HAL Implementation Details</th>
10948          </tr>
10949          <tr class="entry_cont">
10950            <td class="entry_details" colspan="5">
10951              <p>All test patterns are specified in the Bayer domain.<wbr/></p>
10952<p>The HAL may choose to substitute test patterns from the sensor
10953with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
10954indistinguishable to the ISP whether the data came from the
10955sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
10956            </td>
10957          </tr>
10958
10959          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10960           <!-- end of entry -->
10961        
10962        
10963
10964      <!-- end of kind -->
10965      </tbody>
10966      <tr><td colspan="6" class="kind">static</td></tr>
10967
10968      <thead class="entries_header">
10969        <tr>
10970          <th class="th_name">Property Name</th>
10971          <th class="th_type">Type</th>
10972          <th class="th_description">Description</th>
10973          <th class="th_units">Units</th>
10974          <th class="th_range">Range</th>
10975          <th class="th_tags">Tags</th>
10976        </tr>
10977      </thead>
10978
10979      <tbody>
10980
10981        
10982
10983        
10984
10985        
10986
10987        
10988                
10989            
10990
10991                
10992          <tr class="entry" id="static_android.sensor.info.activeArraySize">
10993            <td class="entry_name" rowspan="3">
10994              android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
10995            </td>
10996            <td class="entry_type">
10997                <span class="entry_type_name">int32</span>
10998                <span class="entry_type_container">x</span>
10999
11000                <span class="entry_type_array">
11001                  4
11002                </span>
11003              <span class="entry_type_visibility"> [public as rectangle]</span>
11004                <div class="entry_type_notes">Four ints defining the active pixel rectangle</div>
11005
11006
11007            </td> <!-- entry_type -->
11008
11009            <td class="entry_description">
11010              <p>Area of raw data which corresponds to only
11011active pixels.<wbr/></p>
11012            </td>
11013
11014            <td class="entry_units">
11015            </td>
11016
11017            <td class="entry_range">
11018              <p>This array contains <code>(xmin,<wbr/> ymin,<wbr/> width,<wbr/> height)</code>.<wbr/> The <code>(xmin,<wbr/> ymin)</code> must be
11019&gt;= <code>(0,<wbr/>0)</code>.<wbr/> The <code>(width,<wbr/> height)</code> must be &lt;=
11020<code><a href="#static_android.sensor.info.pixelArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size</a></code>.<wbr/></p>
11021            </td>
11022
11023            <td class="entry_tags">
11024              <ul class="entry_tags">
11025                  <li><a href="#tag_DNG">DNG</a></li>
11026              </ul>
11027            </td>
11028
11029          </tr>
11030          <tr class="entries_header">
11031            <th class="th_details" colspan="5">Details</th>
11032          </tr>
11033          <tr class="entry_cont">
11034            <td class="entry_details" colspan="5">
11035              <p>It is smaller or equal to
11036sensor full pixel array,<wbr/> which could include the black calibration pixels.<wbr/></p>
11037            </td>
11038          </tr>
11039
11040
11041          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11042           <!-- end of entry -->
11043        
11044                
11045          <tr class="entry" id="static_android.sensor.info.sensitivityRange">
11046            <td class="entry_name" rowspan="1">
11047              android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range
11048            </td>
11049            <td class="entry_type">
11050                <span class="entry_type_name">int32</span>
11051                <span class="entry_type_container">x</span>
11052
11053                <span class="entry_type_array">
11054                  2
11055                </span>
11056              <span class="entry_type_visibility"> [public]</span>
11057                <div class="entry_type_notes">Range of supported sensitivities</div>
11058
11059
11060            </td> <!-- entry_type -->
11061
11062            <td class="entry_description">
11063              <p>Range of valid sensitivities</p>
11064            </td>
11065
11066            <td class="entry_units">
11067            </td>
11068
11069            <td class="entry_range">
11070              <p>Min &lt;= 100,<wbr/> Max &gt;= 1600</p>
11071            </td>
11072
11073            <td class="entry_tags">
11074              <ul class="entry_tags">
11075                  <li><a href="#tag_BC">BC</a></li>
11076                  <li><a href="#tag_V1">V1</a></li>
11077              </ul>
11078            </td>
11079
11080          </tr>
11081
11082
11083          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11084           <!-- end of entry -->
11085        
11086                
11087          <tr class="entry" id="static_android.sensor.info.colorFilterArrangement">
11088            <td class="entry_name" rowspan="1">
11089              android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement
11090            </td>
11091            <td class="entry_type">
11092                <span class="entry_type_name entry_type_name_enum">byte</span>
11093
11094              <span class="entry_type_visibility"> [system]</span>
11095
11096                <ul class="entry_type_enum">
11097                  <li>
11098                    <span class="entry_type_enum_name">RGGB</span>
11099                  </li>
11100                  <li>
11101                    <span class="entry_type_enum_name">GRBG</span>
11102                  </li>
11103                  <li>
11104                    <span class="entry_type_enum_name">GBRG</span>
11105                  </li>
11106                  <li>
11107                    <span class="entry_type_enum_name">BGGR</span>
11108                  </li>
11109                  <li>
11110                    <span class="entry_type_enum_name">RGB</span>
11111                    <span class="entry_type_enum_notes"><p>Sensor is not Bayer; output has 3 16-bit
11112values for each pixel,<wbr/> instead of just 1 16-bit value
11113per pixel.<wbr/></p></span>
11114                  </li>
11115                </ul>
11116
11117            </td> <!-- entry_type -->
11118
11119            <td class="entry_description">
11120              <p>Arrangement of color filters on sensor;
11121represents the colors in the top-left 2x2 section of
11122the sensor,<wbr/> in reading order</p>
11123            </td>
11124
11125            <td class="entry_units">
11126            </td>
11127
11128            <td class="entry_range">
11129            </td>
11130
11131            <td class="entry_tags">
11132              <ul class="entry_tags">
11133                  <li><a href="#tag_DNG">DNG</a></li>
11134              </ul>
11135            </td>
11136
11137          </tr>
11138
11139
11140          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11141           <!-- end of entry -->
11142        
11143                
11144          <tr class="entry" id="static_android.sensor.info.exposureTimeRange">
11145            <td class="entry_name" rowspan="3">
11146              android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range
11147            </td>
11148            <td class="entry_type">
11149                <span class="entry_type_name">int64</span>
11150                <span class="entry_type_container">x</span>
11151
11152                <span class="entry_type_array">
11153                  2
11154                </span>
11155              <span class="entry_type_visibility"> [public]</span>
11156                <div class="entry_type_notes">nanoseconds</div>
11157
11158
11159            </td> <!-- entry_type -->
11160
11161            <td class="entry_description">
11162              <p>Range of valid exposure
11163times used by <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>.<wbr/></p>
11164            </td>
11165
11166            <td class="entry_units">
11167            </td>
11168
11169            <td class="entry_range">
11170              <p>Min &lt;= 100e3 (100 us),<wbr/> Max &gt;= 1e9 (1
11171sec)</p>
11172            </td>
11173
11174            <td class="entry_tags">
11175              <ul class="entry_tags">
11176                  <li><a href="#tag_V1">V1</a></li>
11177              </ul>
11178            </td>
11179
11180          </tr>
11181
11182          <tr class="entries_header">
11183            <th class="th_details" colspan="5">HAL Implementation Details</th>
11184          </tr>
11185          <tr class="entry_cont">
11186            <td class="entry_details" colspan="5">
11187              <p>The maximum of the range must be at least
111881 second.<wbr/> It should be at least 30 seconds.<wbr/></p>
11189            </td>
11190          </tr>
11191
11192          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11193           <!-- end of entry -->
11194        
11195                
11196          <tr class="entry" id="static_android.sensor.info.maxFrameDuration">
11197            <td class="entry_name" rowspan="5">
11198              android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration
11199            </td>
11200            <td class="entry_type">
11201                <span class="entry_type_name">int64</span>
11202
11203              <span class="entry_type_visibility"> [public]</span>
11204
11205
11206            </td> <!-- entry_type -->
11207
11208            <td class="entry_description">
11209              <p>Maximum possible frame duration (minimum frame
11210rate).<wbr/></p>
11211            </td>
11212
11213            <td class="entry_units">
11214              nanoseconds
11215            </td>
11216
11217            <td class="entry_range">
11218              <p>&gt;= 30e9</p>
11219            </td>
11220
11221            <td class="entry_tags">
11222              <ul class="entry_tags">
11223                  <li><a href="#tag_BC">BC</a></li>
11224                  <li><a href="#tag_V1">V1</a></li>
11225              </ul>
11226            </td>
11227
11228          </tr>
11229          <tr class="entries_header">
11230            <th class="th_details" colspan="5">Details</th>
11231          </tr>
11232          <tr class="entry_cont">
11233            <td class="entry_details" colspan="5">
11234              <p>The largest possible android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
11235that will be accepted by the camera device.<wbr/> Attempting to use
11236frame durations beyond the maximum will result in the frame duration
11237being clipped to the maximum.<wbr/> See that control
11238for a full definition of frame durations.<wbr/></p>
11239<p>Refer to
11240<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>,<wbr/>
11241<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/> and
11242<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a> for the minimum
11243frame duration values.<wbr/></p>
11244            </td>
11245          </tr>
11246
11247          <tr class="entries_header">
11248            <th class="th_details" colspan="5">HAL Implementation Details</th>
11249          </tr>
11250          <tr class="entry_cont">
11251            <td class="entry_details" colspan="5">
11252              <p>This value must be at least 1 second.<wbr/> It should be at least 30
11253seconds (30e9 ns).<wbr/></p>
11254<p>android.<wbr/>sensor.<wbr/>max<wbr/>Frame<wbr/>Duration must be greater or equal to the
11255android.<wbr/>sensor.<wbr/>exposure<wbr/>Time<wbr/>Range max value (since exposure time
11256overrides frame duration).<wbr/></p>
11257            </td>
11258          </tr>
11259
11260          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11261           <!-- end of entry -->
11262        
11263                
11264          <tr class="entry" id="static_android.sensor.info.physicalSize">
11265            <td class="entry_name" rowspan="3">
11266              android.<wbr/>sensor.<wbr/>info.<wbr/>physical<wbr/>Size
11267            </td>
11268            <td class="entry_type">
11269                <span class="entry_type_name">float</span>
11270                <span class="entry_type_container">x</span>
11271
11272                <span class="entry_type_array">
11273                  2
11274                </span>
11275              <span class="entry_type_visibility"> [public]</span>
11276                <div class="entry_type_notes">width x height in millimeters</div>
11277
11278
11279            </td> <!-- entry_type -->
11280
11281            <td class="entry_description">
11282              <p>The physical dimensions of the full pixel
11283array</p>
11284            </td>
11285
11286            <td class="entry_units">
11287            </td>
11288
11289            <td class="entry_range">
11290            </td>
11291
11292            <td class="entry_tags">
11293              <ul class="entry_tags">
11294                  <li><a href="#tag_V1">V1</a></li>
11295                  <li><a href="#tag_BC">BC</a></li>
11296              </ul>
11297            </td>
11298
11299          </tr>
11300          <tr class="entries_header">
11301            <th class="th_details" colspan="5">Details</th>
11302          </tr>
11303          <tr class="entry_cont">
11304            <td class="entry_details" colspan="5">
11305              <p>Needed for FOV calculation for old API</p>
11306            </td>
11307          </tr>
11308
11309
11310          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11311           <!-- end of entry -->
11312        
11313                
11314          <tr class="entry" id="static_android.sensor.info.pixelArraySize">
11315            <td class="entry_name" rowspan="3">
11316              android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size
11317            </td>
11318            <td class="entry_type">
11319                <span class="entry_type_name">int32</span>
11320                <span class="entry_type_container">x</span>
11321
11322                <span class="entry_type_array">
11323                  2
11324                </span>
11325              <span class="entry_type_visibility"> [system as size]</span>
11326
11327
11328            </td> <!-- entry_type -->
11329
11330            <td class="entry_description">
11331              <p>Dimensions of full pixel array,<wbr/> possibly
11332including black calibration pixels.<wbr/></p>
11333            </td>
11334
11335            <td class="entry_units">
11336            </td>
11337
11338            <td class="entry_range">
11339            </td>
11340
11341            <td class="entry_tags">
11342              <ul class="entry_tags">
11343                  <li><a href="#tag_DNG">DNG</a></li>
11344                  <li><a href="#tag_BC">BC</a></li>
11345              </ul>
11346            </td>
11347
11348          </tr>
11349          <tr class="entries_header">
11350            <th class="th_details" colspan="5">Details</th>
11351          </tr>
11352          <tr class="entry_cont">
11353            <td class="entry_details" colspan="5">
11354              <p>The maximum output resolution for raw format in
11355<a href="#static_android.scaler.availableRawSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes</a> will be equal to this size.<wbr/></p>
11356            </td>
11357          </tr>
11358
11359
11360          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11361           <!-- end of entry -->
11362        
11363                
11364          <tr class="entry" id="static_android.sensor.info.whiteLevel">
11365            <td class="entry_name" rowspan="3">
11366              android.<wbr/>sensor.<wbr/>info.<wbr/>white<wbr/>Level
11367            </td>
11368            <td class="entry_type">
11369                <span class="entry_type_name">int32</span>
11370
11371              <span class="entry_type_visibility"> [system]</span>
11372
11373
11374            </td> <!-- entry_type -->
11375
11376            <td class="entry_description">
11377              <p>Maximum raw value output by
11378sensor</p>
11379            </td>
11380
11381            <td class="entry_units">
11382            </td>
11383
11384            <td class="entry_range">
11385              <p>&gt; 1024 (10-bit output)</p>
11386            </td>
11387
11388            <td class="entry_tags">
11389              <ul class="entry_tags">
11390                  <li><a href="#tag_DNG">DNG</a></li>
11391              </ul>
11392            </td>
11393
11394          </tr>
11395          <tr class="entries_header">
11396            <th class="th_details" colspan="5">Details</th>
11397          </tr>
11398          <tr class="entry_cont">
11399            <td class="entry_details" colspan="5">
11400              <p>Defines sensor bit depth (10-14 bits is
11401expected)</p>
11402            </td>
11403          </tr>
11404
11405
11406          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11407           <!-- end of entry -->
11408        
11409        
11410        
11411
11412                
11413          <tr class="entry" id="static_android.sensor.baseGainFactor">
11414            <td class="entry_name" rowspan="1">
11415              android.<wbr/>sensor.<wbr/>base<wbr/>Gain<wbr/>Factor
11416            </td>
11417            <td class="entry_type">
11418                <span class="entry_type_name">rational</span>
11419
11420              <span class="entry_type_visibility"> [public]</span>
11421
11422
11423            </td> <!-- entry_type -->
11424
11425            <td class="entry_description">
11426              <p>Gain factor from electrons to raw units when
11427ISO=100</p>
11428            </td>
11429
11430            <td class="entry_units">
11431            </td>
11432
11433            <td class="entry_range">
11434            </td>
11435
11436            <td class="entry_tags">
11437              <ul class="entry_tags">
11438                  <li><a href="#tag_V1">V1</a></li>
11439                  <li><a href="#tag_FULL">FULL</a></li>
11440              </ul>
11441            </td>
11442
11443          </tr>
11444
11445
11446          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11447           <!-- end of entry -->
11448        
11449                
11450          <tr class="entry" id="static_android.sensor.blackLevelPattern">
11451            <td class="entry_name" rowspan="3">
11452              android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern
11453            </td>
11454            <td class="entry_type">
11455                <span class="entry_type_name">int32</span>
11456                <span class="entry_type_container">x</span>
11457
11458                <span class="entry_type_array">
11459                  4
11460                </span>
11461              <span class="entry_type_visibility"> [system]</span>
11462                <div class="entry_type_notes">2x2 raw count block</div>
11463
11464
11465            </td> <!-- entry_type -->
11466
11467            <td class="entry_description">
11468              <p>A fixed black level offset for each of the
11469Bayer mosaic channels</p>
11470            </td>
11471
11472            <td class="entry_units">
11473            </td>
11474
11475            <td class="entry_range">
11476              <p>&gt;= 0 each</p>
11477            </td>
11478
11479            <td class="entry_tags">
11480              <ul class="entry_tags">
11481                  <li><a href="#tag_DNG">DNG</a></li>
11482              </ul>
11483            </td>
11484
11485          </tr>
11486          <tr class="entries_header">
11487            <th class="th_details" colspan="5">Details</th>
11488          </tr>
11489          <tr class="entry_cont">
11490            <td class="entry_details" colspan="5">
11491              <p>As per DNG BlackLevelRepeatDim /<wbr/> BlackLevel
11492tags</p>
11493            </td>
11494          </tr>
11495
11496
11497          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11498           <!-- end of entry -->
11499        
11500                
11501          <tr class="entry" id="static_android.sensor.calibrationTransform1">
11502            <td class="entry_name" rowspan="1">
11503              android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform1
11504            </td>
11505            <td class="entry_type">
11506                <span class="entry_type_name">rational</span>
11507                <span class="entry_type_container">x</span>
11508
11509                <span class="entry_type_array">
11510                  9
11511                </span>
11512              <span class="entry_type_visibility"> [system]</span>
11513                <div class="entry_type_notes">3x3 matrix in row-major-order</div>
11514
11515
11516            </td> <!-- entry_type -->
11517
11518            <td class="entry_description">
11519              <p>Per-device calibration on top of color space
11520transform 1</p>
11521            </td>
11522
11523            <td class="entry_units">
11524            </td>
11525
11526            <td class="entry_range">
11527            </td>
11528
11529            <td class="entry_tags">
11530              <ul class="entry_tags">
11531                  <li><a href="#tag_DNG">DNG</a></li>
11532              </ul>
11533            </td>
11534
11535          </tr>
11536
11537
11538          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11539           <!-- end of entry -->
11540        
11541                
11542          <tr class="entry" id="static_android.sensor.calibrationTransform2">
11543            <td class="entry_name" rowspan="1">
11544              android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform2
11545            </td>
11546            <td class="entry_type">
11547                <span class="entry_type_name">rational</span>
11548                <span class="entry_type_container">x</span>
11549
11550                <span class="entry_type_array">
11551                  9
11552                </span>
11553              <span class="entry_type_visibility"> [system]</span>
11554                <div class="entry_type_notes">3x3 matrix in row-major-order</div>
11555
11556
11557            </td> <!-- entry_type -->
11558
11559            <td class="entry_description">
11560              <p>Per-device calibration on top of color space
11561transform 2</p>
11562            </td>
11563
11564            <td class="entry_units">
11565            </td>
11566
11567            <td class="entry_range">
11568            </td>
11569
11570            <td class="entry_tags">
11571              <ul class="entry_tags">
11572                  <li><a href="#tag_DNG">DNG</a></li>
11573              </ul>
11574            </td>
11575
11576          </tr>
11577
11578
11579          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11580           <!-- end of entry -->
11581        
11582                
11583          <tr class="entry" id="static_android.sensor.colorTransform1">
11584            <td class="entry_name" rowspan="3">
11585              android.<wbr/>sensor.<wbr/>color<wbr/>Transform1
11586            </td>
11587            <td class="entry_type">
11588                <span class="entry_type_name">rational</span>
11589                <span class="entry_type_container">x</span>
11590
11591                <span class="entry_type_array">
11592                  9
11593                </span>
11594              <span class="entry_type_visibility"> [system]</span>
11595                <div class="entry_type_notes">3x3 matrix in row-major-order</div>
11596
11597
11598            </td> <!-- entry_type -->
11599
11600            <td class="entry_description">
11601              <p>Linear mapping from XYZ (D50) color space to
11602reference linear sensor color,<wbr/> for first reference
11603illuminant</p>
11604            </td>
11605
11606            <td class="entry_units">
11607            </td>
11608
11609            <td class="entry_range">
11610            </td>
11611
11612            <td class="entry_tags">
11613              <ul class="entry_tags">
11614                  <li><a href="#tag_DNG">DNG</a></li>
11615              </ul>
11616            </td>
11617
11618          </tr>
11619          <tr class="entries_header">
11620            <th class="th_details" colspan="5">Details</th>
11621          </tr>
11622          <tr class="entry_cont">
11623            <td class="entry_details" colspan="5">
11624              <p>Use as follows XYZ = inv(transform) * clip( (raw -
11625black level(raw) ) /<wbr/> ( white level - max black level) ).<wbr/>
11626At least in the simple case</p>
11627            </td>
11628          </tr>
11629
11630
11631          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11632           <!-- end of entry -->
11633        
11634                
11635          <tr class="entry" id="static_android.sensor.colorTransform2">
11636            <td class="entry_name" rowspan="1">
11637              android.<wbr/>sensor.<wbr/>color<wbr/>Transform2
11638            </td>
11639            <td class="entry_type">
11640                <span class="entry_type_name">rational</span>
11641                <span class="entry_type_container">x</span>
11642
11643                <span class="entry_type_array">
11644                  9
11645                </span>
11646              <span class="entry_type_visibility"> [system]</span>
11647                <div class="entry_type_notes">3x3 matrix in row-major-order</div>
11648
11649
11650            </td> <!-- entry_type -->
11651
11652            <td class="entry_description">
11653              <p>Linear mapping from XYZ (D50) color space to
11654reference linear sensor color,<wbr/> for second reference
11655illuminant</p>
11656            </td>
11657
11658            <td class="entry_units">
11659            </td>
11660
11661            <td class="entry_range">
11662            </td>
11663
11664            <td class="entry_tags">
11665              <ul class="entry_tags">
11666                  <li><a href="#tag_DNG">DNG</a></li>
11667              </ul>
11668            </td>
11669
11670          </tr>
11671
11672
11673          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11674           <!-- end of entry -->
11675        
11676                
11677          <tr class="entry" id="static_android.sensor.forwardMatrix1">
11678            <td class="entry_name" rowspan="1">
11679              android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix1
11680            </td>
11681            <td class="entry_type">
11682                <span class="entry_type_name">rational</span>
11683                <span class="entry_type_container">x</span>
11684
11685                <span class="entry_type_array">
11686                  9
11687                </span>
11688              <span class="entry_type_visibility"> [system]</span>
11689                <div class="entry_type_notes">3x3 matrix in row-major-order</div>
11690
11691
11692            </td> <!-- entry_type -->
11693
11694            <td class="entry_description">
11695              <p>Used by DNG for better WB
11696adaptation</p>
11697            </td>
11698
11699            <td class="entry_units">
11700            </td>
11701
11702            <td class="entry_range">
11703            </td>
11704
11705            <td class="entry_tags">
11706              <ul class="entry_tags">
11707                  <li><a href="#tag_DNG">DNG</a></li>
11708              </ul>
11709            </td>
11710
11711          </tr>
11712
11713
11714          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11715           <!-- end of entry -->
11716        
11717                
11718          <tr class="entry" id="static_android.sensor.forwardMatrix2">
11719            <td class="entry_name" rowspan="1">
11720              android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix2
11721            </td>
11722            <td class="entry_type">
11723                <span class="entry_type_name">rational</span>
11724                <span class="entry_type_container">x</span>
11725
11726                <span class="entry_type_array">
11727                  9
11728                </span>
11729              <span class="entry_type_visibility"> [system]</span>
11730                <div class="entry_type_notes">3x3 matrix in row-major-order</div>
11731
11732
11733            </td> <!-- entry_type -->
11734
11735            <td class="entry_description">
11736              <p>Used by DNG for better WB
11737adaptation</p>
11738            </td>
11739
11740            <td class="entry_units">
11741            </td>
11742
11743            <td class="entry_range">
11744            </td>
11745
11746            <td class="entry_tags">
11747              <ul class="entry_tags">
11748                  <li><a href="#tag_DNG">DNG</a></li>
11749              </ul>
11750            </td>
11751
11752          </tr>
11753
11754
11755          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11756           <!-- end of entry -->
11757        
11758                
11759          <tr class="entry" id="static_android.sensor.maxAnalogSensitivity">
11760            <td class="entry_name" rowspan="3">
11761              android.<wbr/>sensor.<wbr/>max<wbr/>Analog<wbr/>Sensitivity
11762            </td>
11763            <td class="entry_type">
11764                <span class="entry_type_name">int32</span>
11765
11766              <span class="entry_type_visibility"> [public]</span>
11767
11768
11769            </td> <!-- entry_type -->
11770
11771            <td class="entry_description">
11772              <p>Maximum sensitivity that is implemented
11773purely through analog gain.<wbr/></p>
11774            </td>
11775
11776            <td class="entry_units">
11777            </td>
11778
11779            <td class="entry_range">
11780            </td>
11781
11782            <td class="entry_tags">
11783              <ul class="entry_tags">
11784                  <li><a href="#tag_V1">V1</a></li>
11785                  <li><a href="#tag_FULL">FULL</a></li>
11786              </ul>
11787            </td>
11788
11789          </tr>
11790          <tr class="entries_header">
11791            <th class="th_details" colspan="5">Details</th>
11792          </tr>
11793          <tr class="entry_cont">
11794            <td class="entry_details" colspan="5">
11795              <p>For <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> values less than or
11796equal to this,<wbr/> all applied gain must be analog.<wbr/> For
11797values above this,<wbr/> the gain applied can be a mix of analog and
11798digital.<wbr/></p>
11799            </td>
11800          </tr>
11801
11802
11803          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11804           <!-- end of entry -->
11805        
11806                
11807          <tr class="entry" id="static_android.sensor.noiseModelCoefficients">
11808            <td class="entry_name" rowspan="3">
11809              android.<wbr/>sensor.<wbr/>noise<wbr/>Model<wbr/>Coefficients
11810            </td>
11811            <td class="entry_type">
11812                <span class="entry_type_name">float</span>
11813                <span class="entry_type_container">x</span>
11814
11815                <span class="entry_type_array">
11816                  2
11817                </span>
11818              <span class="entry_type_visibility"> [system]</span>
11819                <div class="entry_type_notes">float constants A,<wbr/> B for the noise variance model</div>
11820
11821
11822            </td> <!-- entry_type -->
11823
11824            <td class="entry_description">
11825              <p>Estimation of sensor noise
11826characteristics</p>
11827            </td>
11828
11829            <td class="entry_units">
11830              var(raw pixel value) = electrons * (baseGainFactor
11831          * iso/<wbr/>100)^2 + A * (baseGainFactor * iso/<wbr/>100)^2 +
11832          B
11833            </td>
11834
11835            <td class="entry_range">
11836            </td>
11837
11838            <td class="entry_tags">
11839              <ul class="entry_tags">
11840                  <li><a href="#tag_V1">V1</a></li>
11841              </ul>
11842            </td>
11843
11844          </tr>
11845          <tr class="entries_header">
11846            <th class="th_details" colspan="5">Details</th>
11847          </tr>
11848          <tr class="entry_cont">
11849            <td class="entry_details" colspan="5">
11850              <p>A represents sensor read noise before analog
11851amplification; B represents noise from A/<wbr/>D conversion and
11852other circuits after amplification.<wbr/> Both noise sources
11853are assumed to be gaussian,<wbr/> independent,<wbr/> and not to vary
11854across the sensor</p>
11855            </td>
11856          </tr>
11857
11858
11859          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11860           <!-- end of entry -->
11861        
11862                
11863          <tr class="entry" id="static_android.sensor.orientation">
11864            <td class="entry_name" rowspan="1">
11865              android.<wbr/>sensor.<wbr/>orientation
11866            </td>
11867            <td class="entry_type">
11868                <span class="entry_type_name">int32</span>
11869
11870              <span class="entry_type_visibility"> [public]</span>
11871
11872
11873            </td> <!-- entry_type -->
11874
11875            <td class="entry_description">
11876              <p>Clockwise angle through which the output
11877image needs to be rotated to be upright on the device
11878screen in its native orientation.<wbr/> Also defines the
11879direction of rolling shutter readout,<wbr/> which is from top
11880to bottom in the sensor's coordinate system</p>
11881            </td>
11882
11883            <td class="entry_units">
11884              degrees clockwise rotation,<wbr/> only multiples of
11885          90
11886            </td>
11887
11888            <td class="entry_range">
11889              <p>0,<wbr/>90,<wbr/>180,<wbr/>270</p>
11890            </td>
11891
11892            <td class="entry_tags">
11893              <ul class="entry_tags">
11894                  <li><a href="#tag_BC">BC</a></li>
11895              </ul>
11896            </td>
11897
11898          </tr>
11899
11900
11901          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11902           <!-- end of entry -->
11903        
11904                
11905          <tr class="entry" id="static_android.sensor.referenceIlluminant1">
11906            <td class="entry_name" rowspan="3">
11907              android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1
11908            </td>
11909            <td class="entry_type">
11910                <span class="entry_type_name entry_type_name_enum">byte</span>
11911
11912              <span class="entry_type_visibility"> [system]</span>
11913
11914                <ul class="entry_type_enum">
11915                  <li>
11916                    <span class="entry_type_enum_name">DAYLIGHT</span>
11917                    <span class="entry_type_enum_value">1</span>
11918                  </li>
11919                  <li>
11920                    <span class="entry_type_enum_name">FLUORESCENT</span>
11921                    <span class="entry_type_enum_value">2</span>
11922                  </li>
11923                  <li>
11924                    <span class="entry_type_enum_name">TUNGSTEN</span>
11925                    <span class="entry_type_enum_value">3</span>
11926                    <span class="entry_type_enum_notes"><p>Incandescent light</p></span>
11927                  </li>
11928                  <li>
11929                    <span class="entry_type_enum_name">FLASH</span>
11930                    <span class="entry_type_enum_value">4</span>
11931                  </li>
11932                  <li>
11933                    <span class="entry_type_enum_name">FINE_WEATHER</span>
11934                    <span class="entry_type_enum_value">9</span>
11935                  </li>
11936                  <li>
11937                    <span class="entry_type_enum_name">CLOUDY_WEATHER</span>
11938                    <span class="entry_type_enum_value">10</span>
11939                  </li>
11940                  <li>
11941                    <span class="entry_type_enum_name">SHADE</span>
11942                    <span class="entry_type_enum_value">11</span>
11943                  </li>
11944                  <li>
11945                    <span class="entry_type_enum_name">DAYLIGHT_FLUORESCENT</span>
11946                    <span class="entry_type_enum_value">12</span>
11947                    <span class="entry_type_enum_notes"><p>D 5700 - 7100K</p></span>
11948                  </li>
11949                  <li>
11950                    <span class="entry_type_enum_name">DAY_WHITE_FLUORESCENT</span>
11951                    <span class="entry_type_enum_value">13</span>
11952                    <span class="entry_type_enum_notes"><p>N 4600 - 5400K</p></span>
11953                  </li>
11954                  <li>
11955                    <span class="entry_type_enum_name">COOL_WHITE_FLUORESCENT</span>
11956                    <span class="entry_type_enum_value">14</span>
11957                    <span class="entry_type_enum_notes"><p>W 3900 - 4500K</p></span>
11958                  </li>
11959                  <li>
11960                    <span class="entry_type_enum_name">WHITE_FLUORESCENT</span>
11961                    <span class="entry_type_enum_value">15</span>
11962                    <span class="entry_type_enum_notes"><p>WW 3200 - 3700K</p></span>
11963                  </li>
11964                  <li>
11965                    <span class="entry_type_enum_name">STANDARD_A</span>
11966                    <span class="entry_type_enum_value">17</span>
11967                  </li>
11968                  <li>
11969                    <span class="entry_type_enum_name">STANDARD_B</span>
11970                    <span class="entry_type_enum_value">18</span>
11971                  </li>
11972                  <li>
11973                    <span class="entry_type_enum_name">STANDARD_C</span>
11974                    <span class="entry_type_enum_value">19</span>
11975                  </li>
11976                  <li>
11977                    <span class="entry_type_enum_name">D55</span>
11978                    <span class="entry_type_enum_value">20</span>
11979                  </li>
11980                  <li>
11981                    <span class="entry_type_enum_name">D65</span>
11982                    <span class="entry_type_enum_value">21</span>
11983                  </li>
11984                  <li>
11985                    <span class="entry_type_enum_name">D75</span>
11986                    <span class="entry_type_enum_value">22</span>
11987                  </li>
11988                  <li>
11989                    <span class="entry_type_enum_name">D50</span>
11990                    <span class="entry_type_enum_value">23</span>
11991                  </li>
11992                  <li>
11993                    <span class="entry_type_enum_name">ISO_STUDIO_TUNGSTEN</span>
11994                    <span class="entry_type_enum_value">24</span>
11995                  </li>
11996                </ul>
11997
11998            </td> <!-- entry_type -->
11999
12000            <td class="entry_description">
12001              <p>Light source used to define transform
120021</p>
12003            </td>
12004
12005            <td class="entry_units">
12006            </td>
12007
12008            <td class="entry_range">
12009            </td>
12010
12011            <td class="entry_tags">
12012              <ul class="entry_tags">
12013                  <li><a href="#tag_DNG">DNG</a></li>
12014                  <li><a href="#tag_EXIF">EXIF</a></li>
12015              </ul>
12016            </td>
12017
12018          </tr>
12019          <tr class="entries_header">
12020            <th class="th_details" colspan="5">Details</th>
12021          </tr>
12022          <tr class="entry_cont">
12023            <td class="entry_details" colspan="5">
12024              <p>[EXIF LightSource tag] Must all these be
12025supported? Need CCT for each!</p>
12026            </td>
12027          </tr>
12028
12029
12030          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12031           <!-- end of entry -->
12032        
12033                
12034          <tr class="entry" id="static_android.sensor.referenceIlluminant2">
12035            <td class="entry_name" rowspan="1">
12036              android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2
12037            </td>
12038            <td class="entry_type">
12039                <span class="entry_type_name">byte</span>
12040
12041              <span class="entry_type_visibility"> [system]</span>
12042
12043
12044            </td> <!-- entry_type -->
12045
12046            <td class="entry_description">
12047              <p>Light source used to define transform
120482</p>
12049            </td>
12050
12051            <td class="entry_units">
12052              Same as illuminant 1
12053            </td>
12054
12055            <td class="entry_range">
12056            </td>
12057
12058            <td class="entry_tags">
12059            </td>
12060
12061          </tr>
12062
12063
12064          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12065           <!-- end of entry -->
12066        
12067                
12068          <tr class="entry" id="static_android.sensor.availableTestPatternModes">
12069            <td class="entry_name" rowspan="1">
12070              android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes
12071            </td>
12072            <td class="entry_type">
12073                <span class="entry_type_name">byte</span>
12074
12075              <span class="entry_type_visibility"> [public]</span>
12076
12077
12078            </td> <!-- entry_type -->
12079
12080            <td class="entry_description">
12081              <p>Optional.<wbr/> Defaults to [OFF].<wbr/> Lists the supported test
12082pattern modes for android.<wbr/>test.<wbr/>pattern<wbr/>Mode.<wbr/></p>
12083            </td>
12084
12085            <td class="entry_units">
12086            </td>
12087
12088            <td class="entry_range">
12089              <p>Must include OFF.<wbr/> All custom modes must be &gt;= CUSTOM1</p>
12090            </td>
12091
12092            <td class="entry_tags">
12093            </td>
12094
12095          </tr>
12096
12097
12098          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12099           <!-- end of entry -->
12100        
12101        
12102
12103      <!-- end of kind -->
12104      </tbody>
12105      <tr><td colspan="6" class="kind">dynamic</td></tr>
12106
12107      <thead class="entries_header">
12108        <tr>
12109          <th class="th_name">Property Name</th>
12110          <th class="th_type">Type</th>
12111          <th class="th_description">Description</th>
12112          <th class="th_units">Units</th>
12113          <th class="th_range">Range</th>
12114          <th class="th_tags">Tags</th>
12115        </tr>
12116      </thead>
12117
12118      <tbody>
12119
12120        
12121
12122        
12123
12124        
12125
12126        
12127
12128                
12129          <tr class="entry" id="dynamic_android.sensor.exposureTime">
12130            <td class="entry_name" rowspan="3">
12131              android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
12132            </td>
12133            <td class="entry_type">
12134                <span class="entry_type_name">int64</span>
12135
12136              <span class="entry_type_visibility"> [public]</span>
12137
12138
12139            </td> <!-- entry_type -->
12140
12141            <td class="entry_description">
12142              <p>Duration each pixel is exposed to
12143light.<wbr/></p>
12144<p>If the sensor can't expose this exact duration,<wbr/> it should shorten the
12145duration exposed to the nearest possible value (rather than expose longer).<wbr/></p>
12146            </td>
12147
12148            <td class="entry_units">
12149              nanoseconds
12150            </td>
12151
12152            <td class="entry_range">
12153              <p><a href="#static_android.sensor.info.exposureTimeRange">android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range</a></p>
12154            </td>
12155
12156            <td class="entry_tags">
12157              <ul class="entry_tags">
12158                  <li><a href="#tag_V1">V1</a></li>
12159              </ul>
12160            </td>
12161
12162          </tr>
12163          <tr class="entries_header">
12164            <th class="th_details" colspan="5">Details</th>
12165          </tr>
12166          <tr class="entry_cont">
12167            <td class="entry_details" colspan="5">
12168              <p>1/<wbr/>10000 - 30 sec range.<wbr/> No bulb mode</p>
12169            </td>
12170          </tr>
12171
12172
12173          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12174           <!-- end of entry -->
12175        
12176                
12177          <tr class="entry" id="dynamic_android.sensor.frameDuration">
12178            <td class="entry_name" rowspan="3">
12179              android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
12180            </td>
12181            <td class="entry_type">
12182                <span class="entry_type_name">int64</span>
12183
12184              <span class="entry_type_visibility"> [public]</span>
12185
12186
12187            </td> <!-- entry_type -->
12188
12189            <td class="entry_description">
12190              <p>Duration from start of frame exposure to
12191start of next frame exposure.<wbr/></p>
12192            </td>
12193
12194            <td class="entry_units">
12195              nanoseconds
12196            </td>
12197
12198            <td class="entry_range">
12199              <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/>
12200android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations.<wbr/> The duration
12201is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
12202            </td>
12203
12204            <td class="entry_tags">
12205              <ul class="entry_tags">
12206                  <li><a href="#tag_V1">V1</a></li>
12207                  <li><a href="#tag_BC">BC</a></li>
12208              </ul>
12209            </td>
12210
12211          </tr>
12212          <tr class="entries_header">
12213            <th class="th_details" colspan="5">Details</th>
12214          </tr>
12215          <tr class="entry_cont">
12216            <td class="entry_details" colspan="5">
12217              <p>The maximum frame rate that can be supported by a camera subsystem is
12218a function of many factors:</p>
12219<ul>
12220<li>Requested resolutions of output image streams</li>
12221<li>Availability of binning /<wbr/> skipping modes on the imager</li>
12222<li>The bandwidth of the imager interface</li>
12223<li>The bandwidth of the various ISP processing blocks</li>
12224</ul>
12225<p>Since these factors can vary greatly between different ISPs and
12226sensors,<wbr/> the camera abstraction tries to represent the bandwidth
12227restrictions with as simple a model as possible.<wbr/></p>
12228<p>The model presented has the following characteristics:</p>
12229<ul>
12230<li>The image sensor is always configured to output the smallest
12231resolution possible given the application's requested output stream
12232sizes.<wbr/>  The smallest resolution is defined as being at least as large
12233as the largest requested output stream size; the camera pipeline must
12234never digitally upsample sensor data when the crop region covers the
12235whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
12236resolutions are configured,<wbr/> the sensor can provide a higher frame
12237rate.<wbr/></li>
12238<li>Since any request may use any or all the currently configured
12239output streams,<wbr/> the sensor and ISP must be configured to support
12240scaling a single capture to all the streams at the same time.<wbr/>  This
12241means the camera pipeline must be ready to produce the largest
12242requested output size without any delay.<wbr/>  Therefore,<wbr/> the overall
12243frame rate of a given configured stream set is governed only by the
12244largest requested stream resolution.<wbr/></li>
12245<li>Using more than one output stream in a request does not affect the
12246frame duration.<wbr/></li>
12247<li>JPEG streams act like processed YUV streams in requests for which
12248they are not included; in requests in which they are directly
12249referenced,<wbr/> they act as JPEG streams.<wbr/> This is because supporting a
12250JPEG stream requires the underlying YUV data to always be ready for
12251use by a JPEG encoder,<wbr/> but the encoder will only be used (and impact
12252frame duration) on requests that actually reference a JPEG stream.<wbr/></li>
12253<li>The JPEG processor can run concurrently to the rest of the camera
12254pipeline,<wbr/> but cannot process more than 1 capture at a time.<wbr/></li>
12255</ul>
12256<p>The necessary information for the application,<wbr/> given the model above,<wbr/>
12257is provided via the android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations fields.<wbr/>
12258These are used to determine the maximum frame rate /<wbr/> minimum frame
12259duration that is possible for a given stream configuration.<wbr/></p>
12260<p>Specifically,<wbr/> the application can use the following rules to
12261determine the minimum frame duration it can request from the HAL
12262device:</p>
12263<ol>
12264<li>Given the application's currently configured set of output
12265streams,<wbr/> <code>S</code>,<wbr/> divide them into three sets: streams in a JPEG format
12266<code>SJ</code>,<wbr/> streams in a raw sensor format <code>SR</code>,<wbr/> and the rest ('processed')
12267<code>SP</code>.<wbr/></li>
12268<li>For each subset of streams,<wbr/> find the largest resolution (by pixel
12269count) in the subset.<wbr/> This gives (at most) three resolutions <code>RJ</code>,<wbr/>
12270<code>RR</code>,<wbr/> and <code>RP</code>.<wbr/></li>
12271<li>If <code>RJ</code> is greater than <code>RP</code>,<wbr/> set <code>RP</code> equal to <code>RJ</code>.<wbr/> If there is
12272no exact match for <code>RP == RJ</code> (in particular there isn't an available
12273processed resolution at the same size as <code>RJ</code>),<wbr/> then set <code>RP</code> equal
12274to the smallest processed resolution that is larger than <code>RJ</code>.<wbr/> If
12275there are no processed resolutions larger than <code>RJ</code>,<wbr/> then set <code>RJ</code> to
12276the processed resolution closest to <code>RJ</code>.<wbr/></li>
12277<li>If <code>RP</code> is greater than <code>RR</code>,<wbr/> set <code>RR</code> equal to <code>RP</code>.<wbr/> If there is
12278no exact match for <code>RR == RP</code> (in particular there isn't an available
12279raw resolution at the same size as <code>RP</code>),<wbr/> then set <code>RR</code> equal to
12280or to the smallest raw resolution that is larger than <code>RP</code>.<wbr/> If
12281there are no raw resolutions larger than <code>RP</code>,<wbr/> then set <code>RR</code> to
12282the raw resolution closest to <code>RP</code>.<wbr/></li>
12283<li>Look up the matching minimum frame durations in the property lists
12284<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/>
12285<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a>,<wbr/> and
12286<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>.<wbr/>  This gives three
12287minimum frame durations <code>FJ</code>,<wbr/> <code>FR</code>,<wbr/> and <code>FP</code>.<wbr/></li>
12288<li>If a stream of requests do not use a JPEG stream,<wbr/> then the minimum
12289supported frame duration for each request is <code>max(FR,<wbr/> FP)</code>.<wbr/></li>
12290<li>If a stream of requests all use the JPEG stream,<wbr/> then the minimum
12291supported frame duration for each request is <code>max(FR,<wbr/> FP,<wbr/> FJ)</code>.<wbr/></li>
12292<li>If a mix of JPEG-using and non-JPEG-using requests is submitted by
12293the application,<wbr/> then the HAL will have to delay JPEG-using requests
12294whenever the JPEG encoder is still busy processing an older capture.<wbr/>
12295This will happen whenever a JPEG-using request starts capture less
12296than <code>FJ</code> <em>ns</em> after a previous JPEG-using request.<wbr/> The minimum
12297supported frame duration will vary between the values calculated in
12298#6 and #7.<wbr/></li>
12299</ol>
12300            </td>
12301          </tr>
12302
12303
12304          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12305           <!-- end of entry -->
12306        
12307                
12308          <tr class="entry" id="dynamic_android.sensor.sensitivity">
12309            <td class="entry_name" rowspan="3">
12310              android.<wbr/>sensor.<wbr/>sensitivity
12311            </td>
12312            <td class="entry_type">
12313                <span class="entry_type_name">int32</span>
12314
12315              <span class="entry_type_visibility"> [public]</span>
12316
12317
12318            </td> <!-- entry_type -->
12319
12320            <td class="entry_description">
12321              <p>Gain applied to image data.<wbr/> Must be
12322implemented through analog gain only if set to values
12323below 'maximum analog sensitivity'.<wbr/></p>
12324<p>If the sensor can't apply this exact gain,<wbr/> it should lessen the
12325gain to the nearest possible value (rather than gain more).<wbr/></p>
12326            </td>
12327
12328            <td class="entry_units">
12329              ISO arithmetic units
12330            </td>
12331
12332            <td class="entry_range">
12333              <p><a href="#static_android.sensor.info.sensitivityRange">android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range</a></p>
12334            </td>
12335
12336            <td class="entry_tags">
12337              <ul class="entry_tags">
12338                  <li><a href="#tag_V1">V1</a></li>
12339              </ul>
12340            </td>
12341
12342          </tr>
12343          <tr class="entries_header">
12344            <th class="th_details" colspan="5">Details</th>
12345          </tr>
12346          <tr class="entry_cont">
12347            <td class="entry_details" colspan="5">
12348              <p>ISO 12232:2006 REI method</p>
12349            </td>
12350          </tr>
12351
12352
12353          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12354           <!-- end of entry -->
12355        
12356                
12357          <tr class="entry" id="dynamic_android.sensor.timestamp">
12358            <td class="entry_name" rowspan="3">
12359              android.<wbr/>sensor.<wbr/>timestamp
12360            </td>
12361            <td class="entry_type">
12362                <span class="entry_type_name">int64</span>
12363
12364              <span class="entry_type_visibility"> [public]</span>
12365
12366
12367            </td> <!-- entry_type -->
12368
12369            <td class="entry_description">
12370              <p>Time at start of exposure of first
12371row</p>
12372            </td>
12373
12374            <td class="entry_units">
12375              nanoseconds
12376            </td>
12377
12378            <td class="entry_range">
12379              <p>&gt; 0</p>
12380            </td>
12381
12382            <td class="entry_tags">
12383              <ul class="entry_tags">
12384                  <li><a href="#tag_BC">BC</a></li>
12385              </ul>
12386            </td>
12387
12388          </tr>
12389          <tr class="entries_header">
12390            <th class="th_details" colspan="5">Details</th>
12391          </tr>
12392          <tr class="entry_cont">
12393            <td class="entry_details" colspan="5">
12394              <p>Monotonic,<wbr/> should be synced to other timestamps in
12395system</p>
12396            </td>
12397          </tr>
12398
12399
12400          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12401           <!-- end of entry -->
12402        
12403                
12404          <tr class="entry" id="dynamic_android.sensor.temperature">
12405            <td class="entry_name" rowspan="1">
12406              android.<wbr/>sensor.<wbr/>temperature
12407            </td>
12408            <td class="entry_type">
12409                <span class="entry_type_name">float</span>
12410
12411              <span class="entry_type_visibility"> [public]</span>
12412
12413
12414            </td> <!-- entry_type -->
12415
12416            <td class="entry_description">
12417              <p>The temperature of the sensor,<wbr/> sampled at the time
12418exposure began for this frame.<wbr/></p>
12419<p>The thermal diode being queried should be inside the sensor PCB,<wbr/> or
12420somewhere close to it.<wbr/></p>
12421            </td>
12422
12423            <td class="entry_units">
12424              celsius
12425            </td>
12426
12427            <td class="entry_range">
12428              <p>Optional.<wbr/> This value is missing if no temperature is available.<wbr/></p>
12429            </td>
12430
12431            <td class="entry_tags">
12432              <ul class="entry_tags">
12433                  <li><a href="#tag_FULL">FULL</a></li>
12434              </ul>
12435            </td>
12436
12437          </tr>
12438
12439
12440          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12441           <!-- end of entry -->
12442        
12443                
12444          <tr class="entry" id="dynamic_android.sensor.testPatternMode">
12445            <td class="entry_name" rowspan="5">
12446              android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
12447            </td>
12448            <td class="entry_type">
12449                <span class="entry_type_name entry_type_name_enum">int32</span>
12450
12451              <span class="entry_type_visibility"> [public]</span>
12452
12453                <ul class="entry_type_enum">
12454                  <li>
12455                    <span class="entry_type_enum_name">OFF</span>
12456                    <span class="entry_type_enum_notes"><p>Default.<wbr/> No test pattern mode is used,<wbr/> and the camera
12457device returns captures from the image sensor.<wbr/></p></span>
12458                  </li>
12459                  <li>
12460                    <span class="entry_type_enum_name">SOLID_COLOR</span>
12461                    <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
12462respective color channel provided in
12463<a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
12464<p>For example:</p>
12465<pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
12466</code></pre>
12467<p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
12468<pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
12469</code></pre>
12470<p>All red pixels are 100% red.<wbr/> Only the odd green pixels
12471are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
12472                  </li>
12473                  <li>
12474                    <span class="entry_type_enum_name">COLOR_BARS</span>
12475                    <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
12476<p>The vertical bars (left-to-right) are as follows:</p>
12477<ul>
12478<li>100% white</li>
12479<li>yellow</li>
12480<li>cyan</li>
12481<li>green</li>
12482<li>magenta</li>
12483<li>red</li>
12484<li>blue</li>
12485<li>black</li>
12486</ul>
12487<p>In general the image would look like the following:</p>
12488<pre><code>W Y C G M R B K
12489W Y C G M R B K
12490W Y C G M R B K
12491W Y C G M R B K
12492W Y C G M R B K
12493.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12494.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12495.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12496
12497(B = Blue,<wbr/> K = Black)
12498</code></pre>
12499<p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
12500When this is not possible,<wbr/> the bar size should be rounded
12501down to the nearest integer and the pattern can repeat
12502on the right side.<wbr/></p>
12503<p>Each bar's height must always take up the full sensor
12504pixel array height.<wbr/></p>
12505<p>Each pixel in this test pattern must be set to either
125060% intensity or 100% intensity.<wbr/></p></span>
12507                  </li>
12508                  <li>
12509                    <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY</span>
12510                    <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
12511each bar should start at its specified color at the top,<wbr/>
12512and fade to gray at the bottom.<wbr/></p>
12513<p>Furthermore each bar is further subdivided into a left and
12514right half.<wbr/> The left half should have a smooth gradient,<wbr/>
12515and the right half should have a quantized gradient.<wbr/></p>
12516<p>In particular,<wbr/> the right half's should consist of blocks of the
12517same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
12518<p>The least significant bits in the quantized gradient should
12519be copied from the most significant bits of the smooth gradient.<wbr/></p>
12520<p>The height of each bar should always be a multiple of 128.<wbr/>
12521When this is not the case,<wbr/> the pattern should repeat at the bottom
12522of the image.<wbr/></p></span>
12523                  </li>
12524                  <li>
12525                    <span class="entry_type_enum_name">PN9</span>
12526                    <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
12527generated from a PN9 512-bit sequence (typically implemented
12528in hardware with a linear feedback shift register).<wbr/></p>
12529<p>The generator should be reset at the beginning of each frame,<wbr/>
12530and thus each subsequent raw frame with this test pattern should
12531be exactly the same as the last.<wbr/></p></span>
12532                  </li>
12533                  <li>
12534                    <span class="entry_type_enum_name">CUSTOM1</span>
12535                    <span class="entry_type_enum_value">256</span>
12536                    <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
12537available only on this camera device are at least this numeric
12538value.<wbr/></p>
12539<p>All of the custom test patterns will be static
12540(that is the raw image must not vary from frame to frame).<wbr/></p></span>
12541                  </li>
12542                </ul>
12543
12544            </td> <!-- entry_type -->
12545
12546            <td class="entry_description">
12547              <p>When enabled,<wbr/> the sensor sends a test pattern instead of
12548doing a real exposure from the camera.<wbr/></p>
12549            </td>
12550
12551            <td class="entry_units">
12552            </td>
12553
12554            <td class="entry_range">
12555              <p>Optional.<wbr/> Defaults to OFF.<wbr/> Value must be one of
12556<a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
12557            </td>
12558
12559            <td class="entry_tags">
12560            </td>
12561
12562          </tr>
12563          <tr class="entries_header">
12564            <th class="th_details" colspan="5">Details</th>
12565          </tr>
12566          <tr class="entry_cont">
12567            <td class="entry_details" colspan="5">
12568              <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
12569by android.<wbr/>sensor.<wbr/>* should be ignored.<wbr/> All other controls should
12570work as normal.<wbr/></p>
12571<p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
12572occur (and that the test pattern remain unmodified,<wbr/> since the flash
12573would not actually affect it).<wbr/></p>
12574            </td>
12575          </tr>
12576
12577          <tr class="entries_header">
12578            <th class="th_details" colspan="5">HAL Implementation Details</th>
12579          </tr>
12580          <tr class="entry_cont">
12581            <td class="entry_details" colspan="5">
12582              <p>All test patterns are specified in the Bayer domain.<wbr/></p>
12583<p>The HAL may choose to substitute test patterns from the sensor
12584with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
12585indistinguishable to the ISP whether the data came from the
12586sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
12587            </td>
12588          </tr>
12589
12590          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12591           <!-- end of entry -->
12592        
12593        
12594
12595      <!-- end of kind -->
12596      </tbody>
12597
12598  <!-- end of section -->
12599  <tr><td colspan="6" id="section_shading" class="section">shading</td></tr>
12600
12601
12602      <tr><td colspan="6" class="kind">controls</td></tr>
12603
12604      <thead class="entries_header">
12605        <tr>
12606          <th class="th_name">Property Name</th>
12607          <th class="th_type">Type</th>
12608          <th class="th_description">Description</th>
12609          <th class="th_units">Units</th>
12610          <th class="th_range">Range</th>
12611          <th class="th_tags">Tags</th>
12612        </tr>
12613      </thead>
12614
12615      <tbody>
12616
12617        
12618
12619        
12620
12621        
12622
12623        
12624
12625                
12626          <tr class="entry" id="controls_android.shading.mode">
12627            <td class="entry_name" rowspan="3">
12628              android.<wbr/>shading.<wbr/>mode
12629            </td>
12630            <td class="entry_type">
12631                <span class="entry_type_name entry_type_name_enum">byte</span>
12632
12633              <span class="entry_type_visibility"> [hidden]</span>
12634
12635                <ul class="entry_type_enum">
12636                  <li>
12637                    <span class="entry_type_enum_name">OFF</span>
12638                    <span class="entry_type_enum_notes"><p>No lens shading correction is applied</p></span>
12639                  </li>
12640                  <li>
12641                    <span class="entry_type_enum_name">FAST</span>
12642                    <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor raw output</p></span>
12643                  </li>
12644                  <li>
12645                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
12646                    <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high quality</p></span>
12647                  </li>
12648                </ul>
12649
12650            </td> <!-- entry_type -->
12651
12652            <td class="entry_description">
12653              <p>Quality of lens shading correction applied
12654to the image data.<wbr/></p>
12655            </td>
12656
12657            <td class="entry_units">
12658            </td>
12659
12660            <td class="entry_range">
12661            </td>
12662
12663            <td class="entry_tags">
12664            </td>
12665
12666          </tr>
12667          <tr class="entries_header">
12668            <th class="th_details" colspan="5">Details</th>
12669          </tr>
12670          <tr class="entry_cont">
12671            <td class="entry_details" colspan="5">
12672              <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
12673camera device,<wbr/> and an identity lens shading map data will be provided
12674if <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
12675shading map with size specified as <code><a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a> = [ 4,<wbr/> 3 ]</code>,<wbr/>
12676the output <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> for this case will be an identity map
12677shown below:</p>
12678<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/>
12679    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/>
12680  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/>
12681    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/>
12682  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/>
12683    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 ]
12684</code></pre>
12685<p>When set to other modes,<wbr/> lens shading correction will be applied by the
12686camera device.<wbr/> Applications can request lens shading map data by setting
12687<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
12688lens shading map data in <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a>,<wbr/> with size specified
12689by <a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a>.<wbr/></p>
12690            </td>
12691          </tr>
12692
12693
12694          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12695           <!-- end of entry -->
12696        
12697                
12698          <tr class="entry" id="controls_android.shading.strength">
12699            <td class="entry_name" rowspan="1">
12700              android.<wbr/>shading.<wbr/>strength
12701            </td>
12702            <td class="entry_type">
12703                <span class="entry_type_name">byte</span>
12704
12705              <span class="entry_type_visibility"> [system]</span>
12706
12707
12708            </td> <!-- entry_type -->
12709
12710            <td class="entry_description">
12711              <p>Control the amount of shading correction
12712applied to the images</p>
12713            </td>
12714
12715            <td class="entry_units">
12716              unitless: 1-10; 10 is full shading
12717          compensation
12718            </td>
12719
12720            <td class="entry_range">
12721            </td>
12722
12723            <td class="entry_tags">
12724              <ul class="entry_tags">
12725                  <li><a href="#tag_ADV">ADV</a></li>
12726              </ul>
12727            </td>
12728
12729          </tr>
12730
12731
12732          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12733           <!-- end of entry -->
12734        
12735        
12736
12737      <!-- end of kind -->
12738      </tbody>
12739      <tr><td colspan="6" class="kind">dynamic</td></tr>
12740
12741      <thead class="entries_header">
12742        <tr>
12743          <th class="th_name">Property Name</th>
12744          <th class="th_type">Type</th>
12745          <th class="th_description">Description</th>
12746          <th class="th_units">Units</th>
12747          <th class="th_range">Range</th>
12748          <th class="th_tags">Tags</th>
12749        </tr>
12750      </thead>
12751
12752      <tbody>
12753
12754        
12755
12756        
12757
12758        
12759
12760        
12761
12762                
12763          <tr class="entry" id="dynamic_android.shading.mode">
12764            <td class="entry_name" rowspan="3">
12765              android.<wbr/>shading.<wbr/>mode
12766            </td>
12767            <td class="entry_type">
12768                <span class="entry_type_name entry_type_name_enum">byte</span>
12769
12770              <span class="entry_type_visibility"> [hidden]</span>
12771
12772                <ul class="entry_type_enum">
12773                  <li>
12774                    <span class="entry_type_enum_name">OFF</span>
12775                    <span class="entry_type_enum_notes"><p>No lens shading correction is applied</p></span>
12776                  </li>
12777                  <li>
12778                    <span class="entry_type_enum_name">FAST</span>
12779                    <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor raw output</p></span>
12780                  </li>
12781                  <li>
12782                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
12783                    <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high quality</p></span>
12784                  </li>
12785                </ul>
12786
12787            </td> <!-- entry_type -->
12788
12789            <td class="entry_description">
12790              <p>Quality of lens shading correction applied
12791to the image data.<wbr/></p>
12792            </td>
12793
12794            <td class="entry_units">
12795            </td>
12796
12797            <td class="entry_range">
12798            </td>
12799
12800            <td class="entry_tags">
12801            </td>
12802
12803          </tr>
12804          <tr class="entries_header">
12805            <th class="th_details" colspan="5">Details</th>
12806          </tr>
12807          <tr class="entry_cont">
12808            <td class="entry_details" colspan="5">
12809              <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
12810camera device,<wbr/> and an identity lens shading map data will be provided
12811if <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
12812shading map with size specified as <code><a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a> = [ 4,<wbr/> 3 ]</code>,<wbr/>
12813the output <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> for this case will be an identity map
12814shown below:</p>
12815<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/>
12816    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/>
12817  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/>
12818    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/>
12819  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/>
12820    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 ]
12821</code></pre>
12822<p>When set to other modes,<wbr/> lens shading correction will be applied by the
12823camera device.<wbr/> Applications can request lens shading map data by setting
12824<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
12825lens shading map data in <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a>,<wbr/> with size specified
12826by <a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a>.<wbr/></p>
12827            </td>
12828          </tr>
12829
12830
12831          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12832           <!-- end of entry -->
12833        
12834        
12835
12836      <!-- end of kind -->
12837      </tbody>
12838
12839  <!-- end of section -->
12840  <tr><td colspan="6" id="section_statistics" class="section">statistics</td></tr>
12841
12842
12843      <tr><td colspan="6" class="kind">controls</td></tr>
12844
12845      <thead class="entries_header">
12846        <tr>
12847          <th class="th_name">Property Name</th>
12848          <th class="th_type">Type</th>
12849          <th class="th_description">Description</th>
12850          <th class="th_units">Units</th>
12851          <th class="th_range">Range</th>
12852          <th class="th_tags">Tags</th>
12853        </tr>
12854      </thead>
12855
12856      <tbody>
12857
12858        
12859
12860        
12861
12862        
12863
12864        
12865
12866                
12867          <tr class="entry" id="controls_android.statistics.faceDetectMode">
12868            <td class="entry_name" rowspan="3">
12869              android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
12870            </td>
12871            <td class="entry_type">
12872                <span class="entry_type_name entry_type_name_enum">byte</span>
12873
12874              <span class="entry_type_visibility"> [public]</span>
12875
12876                <ul class="entry_type_enum">
12877                  <li>
12878                    <span class="entry_type_enum_name">OFF</span>
12879                  </li>
12880                  <li>
12881                    <span class="entry_type_enum_name">SIMPLE</span>
12882                    <span class="entry_type_enum_notes"><p>Optional Return rectangle and confidence
12883only</p></span>
12884                  </li>
12885                  <li>
12886                    <span class="entry_type_enum_name">FULL</span>
12887                    <span class="entry_type_enum_notes"><p>Optional Return all face
12888metadata</p></span>
12889                  </li>
12890                </ul>
12891
12892            </td> <!-- entry_type -->
12893
12894            <td class="entry_description">
12895              <p>State of the face detector
12896unit</p>
12897            </td>
12898
12899            <td class="entry_units">
12900            </td>
12901
12902            <td class="entry_range">
12903              <p><a href="#static_android.statistics.info.availableFaceDetectModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes</a></p>
12904            </td>
12905
12906            <td class="entry_tags">
12907              <ul class="entry_tags">
12908                  <li><a href="#tag_BC">BC</a></li>
12909              </ul>
12910            </td>
12911
12912          </tr>
12913          <tr class="entries_header">
12914            <th class="th_details" colspan="5">Details</th>
12915          </tr>
12916          <tr class="entry_cont">
12917            <td class="entry_details" colspan="5">
12918              <p>Whether face detection is enabled,<wbr/> and whether it
12919should output just the basic fields or the full set of
12920fields.<wbr/> Value must be one of the
12921<a href="#static_android.statistics.info.availableFaceDetectModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes</a>.<wbr/></p>
12922            </td>
12923          </tr>
12924
12925
12926          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12927           <!-- end of entry -->
12928        
12929                
12930          <tr class="entry" id="controls_android.statistics.histogramMode">
12931            <td class="entry_name" rowspan="1">
12932              android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
12933            </td>
12934            <td class="entry_type">
12935                <span class="entry_type_name entry_type_name_enum">byte</span>
12936
12937              <span class="entry_type_visibility"> [system as boolean]</span>
12938
12939                <ul class="entry_type_enum">
12940                  <li>
12941                    <span class="entry_type_enum_name">OFF</span>
12942                  </li>
12943                  <li>
12944                    <span class="entry_type_enum_name">ON</span>
12945                  </li>
12946                </ul>
12947
12948            </td> <!-- entry_type -->
12949
12950            <td class="entry_description">
12951              <p>Operating mode for histogram
12952generation</p>
12953            </td>
12954
12955            <td class="entry_units">
12956            </td>
12957
12958            <td class="entry_range">
12959            </td>
12960
12961            <td class="entry_tags">
12962              <ul class="entry_tags">
12963                  <li><a href="#tag_V1">V1</a></li>
12964              </ul>
12965            </td>
12966
12967          </tr>
12968
12969
12970          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12971           <!-- end of entry -->
12972        
12973                
12974          <tr class="entry" id="controls_android.statistics.sharpnessMapMode">
12975            <td class="entry_name" rowspan="1">
12976              android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
12977            </td>
12978            <td class="entry_type">
12979                <span class="entry_type_name entry_type_name_enum">byte</span>
12980
12981              <span class="entry_type_visibility"> [system as boolean]</span>
12982
12983                <ul class="entry_type_enum">
12984                  <li>
12985                    <span class="entry_type_enum_name">OFF</span>
12986                  </li>
12987                  <li>
12988                    <span class="entry_type_enum_name">ON</span>
12989                  </li>
12990                </ul>
12991
12992            </td> <!-- entry_type -->
12993
12994            <td class="entry_description">
12995              <p>Operating mode for sharpness map
12996generation</p>
12997            </td>
12998
12999            <td class="entry_units">
13000            </td>
13001
13002            <td class="entry_range">
13003            </td>
13004
13005            <td class="entry_tags">
13006              <ul class="entry_tags">
13007                  <li><a href="#tag_V1">V1</a></li>
13008              </ul>
13009            </td>
13010
13011          </tr>
13012
13013
13014          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13015           <!-- end of entry -->
13016        
13017                
13018          <tr class="entry" id="controls_android.statistics.lensShadingMapMode">
13019            <td class="entry_name" rowspan="3">
13020              android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode
13021            </td>
13022            <td class="entry_type">
13023                <span class="entry_type_name entry_type_name_enum">byte</span>
13024
13025              <span class="entry_type_visibility"> [public]</span>
13026
13027                <ul class="entry_type_enum">
13028                  <li>
13029                    <span class="entry_type_enum_name">OFF</span>
13030                  </li>
13031                  <li>
13032                    <span class="entry_type_enum_name">ON</span>
13033                  </li>
13034                </ul>
13035
13036            </td> <!-- entry_type -->
13037
13038            <td class="entry_description">
13039              <p>Whether the HAL needs to output the lens
13040shading map in output result metadata</p>
13041            </td>
13042
13043            <td class="entry_units">
13044            </td>
13045
13046            <td class="entry_range">
13047            </td>
13048
13049            <td class="entry_tags">
13050            </td>
13051
13052          </tr>
13053          <tr class="entries_header">
13054            <th class="th_details" colspan="5">Details</th>
13055          </tr>
13056          <tr class="entry_cont">
13057            <td class="entry_details" colspan="5">
13058              <p>When set to ON,<wbr/>
13059<a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> must be provided in
13060the output result metadata.<wbr/></p>
13061            </td>
13062          </tr>
13063
13064
13065          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13066           <!-- end of entry -->
13067        
13068        
13069
13070      <!-- end of kind -->
13071      </tbody>
13072      <tr><td colspan="6" class="kind">static</td></tr>
13073
13074      <thead class="entries_header">
13075        <tr>
13076          <th class="th_name">Property Name</th>
13077          <th class="th_type">Type</th>
13078          <th class="th_description">Description</th>
13079          <th class="th_units">Units</th>
13080          <th class="th_range">Range</th>
13081          <th class="th_tags">Tags</th>
13082        </tr>
13083      </thead>
13084
13085      <tbody>
13086
13087        
13088
13089        
13090
13091        
13092
13093        
13094                
13095            
13096
13097                
13098          <tr class="entry" id="static_android.statistics.info.availableFaceDetectModes">
13099            <td class="entry_name" rowspan="3">
13100              android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes
13101            </td>
13102            <td class="entry_type">
13103                <span class="entry_type_name">byte</span>
13104                <span class="entry_type_container">x</span>
13105
13106                <span class="entry_type_array">
13107                  n
13108                </span>
13109              <span class="entry_type_visibility"> [public]</span>
13110                <div class="entry_type_notes">List of enums from android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode</div>
13111
13112
13113            </td> <!-- entry_type -->
13114
13115            <td class="entry_description">
13116              <p>Which face detection modes are available,<wbr/>
13117if any</p>
13118            </td>
13119
13120            <td class="entry_units">
13121              List of enum:
13122            OFF
13123            SIMPLE
13124            FULL
13125            </td>
13126
13127            <td class="entry_range">
13128            </td>
13129
13130            <td class="entry_tags">
13131            </td>
13132
13133          </tr>
13134          <tr class="entries_header">
13135            <th class="th_details" colspan="5">Details</th>
13136          </tr>
13137          <tr class="entry_cont">
13138            <td class="entry_details" colspan="5">
13139              <p>OFF means face detection is disabled,<wbr/> it must
13140be included in the list.<wbr/></p>
13141<p>SIMPLE means the device supports the
13142<a href="#dynamic_android.statistics.faceRectangles">android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles</a> and
13143<a href="#dynamic_android.statistics.faceScores">android.<wbr/>statistics.<wbr/>face<wbr/>Scores</a> outputs.<wbr/></p>
13144<p>FULL means the device additionally supports the
13145<a href="#dynamic_android.statistics.faceIds">android.<wbr/>statistics.<wbr/>face<wbr/>Ids</a> and
13146<a href="#dynamic_android.statistics.faceLandmarks">android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks</a> outputs.<wbr/></p>
13147            </td>
13148          </tr>
13149
13150
13151          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13152           <!-- end of entry -->
13153        
13154                
13155          <tr class="entry" id="static_android.statistics.info.histogramBucketCount">
13156            <td class="entry_name" rowspan="1">
13157              android.<wbr/>statistics.<wbr/>info.<wbr/>histogram<wbr/>Bucket<wbr/>Count
13158            </td>
13159            <td class="entry_type">
13160                <span class="entry_type_name">int32</span>
13161
13162              <span class="entry_type_visibility"> [system]</span>
13163
13164
13165            </td> <!-- entry_type -->
13166
13167            <td class="entry_description">
13168              <p>Number of histogram buckets
13169supported</p>
13170            </td>
13171
13172            <td class="entry_units">
13173            </td>
13174
13175            <td class="entry_range">
13176              <p>&gt;= 64</p>
13177            </td>
13178
13179            <td class="entry_tags">
13180            </td>
13181
13182          </tr>
13183
13184
13185          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13186           <!-- end of entry -->
13187        
13188                
13189          <tr class="entry" id="static_android.statistics.info.maxFaceCount">
13190            <td class="entry_name" rowspan="1">
13191              android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Face<wbr/>Count
13192            </td>
13193            <td class="entry_type">
13194                <span class="entry_type_name">int32</span>
13195
13196              <span class="entry_type_visibility"> [public]</span>
13197
13198
13199            </td> <!-- entry_type -->
13200
13201            <td class="entry_description">
13202              <p>Maximum number of simultaneously detectable
13203faces</p>
13204            </td>
13205
13206            <td class="entry_units">
13207            </td>
13208
13209            <td class="entry_range">
13210              <p>&gt;= 4 if availableFaceDetectionModes lists
13211modes besides OFF,<wbr/> otherwise 0</p>
13212            </td>
13213
13214            <td class="entry_tags">
13215            </td>
13216
13217          </tr>
13218
13219
13220          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13221           <!-- end of entry -->
13222        
13223                
13224          <tr class="entry" id="static_android.statistics.info.maxHistogramCount">
13225            <td class="entry_name" rowspan="1">
13226              android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Histogram<wbr/>Count
13227            </td>
13228            <td class="entry_type">
13229                <span class="entry_type_name">int32</span>
13230
13231              <span class="entry_type_visibility"> [system]</span>
13232
13233
13234            </td> <!-- entry_type -->
13235
13236            <td class="entry_description">
13237              <p>Maximum value possible for a histogram
13238bucket</p>
13239            </td>
13240
13241            <td class="entry_units">
13242            </td>
13243
13244            <td class="entry_range">
13245            </td>
13246
13247            <td class="entry_tags">
13248            </td>
13249
13250          </tr>
13251
13252
13253          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13254           <!-- end of entry -->
13255        
13256                
13257          <tr class="entry" id="static_android.statistics.info.maxSharpnessMapValue">
13258            <td class="entry_name" rowspan="1">
13259              android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Sharpness<wbr/>Map<wbr/>Value
13260            </td>
13261            <td class="entry_type">
13262                <span class="entry_type_name">int32</span>
13263
13264              <span class="entry_type_visibility"> [system]</span>
13265
13266
13267            </td> <!-- entry_type -->
13268
13269            <td class="entry_description">
13270              <p>Maximum value possible for a sharpness map
13271region.<wbr/></p>
13272            </td>
13273
13274            <td class="entry_units">
13275            </td>
13276
13277            <td class="entry_range">
13278            </td>
13279
13280            <td class="entry_tags">
13281            </td>
13282
13283          </tr>
13284
13285
13286          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13287           <!-- end of entry -->
13288        
13289                
13290          <tr class="entry" id="static_android.statistics.info.sharpnessMapSize">
13291            <td class="entry_name" rowspan="1">
13292              android.<wbr/>statistics.<wbr/>info.<wbr/>sharpness<wbr/>Map<wbr/>Size
13293            </td>
13294            <td class="entry_type">
13295                <span class="entry_type_name">int32</span>
13296                <span class="entry_type_container">x</span>
13297
13298                <span class="entry_type_array">
13299                  2
13300                </span>
13301              <span class="entry_type_visibility"> [system as size]</span>
13302                <div class="entry_type_notes">width x height</div>
13303
13304
13305            </td> <!-- entry_type -->
13306
13307            <td class="entry_description">
13308              <p>Dimensions of the sharpness
13309map</p>
13310            </td>
13311
13312            <td class="entry_units">
13313            </td>
13314
13315            <td class="entry_range">
13316              <p>Must be at least 32 x 32</p>
13317            </td>
13318
13319            <td class="entry_tags">
13320            </td>
13321
13322          </tr>
13323
13324
13325          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13326           <!-- end of entry -->
13327        
13328        
13329        
13330
13331        
13332
13333      <!-- end of kind -->
13334      </tbody>
13335      <tr><td colspan="6" class="kind">dynamic</td></tr>
13336
13337      <thead class="entries_header">
13338        <tr>
13339          <th class="th_name">Property Name</th>
13340          <th class="th_type">Type</th>
13341          <th class="th_description">Description</th>
13342          <th class="th_units">Units</th>
13343          <th class="th_range">Range</th>
13344          <th class="th_tags">Tags</th>
13345        </tr>
13346      </thead>
13347
13348      <tbody>
13349
13350        
13351
13352        
13353
13354        
13355
13356        
13357
13358                
13359          <tr class="entry" id="dynamic_android.statistics.faceDetectMode">
13360            <td class="entry_name" rowspan="3">
13361              android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
13362            </td>
13363            <td class="entry_type">
13364                <span class="entry_type_name entry_type_name_enum">byte</span>
13365
13366              <span class="entry_type_visibility"> [public]</span>
13367
13368                <ul class="entry_type_enum">
13369                  <li>
13370                    <span class="entry_type_enum_name">OFF</span>
13371                  </li>
13372                  <li>
13373                    <span class="entry_type_enum_name">SIMPLE</span>
13374                    <span class="entry_type_enum_notes"><p>Optional Return rectangle and confidence
13375only</p></span>
13376                  </li>
13377                  <li>
13378                    <span class="entry_type_enum_name">FULL</span>
13379                    <span class="entry_type_enum_notes"><p>Optional Return all face
13380metadata</p></span>
13381                  </li>
13382                </ul>
13383
13384            </td> <!-- entry_type -->
13385
13386            <td class="entry_description">
13387              <p>State of the face detector
13388unit</p>
13389            </td>
13390
13391            <td class="entry_units">
13392            </td>
13393
13394            <td class="entry_range">
13395              <p><a href="#static_android.statistics.info.availableFaceDetectModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes</a></p>
13396            </td>
13397
13398            <td class="entry_tags">
13399              <ul class="entry_tags">
13400                  <li><a href="#tag_BC">BC</a></li>
13401              </ul>
13402            </td>
13403
13404          </tr>
13405          <tr class="entries_header">
13406            <th class="th_details" colspan="5">Details</th>
13407          </tr>
13408          <tr class="entry_cont">
13409            <td class="entry_details" colspan="5">
13410              <p>Whether face detection is enabled,<wbr/> and whether it
13411should output just the basic fields or the full set of
13412fields.<wbr/> Value must be one of the
13413<a href="#static_android.statistics.info.availableFaceDetectModes">android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes</a>.<wbr/></p>
13414            </td>
13415          </tr>
13416
13417
13418          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13419           <!-- end of entry -->
13420        
13421                
13422          <tr class="entry" id="dynamic_android.statistics.faceIds">
13423            <td class="entry_name" rowspan="3">
13424              android.<wbr/>statistics.<wbr/>face<wbr/>Ids
13425            </td>
13426            <td class="entry_type">
13427                <span class="entry_type_name">int32</span>
13428                <span class="entry_type_container">x</span>
13429
13430                <span class="entry_type_array">
13431                  n
13432                </span>
13433              <span class="entry_type_visibility"> [hidden]</span>
13434
13435
13436            </td> <!-- entry_type -->
13437
13438            <td class="entry_description">
13439              <p>List of unique IDs for detected
13440faces</p>
13441            </td>
13442
13443            <td class="entry_units">
13444            </td>
13445
13446            <td class="entry_range">
13447            </td>
13448
13449            <td class="entry_tags">
13450              <ul class="entry_tags">
13451                  <li><a href="#tag_BC">BC</a></li>
13452              </ul>
13453            </td>
13454
13455          </tr>
13456          <tr class="entries_header">
13457            <th class="th_details" colspan="5">Details</th>
13458          </tr>
13459          <tr class="entry_cont">
13460            <td class="entry_details" colspan="5">
13461              <p>Only available if faceDetectMode == FULL</p>
13462            </td>
13463          </tr>
13464
13465
13466          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13467           <!-- end of entry -->
13468        
13469                
13470          <tr class="entry" id="dynamic_android.statistics.faceLandmarks">
13471            <td class="entry_name" rowspan="3">
13472              android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks
13473            </td>
13474            <td class="entry_type">
13475                <span class="entry_type_name">int32</span>
13476                <span class="entry_type_container">x</span>
13477
13478                <span class="entry_type_array">
13479                  n x 6
13480                </span>
13481              <span class="entry_type_visibility"> [hidden]</span>
13482                <div class="entry_type_notes">(leftEyeX,<wbr/> leftEyeY,<wbr/> rightEyeX,<wbr/> rightEyeY,<wbr/> mouthX,<wbr/> mouthY)</div>
13483
13484
13485            </td> <!-- entry_type -->
13486
13487            <td class="entry_description">
13488              <p>List of landmarks for detected
13489faces</p>
13490            </td>
13491
13492            <td class="entry_units">
13493            </td>
13494
13495            <td class="entry_range">
13496            </td>
13497
13498            <td class="entry_tags">
13499              <ul class="entry_tags">
13500                  <li><a href="#tag_BC">BC</a></li>
13501              </ul>
13502            </td>
13503
13504          </tr>
13505          <tr class="entries_header">
13506            <th class="th_details" colspan="5">Details</th>
13507          </tr>
13508          <tr class="entry_cont">
13509            <td class="entry_details" colspan="5">
13510              <p>Only available if faceDetectMode == FULL</p>
13511            </td>
13512          </tr>
13513
13514
13515          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13516           <!-- end of entry -->
13517        
13518                
13519          <tr class="entry" id="dynamic_android.statistics.faceRectangles">
13520            <td class="entry_name" rowspan="3">
13521              android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles
13522            </td>
13523            <td class="entry_type">
13524                <span class="entry_type_name">int32</span>
13525                <span class="entry_type_container">x</span>
13526
13527                <span class="entry_type_array">
13528                  n x 4
13529                </span>
13530              <span class="entry_type_visibility"> [hidden as rectangle]</span>
13531                <div class="entry_type_notes">(xmin,<wbr/> ymin,<wbr/> xmax,<wbr/> ymax).<wbr/> (0,<wbr/>0) is top-left of active pixel area</div>
13532
13533
13534            </td> <!-- entry_type -->
13535
13536            <td class="entry_description">
13537              <p>List of the bounding rectangles for detected
13538faces</p>
13539            </td>
13540
13541            <td class="entry_units">
13542            </td>
13543
13544            <td class="entry_range">
13545            </td>
13546
13547            <td class="entry_tags">
13548              <ul class="entry_tags">
13549                  <li><a href="#tag_BC">BC</a></li>
13550              </ul>
13551            </td>
13552
13553          </tr>
13554          <tr class="entries_header">
13555            <th class="th_details" colspan="5">Details</th>
13556          </tr>
13557          <tr class="entry_cont">
13558            <td class="entry_details" colspan="5">
13559              <p>Only available if faceDetectMode != OFF</p>
13560            </td>
13561          </tr>
13562
13563
13564          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13565           <!-- end of entry -->
13566        
13567                
13568          <tr class="entry" id="dynamic_android.statistics.faceScores">
13569            <td class="entry_name" rowspan="3">
13570              android.<wbr/>statistics.<wbr/>face<wbr/>Scores
13571            </td>
13572            <td class="entry_type">
13573                <span class="entry_type_name">byte</span>
13574                <span class="entry_type_container">x</span>
13575
13576                <span class="entry_type_array">
13577                  n
13578                </span>
13579              <span class="entry_type_visibility"> [hidden]</span>
13580
13581
13582            </td> <!-- entry_type -->
13583
13584            <td class="entry_description">
13585              <p>List of the face confidence scores for
13586detected faces</p>
13587            </td>
13588
13589            <td class="entry_units">
13590            </td>
13591
13592            <td class="entry_range">
13593              <p>1-100</p>
13594            </td>
13595
13596            <td class="entry_tags">
13597              <ul class="entry_tags">
13598                  <li><a href="#tag_BC">BC</a></li>
13599              </ul>
13600            </td>
13601
13602          </tr>
13603          <tr class="entries_header">
13604            <th class="th_details" colspan="5">Details</th>
13605          </tr>
13606          <tr class="entry_cont">
13607            <td class="entry_details" colspan="5">
13608              <p>Only available if faceDetectMode != OFF.<wbr/> The value should be
13609meaningful (for example,<wbr/> setting 100 at all times is illegal).<wbr/></p>
13610            </td>
13611          </tr>
13612
13613
13614          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13615           <!-- end of entry -->
13616        
13617                
13618          <tr class="entry" id="dynamic_android.statistics.histogram">
13619            <td class="entry_name" rowspan="3">
13620              android.<wbr/>statistics.<wbr/>histogram
13621            </td>
13622            <td class="entry_type">
13623                <span class="entry_type_name">int32</span>
13624                <span class="entry_type_container">x</span>
13625
13626                <span class="entry_type_array">
13627                  n x 3
13628                </span>
13629              <span class="entry_type_visibility"> [system]</span>
13630                <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>
13631
13632
13633            </td> <!-- entry_type -->
13634
13635            <td class="entry_description">
13636              <p>A 3-channel histogram based on the raw
13637sensor data</p>
13638            </td>
13639
13640            <td class="entry_units">
13641            </td>
13642
13643            <td class="entry_range">
13644            </td>
13645
13646            <td class="entry_tags">
13647              <ul class="entry_tags">
13648                  <li><a href="#tag_V1">V1</a></li>
13649              </ul>
13650            </td>
13651
13652          </tr>
13653          <tr class="entries_header">
13654            <th class="th_details" colspan="5">Details</th>
13655          </tr>
13656          <tr class="entry_cont">
13657            <td class="entry_details" colspan="5">
13658              <p>The k'th bucket (0-based) covers the input range
13659(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/>
13660(k + 1) * w /<wbr/> N ).<wbr/> If only a monochrome sharpness map is
13661supported,<wbr/> all channels should have the same data</p>
13662            </td>
13663          </tr>
13664
13665
13666          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13667           <!-- end of entry -->
13668        
13669                
13670          <tr class="entry" id="dynamic_android.statistics.histogramMode">
13671            <td class="entry_name" rowspan="1">
13672              android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
13673            </td>
13674            <td class="entry_type">
13675                <span class="entry_type_name entry_type_name_enum">byte</span>
13676
13677              <span class="entry_type_visibility"> [system as boolean]</span>
13678
13679                <ul class="entry_type_enum">
13680                  <li>
13681                    <span class="entry_type_enum_name">OFF</span>
13682                  </li>
13683                  <li>
13684                    <span class="entry_type_enum_name">ON</span>
13685                  </li>
13686                </ul>
13687
13688            </td> <!-- entry_type -->
13689
13690            <td class="entry_description">
13691              <p>Operating mode for histogram
13692generation</p>
13693            </td>
13694
13695            <td class="entry_units">
13696            </td>
13697
13698            <td class="entry_range">
13699            </td>
13700
13701            <td class="entry_tags">
13702              <ul class="entry_tags">
13703                  <li><a href="#tag_V1">V1</a></li>
13704              </ul>
13705            </td>
13706
13707          </tr>
13708
13709
13710          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13711           <!-- end of entry -->
13712        
13713                
13714          <tr class="entry" id="dynamic_android.statistics.sharpnessMap">
13715            <td class="entry_name" rowspan="3">
13716              android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map
13717            </td>
13718            <td class="entry_type">
13719                <span class="entry_type_name">int32</span>
13720                <span class="entry_type_container">x</span>
13721
13722                <span class="entry_type_array">
13723                  n x m x 3
13724                </span>
13725              <span class="entry_type_visibility"> [system]</span>
13726                <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>
13727
13728
13729            </td> <!-- entry_type -->
13730
13731            <td class="entry_description">
13732              <p>A 3-channel sharpness map,<wbr/> based on the raw
13733sensor data</p>
13734            </td>
13735
13736            <td class="entry_units">
13737            </td>
13738
13739            <td class="entry_range">
13740            </td>
13741
13742            <td class="entry_tags">
13743              <ul class="entry_tags">
13744                  <li><a href="#tag_V1">V1</a></li>
13745              </ul>
13746            </td>
13747
13748          </tr>
13749          <tr class="entries_header">
13750            <th class="th_details" colspan="5">Details</th>
13751          </tr>
13752          <tr class="entry_cont">
13753            <td class="entry_details" colspan="5">
13754              <p>If only a monochrome sharpness map is supported,<wbr/>
13755all channels should have the same data</p>
13756            </td>
13757          </tr>
13758
13759
13760          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13761           <!-- end of entry -->
13762        
13763                
13764          <tr class="entry" id="dynamic_android.statistics.sharpnessMapMode">
13765            <td class="entry_name" rowspan="1">
13766              android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
13767            </td>
13768            <td class="entry_type">
13769                <span class="entry_type_name entry_type_name_enum">byte</span>
13770
13771              <span class="entry_type_visibility"> [system as boolean]</span>
13772
13773                <ul class="entry_type_enum">
13774                  <li>
13775                    <span class="entry_type_enum_name">OFF</span>
13776                  </li>
13777                  <li>
13778                    <span class="entry_type_enum_name">ON</span>
13779                  </li>
13780                </ul>
13781
13782            </td> <!-- entry_type -->
13783
13784            <td class="entry_description">
13785              <p>Operating mode for sharpness map
13786generation</p>
13787            </td>
13788
13789            <td class="entry_units">
13790            </td>
13791
13792            <td class="entry_range">
13793            </td>
13794
13795            <td class="entry_tags">
13796              <ul class="entry_tags">
13797                  <li><a href="#tag_V1">V1</a></li>
13798              </ul>
13799            </td>
13800
13801          </tr>
13802
13803
13804          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13805           <!-- end of entry -->
13806        
13807                
13808          <tr class="entry" id="dynamic_android.statistics.lensShadingMap">
13809            <td class="entry_name" rowspan="3">
13810              android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map
13811            </td>
13812            <td class="entry_type">
13813                <span class="entry_type_name">float</span>
13814                <span class="entry_type_container">x</span>
13815
13816                <span class="entry_type_array">
13817                  4 x n x m
13818                </span>
13819              <span class="entry_type_visibility"> [public]</span>
13820                <div class="entry_type_notes">2D array of float gain factors per channel to correct lens shading</div>
13821
13822
13823            </td> <!-- entry_type -->
13824
13825            <td class="entry_description">
13826              <p>The shading map is a low-resolution floating-point map
13827that lists the coefficients used to correct for vignetting,<wbr/> for each
13828Bayer color channel.<wbr/></p>
13829            </td>
13830
13831            <td class="entry_units">
13832            </td>
13833
13834            <td class="entry_range">
13835              <p>Each gain factor is &gt;= 1</p>
13836            </td>
13837
13838            <td class="entry_tags">
13839            </td>
13840
13841          </tr>
13842          <tr class="entries_header">
13843            <th class="th_details" colspan="5">Details</th>
13844          </tr>
13845          <tr class="entry_cont">
13846            <td class="entry_details" colspan="5">
13847              <p>The least shaded section of the image should have a gain factor
13848of 1; all other sections should have gains above 1.<wbr/></p>
13849<p>When <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a> = TRANSFORM_<wbr/>MATRIX,<wbr/> the map
13850must take into account the colorCorrection settings.<wbr/></p>
13851<p>The shading map is for the entire active pixel array,<wbr/> and is not
13852affected by the crop region specified in the request.<wbr/> Each shading map
13853entry is the value of the shading compensation map over a specific
13854pixel on the sensor.<wbr/>  Specifically,<wbr/> with a (N x M) resolution shading
13855map,<wbr/> and an active pixel array size (W x H),<wbr/> shading map entry
13856(x,<wbr/>y) ϵ (0 ...<wbr/> N-1,<wbr/> 0 ...<wbr/> M-1) is the value of the shading map at
13857pixel ( ((W-1)/<wbr/>(N-1)) * x,<wbr/> ((H-1)/<wbr/>(M-1)) * y) for the four color channels.<wbr/>
13858The map is assumed to be bilinearly interpolated between the sample points.<wbr/></p>
13859<p>The channel order is [R,<wbr/> Geven,<wbr/> Godd,<wbr/> B],<wbr/> where Geven is the green
13860channel for the even rows of a Bayer pattern,<wbr/> and Godd is the odd rows.<wbr/>
13861The shading map is stored in a fully interleaved format,<wbr/> and its size
13862is 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>
13863<p>The shading map should have on the order of 30-40 rows and columns,<wbr/>
13864and must be smaller than 64x64.<wbr/></p>
13865<p>As an example,<wbr/> given a very small map defined as:</p>
13866<pre><code><a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a> = [ 4,<wbr/> 3 ]
13867<a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> =
13868[ 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/>
13869    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/>
13870  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/>
13871    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/>
13872  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/>
13873    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 ]
13874</code></pre>
13875<p>The low-resolution scaling map images for each channel are
13876(displayed using nearest-neighbor interpolation):</p>
13877<p><img alt="Red lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/red_shading.png"/>
13878<img alt="Green (even rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_e_shading.png"/>
13879<img alt="Green (odd rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_o_shading.png"/>
13880<img alt="Blue lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/blue_shading.png"/></p>
13881<p>As a visualization only,<wbr/> inverting the full-color map to recover an
13882image of a gray wall (using bicubic interpolation for visual quality) as captured by the sensor gives:</p>
13883<p><img alt="Image of a uniform white wall (inverse shading map)" src="images/camera2/metadata/android.statistics.lensShadingMap/inv_shading.png"/></p>
13884            </td>
13885          </tr>
13886
13887
13888          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13889           <!-- end of entry -->
13890        
13891                
13892          <tr class="entry" id="dynamic_android.statistics.predictedColorGains">
13893            <td class="entry_name" rowspan="3">
13894              android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Gains
13895            </td>
13896            <td class="entry_type">
13897                <span class="entry_type_name">float</span>
13898                <span class="entry_type_container">x</span>
13899
13900                <span class="entry_type_array">
13901                  4
13902                </span>
13903              <span class="entry_type_visibility"> [hidden]</span>
13904                <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
13905
13906
13907            </td> <!-- entry_type -->
13908
13909            <td class="entry_description">
13910              <p>The best-fit color channel gains calculated
13911by the HAL's statistics units for the current output frame</p>
13912            </td>
13913
13914            <td class="entry_units">
13915            </td>
13916
13917            <td class="entry_range">
13918              <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
13919            </td>
13920
13921            <td class="entry_tags">
13922            </td>
13923
13924          </tr>
13925          <tr class="entries_header">
13926            <th class="th_details" colspan="5">Details</th>
13927          </tr>
13928          <tr class="entry_cont">
13929            <td class="entry_details" colspan="5">
13930              <p>This may be different than the gains used for this frame,<wbr/>
13931since statistics processing on data from a new frame
13932typically completes after the transform has already been
13933applied to that frame.<wbr/></p>
13934<p>The 4 channel gains are defined in Bayer domain,<wbr/>
13935see <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> for details.<wbr/></p>
13936<p>This value should always be calculated by the AWB block,<wbr/>
13937regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
13938            </td>
13939          </tr>
13940
13941
13942          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13943           <!-- end of entry -->
13944        
13945                
13946          <tr class="entry" id="dynamic_android.statistics.predictedColorTransform">
13947            <td class="entry_name" rowspan="3">
13948              android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Transform
13949            </td>
13950            <td class="entry_type">
13951                <span class="entry_type_name">rational</span>
13952                <span class="entry_type_container">x</span>
13953
13954                <span class="entry_type_array">
13955                  3 x 3
13956                </span>
13957              <span class="entry_type_visibility"> [hidden]</span>
13958                <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
13959
13960
13961            </td> <!-- entry_type -->
13962
13963            <td class="entry_description">
13964              <p>The best-fit color transform matrix estimate
13965calculated by the HAL's statistics units for the current
13966output frame</p>
13967            </td>
13968
13969            <td class="entry_units">
13970            </td>
13971
13972            <td class="entry_range">
13973              <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
13974            </td>
13975
13976            <td class="entry_tags">
13977            </td>
13978
13979          </tr>
13980          <tr class="entries_header">
13981            <th class="th_details" colspan="5">Details</th>
13982          </tr>
13983          <tr class="entry_cont">
13984            <td class="entry_details" colspan="5">
13985              <p>The HAL must provide the estimate from its
13986statistics unit on the white balance transforms to use
13987for the next frame.<wbr/> These are the values the HAL believes
13988are the best fit for the current output frame.<wbr/> This may
13989be different than the transform used for this frame,<wbr/> since
13990statistics processing on data from a new frame typically
13991completes after the transform has already been applied to
13992that frame.<wbr/></p>
13993<p>These estimates must be provided for all frames,<wbr/> even if
13994capture settings and color transforms are set by the application.<wbr/></p>
13995<p>This value should always be calculated by the AWB block,<wbr/>
13996regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
13997            </td>
13998          </tr>
13999
14000
14001          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14002           <!-- end of entry -->
14003        
14004                
14005          <tr class="entry" id="dynamic_android.statistics.sceneFlicker">
14006            <td class="entry_name" rowspan="3">
14007              android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker
14008            </td>
14009            <td class="entry_type">
14010                <span class="entry_type_name entry_type_name_enum">byte</span>
14011
14012              <span class="entry_type_visibility"> [public]</span>
14013
14014                <ul class="entry_type_enum">
14015                  <li>
14016                    <span class="entry_type_enum_name">NONE</span>
14017                  </li>
14018                  <li>
14019                    <span class="entry_type_enum_name">50HZ</span>
14020                  </li>
14021                  <li>
14022                    <span class="entry_type_enum_name">60HZ</span>
14023                  </li>
14024                </ul>
14025
14026            </td> <!-- entry_type -->
14027
14028            <td class="entry_description">
14029              <p>The camera device estimated scene illumination lighting
14030frequency.<wbr/></p>
14031            </td>
14032
14033            <td class="entry_units">
14034            </td>
14035
14036            <td class="entry_range">
14037            </td>
14038
14039            <td class="entry_tags">
14040            </td>
14041
14042          </tr>
14043          <tr class="entries_header">
14044            <th class="th_details" colspan="5">Details</th>
14045          </tr>
14046          <tr class="entry_cont">
14047            <td class="entry_details" colspan="5">
14048              <p>Many light sources,<wbr/> such as most fluorescent lights,<wbr/> flicker at a rate
14049that depends on the local utility power standards.<wbr/> This flicker must be
14050accounted for by auto-exposure routines to avoid artifacts in captured images.<wbr/>
14051The camera device uses this entry to tell the application what the scene
14052illuminant frequency is.<wbr/></p>
14053<p>When manual exposure control is enabled
14054(<code><a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> == OFF</code> or <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> == OFF</code>),<wbr/>
14055the <a href="#controls_android.control.aeAntibandingMode">android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode</a> doesn't do the antibanding,<wbr/> and the
14056application can ensure it selects exposure times that do not cause banding
14057issues by looking into this metadata field.<wbr/> See android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode
14058for more details.<wbr/></p>
14059<p>Report NONE if there doesn't appear to be flickering illumination.<wbr/></p>
14060            </td>
14061          </tr>
14062
14063
14064          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14065           <!-- end of entry -->
14066        
14067        
14068
14069      <!-- end of kind -->
14070      </tbody>
14071
14072  <!-- end of section -->
14073  <tr><td colspan="6" id="section_tonemap" class="section">tonemap</td></tr>
14074
14075
14076      <tr><td colspan="6" class="kind">controls</td></tr>
14077
14078      <thead class="entries_header">
14079        <tr>
14080          <th class="th_name">Property Name</th>
14081          <th class="th_type">Type</th>
14082          <th class="th_description">Description</th>
14083          <th class="th_units">Units</th>
14084          <th class="th_range">Range</th>
14085          <th class="th_tags">Tags</th>
14086        </tr>
14087      </thead>
14088
14089      <tbody>
14090
14091        
14092
14093        
14094
14095        
14096
14097        
14098
14099                
14100          <tr class="entry" id="controls_android.tonemap.curveBlue">
14101            <td class="entry_name" rowspan="3">
14102              android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
14103            </td>
14104            <td class="entry_type">
14105                <span class="entry_type_name">float</span>
14106                <span class="entry_type_container">x</span>
14107
14108                <span class="entry_type_array">
14109                  n x 2
14110                </span>
14111              <span class="entry_type_visibility"> [public]</span>
14112                <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>
14113
14114
14115            </td> <!-- entry_type -->
14116
14117            <td class="entry_description">
14118              <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
14119channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14120CONTRAST_<wbr/>CURVE.<wbr/></p>
14121            </td>
14122
14123            <td class="entry_units">
14124              same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
14125            </td>
14126
14127            <td class="entry_range">
14128              <p>same as <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a></p>
14129            </td>
14130
14131            <td class="entry_tags">
14132            </td>
14133
14134          </tr>
14135          <tr class="entries_header">
14136            <th class="th_details" colspan="5">Details</th>
14137          </tr>
14138          <tr class="entry_cont">
14139            <td class="entry_details" colspan="5">
14140              <p>See <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> for more details.<wbr/></p>
14141            </td>
14142          </tr>
14143
14144
14145          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14146           <!-- end of entry -->
14147        
14148                
14149          <tr class="entry" id="controls_android.tonemap.curveGreen">
14150            <td class="entry_name" rowspan="3">
14151              android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
14152            </td>
14153            <td class="entry_type">
14154                <span class="entry_type_name">float</span>
14155                <span class="entry_type_container">x</span>
14156
14157                <span class="entry_type_array">
14158                  n x 2
14159                </span>
14160              <span class="entry_type_visibility"> [public]</span>
14161                <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>
14162
14163
14164            </td> <!-- entry_type -->
14165
14166            <td class="entry_description">
14167              <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
14168channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14169CONTRAST_<wbr/>CURVE.<wbr/></p>
14170            </td>
14171
14172            <td class="entry_units">
14173              same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
14174            </td>
14175
14176            <td class="entry_range">
14177              <p>same as <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a></p>
14178            </td>
14179
14180            <td class="entry_tags">
14181            </td>
14182
14183          </tr>
14184          <tr class="entries_header">
14185            <th class="th_details" colspan="5">Details</th>
14186          </tr>
14187          <tr class="entry_cont">
14188            <td class="entry_details" colspan="5">
14189              <p>See <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> for more details.<wbr/></p>
14190            </td>
14191          </tr>
14192
14193
14194          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14195           <!-- end of entry -->
14196        
14197                
14198          <tr class="entry" id="controls_android.tonemap.curveRed">
14199            <td class="entry_name" rowspan="5">
14200              android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
14201            </td>
14202            <td class="entry_type">
14203                <span class="entry_type_name">float</span>
14204                <span class="entry_type_container">x</span>
14205
14206                <span class="entry_type_array">
14207                  n x 2
14208                </span>
14209              <span class="entry_type_visibility"> [public]</span>
14210                <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>
14211
14212
14213            </td> <!-- entry_type -->
14214
14215            <td class="entry_description">
14216              <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
14217channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14218CONTRAST_<wbr/>CURVE.<wbr/></p>
14219            </td>
14220
14221            <td class="entry_units">
14222            </td>
14223
14224            <td class="entry_range">
14225              <p>0-1 on both input and output coordinates,<wbr/> normalized
14226as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
14227            </td>
14228
14229            <td class="entry_tags">
14230              <ul class="entry_tags">
14231                  <li><a href="#tag_DNG">DNG</a></li>
14232              </ul>
14233            </td>
14234
14235          </tr>
14236          <tr class="entries_header">
14237            <th class="th_details" colspan="5">Details</th>
14238          </tr>
14239          <tr class="entry_cont">
14240            <td class="entry_details" colspan="5">
14241              <p>Each channel's curve is defined by an array of control points:</p>
14242<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
14243  [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
142442 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
14245<p>These are sorted in order of increasing <code>Pin</code>; it is always
14246guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
14247define a complete mapping.<wbr/> For input values between control points,<wbr/>
14248the camera device must linearly interpolate between the control
14249points.<wbr/></p>
14250<p>Each curve can have an independent number of points,<wbr/> and the number
14251of points can be less than max (that is,<wbr/> the request doesn't have to
14252always provide a curve with number of points equivalent to
14253<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
14254<p>A few examples,<wbr/> and their corresponding graphical mappings; these
14255only specify the red channel and the precision is limited to 4
14256digits,<wbr/> for conciseness.<wbr/></p>
14257<p>Linear mapping:</p>
14258<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 ]
14259</code></pre>
14260<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
14261<p>Invert mapping:</p>
14262<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 ]
14263</code></pre>
14264<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
14265<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
14266<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14267  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/>
14268  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/>
14269  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/>
14270  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 ]
14271</code></pre>
14272<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
14273<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
14274<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14275  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/>
14276  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/>
14277  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/>
14278  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 ]
14279</code></pre>
14280<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
14281            </td>
14282          </tr>
14283
14284          <tr class="entries_header">
14285            <th class="th_details" colspan="5">HAL Implementation Details</th>
14286          </tr>
14287          <tr class="entry_cont">
14288            <td class="entry_details" colspan="5">
14289              <p>For good quality of mapping,<wbr/> at least 128 control points are
14290preferred.<wbr/></p>
14291<p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
14292control points used as are available.<wbr/></p>
14293            </td>
14294          </tr>
14295
14296          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14297           <!-- end of entry -->
14298        
14299                
14300          <tr class="entry" id="controls_android.tonemap.mode">
14301            <td class="entry_name" rowspan="3">
14302              android.<wbr/>tonemap.<wbr/>mode
14303            </td>
14304            <td class="entry_type">
14305                <span class="entry_type_name entry_type_name_enum">byte</span>
14306
14307              <span class="entry_type_visibility"> [public]</span>
14308
14309                <ul class="entry_type_enum">
14310                  <li>
14311                    <span class="entry_type_enum_name">CONTRAST_CURVE</span>
14312                    <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
14313android.<wbr/>tonemap.<wbr/>curve.<wbr/></p>
14314<p>All color enhancement and tonemapping must be disabled,<wbr/> except
14315for applying the tonemapping curve specified by
14316<a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/> <a href="#controls_android.tonemap.curveBlue">android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue</a>,<wbr/> or
14317<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>.<wbr/></p>
14318<p>Must not slow down frame rate relative to raw
14319sensor output.<wbr/></p></span>
14320                  </li>
14321                  <li>
14322                    <span class="entry_type_enum_name">FAST</span>
14323                    <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14324<p>Should not slow down frame rate relative to raw sensor output.<wbr/></p></span>
14325                  </li>
14326                  <li>
14327                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
14328                    <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14329<p>May slow down frame rate relative to raw sensor output.<wbr/></p></span>
14330                  </li>
14331                </ul>
14332
14333            </td> <!-- entry_type -->
14334
14335            <td class="entry_description">
14336              <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
14337            </td>
14338
14339            <td class="entry_units">
14340            </td>
14341
14342            <td class="entry_range">
14343            </td>
14344
14345            <td class="entry_tags">
14346            </td>
14347
14348          </tr>
14349          <tr class="entries_header">
14350            <th class="th_details" colspan="5">Details</th>
14351          </tr>
14352          <tr class="entry_cont">
14353            <td class="entry_details" colspan="5">
14354              <p>When switching to an application-defined contrast curve by setting
14355<a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
14356per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
14357mapping from input high-bit-depth pixel value to the output
14358low-bit-depth value.<wbr/>  Since the actual pixel ranges of both input
14359and output may change depending on the camera pipeline,<wbr/> the values
14360are specified by normalized floating-point numbers.<wbr/></p>
14361<p>More-complex color mapping operations such as 3D color look-up
14362tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
14363transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14364CONTRAST_<wbr/>CURVE.<wbr/></p>
14365<p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
14366emit its own tonemap curve in <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/>
14367<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>,<wbr/> and <a href="#controls_android.tonemap.curveBlue">android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue</a>.<wbr/>
14368These values are always available,<wbr/> and as close as possible to the
14369actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
14370<p>If a request is sent with TRANSFORM_<wbr/>MATRIX with the camera device's
14371provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
14372roughly the same.<wbr/></p>
14373            </td>
14374          </tr>
14375
14376
14377          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14378           <!-- end of entry -->
14379        
14380        
14381
14382      <!-- end of kind -->
14383      </tbody>
14384      <tr><td colspan="6" class="kind">static</td></tr>
14385
14386      <thead class="entries_header">
14387        <tr>
14388          <th class="th_name">Property Name</th>
14389          <th class="th_type">Type</th>
14390          <th class="th_description">Description</th>
14391          <th class="th_units">Units</th>
14392          <th class="th_range">Range</th>
14393          <th class="th_tags">Tags</th>
14394        </tr>
14395      </thead>
14396
14397      <tbody>
14398
14399        
14400
14401        
14402
14403        
14404
14405        
14406
14407                
14408          <tr class="entry" id="static_android.tonemap.maxCurvePoints">
14409            <td class="entry_name" rowspan="5">
14410              android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points
14411            </td>
14412            <td class="entry_type">
14413                <span class="entry_type_name">int32</span>
14414
14415              <span class="entry_type_visibility"> [public]</span>
14416
14417
14418            </td> <!-- entry_type -->
14419
14420            <td class="entry_description">
14421              <p>Maximum number of supported points in the
14422tonemap curve that can be used for <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/> or
14423<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>,<wbr/> or <a href="#controls_android.tonemap.curveBlue">android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue</a>.<wbr/></p>
14424            </td>
14425
14426            <td class="entry_units">
14427            </td>
14428
14429            <td class="entry_range">
14430              <p>&gt;= 64</p>
14431            </td>
14432
14433            <td class="entry_tags">
14434            </td>
14435
14436          </tr>
14437          <tr class="entries_header">
14438            <th class="th_details" colspan="5">Details</th>
14439          </tr>
14440          <tr class="entry_cont">
14441            <td class="entry_details" colspan="5">
14442              <p>If the actual number of points provided by the application (in
14443android.<wbr/>tonemap.<wbr/>curve*)  is less than max,<wbr/> the camera device will
14444resample the curve to its internal representation,<wbr/> using linear
14445interpolation.<wbr/></p>
14446<p>The output curves in the result metadata may have a different number
14447of points than the input curves,<wbr/> and will represent the actual
14448hardware curves used as closely as possible when linearly interpolated.<wbr/></p>
14449            </td>
14450          </tr>
14451
14452          <tr class="entries_header">
14453            <th class="th_details" colspan="5">HAL Implementation Details</th>
14454          </tr>
14455          <tr class="entry_cont">
14456            <td class="entry_details" colspan="5">
14457              <p>This value must be at least 64.<wbr/> This should be at least 128.<wbr/></p>
14458            </td>
14459          </tr>
14460
14461          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14462           <!-- end of entry -->
14463        
14464        
14465
14466      <!-- end of kind -->
14467      </tbody>
14468      <tr><td colspan="6" class="kind">dynamic</td></tr>
14469
14470      <thead class="entries_header">
14471        <tr>
14472          <th class="th_name">Property Name</th>
14473          <th class="th_type">Type</th>
14474          <th class="th_description">Description</th>
14475          <th class="th_units">Units</th>
14476          <th class="th_range">Range</th>
14477          <th class="th_tags">Tags</th>
14478        </tr>
14479      </thead>
14480
14481      <tbody>
14482
14483        
14484
14485        
14486
14487        
14488
14489        
14490
14491                
14492          <tr class="entry" id="dynamic_android.tonemap.curveBlue">
14493            <td class="entry_name" rowspan="3">
14494              android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
14495            </td>
14496            <td class="entry_type">
14497                <span class="entry_type_name">float</span>
14498                <span class="entry_type_container">x</span>
14499
14500                <span class="entry_type_array">
14501                  n x 2
14502                </span>
14503              <span class="entry_type_visibility"> [public]</span>
14504                <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>
14505
14506
14507            </td> <!-- entry_type -->
14508
14509            <td class="entry_description">
14510              <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
14511channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14512CONTRAST_<wbr/>CURVE.<wbr/></p>
14513            </td>
14514
14515            <td class="entry_units">
14516              same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
14517            </td>
14518
14519            <td class="entry_range">
14520              <p>same as <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a></p>
14521            </td>
14522
14523            <td class="entry_tags">
14524            </td>
14525
14526          </tr>
14527          <tr class="entries_header">
14528            <th class="th_details" colspan="5">Details</th>
14529          </tr>
14530          <tr class="entry_cont">
14531            <td class="entry_details" colspan="5">
14532              <p>See <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> for more details.<wbr/></p>
14533            </td>
14534          </tr>
14535
14536
14537          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14538           <!-- end of entry -->
14539        
14540                
14541          <tr class="entry" id="dynamic_android.tonemap.curveGreen">
14542            <td class="entry_name" rowspan="3">
14543              android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
14544            </td>
14545            <td class="entry_type">
14546                <span class="entry_type_name">float</span>
14547                <span class="entry_type_container">x</span>
14548
14549                <span class="entry_type_array">
14550                  n x 2
14551                </span>
14552              <span class="entry_type_visibility"> [public]</span>
14553                <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>
14554
14555
14556            </td> <!-- entry_type -->
14557
14558            <td class="entry_description">
14559              <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
14560channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14561CONTRAST_<wbr/>CURVE.<wbr/></p>
14562            </td>
14563
14564            <td class="entry_units">
14565              same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
14566            </td>
14567
14568            <td class="entry_range">
14569              <p>same as <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a></p>
14570            </td>
14571
14572            <td class="entry_tags">
14573            </td>
14574
14575          </tr>
14576          <tr class="entries_header">
14577            <th class="th_details" colspan="5">Details</th>
14578          </tr>
14579          <tr class="entry_cont">
14580            <td class="entry_details" colspan="5">
14581              <p>See <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> for more details.<wbr/></p>
14582            </td>
14583          </tr>
14584
14585
14586          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14587           <!-- end of entry -->
14588        
14589                
14590          <tr class="entry" id="dynamic_android.tonemap.curveRed">
14591            <td class="entry_name" rowspan="5">
14592              android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
14593            </td>
14594            <td class="entry_type">
14595                <span class="entry_type_name">float</span>
14596                <span class="entry_type_container">x</span>
14597
14598                <span class="entry_type_array">
14599                  n x 2
14600                </span>
14601              <span class="entry_type_visibility"> [public]</span>
14602                <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>
14603
14604
14605            </td> <!-- entry_type -->
14606
14607            <td class="entry_description">
14608              <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
14609channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14610CONTRAST_<wbr/>CURVE.<wbr/></p>
14611            </td>
14612
14613            <td class="entry_units">
14614            </td>
14615
14616            <td class="entry_range">
14617              <p>0-1 on both input and output coordinates,<wbr/> normalized
14618as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
14619            </td>
14620
14621            <td class="entry_tags">
14622              <ul class="entry_tags">
14623                  <li><a href="#tag_DNG">DNG</a></li>
14624              </ul>
14625            </td>
14626
14627          </tr>
14628          <tr class="entries_header">
14629            <th class="th_details" colspan="5">Details</th>
14630          </tr>
14631          <tr class="entry_cont">
14632            <td class="entry_details" colspan="5">
14633              <p>Each channel's curve is defined by an array of control points:</p>
14634<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
14635  [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
146362 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
14637<p>These are sorted in order of increasing <code>Pin</code>; it is always
14638guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
14639define a complete mapping.<wbr/> For input values between control points,<wbr/>
14640the camera device must linearly interpolate between the control
14641points.<wbr/></p>
14642<p>Each curve can have an independent number of points,<wbr/> and the number
14643of points can be less than max (that is,<wbr/> the request doesn't have to
14644always provide a curve with number of points equivalent to
14645<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
14646<p>A few examples,<wbr/> and their corresponding graphical mappings; these
14647only specify the red channel and the precision is limited to 4
14648digits,<wbr/> for conciseness.<wbr/></p>
14649<p>Linear mapping:</p>
14650<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 ]
14651</code></pre>
14652<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
14653<p>Invert mapping:</p>
14654<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 ]
14655</code></pre>
14656<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
14657<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
14658<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14659  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/>
14660  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/>
14661  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/>
14662  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 ]
14663</code></pre>
14664<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
14665<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
14666<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14667  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/>
14668  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/>
14669  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/>
14670  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 ]
14671</code></pre>
14672<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
14673            </td>
14674          </tr>
14675
14676          <tr class="entries_header">
14677            <th class="th_details" colspan="5">HAL Implementation Details</th>
14678          </tr>
14679          <tr class="entry_cont">
14680            <td class="entry_details" colspan="5">
14681              <p>For good quality of mapping,<wbr/> at least 128 control points are
14682preferred.<wbr/></p>
14683<p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
14684control points used as are available.<wbr/></p>
14685            </td>
14686          </tr>
14687
14688          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14689           <!-- end of entry -->
14690        
14691                
14692          <tr class="entry" id="dynamic_android.tonemap.mode">
14693            <td class="entry_name" rowspan="3">
14694              android.<wbr/>tonemap.<wbr/>mode
14695            </td>
14696            <td class="entry_type">
14697                <span class="entry_type_name entry_type_name_enum">byte</span>
14698
14699              <span class="entry_type_visibility"> [public]</span>
14700
14701                <ul class="entry_type_enum">
14702                  <li>
14703                    <span class="entry_type_enum_name">CONTRAST_CURVE</span>
14704                    <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
14705android.<wbr/>tonemap.<wbr/>curve.<wbr/></p>
14706<p>All color enhancement and tonemapping must be disabled,<wbr/> except
14707for applying the tonemapping curve specified by
14708<a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/> <a href="#controls_android.tonemap.curveBlue">android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue</a>,<wbr/> or
14709<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>.<wbr/></p>
14710<p>Must not slow down frame rate relative to raw
14711sensor output.<wbr/></p></span>
14712                  </li>
14713                  <li>
14714                    <span class="entry_type_enum_name">FAST</span>
14715                    <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14716<p>Should not slow down frame rate relative to raw sensor output.<wbr/></p></span>
14717                  </li>
14718                  <li>
14719                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
14720                    <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14721<p>May slow down frame rate relative to raw sensor output.<wbr/></p></span>
14722                  </li>
14723                </ul>
14724
14725            </td> <!-- entry_type -->
14726
14727            <td class="entry_description">
14728              <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
14729            </td>
14730
14731            <td class="entry_units">
14732            </td>
14733
14734            <td class="entry_range">
14735            </td>
14736
14737            <td class="entry_tags">
14738            </td>
14739
14740          </tr>
14741          <tr class="entries_header">
14742            <th class="th_details" colspan="5">Details</th>
14743          </tr>
14744          <tr class="entry_cont">
14745            <td class="entry_details" colspan="5">
14746              <p>When switching to an application-defined contrast curve by setting
14747<a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
14748per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
14749mapping from input high-bit-depth pixel value to the output
14750low-bit-depth value.<wbr/>  Since the actual pixel ranges of both input
14751and output may change depending on the camera pipeline,<wbr/> the values
14752are specified by normalized floating-point numbers.<wbr/></p>
14753<p>More-complex color mapping operations such as 3D color look-up
14754tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
14755transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14756CONTRAST_<wbr/>CURVE.<wbr/></p>
14757<p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
14758emit its own tonemap curve in <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/>
14759<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>,<wbr/> and <a href="#controls_android.tonemap.curveBlue">android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue</a>.<wbr/>
14760These values are always available,<wbr/> and as close as possible to the
14761actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
14762<p>If a request is sent with TRANSFORM_<wbr/>MATRIX with the camera device's
14763provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
14764roughly the same.<wbr/></p>
14765            </td>
14766          </tr>
14767
14768
14769          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14770           <!-- end of entry -->
14771        
14772        
14773
14774      <!-- end of kind -->
14775      </tbody>
14776
14777  <!-- end of section -->
14778  <tr><td colspan="6" id="section_led" class="section">led</td></tr>
14779
14780
14781      <tr><td colspan="6" class="kind">controls</td></tr>
14782
14783      <thead class="entries_header">
14784        <tr>
14785          <th class="th_name">Property Name</th>
14786          <th class="th_type">Type</th>
14787          <th class="th_description">Description</th>
14788          <th class="th_units">Units</th>
14789          <th class="th_range">Range</th>
14790          <th class="th_tags">Tags</th>
14791        </tr>
14792      </thead>
14793
14794      <tbody>
14795
14796        
14797
14798        
14799
14800        
14801
14802        
14803
14804                
14805          <tr class="entry" id="controls_android.led.transmit">
14806            <td class="entry_name" rowspan="1">
14807              android.<wbr/>led.<wbr/>transmit
14808            </td>
14809            <td class="entry_type">
14810                <span class="entry_type_name entry_type_name_enum">byte</span>
14811
14812              <span class="entry_type_visibility"> [hidden as boolean]</span>
14813
14814                <ul class="entry_type_enum">
14815                  <li>
14816                    <span class="entry_type_enum_name">OFF</span>
14817                  </li>
14818                  <li>
14819                    <span class="entry_type_enum_name">ON</span>
14820                  </li>
14821                </ul>
14822
14823            </td> <!-- entry_type -->
14824
14825            <td class="entry_description">
14826              <p>This LED is nominally used to indicate to the user
14827that the camera is powered on and may be streaming images back to the
14828Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
14829disable this when video is processed locally and not transmitted to
14830any untrusted applications.<wbr/></p>
14831<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
14832transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
14833data is stored locally on the device.<wbr/></p>
14834<p>The LED <em>may</em> be off if a trusted application is using the data that
14835doesn't violate the above rules.<wbr/></p>
14836            </td>
14837
14838            <td class="entry_units">
14839            </td>
14840
14841            <td class="entry_range">
14842            </td>
14843
14844            <td class="entry_tags">
14845            </td>
14846
14847          </tr>
14848
14849
14850          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14851           <!-- end of entry -->
14852        
14853        
14854
14855      <!-- end of kind -->
14856      </tbody>
14857      <tr><td colspan="6" class="kind">dynamic</td></tr>
14858
14859      <thead class="entries_header">
14860        <tr>
14861          <th class="th_name">Property Name</th>
14862          <th class="th_type">Type</th>
14863          <th class="th_description">Description</th>
14864          <th class="th_units">Units</th>
14865          <th class="th_range">Range</th>
14866          <th class="th_tags">Tags</th>
14867        </tr>
14868      </thead>
14869
14870      <tbody>
14871
14872        
14873
14874        
14875
14876        
14877
14878        
14879
14880                
14881          <tr class="entry" id="dynamic_android.led.transmit">
14882            <td class="entry_name" rowspan="1">
14883              android.<wbr/>led.<wbr/>transmit
14884            </td>
14885            <td class="entry_type">
14886                <span class="entry_type_name entry_type_name_enum">byte</span>
14887
14888              <span class="entry_type_visibility"> [hidden as boolean]</span>
14889
14890                <ul class="entry_type_enum">
14891                  <li>
14892                    <span class="entry_type_enum_name">OFF</span>
14893                  </li>
14894                  <li>
14895                    <span class="entry_type_enum_name">ON</span>
14896                  </li>
14897                </ul>
14898
14899            </td> <!-- entry_type -->
14900
14901            <td class="entry_description">
14902              <p>This LED is nominally used to indicate to the user
14903that the camera is powered on and may be streaming images back to the
14904Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
14905disable this when video is processed locally and not transmitted to
14906any untrusted applications.<wbr/></p>
14907<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
14908transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
14909data is stored locally on the device.<wbr/></p>
14910<p>The LED <em>may</em> be off if a trusted application is using the data that
14911doesn't violate the above rules.<wbr/></p>
14912            </td>
14913
14914            <td class="entry_units">
14915            </td>
14916
14917            <td class="entry_range">
14918            </td>
14919
14920            <td class="entry_tags">
14921            </td>
14922
14923          </tr>
14924
14925
14926          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14927           <!-- end of entry -->
14928        
14929        
14930
14931      <!-- end of kind -->
14932      </tbody>
14933      <tr><td colspan="6" class="kind">static</td></tr>
14934
14935      <thead class="entries_header">
14936        <tr>
14937          <th class="th_name">Property Name</th>
14938          <th class="th_type">Type</th>
14939          <th class="th_description">Description</th>
14940          <th class="th_units">Units</th>
14941          <th class="th_range">Range</th>
14942          <th class="th_tags">Tags</th>
14943        </tr>
14944      </thead>
14945
14946      <tbody>
14947
14948        
14949
14950        
14951
14952        
14953
14954        
14955
14956                
14957          <tr class="entry" id="static_android.led.availableLeds">
14958            <td class="entry_name" rowspan="1">
14959              android.<wbr/>led.<wbr/>available<wbr/>Leds
14960            </td>
14961            <td class="entry_type">
14962                <span class="entry_type_name entry_type_name_enum">byte</span>
14963                <span class="entry_type_container">x</span>
14964
14965                <span class="entry_type_array">
14966                  n
14967                </span>
14968              <span class="entry_type_visibility"> [hidden]</span>
14969
14970                <ul class="entry_type_enum">
14971                  <li>
14972                    <span class="entry_type_enum_name">TRANSMIT</span>
14973                    <span class="entry_type_enum_notes"><p><a href="#controls_android.led.transmit">android.<wbr/>led.<wbr/>transmit</a> control is used</p></span>
14974                  </li>
14975                </ul>
14976
14977            </td> <!-- entry_type -->
14978
14979            <td class="entry_description">
14980              <p>A list of camera LEDs that are available on this system.<wbr/></p>
14981            </td>
14982
14983            <td class="entry_units">
14984            </td>
14985
14986            <td class="entry_range">
14987            </td>
14988
14989            <td class="entry_tags">
14990            </td>
14991
14992          </tr>
14993
14994
14995          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14996           <!-- end of entry -->
14997        
14998        
14999
15000      <!-- end of kind -->
15001      </tbody>
15002
15003  <!-- end of section -->
15004  <tr><td colspan="6" id="section_info" class="section">info</td></tr>
15005
15006
15007      <tr><td colspan="6" class="kind">static</td></tr>
15008
15009      <thead class="entries_header">
15010        <tr>
15011          <th class="th_name">Property Name</th>
15012          <th class="th_type">Type</th>
15013          <th class="th_description">Description</th>
15014          <th class="th_units">Units</th>
15015          <th class="th_range">Range</th>
15016          <th class="th_tags">Tags</th>
15017        </tr>
15018      </thead>
15019
15020      <tbody>
15021
15022        
15023
15024        
15025
15026        
15027
15028        
15029
15030                
15031          <tr class="entry" id="static_android.info.supportedHardwareLevel">
15032            <td class="entry_name" rowspan="1">
15033              android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level
15034            </td>
15035            <td class="entry_type">
15036                <span class="entry_type_name entry_type_name_enum">byte</span>
15037
15038              <span class="entry_type_visibility"> [public]</span>
15039
15040                <ul class="entry_type_enum">
15041                  <li>
15042                    <span class="entry_type_enum_name">LIMITED</span>
15043                  </li>
15044                  <li>
15045                    <span class="entry_type_enum_name">FULL</span>
15046                  </li>
15047                </ul>
15048
15049            </td> <!-- entry_type -->
15050
15051            <td class="entry_description">
15052              <p>The camera 3 HAL device can implement one of two possible
15053operational modes; limited and full.<wbr/> Full support is
15054expected from new higher-end devices.<wbr/> Limited mode has
15055hardware requirements roughly in line with those for a
15056camera HAL device v1 implementation,<wbr/> and is expected from
15057older or inexpensive devices.<wbr/> Full is a strict superset of
15058limited,<wbr/> and they share the same essential operational flow.<wbr/></p>
15059<p>For full details refer to "S3.<wbr/> Operational Modes" in camera3.<wbr/>h</p>
15060            </td>
15061
15062            <td class="entry_units">
15063            </td>
15064
15065            <td class="entry_range">
15066              <p>Optional.<wbr/> Default value is LIMITED.<wbr/></p>
15067            </td>
15068
15069            <td class="entry_tags">
15070            </td>
15071
15072          </tr>
15073
15074
15075          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15076           <!-- end of entry -->
15077        
15078        
15079
15080      <!-- end of kind -->
15081      </tbody>
15082
15083  <!-- end of section -->
15084  <tr><td colspan="6" id="section_blackLevel" class="section">blackLevel</td></tr>
15085
15086
15087      <tr><td colspan="6" class="kind">controls</td></tr>
15088
15089      <thead class="entries_header">
15090        <tr>
15091          <th class="th_name">Property Name</th>
15092          <th class="th_type">Type</th>
15093          <th class="th_description">Description</th>
15094          <th class="th_units">Units</th>
15095          <th class="th_range">Range</th>
15096          <th class="th_tags">Tags</th>
15097        </tr>
15098      </thead>
15099
15100      <tbody>
15101
15102        
15103
15104        
15105
15106        
15107
15108        
15109
15110                
15111          <tr class="entry" id="controls_android.blackLevel.lock">
15112            <td class="entry_name" rowspan="5">
15113              android.<wbr/>black<wbr/>Level.<wbr/>lock
15114            </td>
15115            <td class="entry_type">
15116                <span class="entry_type_name entry_type_name_enum">byte</span>
15117
15118              <span class="entry_type_visibility"> [public as boolean]</span>
15119
15120                <ul class="entry_type_enum">
15121                  <li>
15122                    <span class="entry_type_enum_name">OFF</span>
15123                  </li>
15124                  <li>
15125                    <span class="entry_type_enum_name">ON</span>
15126                  </li>
15127                </ul>
15128
15129            </td> <!-- entry_type -->
15130
15131            <td class="entry_description">
15132              <p>Whether black-level compensation is locked
15133to its current values,<wbr/> or is free to vary.<wbr/></p>
15134            </td>
15135
15136            <td class="entry_units">
15137            </td>
15138
15139            <td class="entry_range">
15140            </td>
15141
15142            <td class="entry_tags">
15143              <ul class="entry_tags">
15144                  <li><a href="#tag_HAL2">HAL2</a></li>
15145              </ul>
15146            </td>
15147
15148          </tr>
15149          <tr class="entries_header">
15150            <th class="th_details" colspan="5">Details</th>
15151          </tr>
15152          <tr class="entry_cont">
15153            <td class="entry_details" colspan="5">
15154              <p>When set to ON,<wbr/> the values used for black-level
15155compensation will not change until the lock is set to
15156OFF.<wbr/></p>
15157<p>Since changes to certain capture parameters (such as
15158exposure time) may require resetting of black level
15159compensation,<wbr/> the camera device must report whether setting
15160the black level lock was successful in the output result
15161metadata.<wbr/></p>
15162<p>For example,<wbr/> if a sequence of requests is as follows:</p>
15163<ul>
15164<li>Request 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
15165<li>Request 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
15166<li>Request 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
15167<li>Request 4: Exposure = 20ms,<wbr/> Black level lock = ON</li>
15168<li>Request 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
15169<li>Request 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
15170</ul>
15171<p>And the exposure change in Request 4 requires the camera
15172device to reset the black level offsets,<wbr/> then the output
15173result metadata is expected to be:</p>
15174<ul>
15175<li>Result 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
15176<li>Result 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
15177<li>Result 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
15178<li>Result 4: Exposure = 20ms,<wbr/> Black level lock = OFF</li>
15179<li>Result 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
15180<li>Result 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
15181</ul>
15182<p>This indicates to the application that on frame 4,<wbr/> black
15183levels were reset due to exposure value changes,<wbr/> and pixel
15184values may not be consistent across captures.<wbr/></p>
15185<p>The camera device will maintain the lock to the extent
15186possible,<wbr/> only overriding the lock to OFF when changes to
15187other request parameters require a black level recalculation
15188or reset.<wbr/></p>
15189            </td>
15190          </tr>
15191
15192          <tr class="entries_header">
15193            <th class="th_details" colspan="5">HAL Implementation Details</th>
15194          </tr>
15195          <tr class="entry_cont">
15196            <td class="entry_details" colspan="5">
15197              <p>If for some reason black level locking is no longer possible
15198(for example,<wbr/> the analog gain has changed,<wbr/> which forces
15199black level offsets to be recalculated),<wbr/> then the HAL must
15200override this request (and it must report 'OFF' when this
15201does happen) until the next capture for which locking is
15202possible again.<wbr/></p>
15203            </td>
15204          </tr>
15205
15206          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15207           <!-- end of entry -->
15208        
15209        
15210
15211      <!-- end of kind -->
15212      </tbody>
15213      <tr><td colspan="6" class="kind">dynamic</td></tr>
15214
15215      <thead class="entries_header">
15216        <tr>
15217          <th class="th_name">Property Name</th>
15218          <th class="th_type">Type</th>
15219          <th class="th_description">Description</th>
15220          <th class="th_units">Units</th>
15221          <th class="th_range">Range</th>
15222          <th class="th_tags">Tags</th>
15223        </tr>
15224      </thead>
15225
15226      <tbody>
15227
15228        
15229
15230        
15231
15232        
15233
15234        
15235
15236                
15237          <tr class="entry" id="dynamic_android.blackLevel.lock">
15238            <td class="entry_name" rowspan="5">
15239              android.<wbr/>black<wbr/>Level.<wbr/>lock
15240            </td>
15241            <td class="entry_type">
15242                <span class="entry_type_name entry_type_name_enum">byte</span>
15243
15244              <span class="entry_type_visibility"> [public as boolean]</span>
15245
15246                <ul class="entry_type_enum">
15247                  <li>
15248                    <span class="entry_type_enum_name">OFF</span>
15249                  </li>
15250                  <li>
15251                    <span class="entry_type_enum_name">ON</span>
15252                  </li>
15253                </ul>
15254
15255            </td> <!-- entry_type -->
15256
15257            <td class="entry_description">
15258              <p>Whether black-level compensation is locked
15259to its current values,<wbr/> or is free to vary.<wbr/></p>
15260            </td>
15261
15262            <td class="entry_units">
15263            </td>
15264
15265            <td class="entry_range">
15266            </td>
15267
15268            <td class="entry_tags">
15269              <ul class="entry_tags">
15270                  <li><a href="#tag_HAL2">HAL2</a></li>
15271              </ul>
15272            </td>
15273
15274          </tr>
15275          <tr class="entries_header">
15276            <th class="th_details" colspan="5">Details</th>
15277          </tr>
15278          <tr class="entry_cont">
15279            <td class="entry_details" colspan="5">
15280              <p>Whether the black level offset was locked for this frame.<wbr/>  Should be
15281ON if <a href="#controls_android.blackLevel.lock">android.<wbr/>black<wbr/>Level.<wbr/>lock</a> was ON in the capture request,<wbr/> unless
15282a change in other capture settings forced the camera device to
15283perform a black level reset.<wbr/></p>
15284            </td>
15285          </tr>
15286
15287          <tr class="entries_header">
15288            <th class="th_details" colspan="5">HAL Implementation Details</th>
15289          </tr>
15290          <tr class="entry_cont">
15291            <td class="entry_details" colspan="5">
15292              <p>If for some reason black level locking is no longer possible
15293(for example,<wbr/> the analog gain has changed,<wbr/> which forces
15294black level offsets to be recalculated),<wbr/> then the HAL must
15295override this request (and it must report 'OFF' when this
15296does happen) until the next capture for which locking is
15297possible again.<wbr/></p>
15298            </td>
15299          </tr>
15300
15301          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15302           <!-- end of entry -->
15303        
15304        
15305
15306      <!-- end of kind -->
15307      </tbody>
15308
15309  <!-- end of section -->
15310  <tr><td colspan="6" id="section_sync" class="section">sync</td></tr>
15311
15312
15313      <tr><td colspan="6" class="kind">dynamic</td></tr>
15314
15315      <thead class="entries_header">
15316        <tr>
15317          <th class="th_name">Property Name</th>
15318          <th class="th_type">Type</th>
15319          <th class="th_description">Description</th>
15320          <th class="th_units">Units</th>
15321          <th class="th_range">Range</th>
15322          <th class="th_tags">Tags</th>
15323        </tr>
15324      </thead>
15325
15326      <tbody>
15327
15328        
15329
15330        
15331
15332        
15333
15334        
15335
15336                
15337          <tr class="entry" id="dynamic_android.sync.frameNumber">
15338            <td class="entry_name" rowspan="5">
15339              android.<wbr/>sync.<wbr/>frame<wbr/>Number
15340            </td>
15341            <td class="entry_type">
15342                <span class="entry_type_name entry_type_name_enum">int64</span>
15343
15344              <span class="entry_type_visibility"> [hidden]</span>
15345
15346                <ul class="entry_type_enum">
15347                  <li>
15348                    <span class="entry_type_enum_name">CONVERGING</span>
15349                    <span class="entry_type_enum_value">-1</span>
15350                    <span class="entry_type_enum_notes"><p>The current result is not yet fully synchronized to any request.<wbr/>
15351Synchronization is in progress,<wbr/> and reading metadata from this
15352result may include a mix of data that have taken effect since the
15353last synchronization time.<wbr/></p>
15354<p>In some future result,<wbr/> within <a href="#static_android.sync.maxLatency">android.<wbr/>sync.<wbr/>max<wbr/>Latency</a> frames,<wbr/>
15355this value will update to the actual frame number frame number
15356the result is guaranteed to be synchronized to (as long as the
15357request settings remain constant).<wbr/></p></span>
15358                  </li>
15359                  <li>
15360                    <span class="entry_type_enum_name">UNKNOWN</span>
15361                    <span class="entry_type_enum_value">-2</span>
15362                    <span class="entry_type_enum_notes"><p>The current result's synchronization status is unknown.<wbr/> The
15363result may have already converged,<wbr/> or it may be in progress.<wbr/>
15364Reading from this result may include some mix of settings from
15365past requests.<wbr/></p>
15366<p>After a settings change,<wbr/> the new settings will eventually all
15367take effect for the output buffers and results.<wbr/> However,<wbr/> this
15368value will not change when that happens.<wbr/> Altering settings
15369rapidly may provide outcomes using mixes of settings from recent
15370requests.<wbr/></p>
15371<p>This value is intended primarily for backwards compatibility with
15372the older camera implementations (for android.<wbr/>hardware.<wbr/>Camera).<wbr/></p></span>
15373                  </li>
15374                </ul>
15375
15376            </td> <!-- entry_type -->
15377
15378            <td class="entry_description">
15379              <p>The frame number corresponding to the last request
15380with which the output result (metadata + buffers) has been fully
15381synchronized.<wbr/></p>
15382            </td>
15383
15384            <td class="entry_units">
15385            </td>
15386
15387            <td class="entry_range">
15388              <p>Either a non-negative value corresponding to a
15389<code>frame_<wbr/>number</code>,<wbr/> or one of the two enums (CONVERGING /<wbr/> UNKNOWN).<wbr/></p>
15390            </td>
15391
15392            <td class="entry_tags">
15393              <ul class="entry_tags">
15394                  <li><a href="#tag_LIMITED">LIMITED</a></li>
15395              </ul>
15396            </td>
15397
15398          </tr>
15399          <tr class="entries_header">
15400            <th class="th_details" colspan="5">Details</th>
15401          </tr>
15402          <tr class="entry_cont">
15403            <td class="entry_details" colspan="5">
15404              <p>When a request is submitted to the camera device,<wbr/> there is usually a
15405delay of several frames before the controls get applied.<wbr/> A camera
15406device may either choose to account for this delay by implementing a
15407pipeline and carefully submit well-timed atomic control updates,<wbr/> or
15408it may start streaming control changes that span over several frame
15409boundaries.<wbr/></p>
15410<p>In the latter case,<wbr/> whenever a request's settings change relative to
15411the previous submitted request,<wbr/> the full set of changes may take
15412multiple frame durations to fully take effect.<wbr/> Some settings may
15413take effect sooner (in less frame durations) than others.<wbr/></p>
15414<p>While a set of control changes are being propagated,<wbr/> this value
15415will be CONVERGING.<wbr/></p>
15416<p>Once it is fully known that a set of control changes have been
15417finished propagating,<wbr/> and the resulting updated control settings
15418have been read back by the camera device,<wbr/> this value will be set
15419to a non-negative frame number (corresponding to the request to
15420which the results have synchronized to).<wbr/></p>
15421<p>Older camera device implementations may not have a way to detect
15422when all camera controls have been applied,<wbr/> and will always set this
15423value to UNKNOWN.<wbr/></p>
15424<p>FULL capability devices will always have this value set to the
15425frame number of the request corresponding to this result.<wbr/></p>
15426<p><em>Further details</em>:</p>
15427<ul>
15428<li>Whenever a request differs from the last request,<wbr/> any future
15429results not yet returned may have this value set to CONVERGING (this
15430could include any in-progress captures not yet returned by the camera
15431device,<wbr/> for more details see pipeline considerations below).<wbr/></li>
15432<li>Submitting a series of multiple requests that differ from the
15433previous request (e.<wbr/>g.<wbr/> r1,<wbr/> r2,<wbr/> r3 s.<wbr/>t.<wbr/> r1 != r2 != r3)
15434moves the new synchronization frame to the last non-repeating
15435request (using the smallest frame number from the contiguous list of
15436repeating requests).<wbr/></li>
15437<li>Submitting the same request repeatedly will not change this value
15438to CONVERGING,<wbr/> if it was already a non-negative value.<wbr/></li>
15439<li>When this value changes to non-negative,<wbr/> that means that all of the
15440metadata controls from the request have been applied,<wbr/> all of the
15441metadata controls from the camera device have been read to the
15442updated values (into the result),<wbr/> and all of the graphics buffers
15443corresponding to this result are also synchronized to the request.<wbr/></li>
15444</ul>
15445<p><em>Pipeline considerations</em>:</p>
15446<p>Submitting a request with updated controls relative to the previously
15447submitted requests may also invalidate the synchronization state
15448of all the results corresponding to currently in-flight requests.<wbr/></p>
15449<p>In other words,<wbr/> results for this current request and up to
15450<a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> prior requests may have their
15451<a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> change to CONVERGING.<wbr/></p>
15452            </td>
15453          </tr>
15454
15455          <tr class="entries_header">
15456            <th class="th_details" colspan="5">HAL Implementation Details</th>
15457          </tr>
15458          <tr class="entry_cont">
15459            <td class="entry_details" colspan="5">
15460              <p>Using UNKNOWN here is illegal unless android.<wbr/>sync.<wbr/>max<wbr/>Latency
15461is also UNKNOWN.<wbr/></p>
15462<p>FULL capability devices should simply set this value to the
15463<code>frame_<wbr/>number</code> of the request this result corresponds to.<wbr/></p>
15464            </td>
15465          </tr>
15466
15467          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15468           <!-- end of entry -->
15469        
15470        
15471
15472      <!-- end of kind -->
15473      </tbody>
15474      <tr><td colspan="6" class="kind">static</td></tr>
15475
15476      <thead class="entries_header">
15477        <tr>
15478          <th class="th_name">Property Name</th>
15479          <th class="th_type">Type</th>
15480          <th class="th_description">Description</th>
15481          <th class="th_units">Units</th>
15482          <th class="th_range">Range</th>
15483          <th class="th_tags">Tags</th>
15484        </tr>
15485      </thead>
15486
15487      <tbody>
15488
15489        
15490
15491        
15492
15493        
15494
15495        
15496
15497                
15498          <tr class="entry" id="static_android.sync.maxLatency">
15499            <td class="entry_name" rowspan="5">
15500              android.<wbr/>sync.<wbr/>max<wbr/>Latency
15501            </td>
15502            <td class="entry_type">
15503                <span class="entry_type_name entry_type_name_enum">int32</span>
15504
15505              <span class="entry_type_visibility"> [public]</span>
15506
15507                <ul class="entry_type_enum">
15508                  <li>
15509                    <span class="entry_type_enum_name">PER_FRAME_CONTROL</span>
15510                    <span class="entry_type_enum_value">0</span>
15511                    <span class="entry_type_enum_notes"><p>Every frame has the requests immediately applied.<wbr/>
15512(and furthermore for all results,<wbr/>
15513<code><a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == <a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a></code>)</p>
15514<p>Changing controls over multiple requests one after another will
15515produce results that have those controls applied atomically
15516each frame.<wbr/></p>
15517<p>All FULL capability devices will have this as their maxLatency.<wbr/></p></span>
15518                  </li>
15519                  <li>
15520                    <span class="entry_type_enum_name">UNKNOWN</span>
15521                    <span class="entry_type_enum_value">-1</span>
15522                    <span class="entry_type_enum_notes"><p>Each new frame has some subset (potentially the entire set)
15523of the past requests applied to the camera settings.<wbr/></p>
15524<p>By submitting a series of identical requests,<wbr/> the camera device
15525will eventually have the camera settings applied,<wbr/> but it is
15526unknown when that exact point will be.<wbr/></p></span>
15527                  </li>
15528                </ul>
15529
15530            </td> <!-- entry_type -->
15531
15532            <td class="entry_description">
15533              <p>The maximum number of frames that can occur after a request
15534(different than the previous) has been submitted,<wbr/> and before the
15535result's state becomes synchronized (by setting
15536<a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> to a non-negative value).<wbr/></p>
15537            </td>
15538
15539            <td class="entry_units">
15540              number of processed requests
15541            </td>
15542
15543            <td class="entry_range">
15544              <p>&gt;= -1</p>
15545            </td>
15546
15547            <td class="entry_tags">
15548              <ul class="entry_tags">
15549                  <li><a href="#tag_LIMITED">LIMITED</a></li>
15550              </ul>
15551            </td>
15552
15553          </tr>
15554          <tr class="entries_header">
15555            <th class="th_details" colspan="5">Details</th>
15556          </tr>
15557          <tr class="entry_cont">
15558            <td class="entry_details" colspan="5">
15559              <p>This defines the maximum distance (in number of metadata results),<wbr/>
15560between <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> and the equivalent
15561<a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a>.<wbr/></p>
15562<p>In other words this acts as an upper boundary for how many frames
15563must occur before the camera device knows for a fact that the new
15564submitted camera settings have been applied in outgoing frames.<wbr/></p>
15565<p>For example if the distance was 2,<wbr/></p>
15566<pre><code>initial request = X (repeating)
15567request1 = X
15568request2 = Y
15569request3 = Y
15570request4 = Y
15571
15572where requestN has frameNumber N,<wbr/> and the first of the repeating
15573initial request's has frameNumber F (and F &lt; 1).<wbr/>
15574
15575initial result = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
15576result1 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
15577result2 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
15578result3 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
15579result4 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2 }
15580
15581where resultN has frameNumber N.<wbr/>
15582</code></pre>
15583<p>Since <code>result4</code> has a <code>frameNumber == 4</code> and
15584<code><a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2</code>,<wbr/> the distance is clearly
15585<code>4 - 2 = 2</code>.<wbr/></p>
15586            </td>
15587          </tr>
15588
15589          <tr class="entries_header">
15590            <th class="th_details" colspan="5">HAL Implementation Details</th>
15591          </tr>
15592          <tr class="entry_cont">
15593            <td class="entry_details" colspan="5">
15594              <p>Use <code>frame_<wbr/>count</code> from camera3_<wbr/>request_<wbr/>t instead of
15595<a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a>.<wbr/></p>
15596<p>LIMITED devices are strongly encouraged to use a non-negative
15597value.<wbr/> If UNKNOWN is used here then app developers do not have a way
15598to know when sensor settings have been applied.<wbr/></p>
15599            </td>
15600          </tr>
15601
15602          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15603           <!-- end of entry -->
15604        
15605        
15606
15607      <!-- end of kind -->
15608      </tbody>
15609
15610  <!-- end of section -->
15611<!-- </namespace> -->
15612  </table>
15613
15614  <div class="tags" id="tag_index">
15615    <h2>Tags</h2>
15616    <ul>
15617      <li id="tag_AWB">AWB - 
15618        Needed for auto white balance
15619    
15620        <ul class="tags_entries">
15621          <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
15622        </ul>
15623      </li> <!-- tag_AWB -->
15624      <li id="tag_BC">BC - 
15625        Needed for backwards compatibility with old Java API
15626    
15627        <ul class="tags_entries">
15628          <li><a href="#controls_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a> (controls)</li>
15629          <li><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a> (controls)</li>
15630          <li><a href="#controls_android.control.aeLock">android.control.aeLock</a> (controls)</li>
15631          <li><a href="#controls_android.control.aeMode">android.control.aeMode</a> (controls)</li>
15632          <li><a href="#controls_android.control.aeRegions">android.control.aeRegions</a> (controls)</li>
15633          <li><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a> (controls)</li>
15634          <li><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a> (controls)</li>
15635          <li><a href="#controls_android.control.afMode">android.control.afMode</a> (controls)</li>
15636          <li><a href="#controls_android.control.afRegions">android.control.afRegions</a> (controls)</li>
15637          <li><a href="#controls_android.control.afTrigger">android.control.afTrigger</a> (controls)</li>
15638          <li><a href="#controls_android.control.awbLock">android.control.awbLock</a> (controls)</li>
15639          <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
15640          <li><a href="#controls_android.control.awbRegions">android.control.awbRegions</a> (controls)</li>
15641          <li><a href="#controls_android.control.captureIntent">android.control.captureIntent</a> (controls)</li>
15642          <li><a href="#controls_android.control.effectMode">android.control.effectMode</a> (controls)</li>
15643          <li><a href="#controls_android.control.mode">android.control.mode</a> (controls)</li>
15644          <li><a href="#controls_android.control.sceneMode">android.control.sceneMode</a> (controls)</li>
15645          <li><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a> (controls)</li>
15646          <li><a href="#static_android.control.aeAvailableModes">android.control.aeAvailableModes</a> (static)</li>
15647          <li><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a> (static)</li>
15648          <li><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a> (static)</li>
15649          <li><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a> (static)</li>
15650          <li><a href="#static_android.control.availableEffects">android.control.availableEffects</a> (static)</li>
15651          <li><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a> (static)</li>
15652          <li><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a> (static)</li>
15653          <li><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a> (static)</li>
15654          <li><a href="#static_android.control.maxRegions">android.control.maxRegions</a> (static)</li>
15655          <li><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a> (static)</li>
15656          <li><a href="#controls_android.flash.mode">android.flash.mode</a> (controls)</li>
15657          <li><a href="#static_android.flash.info.available">android.flash.info.available</a> (static)</li>
15658          <li><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a> (controls)</li>
15659          <li><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a> (controls)</li>
15660          <li><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a> (controls)</li>
15661          <li><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a> (controls)</li>
15662          <li><a href="#controls_android.jpeg.quality">android.jpeg.quality</a> (controls)</li>
15663          <li><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a> (controls)</li>
15664          <li><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a> (controls)</li>
15665          <li><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a> (static)</li>
15666          <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
15667          <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
15668          <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a> (dynamic)</li>
15669          <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a> (static)</li>
15670          <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a> (controls)</li>
15671          <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a> (static)</li>
15672          <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a> (static)</li>
15673          <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a> (static)</li>
15674          <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a> (static)</li>
15675          <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a> (static)</li>
15676          <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a> (static)</li>
15677          <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a> (static)</li>
15678          <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
15679          <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
15680          <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
15681          <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
15682          <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
15683          <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a> (static)</li>
15684          <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a> (dynamic)</li>
15685          <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a> (controls)</li>
15686          <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a> (dynamic)</li>
15687          <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a> (dynamic)</li>
15688          <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a> (dynamic)</li>
15689          <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a> (dynamic)</li>
15690          <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a> (dynamic)</li>
15691          <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a> (dynamic)</li>
15692        </ul>
15693      </li> <!-- tag_BC -->
15694      <li id="tag_V1">V1 - 
15695        New features for first camera 2 release (API1)
15696    
15697        <ul class="tags_entries">
15698          <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a> (controls)</li>
15699          <li><a href="#controls_android.flash.firingPower">android.flash.firingPower</a> (controls)</li>
15700          <li><a href="#controls_android.flash.firingTime">android.flash.firingTime</a> (controls)</li>
15701          <li><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a> (static)</li>
15702          <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a> (controls)</li>
15703          <li><a href="#controls_android.lens.aperture">android.lens.aperture</a> (controls)</li>
15704          <li><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a> (controls)</li>
15705          <li><a href="#controls_android.lens.focalLength">android.lens.focalLength</a> (controls)</li>
15706          <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
15707          <li><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (controls)</li>
15708          <li><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a> (static)</li>
15709          <li><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a> (static)</li>
15710          <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
15711          <li><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a> (static)</li>
15712          <li><a href="#static_android.lens.info.geometricCorrectionMapSize">android.lens.info.geometricCorrectionMapSize</a> (static)</li>
15713          <li><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a> (static)</li>
15714          <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a> (static)</li>
15715          <li><a href="#static_android.lens.info.focusDistanceCalibration">android.lens.info.focusDistanceCalibration</a> (static)</li>
15716          <li><a href="#static_android.lens.position">android.lens.position</a> (static)</li>
15717          <li><a href="#dynamic_android.lens.state">android.lens.state</a> (dynamic)</li>
15718          <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a> (controls)</li>
15719          <li><a href="#controls_android.request.id">android.request.id</a> (controls)</li>
15720          <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a> (controls)</li>
15721          <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
15722          <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a> (controls)</li>
15723          <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
15724          <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a> (static)</li>
15725          <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
15726          <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
15727          <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
15728          <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
15729          <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a> (static)</li>
15730          <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a> (controls)</li>
15731          <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a> (controls)</li>
15732          <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a> (dynamic)</li>
15733          <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a> (dynamic)</li>
15734          <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a> (dynamic)</li>
15735          <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a> (dynamic)</li>
15736          <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a> (dynamic)</li>
15737          <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (dynamic)</li>
15738        </ul>
15739      </li> <!-- tag_V1 -->
15740      <li id="tag_ADV">ADV - None
15741        <ul class="tags_entries">
15742          <li><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a> (static)</li>
15743          <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a> (static)</li>
15744          <li><a href="#controls_android.geometric.strength">android.geometric.strength</a> (controls)</li>
15745          <li><a href="#static_android.hotPixel.info.map">android.hotPixel.info.map</a> (static)</li>
15746          <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a> (static)</li>
15747          <li><a href="#controls_android.shading.strength">android.shading.strength</a> (controls)</li>
15748        </ul>
15749      </li> <!-- tag_ADV -->
15750      <li id="tag_DNG">DNG - 
15751        Needed for DNG file support
15752    
15753        <ul class="tags_entries">
15754          <li><a href="#static_android.lens.info.geometricCorrectionMap">android.lens.info.geometricCorrectionMap</a> (static)</li>
15755          <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a> (static)</li>
15756          <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a> (static)</li>
15757          <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
15758          <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a> (static)</li>
15759          <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a> (static)</li>
15760          <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a> (static)</li>
15761          <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a> (static)</li>
15762          <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a> (static)</li>
15763          <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a> (static)</li>
15764          <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a> (static)</li>
15765          <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a> (static)</li>
15766          <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
15767          <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a> (controls)</li>
15768        </ul>
15769      </li> <!-- tag_DNG -->
15770      <li id="tag_EXIF">EXIF - None
15771        <ul class="tags_entries">
15772          <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
15773        </ul>
15774      </li> <!-- tag_EXIF -->
15775      <li id="tag_HAL2">HAL2 - 
15776        Entry is only used by camera device HAL 2.x
15777    
15778        <ul class="tags_entries">
15779          <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a> (controls)</li>
15780          <li><a href="#controls_android.request.outputStreams">android.request.outputStreams</a> (controls)</li>
15781          <li><a href="#controls_android.request.type">android.request.type</a> (controls)</li>
15782          <li><a href="#static_android.request.maxNumReprocessStreams">android.request.maxNumReprocessStreams</a> (static)</li>
15783          <li><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a> (controls)</li>
15784        </ul>
15785      </li> <!-- tag_HAL2 -->
15786      <li id="tag_FULL">FULL - 
15787        Entry is required for full hardware level devices, and optional for other hardware levels
15788    
15789        <ul class="tags_entries">
15790          <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
15791          <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
15792          <li><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a> (dynamic)</li>
15793        </ul>
15794      </li> <!-- tag_FULL -->
15795      <li id="tag_LIMITED">LIMITED - 
15796      Entry assists with LIMITED device implementation. LIMITED devices
15797      must implement all entries with this tag. Optional for FULL devices.
15798    
15799        <ul class="tags_entries">
15800          <li><a href="#dynamic_android.sync.frameNumber">android.sync.frameNumber</a> (dynamic)</li>
15801          <li><a href="#static_android.sync.maxLatency">android.sync.maxLatency</a> (static)</li>
15802        </ul>
15803      </li> <!-- tag_LIMITED -->
15804    </ul>
15805  </div>
15806
15807  [ <a href="#">top</a> ]
15808
15809</body>
15810</html>
15811